{-| Module  : FiniteCategories
Description : An exemple of 'leftAdjoint' and 'rightAdjoint' use exported with GraphViz.
Copyright   : Guillaume Sabbagh 2022
License     : GPL-3
Maintainer  : guillaumesabbagh@protonmail.com
Stability   : experimental
Portability : portable

An exemple of 'leftAdjoint' and 'rightAdjoint' use exported with GraphViz.

Export the lim functor of a discrete 'Diagram' in 'Ens' in the directory "OutputGraphViz\/Examples\/Functor\/Adjunction".
-}
module Math.Functors.Adjunction.Example
(
    main
)
where
    import              Math.FiniteCategory  
    import              Math.FiniteCategories.Ens   
    import              Math.FiniteCategories.DiscreteCategory   
    import              Math.Categories.FunctorCategory   
    import              Math.Functors.Adjunction
    import              Math.Functors.DiagonalFunctor
    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
    
    -- | An exemple of 'leftAdjoint' and 'rightAdjoint' use exported with GraphViz.

    main :: IO ()
    main :: IO ()
main = do
        String -> IO ()
putStrLn String
"Start of Math.Functors.Adjunction.Example"
        let universe :: Ens Int
universe = Set (Set Int) -> Ens Int
forall a. Set (Set a) -> Ens a
ens (Set (Set Int) -> Ens Int) -> Set (Set Int) -> Ens Int
forall a b. (a -> b) -> a -> b
$ [Set Int] -> Set (Set Int)
forall a. [a] -> Set a
set [[Int] -> Set Int
forall a. [a] -> Set a
set [Int
1 :: Int], [Int] -> Set Int
forall a. [a] -> Set a
set [Int
3,Int
4]]
        let indexing :: DiscreteCategory Int
indexing = Set Int -> DiscreteCategory Int
forall a. Set a -> DiscreteCategory a
discreteCategory (Set Int -> DiscreteCategory Int)
-> Set Int -> DiscreteCategory Int
forall a b. (a -> b) -> a -> b
$ [Int] -> Set Int
forall a. [a] -> Set a
set [Int
0 :: Int,Int
1]
        let diagFunct :: Diagram
  (Ens Int)
  (Function Int)
  (Set Int)
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
diagFunct = DiscreteCategory Int
-> Ens Int
-> Diagram
     (Ens Int)
     (Function Int)
     (Set Int)
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, FiniteCategory c2 m2 o2,
 Morphism m2 o2) =>
c1
-> c2
-> Diagram
     c2
     m2
     o2
     (FunctorCategory c1 m1 o1 c2 m2 o2)
     (NaturalTransformation c1 m1 o1 c2 m2 o2)
     (Diagram c1 m1 o1 c2 m2 o2)
diagonalFunctor DiscreteCategory Int
indexing Ens Int
universe
        let leftAdj :: Diagram
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Ens Int)
  (Function Int)
  (Set Int)
leftAdj = Diagram
  (Ens Int)
  (Function Int)
  (Set Int)
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1,
 FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) =>
Diagram c1 m1 o1 c2 m2 o2 -> Diagram c2 m2 o2 c1 m1 o1
leftAdjoint Diagram
  (Ens Int)
  (Function Int)
  (Set Int)
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
diagFunct
        let rightAdj :: Diagram
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Ens Int)
  (Function Int)
  (Set Int)
rightAdj = Diagram
  (Ens Int)
  (Function Int)
  (Set Int)
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
forall c1 m1 o1 c2 m2 o2.
(FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1,
 FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) =>
Diagram c2 m2 o2 c1 m1 o1 -> Diagram c1 m1 o1 c2 m2 o2
rightAdjoint Diagram
  (Ens Int)
  (Function Int)
  (Set Int)
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
diagFunct
        Ens Int -> String -> IO ()
forall o m c.
(Eq o, PrettyPrint o, PrettyPrint m, Morphism m o,
 FiniteCategory c m o) =>
c -> String -> IO ()
catToPdf Ens Int
universe String
"OutputGraphViz/Examples/Functors/Adjunction/ens"
        DiscreteCategory Int -> String -> IO ()
forall o m c.
(Eq o, PrettyPrint o, PrettyPrint m, Morphism m o,
 FiniteCategory c m o) =>
c -> String -> IO ()
catToPdf DiscreteCategory Int
indexing String
"OutputGraphViz/Examples/Functors/Adjunction/indexing"
        Diagram
  (DiscreteCategory Int)
  (StarIdentity Int)
  Int
  (Ens 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
   (DiscreteCategory Int)
   (StarIdentity Int)
   Int
   (Ens Int)
   (Function Int)
   (Set Int),
 Set Int)
-> Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int)
forall a b. (a, b) -> a
fst((Diagram
    (DiscreteCategory Int)
    (StarIdentity Int)
    Int
    (Ens Int)
    (Function Int)
    (Set Int),
  Set Int)
 -> Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
-> (Diagram
      (FunctorCategory
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (NaturalTransformation
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Ens Int)
      (Function Int)
      (Set Int)
    -> (Diagram
          (DiscreteCategory Int)
          (StarIdentity Int)
          Int
          (Ens Int)
          (Function Int)
          (Set Int),
        Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Set
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int),
   Set Int)
-> (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int),
    Set Int)
forall a. Set a -> a
anElement(Set
   (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int),
    Set Int)
 -> (Diagram
       (DiscreteCategory Int)
       (StarIdentity Int)
       Int
       (Ens Int)
       (Function Int)
       (Set Int),
     Set Int))
