Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Functor.Polynomial
Documentation
data Poly (tag :: Type -> Type) x where Source #
Uniformly represented polynomial functor.
Given a
instance, HasFinitary
tagPoly tag
is a polynomial functor.
When tag
is the inverse images of α :: U -> Type
, Poly
is isomorphic to:
Poly tag x = ∑{n :: Type} (tag n, x^n) = ∑{n :: Type} ∑{u :: U, α(u) == n} x^n = ∑{u :: U} x^(α(u))
Instances
HasFinitary tag => Foldable (Poly tag) Source # | |
Defined in Data.Functor.Polynomial Methods fold :: Monoid m => Poly tag m -> m # foldMap :: Monoid m => (a -> m) -> Poly tag a -> m # foldMap' :: Monoid m => (a -> m) -> Poly tag a -> m # foldr :: (a -> b -> b) -> b -> Poly tag a -> b # foldr' :: (a -> b -> b) -> b -> Poly tag a -> b # foldl :: (b -> a -> b) -> b -> Poly tag a -> b # foldl' :: (b -> a -> b) -> b -> Poly tag a -> b # foldr1 :: (a -> a -> a) -> Poly tag a -> a # foldl1 :: (a -> a -> a) -> Poly tag a -> a # elem :: Eq a => a -> Poly tag a -> Bool # maximum :: Ord a => Poly tag a -> a # minimum :: Ord a => Poly tag a -> a # | |
(GEq tag, HasFinitary tag) => Eq1 (Poly tag) Source # | |
(GCompare tag, HasFinitary tag) => Ord1 (Poly tag) Source # |
|
Defined in Data.Functor.Polynomial | |
HasFinitary tag => Traversable (Poly tag) Source # | |
Functor (Poly tag) Source # | |
Polynomial (Poly tag) Source # | fromPoly = toPoly = id |
(Eq x, GEq tag, HasFinitary tag) => Eq (Poly tag x) Source # | |
(Ord x, GCompare tag, HasFinitary tag) => Ord (Poly tag x) Source # |
|
Defined in Data.Functor.Polynomial | |
type Tag (Poly tag) Source # | |
Defined in Data.Functor.Polynomial.Class |