Idris2Doc : Language.Reflection.TTImp

Language.Reflection.TTImp(source)

Reexports

importpublic Data.List1
importpublic Language.Reflection.TT

Definitions

dataBindMode : Type
Totality: total
Visibility: public export
Constructors:
PI : Count->BindMode
PATTERN : BindMode
COVERAGE : BindMode
NONE : BindMode

Hint: 
EqBindMode
dataUseSide : Type
Totality: total
Visibility: public export
Constructors:
UseLeft : UseSide
UseRight : UseSide

Hint: 
EqUseSide
dataDotReason : Type
Totality: total
Visibility: public export
Constructors:
NonLinearVar : DotReason
VarApplied : DotReason
NotConstructor : DotReason
ErasedArg : DotReason
UserDotted : DotReason
UnknownDot : DotReason
UnderAppliedCon : DotReason

Hint: 
EqDotReason
dataTTImp : Type
  The elaborator representation of an Idris term
All of these take a file context `FC` as their first argument

Totality: total
Visibility: public export
Constructors:
IVar : FC->Name->TTImp
  A variable reference, by name
IPi : FC->Count->PiInfoTTImp->MaybeName->TTImp->TTImp->TTImp
  A function type, of the form `(mult binder : argTy) -> retTy`, with implicitness determined by `info`
ILam : FC->Count->PiInfoTTImp->MaybeName->TTImp->TTImp->TTImp
  A lambda abstraction, of the form`\(mult binder : argTy) => retTy`, with implicitness determined by `info`
ILet : FC->FC->Count->Name->TTImp->TTImp->TTImp->TTImp
  A let binding, of the form `let mult var : nTy = nVal in scope`
ICase : FC->ListFnOpt->TTImp->TTImp->ListClause->TTImp
  A case expression `case val : ty of clauses`
ILocal : FC->ListDecl->TTImp->TTImp
  A list of full declarations local to a term
IUpdate : FC->ListIFieldUpdate->TTImp->TTImp
  An update to a record value, `{ updates } val`
IApp : FC->TTImp->TTImp->TTImp
  A function application, `f x`
INamedApp : FC->TTImp->Name->TTImp->TTImp
  A named function application (for named parameters), e.g, `f {arg=x}`
IAutoApp : FC->TTImp->TTImp->TTImp
  An explicitly inserted auto implicit, `f @{x}`
IWithApp : FC->TTImp->TTImp->TTImp
  A `with` application `f | e`
ISearch : FC->Nat->TTImp
  `%search`
IAlternative : FC->AltType->ListTTImp->TTImp
  A list of potential desugarings of an ambiguous expression
The success conditions of typechecking is determined by AltType
IRewrite : FC->TTImp->TTImp->TTImp
  A rewrite expression, `rewrite eq in exp`
IBindHere : FC->BindMode->TTImp->TTImp
  Any implicit bindings in the scope should be bound here, using
the given binder
IBindVar : FC->Name->TTImp
  A name which should be implicitly bound
IAs : FC->FC->UseSide->Name->TTImp->TTImp
  An 'as' pattern, valid on the LHS of a clause only, `group@pat`
IMustUnify : FC->DotReason->TTImp->TTImp
  A 'dot' pattern, i.e. one which must be equal to the given value
by unification, `.(e)`
IDelayed : FC->LazyReason->TTImp->TTImp
  The delay type, `Delay t`
IDelay : FC->TTImp->TTImp
  The constructor of `Delay`, `delay t`
IForce : FC->TTImp->TTImp
  `force`
IQuote : FC->TTImp->TTImp
  Quasi-quotation of expression (`( ... ))
IQuoteName : FC->Name->TTImp
  Quasi-quotation of a name (`{ ... })
