{-| Module : FiniteCategories Description : An example of a category of categories with partial functors. Copyright : Guillaume Sabbagh 2021 License : GPL-3 Maintainer : guillaumesabbagh@protonmail.com Stability : experimental Portability : portable An example of category of categories with partial functors. -} module ExampleCat.ExamplePartialFinCat ( set1, set2, cat, main ) where import Prelude hiding (fmap, Functor) import Cat.PartialFinCat (PartialFinCat(..)) import Set.FinOrdSet (FinOrdSet(..)) import Data.Set (fromList) import ExportGraphViz.ExportGraphViz (catToPdf,genToPdf) import FiniteCategory.FiniteCategory -- | A category with {1,2} and {3} as object and applications as morphisms. set1 = FinOrdSet [fromList [1]] :: FinOrdSet Int -- | A category with {1,2} as object and applications as morphisms. set2 = FinOrdSet [fromList [1,2]] :: FinOrdSet Int -- | A category with the two previous categories as objects cat = PartialFinCat [set1,set2] -- | Export all the previously defined categories as pdf with GraphViz. main = do putStrLn "Start of ExamplePartialFinCat" catToPdf set1 "OutputGraphViz/Examples/Cat/PartialFinCat/set1" catToPdf set2 "OutputGraphViz/Examples/Cat/PartialFinCat/set2" catToPdf cat "OutputGraphViz/Examples/Cat/PartialFinCat/catOfCat" putStrLn "End of ExamplePartialFinCat"