{-| Module : FiniteCategories Description : An example of constant diagram. Copyright : Guillaume Sabbagh 2021 License : GPL-3 Maintainer : guillaumesabbagh@protonmail.com Stability : experimental Portability : portable An example of constant diagram. -} module ExampleDiagram.ExampleConstantDiagram ( constantDiag, main ) where import RandomCompositionGraph.RandomCompositionGraph import System.Random import ExportGraphViz.ExportGraphViz (catToPdf,diagToPdf,diagToPdf2) import Diagram.Diagram (mkConstantDiagram) import CompositionGraph.CompositionGraph import Utils.Sample import FiniteCategory.FiniteCategory import Data.Maybe (fromJust) (rcg1,newGen) = (defaultMkRandomCompositionGraph (mkStdGen 8)) (rcg2,newGen1) = (defaultMkRandomCompositionGraph newGen) -- | The constant diagram from a random composition graph to a random object. constantDiag = fromJust $ mkConstantDiagram rcg1 rcg2 (fst (pickOne (ob rcg2) newGen1)) -- | Export the constant diagram as a pdf with GraphViz. main = do putStrLn "Start of ExampleConstantDiagram" catToPdf rcg1 "OutputGraphViz/Examples/Diagram/ConstantDiagram/rcg1" catToPdf rcg2 "OutputGraphViz/Examples/Diagram/ConstantDiagram/rcg2" diagToPdf constantDiag "OutputGraphViz/Examples/Diagram/ConstantDiagram/functor" diagToPdf2 constantDiag "OutputGraphViz/Examples/Diagram/ConstantDiagram/diag" putStrLn "End of ExampleConstantDiagram"