-> (Diagram
      (FunctorCategory
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (NaturalTransformation
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Ens Int)
      (Function Int)
      (Set Int)
    -> Set
         (Diagram
            (DiscreteCategory Int)
            (StarIdentity Int)
            Int
            (Ens Int)
            (Function Int)
            (Set Int),
          Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int),
    Set Int)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Map
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Set Int)
-> Set
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int),
      Set Int)
forall k v. Eq k => Map k v -> Set (k, v)
Map.mapToSet)(Map
   (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (Set Int)
 -> Set
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int),
       Set Int))
-> (Diagram
      (FunctorCategory
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (NaturalTransformation
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Ens Int)
      (Function Int)
      (Set Int)
    -> Map
         (Diagram
            (DiscreteCategory Int)
            (StarIdentity Int)
            Int
            (Ens Int)
            (Function Int)
            (Set Int))
         (Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> Set
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int),
      Set Int)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Diagram
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Ens Int)
  (Function Int)
  (Set Int)
-> Map
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Set Int)
forall c1 m1 o1 c2 m2 o2. Diagram c1 m1 o1 c2 m2 o2 -> Map o1 o2
omap (Diagram
   (FunctorCategory
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (NaturalTransformation
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (Ens Int)
   (Function Int)
   (Set Int)
 -> Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int)
forall a b. (a -> b) -> a -> b
$ Diagram
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Ens Int)
  (Function Int)
  (Set Int)
leftAdj) String
"OutputGraphViz/Examples/Functors/Adjunction/diag"
        Diagram One One One (Ens 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 (Ens Int
-> Set Int
-> Diagram One One One (Ens Int) (Function Int) (Set Int)
forall c m o.
(Category c m o, Morphism m o, Eq o) =>
c -> o -> Diagram One One One c m o
selectObject Ens Int
universe ((Diagram
   (DiscreteCategory Int)
   (StarIdentity Int)
   Int
   (Ens Int)
   (Function Int)
   (Set Int),
 Set Int)
-> Set Int
forall a b. (a, b) -> b
snd((Diagram
    (DiscreteCategory Int)
    (StarIdentity Int)
    Int
    (Ens Int)
    (Function Int)
    (Set Int),
  Set Int)
 -> Set Int)
-> (Diagram
      (FunctorCategory
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (NaturalTransformation
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Ens Int)
      (Function Int)
      (Set Int)
    -> (Diagram
          (DiscreteCategory Int)
          (StarIdentity Int)
          Int
          (Ens Int)
          (Function Int)
          (Set Int),
        Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> Set Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Set
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int),
   Set Int)
-> (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int),
    Set Int)
forall a. Set a -> a
anElement(Set
   (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int),
    Set Int)
 -> (Diagram
       (DiscreteCategory Int)
       (StarIdentity Int)
       Int
       (Ens Int)
       (Function Int)
       (Set Int),
     Set Int))
-> (Diagram
      (FunctorCategory
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (NaturalTransformation
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Ens Int)
      (Function Int)
      (Set Int)
    -> Set
         (Diagram
            (DiscreteCategory Int)
            (StarIdentity Int)
            Int
            (Ens Int)
            (Function Int)
            (Set Int),
          Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int),
    Set Int)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Map
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Set Int)
-> Set
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int),
      Set Int)
forall k v. Eq k => Map k v -> Set (k, v)
Map.mapToSet)(Map
   (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (Set Int)
 -> Set
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int),
       Set Int))
-> (Diagram
      (FunctorCategory
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (NaturalTransformation
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Diagram
         (DiscreteCategory Int)
         (StarIdentity Int)
         Int
         (Ens Int)
         (Function Int)
         (Set Int))
      (Ens Int)
      (Function Int)
      (Set Int)
    -> Map
         (Diagram
            (DiscreteCategory Int)
            (StarIdentity Int)
            Int
            (Ens Int)
            (Function Int)
            (Set Int))
         (Set Int))
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> Set
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int),
      Set Int)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Diagram
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Ens Int)
  (Function Int)
  (Set Int)
-> Map
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Set Int)
forall c1 m1 o1 c2 m2 o2. Diagram c1 m1 o1 c2 m2 o2 -> Map o1 o2
omap (Diagram
   (FunctorCategory
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (NaturalTransformation
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (Diagram
      (DiscreteCategory Int)
      (StarIdentity Int)
      Int
      (Ens Int)
      (Function Int)
      (Set Int))
   (Ens Int)
   (Function Int)
   (Set Int)
 -> Set Int)
-> Diagram
     (FunctorCategory
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (NaturalTransformation
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Diagram
        (DiscreteCategory Int)
        (StarIdentity Int)
        Int
        (Ens Int)
        (Function Int)
        (Set Int))
     (Ens Int)
     (Function Int)
     (Set Int)
-> Set Int
forall a b. (a -> b) -> a -> b
$ Diagram
  (FunctorCategory
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (NaturalTransformation
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Diagram
     (DiscreteCategory Int)
     (StarIdentity Int)
     Int
     (Ens Int)
     (Function Int)
     (Set Int))
  (Ens Int)
  (Function Int)
  (Set Int)
leftAdj)) String
"OutputGraphViz/Examples/Functors/Adjunction/limit"        
        String -> IO ()
putStrLn String
"End of Math.Functors.Adjunction.Example"