| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Polynomial.Functor
Synopsis
- data Ev (p :: Poly) x where
- data Ev₀ (p :: Poly₀) x where
- class Functor f => PolynomialFunctor (f :: Type -> Type) where
- toSum :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> Ev (p + q) x -> (Ev p :+: Ev q) x
- fromSum :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> (Ev p :+: Ev q) x -> Ev (p + q) x
- toProduct :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> Ev (p * q) x -> (Ev p :*: Ev q) x
- fromProduct :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> (Ev p :*: Ev q) x -> Ev (p * q) x
- toComp :: forall (p :: Poly) (q :: Poly) x. SPoly p -> SPoly q -> Ev (p << q) x -> Ev p (Ev q x)
- fromComp :: forall (p :: Poly) (q :: Poly) x. SPoly p -> SPoly q -> Ev p (Ev q x) -> Ev (p << q) x
Documentation
data Ev (p :: Poly) x where Source #
Constructors
| End :: forall x. Ev 'U x | |
| Stop :: forall (p1 :: Poly) x. Ev ('S p1) x | |
| Go :: forall (p1 :: Poly) x. Ev p1 x -> Ev ('S p1) x | |
| (:::) :: forall x (p1 :: Poly). x -> Ev p1 x -> Ev ('T p1) x infixr 7 |
Instances
| Foldable (Ev p) Source # | |
Defined in Data.Polynomial.Functor Methods fold :: Monoid m => Ev p m -> m # foldMap :: Monoid m => (a -> m) -> Ev p a -> m # foldMap' :: Monoid m => (a -> m) -> Ev p a -> m # foldr :: (a -> b -> b) -> b -> Ev p a -> b # foldr' :: (a -> b -> b) -> b -> Ev p a -> b # foldl :: (b -> a -> b) -> b -> Ev p a -> b # foldl' :: (b -> a -> b) -> b -> Ev p a -> b # foldr1 :: (a -> a -> a) -> Ev p a -> a # foldl1 :: (a -> a -> a) -> Ev p a -> a # elem :: Eq a => a -> Ev p a -> Bool # maximum :: Ord a => Ev p a -> a # | |
| Traversable (Ev p) Source # | |
| Functor (Ev p) Source # | |
| SingI p => PolynomialFunctor (Ev p) Source # | |
| Show x => Show (Ev p x) Source # | |
| Eq x => Eq (Ev p x) Source # | |
| Ord x => Ord (Ev p x) Source # | |
| type PolyRep (Ev p) Source # | |
Defined in Data.Polynomial.Functor | |
class Functor f => PolynomialFunctor (f :: Type -> Type) where Source #
Non-zero polynomial functor
Instances
toSum :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> Ev (p + q) x -> (Ev p :+: Ev q) x Source #
fromSum :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> (Ev p :+: Ev q) x -> Ev (p + q) x Source #
toProduct :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> Ev (p * q) x -> (Ev p :*: Ev q) x Source #
fromProduct :: forall (p :: Poly) (q :: Poly) x. Sing p -> Sing q -> (Ev p :*: Ev q) x -> Ev (p * q) x Source #