module Math.Functors.DiagonalFunctor.Example
(
main
)
where
import Math.FiniteCategory
import Math.FiniteCategories.DiscreteCategory
import Math.FiniteCategories.V
import Math.Functors.DiagonalFunctor
import Math.IO.PrettyPrint
import Math.FiniteCategory
import Data.WeakSet (Set)
import qualified Data.WeakSet as Set
import Data.WeakSet.Safe
import Data.WeakMap (Map)
import qualified Data.WeakMap as Map
import Data.WeakMap.Safe
main :: IO ()
main :: IO ()
main = do
String -> IO ()
putStrLn String
"Start of Math.Functors.DiagonalFunctor.Example"
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ DiscreteCategory Int -> 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 (Set Int -> DiscreteCategory Int
forall a. Set a -> DiscreteCategory a
discreteCategory ([Int] -> Set Int
forall a. [a] -> Set a
set [Int
1 :: Int,Int
2]))
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ V -> 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 V
V
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ Diagram
V
VAr
VOb
(FunctorCategory
(DiscreteCategory Int) (StarIdentity Int) Int V VAr VOb)
(NaturalTransformation
(DiscreteCategory Int) (StarIdentity Int) Int V VAr VOb)
(Diagram (DiscreteCategory Int) (StarIdentity Int) Int V VAr VOb)
-> String
forall a. PrettyPrint a => a -> String
pprint (DiscreteCategory Int
-> V
-> Diagram
V
VAr
VOb
(FunctorCategory
(DiscreteCategory Int) (StarIdentity Int) Int V VAr VOb)
(NaturalTransformation
(DiscreteCategory Int) (StarIdentity Int) Int V VAr VOb)
(Diagram (DiscreteCategory Int) (StarIdentity Int) Int V VAr VOb)
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, FiniteCategory c2 m2 o2,
Morphism m2 o2) =>
c1
-> c2
-> Diagram
c2
m2
o2
(FunctorCategory c1 m1 o1 c2 m2 o2)
(NaturalTransformation c1 m1 o1 c2 m2 o2)
(Diagram c1 m1 o1 c2 m2 o2)
diagonalFunctor (Set Int -> DiscreteCategory Int
forall a. Set a -> DiscreteCategory a
discreteCategory ([Int] -> Set Int
forall a. [a] -> Set a
set [Int
1 :: Int,Int
2])) V
V)
String -> IO ()
putStrLn String
"End of Math.Functors.DiagonalFunctor.Example"