{-| Module  : FiniteCategories
Description : Examples of Kan extensions of set-valued functors exported with GraphViz.
Copyright   : Guillaume Sabbagh 2023
License     : GPL-3
Maintainer  : guillaumesabbagh@protonmail.com
Stability   : experimental
Portability : portable

Examples of Kan extensions of set-valued functors exported with GraphViz.

Export extensions in the directory "OutputGraphViz\/Examples\/Functor\/SetValued".
-}
module Math.Functors.SetValued.Example
(
    main
)
where
    import              Math.FiniteCategory
    import              Math.FiniteCategories
    import              Math.Categories.FinSet
    import              Math.Functors.SetValued
    import              Math.IO.FiniteCategories.ExportGraphViz
    
    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                (pack)
    
    -- | Examples of Kan extensions of set-valued functors exported with GraphViz.

    main :: IO ()
    main :: IO ()
main = do
        String -> IO ()
putStrLn String
"Start of Math.Functors.SetValued.Example"
        let c1 :: SCG
c1 = String -> SCG
unsafeReadSCGString String
"2\nA -f-> B\n"
        SCG -> String -> IO ()
forall o m c.
(Eq o, PrettyPrint o, PrettyPrint m, Morphism m o,
 FiniteCategory c m o) =>
c -> String -> IO ()
catToPdf SCG
c1 String
"OutputGraphViz/Examples/Functors/SetValued/A"
        let c2 :: SCG
c2 = String -> SCG
unsafeReadSCGString String
"2\nA -f-> B -g-> A = <ID>\nB -g-> A -f-> B = <ID>\n"
        SCG -> String -> IO ()
forall o m c.
(Eq o, PrettyPrint o, PrettyPrint m, Morphism m o,
 FiniteCategory c m o) =>
c -> String -> IO ()
catToPdf SCG
c2 String
"OutputGraphViz/Examples/Functors/SetValued/B"
        let f :: SCGD
f = String -> SCGD
unsafeReadSCGDString String
"<SRC>\n2\nA -f-> B\n</SRC>\n<TGT>\n2\nA -f-> B -g-> A = <ID>\nB -g-> A -f-> B = <ID>\n</TGT>\nA -f-> B => A -f-> B\n"
        SCGD -> String -> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, PrettyPrint m2,
 PrettyPrint o2) =>
Diagram c1 m1 o1 c2 m2 o2 -> String -> IO ()
diagToPdf2 SCGD
f String
"OutputGraphViz/Examples/Functors/SetValued/F"
        let x :: Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet Int)
  (Function Int)
  (Set Int)
x = Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet Int)
  (Function Int)
  (Set Int)
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (FinSet Int)
     (Function Int)
     (Set Int)
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1,
 Category c2 m2 o2, Morphism m2 o2) =>
Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2
completeDiagram Diagram :: forall c1 m1 o1 c2 m2 o2.
c1 -> c2 -> Map o1 o2 -> Map m1 m2 -> Diagram c1 m1 o1 c2 m2 o2
Diagram{src :: SCG
src=SCG
c1,tgt :: FinSet Int
tgt=FinSet Int
forall a. FinSet a
FinSet,omap :: Map Text (Set Int)
omap=AssociationList Text (Set Int) -> Map Text (Set Int)
forall k v. AssociationList k v -> Map k v
weakMap [(String -> Text
pack String
"A",[Int] -> Set Int
forall a. [a] -> Set a
set [Int
0,Int
1 :: Int]),(String -> Text
pack String
"B", [Int] -> Set Int
forall a. [a] -> Set a
set [Int
2,Int
3,Int
4])], mmap :: Map (SCGMorphism Text Text) (Function Int)
mmap=AssociationList (SCGMorphism Text Text) (Function Int)
-> Map (SCGMorphism Text Text) (Function Int)
forall k v. AssociationList k v -> Map k v
weakMap [(Set (SCGMorphism Text Text) -> SCGMorphism Text Text
forall a. Set a -> a
anElement (SCG -> Text -> Text -> Set (SCGMorphism Text Text)
forall c m o.
(Category c m o, Morphism m o) =>
c -> o -> o -> Set m
genAr SCG
c1 (String -> Text
pack String
"A") (String -> Text
pack String
"B")),Function :: forall a. Map a a -> Set a -> Function a
Function{function :: Map Int Int
function=AssociationList Int Int -> Map Int Int
forall k v. AssociationList k v -> Map k v
weakMap [(Int
0,Int
2),(Int
1,Int
2)], codomain :: Set Int
codomain = [Int] -> Set Int
forall a. [a] -> Set a
set [Int
2,Int
3,Int
4]})]}
        Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory (FinSet Int) (Function Int) (Set Int))
  (Function Int)
  (Set Int)
