Agda-2.3.2: A dependently typed functional programming language and proof assistant

Safe Haskell | None

Agda.Interaction.MakeCase

Synopsis

- data CaseContext
  - = FunctionDef
  - | ExtendedLambda Int Int
- findClause :: MetaId -> TCM (CaseContext, QName, Clause)
- makeCase :: InteractionId -> Range -> String -> TCM (CaseContext, [Clause])
- makeAbsurdClause :: QName -> SplitClause -> TCM Clause
- makeAbstractClause :: QName -> SplitClause -> TCM Clause
- deBruijnIndex :: Expr -> TCM Nat

# Documentation

data CaseContext

Constructors

FunctionDef |
ExtendedLambda Int Int |

Instances

Eq CaseContext |

findClause :: MetaId -> TCM (CaseContext, QName, Clause)

Find the clause whose right hand side is the given meta BY SEARCHING THE WHOLE SIGNATURE. Returns the original clause, before record patterns have been translated away. Raises an error if there is no matching clause.

Andreas, 2010-09-21: This looks like a SUPER UGLY HACK to me. You are walking through the WHOLE signature to find an information you have thrown away earlier. (shutter with disgust). This code fails for record rhs because they have been eta-expanded, so the MVar is gone.

makeCase :: InteractionId -> Range -> String -> TCM (CaseContext, [Clause])

makeAbsurdClause :: QName -> SplitClause -> TCM Clause

makeAbstractClause :: QName -> SplitClause -> TCM Clause

Make a clause with a question mark as rhs.

deBruijnIndex :: Expr -> TCM Nat