| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Agda.TypeChecking.CompiledClause
Contents
Description
Case trees.
After coverage checking, pattern matching is translated to case trees, i.e., a tree of successive case splits on one variable at a time.
- data WithArity c = WithArity {}
- data Case c = Branches {
- conBranches :: Map QName (WithArity c)
- litBranches :: Map Literal c
- catchAllBranch :: Maybe c
- data CompiledClauses
- emptyBranches :: Case CompiledClauses
- litCase :: Literal -> c -> Case c
- conCase :: QName -> WithArity c -> Case c
- catchAll :: c -> Case c
- prettyMap :: (Show k, Pretty v) => Map k v -> [Doc]
Documentation
Instances
| Functor WithArity | |
| Foldable WithArity | |
| Traversable WithArity | |
| Monoid c => Monoid (WithArity c) | |
| Pretty a => Pretty (WithArity a) | |
| KillRange c => KillRange (WithArity c) | |
| Abstract a => Abstract (WithArity a) | |
| Apply a => Apply (WithArity a) | |
| EmbPrj a => EmbPrj (WithArity a) | |
| InstantiateFull a => InstantiateFull (WithArity a) | |
| Typeable (* -> *) WithArity |
Branches in a case tree.
Constructors
| Branches | |
Fields
| |
Instances
| Functor Case | |
| Foldable Case | |
| Traversable Case | |
| Pretty a => Show (Case a) | |
| Monoid m => Monoid (Case m) | |
| Pretty a => Pretty (Case a) | |
| KillRange c => KillRange (Case c) | |
| Abstract a => Abstract (Case a) | |
| Apply a => Apply (Case a) | |
| EmbPrj a => EmbPrj (Case a) | |
| InstantiateFull a => InstantiateFull (Case a) | |
| Typeable (* -> *) Case |
data CompiledClauses Source
Case tree with bodies.
Constructors
| Case Int (Case CompiledClauses) |
|
| Done [Arg ArgName] Term |
|
| Fail | Absurd case. |
Instances
| Show CompiledClauses | |
| Pretty CompiledClauses | |
| KillRange CompiledClauses | |
| Abstract CompiledClauses | |
| Apply CompiledClauses | |
| EmbPrj CompiledClauses | |
| DropArgs CompiledClauses | To drop the first |
| InstantiateFull CompiledClauses | |
| Typeable * CompiledClauses |