-> String -> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, PrettyPrint m2,
 PrettyPrint o2) =>
Diagram c1 m1 o1 c2 m2 o2 -> String -> IO ()
diagToPdf2 (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet Int)
  (Function Int)
  (Set Int)
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory (FinSet Int) (Function Int) (Set Int))
     (Function Int)
     (Set Int)
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullDiagram2 Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet Int)
  (Function Int)
  (Set Int)
x) String
"OutputGraphViz/Examples/Functors/SetValued/X"
        let (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
ran, NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
epsilon) = SCGD
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (FinSet Int)
     (Function Int)
     (Set Int)
-> (Diagram
      SCG
      (SCGMorphism Text Text)
      Text
      (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
      (Function (LimitObject Text (SCGMorphism Text Text) Int))
      (Set (LimitObject Text (SCGMorphism Text Text) Int)),
    NaturalTransformation
      SCG
      (SCGMorphism Text Text)
      Text
      (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
      (Function (LimitObject Text (SCGMorphism Text Text) Int))
      (Set (LimitObject Text (SCGMorphism Text Text) Int)))
forall c1 m1 o1 c2 m2 o2 a.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1,
 FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2, Eq a) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (FinSet a) (Function a) (Set a)
-> (Diagram
      c2
      m2
      o2
      (FinSet (LimitObject o1 m2 a))
      (Function (LimitObject o1 m2 a))
      (Set (LimitObject o1 m2 a)),
    NaturalTransformation
      c1
      m1
      o1
      (FinSet (LimitObject o1 m2 a))
      (Function (LimitObject o1 m2 a))
      (Set (LimitObject o1 m2 a)))
rightKanSetValued SCGD
f Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet Int)
  (Function Int)
  (Set Int)
x
        Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory
     (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
     (Function (LimitObject Text (SCGMorphism Text Text) Int))
     (Set (LimitObject Text (SCGMorphism Text Text) Int)))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
-> String -> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, PrettyPrint m2,
 PrettyPrint o2) =>
