polynomial-functor
Safe HaskellNone
LanguageHaskell2010

Data.GADT.HasFinitary

Documentation

class HasFinitary (tag :: Type -> Type) where Source #

Methods

withFinitary :: tag n -> (Finitary n => r) -> r Source #

Instances

Instances details
HasFinitary TagList Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagList n -> (Finitary n => r) -> r Source #

HasFinitary TagMaybe Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagMaybe n -> (Finitary n => r) -> r Source #

HasFinitary TagV Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagV n -> (Finitary n => r) -> r Source #

HasFinitary (TagK c) Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagK c n -> (Finitary n => r) -> r Source #

Finitary n => HasFinitary ((:~:) n) Source # 
Instance details

Defined in Data.GADT.HasFinitary

Methods

withFinitary :: (n :~: n0) -> (Finitary n0 => r) -> r Source #

HasFinitary u => HasFinitary (TagComp t u) Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagComp t u n -> (Finitary n => r) -> r Source #

(HasFinitary t, HasFinitary u) => HasFinitary (TagDay t u) Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagDay t u n -> (Finitary n => r) -> r Source #

(HasFinitary t1, HasFinitary t2) => HasFinitary (TagMul t1 t2) Source # 
Instance details

Defined in Data.Functor.Polynomial.Tag

Methods

withFinitary :: TagMul t1 t2 n -> (Finitary n => r) -> r Source #

HasFinitary t => HasFinitary (TagPow n t) Source # 
Instance details

Defined in Data.Functor.Pow

Methods

withFinitary :: TagPow n t n0 -> (Finitary n0 => r) -> r Source #

HasFinitary t => HasFinitary (TagPow' n t) Source # 
Instance details

Defined in Data.Functor.Pow

Methods

withFinitary :: TagPow' n t n0 -> (Finitary n0 => r) -> r Source #

(HasFinitary t1, HasFinitary t2) => HasFinitary (t1 :+: t2) Source # 
Instance details

Defined in Data.GADT.HasFinitary

Methods

withFinitary :: (t1 :+: t2) n -> (Finitary n => r) -> r Source #

toSNat :: HasFinitary tag => tag a -> SNat (Cardinality a) Source #

toInhabitants :: HasFinitary tag => tag a -> [a] Source #