module Math.FiniteCategories.CommaCategory.Example
(
main
)
where
import qualified Data.WeakSet as Set
import Data.WeakSet.Safe
import Data.WeakMap.Safe
import Math.FiniteCategory
import Math.Categories
import Math.FiniteCategories
import Math.IO.PrettyPrint
main :: IO ()
main :: IO ()
main = do
String -> IO ()
putStrLn String
"Start of Math.FiniteCategories.CommaCategory.Example"
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ 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 (Natural -> NumberCategory
numberCategory Natural
4)
let Just CommaCategory
NumberCategory
(IsSmallerThan Natural)
Natural
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
slice = NumberCategory
-> Natural
-> Maybe
(CommaCategory
NumberCategory
(IsSmallerThan Natural)
Natural
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural)
forall c m o.
(FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o) =>
c -> o -> Maybe (CommaCategory c m o One One One c m o)
sliceCategory (Natural -> NumberCategory
numberCategory Natural
4) Natural
2
let Just CommaCategory
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
coslice = NumberCategory
-> Natural
-> Maybe
(CommaCategory
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural)
forall c m o.
(FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o) =>
c -> o -> Maybe (CommaCategory One One One c m o c m o)
cosliceCategory (Natural -> NumberCategory
numberCategory Natural
4) Natural
2
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ CommaCategory
NumberCategory
(IsSmallerThan Natural)
Natural
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
-> 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 CommaCategory
NumberCategory
(IsSmallerThan Natural)
Natural
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
slice
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ CommaCategory
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
-> 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 CommaCategory
One
One
One
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
coslice
String -> IO ()
putStrLn (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ CommaCategory
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
-> 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
-> CommaCategory
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
NumberCategory
(IsSmallerThan Natural)
Natural
forall c m o.
(FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o) =>
c -> CommaCategory c m o c m o c m o
arrowCategory (Natural -> NumberCategory
numberCategory Natural
4))
String -> IO ()
putStrLn String
"End of Math.FiniteCategories.CommaCategory.Example"