{-| Module : FiniteCategories Description : An exemple of 'ConeCategory' pretty printed. Copyright : Guillaume Sabbagh 2022 License : GPL-3 Maintainer : guillaumesabbagh@protonmail.com Stability : experimental Portability : portable An exemple of 'ConeCategory' pretty printed. Pretty print the 'ConeCategory' of a 'V' 'Diagram'. -} module Math.FiniteCategories.ConeCategory.Example ( main ) where import Math.Category import Math.Categories.FinGrph import Math.FiniteCategories.ConeCategory import Math.FiniteCategories.FunctorCategory import Math.FiniteCategories.V import Math.FiniteCategories.Hat import Math.FiniteCategories.SafeCompositionGraph import Math.IO.PrettyPrint import Math.FiniteCategory 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 -- | An exemple of 'ConeCategory' pretty printed. main :: IO () main = do putStrLn "Start of Math.FiniteCategories.ConeCategory.Example" let Right scg = safeCompositionGraph (unsafeGraph (set "ABCD") (set [Arrow{sourceArrow = 'A', targetArrow = 'B', labelArrow='f'}, Arrow{sourceArrow = 'A', targetArrow = 'C', labelArrow='g'}, Arrow{sourceArrow = 'B', targetArrow = 'D', labelArrow='h'}, Arrow{sourceArrow = 'C', targetArrow = 'D', labelArrow='I'}])) (weakMap [([Arrow{sourceArrow = 'C', targetArrow = 'D', labelArrow='I'}, Arrow{sourceArrow = 'A', targetArrow = 'C', labelArrow='g'}],[Arrow{sourceArrow = 'B', targetArrow = 'D', labelArrow='h'}, Arrow{sourceArrow = 'A', targetArrow = 'B', labelArrow='f'}])]) 3 let diag = completeDiagram Diagram{src=V,tgt=scg,omap=weakMap [(VA,'D'),(VB,'B'),(VC,'C')], mmap=weakMap [(VF,anElement (genAr scg 'B' 'D')),(VG,anElement (genAr scg 'C' 'D'))]} putStrLn $ pprint diag putStrLn $ pprintFiniteCategory (coneCategory diag) let diag2 = completeDiagram Diagram{src=Hat,tgt=scg,omap=weakMap [(HatA,'A'),(HatB,'B'),(HatC,'C')], mmap=weakMap [(HatF,anElement (genAr scg 'A' 'B')),(HatG,anElement (genAr scg 'A' 'C'))]} putStrLn $ pprint diag2 putStrLn $ pprintFiniteCategory (coconeCategory diag2) putStrLn "End of Math.FiniteCategories.ConeCategory.Example"