{-| Module  : FiniteCategories
Description : Six examples of 'NumberCategory' pretty printed.
Copyright   : Guillaume Sabbagh 2022
License     : GPL-3
Maintainer  : guillaumesabbagh@protonmail.com
Stability   : experimental
Portability : portable

Six examples of 'NumberCategory' pretty printed. 
-}
module Math.FiniteCategories.NumberCategory.Example
(
    main
)
where
    import Math.FiniteCategories.NumberCategory
    import Math.IO.PrettyPrint
    import Math.FiniteCategory
    
    
    -- | Six examples of 'NumberCategory' pretty printed.

    main :: IO ()
    main :: IO ()
main = do
        String -> IO ()
putStrLn String
"Start of Math.FiniteCategories.NumberCategory.Example"
        let cats :: [NumberCategory]
cats = Natural -> NumberCategory
numberCategory (Natural -> NumberCategory) -> [Natural] -> [NumberCategory]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Natural
0..Natural
5]
        let p :: [IO ()]
p = (String -> IO ()
putStrLn(String -> IO ())
-> (NumberCategory -> String) -> NumberCategory -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
.NumberCategory -> String
forall c m o.
(FiniteCategory c m o, Morphism m o, PrettyPrint c, PrettyPrint m,
 PrettyPrint o, Eq m, Eq o) =>
c -> String
pprintFiniteCategory) (NumberCategory -> IO ()) -> [NumberCategory] -> [IO ()]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [NumberCategory]
cats
        [IO ()] -> IO [()]
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
forall (m :: * -> *) a. Monad m => [m a] -> m [a]
sequence [IO ()]
p
        String -> IO ()
putStrLn String
"End of Math.FiniteCategories.NumberCategory.Example"