| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Functor.Polynomial.Finitary.Tag
Synopsis
- data FinPolyTag (p :: P) n where
- FinPolyEnd :: FinPolyTag 'U Void
- FinPolyStop :: forall (p1 :: P). FinPolyTag ('S p1) Void
- FinPolyGo :: forall (p1 :: P) n. FinPolyTag p1 n -> FinPolyTag ('S p1) n
- FinPolyCons :: forall (p1 :: P) n1. FinPolyTag p1 n1 -> FinPolyTag ('T p1) (Either () n1)
Documentation
data FinPolyTag (p :: P) n where Source #
Tag GADT for .Ev p
FinPolyTag p n witnesses that n is the position type of one summand of .Ev p
This gives an instance of Ev pPolynomial from the polynomial-functor package,
with .Tag (Ev p) = FinPolyTag p
Constructors
| FinPolyEnd :: FinPolyTag 'U Void | |
| FinPolyStop :: forall (p1 :: P). FinPolyTag ('S p1) Void | |
| FinPolyGo :: forall (p1 :: P) n. FinPolyTag p1 n -> FinPolyTag ('S p1) n | |
| FinPolyCons :: forall (p1 :: P) n1. FinPolyTag p1 n1 -> FinPolyTag ('T p1) (Either () n1) |
Instances
| GCompare (FinPolyTag p :: Type -> Type) Source # | |
Defined in Data.Functor.Polynomial.Finitary.Tag Methods gcompare :: FinPolyTag p a -> FinPolyTag p b -> GOrdering a b # | |
| GEq (FinPolyTag p :: Type -> Type) Source # | |
Defined in Data.Functor.Polynomial.Finitary.Tag Methods geq :: FinPolyTag p a -> FinPolyTag p b -> Maybe (a :~: b) # | |
| HasFinitary (FinPolyTag p) Source # | |
Defined in Data.Functor.Polynomial.Finitary.Tag Methods withFinitary :: FinPolyTag p n -> (Finitary n => r) -> r | |