idris-0.9.15: Functional Programming Language with Dependent Types

Safe HaskellNone

Idris.ElabTerm

Synopsis

Documentation

data ElabMode Source

Constructors

ETyDecl 
ELHS 
ERHS 

Instances

build :: IState -> ElabInfo -> ElabMode -> FnOpts -> Name -> PTerm -> ElabD (Term, [(Name, (Int, Maybe Name, Type))], [PDecl])Source

buildTC :: IState -> ElabInfo -> ElabMode -> FnOpts -> Name -> PTerm -> ElabD (Term, [(Name, (Int, Maybe Name, Type))], [PDecl])Source

proofSearch' :: IState -> Bool -> Int -> Bool -> Maybe Name -> Name -> [Name] -> StateT (ElabState [PDecl]) TC ()Source

resolveTC :: Bool -> Int -> Term -> Name -> IState -> ElabD ()Source

resTC' :: (Eq a, Num a) => [TT Name] -> Bool -> a -> Term -> Name -> IState -> StateT (ElabState [PDecl]) TC ()Source

collectDeferred :: Maybe Name -> Term -> State [(Name, (Int, Maybe Name, Type))] TermSource

case_ :: Bool -> Bool -> IState -> Name -> PTerm -> ElabD ()Source

runTac :: Bool -> IState -> Name -> PTactic -> ElabD ()Source

reflm :: String -> NameSource

Prefix a name with the Language.Reflection namespace

reify :: IState -> Term -> ElabD PTacticSource

Reify tactics from their reflected representation

reifyTT :: Term -> ElabD TermSource

Reify terms from their reflected representation

reifyRaw :: Term -> ElabD RawSource

Reify raw terms from their reflected representation

reflCall :: String -> [Raw] -> RawSource

Create a reflected call to a named function/constructor

reflect :: Term -> RawSource

Lift a term into its Language.Reflection.TT representation

reflectQuotePattern :: [Name] -> Term -> ElabD ()Source

Convert a reflected term to a more suitable form for pattern-matching. In particular, the less-interesting bits are elaborated to _ patterns. This happens to NameTypes, universe levels, names that are bound but not used, and the type annotation field of the P constructor.

reflectQuote :: [Name] -> Term -> RawSource

Create a reflected term, but leave refs to the provided name intact

reflectNameQuotePattern :: Name -> ElabD ()Source

Elaborate a name to a pattern. This means that NS and UN will be intact. MNs corresponding to will care about the string but not the number. All others become _.

mkList :: Raw -> [Raw] -> RawSource

reflectEnv :: Env -> RawSource

Reflect the environment of a proof into a List (TTName, Binder TT)

rawBool :: Bool -> RawSource

Reflect an error into the internal datatype of Idris -- TODO

rawPair :: (Raw, Raw) -> (Raw, Raw) -> RawSource

reflErrName :: String -> NameSource

reifyReportPart :: Term -> Either Err ErrorReportPartSource

Attempt to reify a report part from TT to the internal representation. Not in Idris or ElabD monads because it should be usable from either.