Stability | experimental |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
Documentation
data ExprF (n :: Type) (v :: Type) (e :: Type) r Source #
Base functor of Expr
.
Instances
Functor (ExprF n v e) Source # | |
Foldable (ExprF n v e) Source # | |
Defined in Language.Egison.Syntax.Pattern.Base fold :: Monoid m => ExprF n v e m -> m # foldMap :: Monoid m => (a -> m) -> ExprF n v e a -> m # foldr :: (a -> b -> b) -> b -> ExprF n v e a -> b # foldr' :: (a -> b -> b) -> b -> ExprF n v e a -> b # foldl :: (b -> a -> b) -> b -> ExprF n v e a -> b # foldl' :: (b -> a -> b) -> b -> ExprF n v e a -> b # foldr1 :: (a -> a -> a) -> ExprF n v e a -> a # foldl1 :: (a -> a -> a) -> ExprF n v e a -> a # toList :: ExprF n v e a -> [a] # null :: ExprF n v e a -> Bool # length :: ExprF n v e a -> Int # elem :: Eq a => a -> ExprF n v e a -> Bool # maximum :: Ord a => ExprF n v e a -> a # minimum :: Ord a => ExprF n v e a -> a # | |
Traversable (ExprF n v e) Source # | |
Defined in Language.Egison.Syntax.Pattern.Base |
Orphan instances
Recursive (Expr n v e) Source # | |
project :: Expr n v e -> Base (Expr n v e) (Expr n v e) # cata :: (Base (Expr n v e) a -> a) -> Expr n v e -> a # para :: (Base (Expr n v e) (Expr n v e, a) -> a) -> Expr n v e -> a # gpara :: (Corecursive (Expr n v e), Comonad w) => (forall b. Base (Expr n v e) (w b) -> w (Base (Expr n v e) b)) -> (Base (Expr n v e) (EnvT (Expr n v e) w a) -> a) -> Expr n v e -> a # prepro :: Corecursive (Expr n v e) => (forall b. Base (Expr n v e) b -> Base (Expr n v e) b) -> (Base (Expr n v e) a -> a) -> Expr n v e -> a # gprepro :: (Corecursive (Expr n v e), Comonad w) => (forall b. Base (Expr n v e) (w b) -> w (Base (Expr n v e) b)) -> (forall c. Base (Expr n v e) c -> Base (Expr n v e) c) -> (Base (Expr n v e) (w a) -> a) -> Expr n v e -> a # | |
Corecursive (Expr n v e) Source # | |
embed :: Base (Expr n v e) (Expr n v e) -> Expr n v e # ana :: (a -> Base (Expr n v e) a) -> a -> Expr n v e # apo :: (a -> Base (Expr n v e) (Either (Expr n v e) a)) -> a -> Expr n v e # postpro :: Recursive (Expr n v e) => (forall b. Base (Expr n v e) b -> Base (Expr n v e) b) -> (a -> Base (Expr n v e) a) -> a -> Expr n v e # gpostpro :: (Recursive (Expr n v e), Monad m) => (forall b. m (Base (Expr n v e) b) -> Base (Expr n v e) (m b)) -> (forall c. Base (Expr n v e) c -> Base (Expr n v e) c) -> (a -> Base (Expr n v e) (m a)) -> a -> Expr n v e # |