IQuoteDecl : FC->ListDecl->TTImp
  Quasi-quotation of a list of declarations (`[ ... ])
IUnquote : FC->TTImp->TTImp
  Unquote of an expression (~e)
IPrimVal : FC->Constant->TTImp
  A primitive value, such as an integer or string constant.
Also any primitive *type*, apart from `Type` itself
IType : FC->TTImp
  The type `Type`
IHole : FC->String->TTImp
  A named hole
Implicit : FC->Bool->TTImp
  An implicit value, solved by unification, but which will also be
bound (either as a pattern variable or a type variable) if unsolved
at the end of elaborator.
Note that `Implicit False` is `?`, while `Implicit True` is `_`
IWithUnambigNames : FC->List (FC, Name) ->TTImp->TTImp
  An explicit disambiguation directive `with names exp`

Hints:
EqTTImp=>EqClause
EqTTImp=>EqIFieldUpdate
EqTTImp=>EqAltType
EqTTImp=>EqFnOpt
EqTTImp=>EqITy
EqTTImp=>EqData
EqTTImp=>EqIField
EqTTImp=>EqRecord
EqTTImp=>EqIClaimData
EqTTImp=>EqDecl
EqTTImp
ShowTTImp
dataIFieldUpdate : Type
  A record field update

Totality: total
Visibility: public export
Constructors:
ISetField : ListString->TTImp->IFieldUpdate
  `path := val`
ISetFieldApp : ListString->TTImp->IFieldUpdate
  `path $= val`

Hints:
EqTTImp=>EqIFieldUpdate
ShowIFieldUpdate
dataAltType : Type
Totality: total
Visibility: public export
Constructors:
FirstSuccess : AltType
Unique : AltType
UniqueDefault : TTImp->AltType

Hint: 
EqTTImp=>EqAltType
dataFnOpt : Type
Totality: total
Visibility: public export
Constructors:
Inline : FnOpt
NoInline : FnOpt
Deprecate : FnOpt
TCInline : FnOpt
Hint : Bool->FnOpt
  Flag means the hint is a direct hint, not a function which might
find the result (e.g. chasing parent interface dictionaries)
GlobalHint : Bool->FnOpt
  A hint that is searched if direct hints search failed.
`%globalhint` if the argument is `True`, `%defaulthint` if `False`.
ExternFn : FnOpt
ForeignFn : ListTTImp->FnOpt
  Defined externally, takes a list of calling conventions
ForeignExport : ListTTImp->FnOpt
  Mark for export to a foreign language, takes a list of calling conventions
Invertible : FnOpt
  assume safe to cancel arguments in unification
Totality : TotalReq->FnOpt
Macro : FnOpt
  `%macro`
SpecArgs : ListName->FnOpt

Hint: 
EqTTImp=>EqFnOpt
dataITy : Type
  A name with an associated type

Totality: total
Visibility: public export
Constructor: 
MkTy : FC->WithFCName->TTImp->ITy

Hints:
EqTTImp=>EqITy
ShowITy
dataDataOpt : Type
Totality: total
Visibility: public export
Constructors:
SearchBy : List1Name->DataOpt
  Determining arguments
NoHints : DataOpt
  Don't generate search hints for constructors
UniqueSearch : DataOpt
  Auto implicit search must check result is unique
External : DataOpt
  Implemented externally
NoNewtype : DataOpt
  Don't apply newtype optimization

Hint: 
EqDataOpt
dataData : Type
Totality: total
Visibility: public export
Constructors:
MkData : FC->Name->MaybeTTImp->ListDataOpt->ListITy->Data
MkLater : FC->Name->TTImp->Data

Hints:
EqTTImp=>EqData
ShowData
dataIField : Type
Totality: total
Visibility: public export
Constructor: 
MkIField : FC->Count->PiInfoTTImp->Name->TTImp->IField

Hints:
EqTTImp=>EqIField
ShowIField
dataRecord : Type
Totality: total
Visibility: public export
Constructor: 
MkRecord : FC->Name->List (Name, (Count, (PiInfoTTImp, TTImp))) ->ListDataOpt->Name->ListIField->Record

Hints:
EqTTImp=>EqRecord
ShowRecord
dataWithFlag : Type
Totality: total
Visibility: public export
Constructor: 
Syntactic : WithFlag

Hint: 
EqWithFlag
dataClause : Type
  A clause in a function definition

Totality: total
Visibility: public export
Constructors:
PatClause : FC->TTImp->TTImp->Clause
  A simple pattern
WithClause : FC->TTImp->Count->TTImp->Maybe (Count, Name) ->ListWithFlag->ListClause->Clause
  A pattern with views
ImpossibleClause : FC->TTImp->Clause
  An impossible pattern

Hint: 
EqTTImp=>EqClause
dataWithDefault : (a : Type) ->a->Type
Totality: total
Visibility: public export
Constructors:
DefaultedValue : WithDefaultadef
SpecifiedValue : a->WithDefaultadef

Hints:
Eqa=>Eq (WithDefaultadef)
Orda=>Ord (WithDefaultadef)
Showa=>Show (WithDefaultadef)
specified : a->WithDefaultadef
Totality: total
Visibility: export
defaulted : WithDefaultadef
Totality: total
Visibility: export
collapseDefault : WithDefaultadef->a
Totality: total
Visibility: export
onWithDefault : Lazy b-> (a->b) ->WithDefaultadef->b
Totality: total
Visibility: export
dataIClaimData : Type
Totality: total
Visibility: public export
Constructor: 
MkIClaimData : Count->Visibility->ListFnOpt->ITy->IClaimData

Hints:
EqTTImp=>EqIClaimData
ShowIClaimData
dataDecl : Type
  A top-level declaration

Totality: total
Visibility: public export
Constructors:
IClaim : WithFCIClaimData->Decl
  A type ascription, `a : b`.
Called a claim because of Curry Howard, the statement `x : p` is equivalent to `x` is a proof of `p`.
IData : FC->WithDefaultVisibilityPrivate->MaybeTotalReq->Data->Decl
  A data type declaration
IDef : FC->Name->ListClause->Decl
  A function body definition
IParameters : FC->List (Name, (Count, (PiInfoTTImp, TTImp))) ->ListDecl->Decl
  A parameters block, e.g. `parameters {0 m : _} {auto _ : Monad m} (level : Nat)
IRecord : FC->MaybeString->WithDefaultVisibilityPrivate->MaybeTotalReq->Record->Decl
  A record declaration
@ ns Nested namespace
INamespace : FC->Namespace->ListDecl->Decl
  A namespace declaration, `namespace ns where decls`
ITransform : FC->Name->TTImp->TTImp->Decl
  A transformation rule declaration
IRunElabDecl : FC->TTImp->Decl
  A top-level elaborator script run, `%runElab`
ILog : Maybe (ListString, Nat) ->Decl
  A directive for enabling compile-time logging, `%logging "<topic>" <level>`
IBuiltin : FC->BuiltinType->Name->Decl
  A builtin declaration, `%builtin type name`

Hints:
EqTTImp=>EqDecl
ShowDecl
fromTTImp : TTImp->TTImp
Totality: total
Visibility: public export
fromDecls : ListDecl->ListDecl
Totality: total
Visibility: public export
getFC : TTImp->FC
Totality: total
Visibility: public export
mapTopmostFC : (FC->FC) ->TTImp->TTImp
Totality: total
Visibility: public export
dataMode : Type
Totality: total
Visibility: public export
Constructors:
InDecl : Mode
InCase : Mode
showClause : Mode->Clause->String
Totality: total
Visibility: public export
dataArgument : Type->Type
Totality: total
Visibility: public export
Constructors:
Arg : FC->a->Argumenta
NamedArg : FC->Name->a->Argumenta
AutoArg : FC->a->Argumenta

Hints:
FoldableArgument
FunctorArgument
TraversableArgument
isExplicit : Argumenta->Maybe (FC, a)
Totality: total
Visibility: public export
fromPiInfo : FC->PiInfot->MaybeName->a->Maybe (Argumenta)
Totality: total
Visibility: public export
iApp : TTImp->ArgumentTTImp->TTImp
Totality: total
Visibility: public export
unArg : Argumenta->a
Totality: total
Visibility: public export
apply : TTImp->List (ArgumentTTImp) ->TTImp
  We often apply multiple arguments, this makes things simpler

Totality: total
Visibility: public export
dataIsAppView : (FC, Name) ->SnocList (ArgumentTTImp) ->TTImp->Type
Totality: total
Visibility: public export
Constructors:
AVVar : IsAppView (fc, t) [<] (IVarfct)
AVApp : IsAppViewxtsf->IsAppViewx (ts:<Argfct) (IAppfcft)
AVNamedApp : IsAppViewxtsf->IsAppViewx (ts:<NamedArgfcnt) (INamedAppfcfnt)
AVAutoApp : IsAppViewxtsf->IsAppViewx (ts:<AutoArgfct) (IAutoAppfcfa)
recordAppView : TTImp->Type
Totality: total
Visibility: public export
Constructor: 
MkAppView : (head : (FC, Name)) -> (args : SnocList (ArgumentTTImp)) -> (0_ : IsAppViewheadargst) ->AppViewt

Projections:
.args : AppViewt->SnocList (ArgumentTTImp)
.head : AppViewt-> (FC, Name)
0.isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
.head : AppViewt-> (FC, Name)
Totality: total
Visibility: public export
head : AppViewt-> (FC, Name)
Totality: total
Visibility: public export
.args : AppViewt->SnocList (ArgumentTTImp)
Totality: total
Visibility: public export
args : AppViewt->SnocList (ArgumentTTImp)
Totality: total
Visibility: public export
0.isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
Totality: total
Visibility: public export
0isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
Totality: total
Visibility: public export
appView : (t : TTImp) ->Maybe (AppViewt)
Totality: total
Visibility: public export
mapTTImp : (TTImp->TTImp) ->TTImp->TTImp
Totality: total
Visibility: public export
mapPiInfo : (TTImp->TTImp) ->PiInfoTTImp->PiInfoTTImp
Totality: total
Visibility: public export
mapClause : (TTImp->TTImp) ->Clause->Clause
Totality: total
Visibility: public export
mapITy : (TTImp->TTImp) ->ITy->ITy
Totality: total
Visibility: public export
mapFnOpt : (TTImp->TTImp) ->FnOpt->FnOpt
Totality: total
Visibility: public export
mapData : (TTImp->TTImp) ->Data->Data
Totality: total
Visibility: public export
mapIField : (TTImp->TTImp) ->IField->IField
Totality: total
Visibility: public export
mapRecord : (TTImp->TTImp) ->Record->Record
Totality: total
Visibility: public export
mapDecl : (TTImp->TTImp) ->Decl->Decl
Totality: total
Visibility: public export
mapIFieldUpdate : (TTImp->TTImp) ->IFieldUpdate->IFieldUpdate
Totality: total
Visibility: public export
mapAltType : (TTImp->TTImp) ->AltType->AltType
Totality: total
Visibility: public export
mapATTImp' : Applicativem=> (TTImp->mTTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMPiInfo : Applicativem=> (TTImp->mTTImp->mTTImp) ->PiInfoTTImp->m (PiInfoTTImp)
Totality: total
Visibility: public export
mapMClause : Applicativem=> (TTImp->mTTImp->mTTImp) ->Clause->mClause
Totality: total
Visibility: public export
mapMITy : Applicativem=> (TTImp->mTTImp->mTTImp) ->ITy->mITy
Totality: total
Visibility: public export
mapMFnOpt : Applicativem=> (TTImp->mTTImp->mTTImp) ->FnOpt->mFnOpt
Totality: total
Visibility: public export
mapMData : Applicativem=> (TTImp->mTTImp->mTTImp) ->Data->mData
Totality: total
Visibility: public export
mapMIField : Applicativem=> (TTImp->mTTImp->mTTImp) ->IField->mIField
Totality: total
Visibility: public export
mapMRecord : Applicativem=> (TTImp->mTTImp->mTTImp) ->Record->mRecord
Totality: total
Visibility: public export
mapMDecl : Applicativem=> (TTImp->mTTImp->mTTImp) ->Decl->mDecl
Totality: total
Visibility: public export
mapMIFieldUpdate : Applicativem=> (TTImp->mTTImp->mTTImp) ->IFieldUpdate->mIFieldUpdate
Totality: total
Visibility: public export
mapMAltType : Applicativem=> (TTImp->mTTImp->mTTImp) ->AltType->mAltType
Totality: total
Visibility: public export
mapATTImp : Monadm=> (mTTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMTTImp' : Monadm=> (TTImp->TTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMTTImp : Monadm=> (TTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export