module Math.FiniteCategories.FinGrph.Example
(
main
)
where
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
import Data.Text (Text, pack)
import Math.Categories
import Math.FiniteCategories
import Math.IO.FiniteCategories.ExportGraphViz
import Numeric.Natural
main :: IO ()
main :: IO ()
main = do
String -> IO ()
putStrLn String
"Start of Math.FiniteCategories.FinGrph.Example"
let c :: FullSubcategory
(FinGrph Natural Text)
(GraphHomomorphism Natural Text)
(Graph Natural Text)
c = FinGrph Natural Text
-> Set (Graph Natural Text)
-> FullSubcategory
(FinGrph Natural Text)
(GraphHomomorphism Natural Text)
(Graph Natural Text)
forall c m o. c -> Set o -> FullSubcategory c m o
FullSubcategory FinGrph Natural Text
forall n e. FinGrph n e
FinGrph (Set (Graph Natural Text)
-> FullSubcategory
(FinGrph Natural Text)
(GraphHomomorphism Natural Text)
(Graph Natural Text))
-> Set (Graph Natural Text)
-> FullSubcategory
(FinGrph Natural Text)
(GraphHomomorphism Natural Text)
(Graph Natural Text)
forall a b. (a -> b) -> a -> b
$ ((Natural -> Natural)
-> (IsSmallerThan Natural -> Text)
-> NumberCategory
-> Graph Natural Text
forall c m o a b.
(FiniteCategory c m o, Morphism m o) =>
(o -> a) -> (m -> b) -> c -> Graph a b
underlyingGraphFormat Natural -> Natural
forall a. a -> a
id (Text -> IsSmallerThan Natural -> Text
forall a b. a -> b -> a
const(Text -> IsSmallerThan Natural -> Text)
-> (String -> Text) -> String -> IsSmallerThan Natural -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
.String -> Text
pack (String -> IsSmallerThan Natural -> Text)
-> String -> IsSmallerThan Natural -> Text
forall a b. (a -> b) -> a -> b
$ String
""))(NumberCategory -> Graph Natural Text)
-> (Natural -> NumberCategory) -> Natural -> Graph Natural Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Natural -> NumberCategory
numberCategory (Natural -> Graph Natural Text)
-> Set Natural -> Set (Graph Natural Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Natural] -> Set Natural
forall a. [a] -> Set a
set [Natural
0..Natural
2] :: FullSubcategory (FinGrph Natural Text) (GraphHomomorphism Natural Text) (Graph Natural Text)
FullSubcategory
(FinGrph Natural Text)
(GraphHomomorphism Natural Text)
(Graph Natural Text)
-> String -> IO ()
forall o m c.
(Eq o, PrettyPrint o, PrettyPrint m, Morphism m o,
FiniteCategory c m o) =>
c -> String -> IO ()
catToPdf FullSubcategory
(FinGrph Natural Text)
(GraphHomomorphism Natural Text)
(Graph Natural Text)
c String
"OutputGraphViz/Examples/FiniteCategories/FinGrph/FinGrph"
String -> IO ()
putStrLn String
"End of Math.FiniteCategories.FinGrph.Example"