{-| Module : FiniteCategories Description : An example of functor. Copyright : Guillaume Sabbagh 2021 License : GPL-3 Maintainer : guillaumesabbagh@protonmail.com Stability : experimental Portability : portable An example of functor. -} module ExampleCat.ExampleFunctor ( funct, main ) where import Cat.FinCat (FinCat(..)) import FiniteCategory.FiniteCategory import RandomCompositionGraph.RandomCompositionGraph import CompositionGraph.CompositionGraph import System.Random import ExportGraphViz.ExportGraphViz (catToPdf,genToPdf,diagToPdf,diagToPdf2) import Cat.FinCat import Diagram.Conversion (rcg1,newGen) = (mkRandomCompositionGraph 5 10 5 (mkStdGen 8)) cat = FinCat [rcg1] -- | An arbitrary functor from the random composition graph to itself. funct = (arrows cat) !! 51 -- | Export the category of finCat containing a random composition graph as a pdf with GraphViz. main = do putStrLn "Start of ExampleFunctor" catToPdf rcg1 "OutputGraphViz/Examples/Cat/Functor/rcg1" catToPdf cat "OutputGraphViz/Examples/Cat/Functor/catRCG" diagToPdf (finFunctorToDiagram funct) "OutputGraphViz/Examples/Cat/Functor/functor" diagToPdf2 (finFunctorToDiagram funct) "OutputGraphViz/Examples/Cat/Functor/diag" putStrLn "End of ExampleFunctor"