Safe Haskell | None |
---|---|
Language | Haskell2010 |
- class (Functor (Sig alg), Foldable (Sig alg), Typeable alg) => FAlgebra alg where
- type ParentClasses alg :: [Type -> Constraint]
- data Sig alg a
- data Free f a where
- type AST alg a = Free (Sig alg) a
- runAST :: (FAlgebra alg, alg a) => AST alg a -> a
- class (FAlgebra alg1, FAlgebra alg2) => View alg1 alg2 where
- data Var
- mkExprVar :: String -> AST alg Var
- var1 :: AST alg Var
- var2 :: AST alg Var
- var3 :: AST alg Var
- mkFAlgebra :: Name -> Q [Dec]
FAlgebra
class (Functor (Sig alg), Foldable (Sig alg), Typeable alg) => FAlgebra alg where Source #
type ParentClasses alg :: [Type -> Constraint] Source #
Functor f => Functor (Free f) Source # | |
(Functor f, Foldable f) => Foldable (Free f) Source # | |
(Eq a, Eq (f (Free f a))) => Eq (Free f a) Source # | |
(View Floating alg', View Fractional alg', View Num alg') => Floating (Free (Sig alg') a) Source # | |
(View Fractional alg', View Num alg') => Fractional (Free (Sig alg') a) Source # | |
View Num alg' => Num (Free (Sig alg') a) Source # | |
(Eq a, Eq (Sig alg' (Free (Sig alg') a)), View Ord alg', View Eq alg') => Ord (Free (Sig alg') a) Source # | |
(Show a, Show (f (Free f a))) => Show (Free f a) Source # | |