Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data BiGUL :: * -> * -> * where Source
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
Show (CaseBranch s v) Source |
data Pat :: * -> * -> * -> * where Source
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