| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Generics.BiGUL.AST
Documentation
data BiGUL :: * -> * -> * where Source
Constructors
| Fail :: String -> BiGUL s v | |
| Skip :: BiGUL s () | |
| Replace :: BiGUL s s | |
| Prod :: BiGUL s v -> BiGUL s' v' -> BiGUL (s, s') (v, v') infixr 1 | |
| RearrS :: Pat s env con -> Expr env s' -> BiGUL s' v -> BiGUL s v | |
| RearrV :: Pat v env con -> Expr env v' -> BiGUL s v' -> BiGUL s v | |
| Dep :: Eq v' => BiGUL s v -> (s -> v -> v') -> BiGUL s (v, v') | |
| Case :: [(s -> v -> Bool, CaseBranch s v)] -> BiGUL s v | |
| Compose :: BiGUL s u -> BiGUL u v -> BiGUL s v |
data CaseBranch s v Source
Instances
| Show (CaseBranch s v) Source |
data Pat :: * -> * -> * -> * where Source
Constructors
| PVar :: Eq a => Pat a (Var a) (Maybe a) | |
| PVar' :: Pat a (Var a) (Maybe a) | |
| PConst :: Eq a => a -> Pat a () () | |
| PProd :: Pat a a' a'' -> Pat b b' b'' -> Pat (a, b) (a', b') (a'', b'') | |
| PLeft :: Pat a a' a'' -> Pat (Either a b) a' a'' | |
| PRight :: Pat b b' b'' -> Pat (Either a b) b' b'' | |
| PIn :: InOut a => Pat (F a) b c -> Pat a b c |
deconstruct :: Pat a env con -> a -> Either (PatExprDirError a) env Source
emptyContainer :: Pat v env con -> con Source
fromContainerS :: Pat s env con -> env -> con -> env Source
fromContainerV :: Pat v env con -> con -> Either (PatExprDirError v) env Source