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 #