idris-0.99: Functional Programming Language with Dependent Types

CopyrightLicense : BSD3
MaintainerThe Idris Community.
Safe HaskellNone
LanguageHaskell98

Idris.Elab.Clause

Description

 

Synopsis

Documentation

elabClauses :: ElabInfo -> FC -> FnOpts -> Name -> [PClause] -> Idris () Source #

Elaborate a collection of left-hand and right-hand pairs - that is, a top-level definition.

elabPE :: ElabInfo -> FC -> Name -> Term -> Idris [(Term, Term)] Source #

Find static applications in a term and partially evaluate them. Return any new transformation rules

checkPossible :: ElabInfo -> FC -> Bool -> Name -> PTerm -> Idris (Maybe PTerm) Source #

Checks if the clause is a possible left hand side. NOTE: A lot of this is repeated for reflected definitions in Idris.Elab.Term One day, these should be merged, but until then remember that if you edit this you might need to edit the other version...

elabClause :: ElabInfo -> FnOpts -> (Int, PClause) -> Idris (Either Term (Term, Term), PTerm) Source #

Return the elaborated LHS/RHS, and the original LHS with implicits added

mapRHS :: (PTerm -> PTerm) -> PClause -> PClause Source #

Apply a transformation to all RHSes and nested RHSs