{-| Module  : FiniteCategories
Description : An example of 'FullSubcategory' of __'FinCat'__.
Copyright   : Guillaume Sabbagh 2022
License     : GPL-3
Maintainer  : guillaumesabbagh@protonmail.com
Stability   : experimental
Portability : portable

An example of 'FullSubcategory' of __'FinCat'__.
-}
module Math.FiniteCategories.FinCat.Examples
(
    exampleFinCatNumbers,
)
where
    import Data.WeakSet.Safe
    
    import Math.Categories
    import Math.FiniteCategories
    import Math.FiniteCategory
    
    
    -- | The 'FullSubcategory' of __'FinCat'__ containing the number categories 0,1, and 2.

    exampleFinCatNumbers :: FullSubcategory (FinCat NumberCategory NumberCategoryMorphism numberCategoryObject) (FinFunctor NumberCategory NumberCategoryMorphism numberCategoryObject) NumberCategory
    exampleFinCatNumbers :: forall numberCategoryObject.
FullSubcategory
  (FinCat NumberCategory NumberCategoryMorphism numberCategoryObject)
  (FinFunctor
     NumberCategory NumberCategoryMorphism numberCategoryObject)
  NumberCategory
exampleFinCatNumbers  = FinCat NumberCategory NumberCategoryMorphism numberCategoryObject
-> Set NumberCategory
-> FullSubcategory
     (FinCat NumberCategory NumberCategoryMorphism numberCategoryObject)
     (FinFunctor
        NumberCategory NumberCategoryMorphism numberCategoryObject)
     NumberCategory
forall c m o. c -> Set o -> FullSubcategory c m o
FullSubcategory FinCat NumberCategory NumberCategoryMorphism numberCategoryObject
forall c m o. FinCat c m o
FinCat (Natural -> NumberCategory
numberCategory (Natural -> NumberCategory) -> Set Natural -> Set NumberCategory
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ([Natural] -> Set Natural
forall a. [a] -> Set a
set [Natural
0..Natural
2]))