Diagram c1 m1 o1 c2 m2 o2 -> String -> IO ()
diagToPdf (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory
        (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
        (Function (LimitObject Text (SCGMorphism Text Text) Int))
        (Set (LimitObject Text (SCGMorphism Text Text) Int)))
     (Function (LimitObject Text (SCGMorphism Text Text) Int))
     (Set (LimitObject Text (SCGMorphism Text Text) Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullDiagram2 Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
ran) String
"OutputGraphViz/Examples/Functors/SetValued/Ran2"
        Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory
     (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
     (Function (LimitObject Text (SCGMorphism Text Text) Int))
     (Set (LimitObject Text (SCGMorphism Text Text) Int)))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
-> (Set (LimitObject Text (SCGMorphism Text Text) Int) -> String)
-> (Function (LimitObject Text (SCGMorphism Text Text) Int)
    -> String)
-> String
-> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, PrettyPrint m2,
 PrettyPrint o2) =>
Diagram c1 m1 o1 c2 m2 o2
-> (o2 -> String) -> (m2 -> String) -> String -> IO ()
diagToPdf2Format (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory
        (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
        (Function (LimitObject Text (SCGMorphism Text Text) Int))
        (Set (LimitObject Text (SCGMorphism Text Text) Int)))
     (Function (LimitObject Text (SCGMorphism Text Text) Int))
     (Set (LimitObject Text (SCGMorphism Text Text) Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullDiagram2 Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
ran) Set (LimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Set (LimitObject o1 m2 a) -> String
formatSetOfLimitObjects Function (LimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Function (LimitObject o1 m2 a) -> String
formatFunctionOfLimitObjects String
"OutputGraphViz/Examples/Functors/SetValued/Ran"
        NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory
     (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
     (Function (LimitObject Text (SCGMorphism Text Text) Int))
     (Set (LimitObject Text (SCGMorphism Text Text) Int)))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
-> (Set (LimitObject Text (SCGMorphism Text Text) Int) -> String)
-> (Function (LimitObject Text (SCGMorphism Text Text) Int)
    -> String)
-> String
-> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1, Eq c1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, Eq c2, PrettyPrint m2,
 PrettyPrint o2) =>
NaturalTransformation c1 m1 o1 c2 m2 o2
-> (o2 -> String) -> (m2 -> String) -> String -> IO ()
natToPdfFormat (NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
-> NaturalTransformation
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory
        (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
        (Function (LimitObject Text (SCGMorphism Text Text) Int))
        (Set (LimitObject Text (SCGMorphism Text Text) Int)))
     (Function (LimitObject Text (SCGMorphism Text Text) Int))
     (Set (LimitObject Text (SCGMorphism Text Text) Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1,
 Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) =>
NaturalTransformation c1 m1 o1 c2 m2 o2
-> NaturalTransformation
     c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullNaturalTransformation2 NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (LimitObject Text (SCGMorphism Text Text) Int))
  (Function (LimitObject Text (SCGMorphism Text Text) Int))
  (Set (LimitObject Text (SCGMorphism Text Text) Int))
epsilon) Set (LimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Set (LimitObject o1 m2 a) -> String
formatSetOfLimitObjects Function (LimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Function (LimitObject o1 m2 a) -> String
formatFunctionOfLimitObjects String
"OutputGraphViz/Examples/Functors/SetValued/Epsilon"
        let (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
lan, NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
eta) = SCGD
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (FinSet Int)
     (Function Int)
     (Set Int)
-> (Diagram
      SCG
      (SCGMorphism Text Text)
      Text
      (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
      (Function (ColimitObject Text (SCGMorphism Text Text) Int))
      (Set (ColimitObject Text (SCGMorphism Text Text) Int)),
    NaturalTransformation
      SCG
      (SCGMorphism Text Text)
      Text
      (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
      (Function (ColimitObject Text (SCGMorphism Text Text) Int))
      (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
forall c1 m1 o1 c2 m2 o2 a.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1,
 FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2, Eq a) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (FinSet a) (Function a) (Set a)
-> (Diagram
      c2
      m2
      o2
      (FinSet (ColimitObject o1 m2 a))
      (Function (ColimitObject o1 m2 a))
      (Set (ColimitObject o1 m2 a)),
    NaturalTransformation
      c1
      m1
      o1
      (FinSet (ColimitObject o1 m2 a))
      (Function (ColimitObject o1 m2 a))
      (Set (ColimitObject o1 m2 a)))
leftKanSetValued SCGD
f Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet Int)
  (Function Int)
  (Set Int)
x
        Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory
     (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
     (Function (ColimitObject Text (SCGMorphism Text Text) Int))
     (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
-> String -> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, PrettyPrint m2,
 PrettyPrint o2) =>
Diagram c1 m1 o1 c2 m2 o2 -> String -> IO ()
diagToPdf (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory
        (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
        (Function (ColimitObject Text (SCGMorphism Text Text) Int))
        (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
     (Function (ColimitObject Text (SCGMorphism Text Text) Int))
     (Set (ColimitObject Text (SCGMorphism Text Text) Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullDiagram2 Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
lan) String
"OutputGraphViz/Examples/Functors/SetValued/Lan2"
        Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory
     (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
     (Function (ColimitObject Text (SCGMorphism Text Text) Int))
     (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
-> (Set (ColimitObject Text (SCGMorphism Text Text) Int) -> String)
-> (Function (ColimitObject Text (SCGMorphism Text Text) Int)
    -> String)
-> String
-> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, PrettyPrint m2,
 PrettyPrint o2) =>
Diagram c1 m1 o1 c2 m2 o2
-> (o2 -> String) -> (m2 -> String) -> String -> IO ()
diagToPdf2Format (Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
-> Diagram
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory
        (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
        (Function (ColimitObject Text (SCGMorphism Text Text) Int))
        (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
     (Function (ColimitObject Text (SCGMorphism Text Text) Int))
     (Set (ColimitObject Text (SCGMorphism Text Text) Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) =>
Diagram c1 m1 o1 c2 m2 o2
-> Diagram c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullDiagram2 Diagram
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
lan) Set (ColimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Set (ColimitObject o1 m2 a) -> String
formatSetOfColimitObjects Function (ColimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Function (ColimitObject o1 m2 a) -> String
formatFunctionOfColimitObjects String
"OutputGraphViz/Examples/Functors/SetValued/Lan"
        NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (InheritedSubcategory
     (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
     (Function (ColimitObject Text (SCGMorphism Text Text) Int))
     (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
-> (Set (ColimitObject Text (SCGMorphism Text Text) Int) -> String)
-> (Function (ColimitObject Text (SCGMorphism Text Text) Int)
    -> String)
-> String
-> IO ()
forall m1 o1 c1 m2 o2 c2.
(Morphism m1 o1, FiniteCategory c1 m1 o1, Eq o1, Eq m1, Eq c1,
 PrettyPrint m1, PrettyPrint o1, Morphism m2 o2,
 FiniteCategory c2 m2 o2, Eq o2, Eq m2, Eq c2, PrettyPrint m2,
 PrettyPrint o2) =>
NaturalTransformation c1 m1 o1 c2 m2 o2
-> (o2 -> String) -> (m2 -> String) -> String -> IO ()
natToPdfFormat (NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
-> NaturalTransformation
     SCG
     (SCGMorphism Text Text)
     Text
     (InheritedSubcategory
        (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
        (Function (ColimitObject Text (SCGMorphism Text Text) Int))
        (Set (ColimitObject Text (SCGMorphism Text Text) Int)))
     (Function (ColimitObject Text (SCGMorphism Text Text) Int))
     (Set (ColimitObject Text (SCGMorphism Text Text) Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1,
 Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) =>
NaturalTransformation c1 m1 o1 c2 m2 o2
-> NaturalTransformation
     c1 m1 o1 (InheritedSubcategory c2 m2 o2) m2 o2
fullNaturalTransformation2 NaturalTransformation
  SCG
  (SCGMorphism Text Text)
  Text
  (FinSet (ColimitObject Text (SCGMorphism Text Text) Int))
  (Function (ColimitObject Text (SCGMorphism Text Text) Int))
  (Set (ColimitObject Text (SCGMorphism Text Text) Int))
eta) Set (ColimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Set (ColimitObject o1 m2 a) -> String
formatSetOfColimitObjects Function (ColimitObject Text (SCGMorphism Text Text) Int) -> String
forall o1 m2 a.
(Eq o1, Eq m2, Eq a, PrettyPrint a) =>
Function (ColimitObject o1 m2 a) -> String
formatFunctionOfColimitObjects String
"OutputGraphViz/Examples/Functors/SetValued/Eta"
        String -> IO ()
putStrLn String
"End of Math.Functors.SetValued.Example"