import public Language.Reflection.TT
data BindMode : Type
Eq BindMode
data UseSide : Type
Eq UseSide
data DotReason : Type
NonLinearVar : DotReason
VarApplied : DotReason
NotConstructor : DotReason
ErasedArg : DotReason
UserDotted : DotReason
UnknownDot : DotReason
UnderAppliedCon : DotReason
Eq DotReason
data TTImp : Type
IVar : FC -> Name -> TTImp
IPi : FC -> Count -> PiInfo TTImp -> Maybe Name -> TTImp -> TTImp -> TTImp
ILam : FC -> Count -> PiInfo TTImp -> Maybe Name -> TTImp -> TTImp -> TTImp
ILet : FC -> FC -> Count -> Name -> TTImp -> TTImp -> TTImp -> TTImp
ICase : FC -> List FnOpt -> TTImp -> TTImp -> List Clause -> TTImp
ILocal : FC -> List Decl -> TTImp -> TTImp
IUpdate : FC -> List IFieldUpdate -> TTImp -> TTImp
IApp : FC -> TTImp -> TTImp -> TTImp
INamedApp : FC -> TTImp -> Name -> TTImp -> TTImp
IAutoApp : FC -> TTImp -> TTImp -> TTImp
IWithApp : FC -> TTImp -> TTImp -> TTImp
ISearch : FC -> Nat -> TTImp
IAlternative : FC -> AltType -> List TTImp -> TTImp
IRewrite : FC -> TTImp -> TTImp -> TTImp
IBindHere : FC -> BindMode -> TTImp -> TTImp
IBindVar : FC -> String -> TTImp
IAs : FC -> FC -> UseSide -> Name -> TTImp -> TTImp
IMustUnify : FC -> DotReason -> TTImp -> TTImp
IDelayed : FC -> LazyReason -> TTImp -> TTImp
IDelay : FC -> TTImp -> TTImp
IForce : FC -> TTImp -> TTImp
IQuote : FC -> TTImp -> TTImp
IQuoteName : FC -> Name -> TTImp
IQuoteDecl : FC -> List Decl -> TTImp
IUnquote : FC -> TTImp -> TTImp
IPrimVal : FC -> Constant -> TTImp
IType : FC -> TTImp
IHole : FC -> String -> TTImp
Implicit : FC -> Bool -> TTImp
IWithUnambigNames : FC -> List (FC, Name) -> TTImp -> TTImp
data IFieldUpdate : Type
ISetField : List String -> TTImp -> IFieldUpdate
ISetFieldApp : List String -> TTImp -> IFieldUpdate
Eq TTImp => Eq IFieldUpdate
Show IFieldUpdate
data AltType : Type
FirstSuccess : AltType
Unique : AltType
UniqueDefault : TTImp -> AltType
data FnOpt : Type
Inline : FnOpt
NoInline : FnOpt
Deprecate : FnOpt
TCInline : FnOpt
Hint : Bool -> FnOpt
GlobalHint : Bool -> FnOpt
ExternFn : FnOpt
ForeignFn : List TTImp -> FnOpt
ForeignExport : List TTImp -> FnOpt
Invertible : FnOpt
Totality : TotalReq -> FnOpt
Macro : FnOpt
SpecArgs : List Name -> FnOpt
data ITy : Type
data DataOpt : Type
SearchBy : List Name -> DataOpt
NoHints : DataOpt
UniqueSearch : DataOpt
External : DataOpt
NoNewtype : DataOpt
Eq DataOpt
data Data : Type
MkData : FC -> Name -> Maybe TTImp -> List DataOpt -> List ITy -> Data
MkLater : FC -> Name -> TTImp -> Data
data IField : Type
data Record : Type
MkRecord : FC -> Name -> List (Name, (Count, (PiInfo TTImp, TTImp))) -> List DataOpt -> Name -> List IField -> Record
data WithFlag : Type
Eq WithFlag
data Clause : Type
PatClause : FC -> TTImp -> TTImp -> Clause
WithClause : FC -> TTImp -> Count -> TTImp -> Maybe Name -> List WithFlag -> List Clause -> Clause
ImpossibleClause : FC -> TTImp -> Clause
data WithDefault : (a : Type) -> a -> Type
DefaultedValue : WithDefault a def
SpecifiedValue : a -> WithDefault a def
Eq a => Eq (WithDefault a def)
Ord a => Ord (WithDefault a def)
Show a => Show (WithDefault a def)
specified : a -> WithDefault a def
defaulted : WithDefault a def
collapseDefault : WithDefault a def -> a
onWithDefault : Lazy b -> (a -> b) -> WithDefault a def -> b
data Decl : Type
IClaim : FC -> Count -> Visibility -> List FnOpt -> ITy -> Decl
IData : FC -> WithDefault Visibility Private -> Maybe TotalReq -> Data -> Decl
IDef : FC -> Name -> List Clause -> Decl
IParameters : FC -> List (Name, (Count, (PiInfo TTImp, TTImp))) -> List Decl -> Decl
IRecord : FC -> Maybe String -> WithDefault Visibility Private -> Maybe TotalReq -> Record -> Decl
INamespace : FC -> Namespace -> List Decl -> Decl
ITransform : FC -> Name -> TTImp -> TTImp -> Decl
IRunElabDecl : FC -> TTImp -> Decl
ILog : Maybe (List String, Nat) -> Decl
IBuiltin : FC -> BuiltinType -> Name -> Decl
getFC : TTImp -> FC
mapTopmostFC : (FC -> FC) -> TTImp -> TTImp
data Mode : Type
showClause : Mode -> Clause -> String
data Argument : Type -> Type
Arg : FC -> a -> Argument a
NamedArg : FC -> Name -> a -> Argument a
AutoArg : FC -> a -> Argument a
Functor Argument
isExplicit : Argument a -> Maybe (FC, a)
fromPiInfo : FC -> PiInfo t -> Maybe Name -> a -> Maybe (Argument a)
iApp : TTImp -> Argument TTImp -> TTImp
unArg : Argument a -> a
apply : TTImp -> List (Argument TTImp) -> TTImp
We often apply multiple arguments, this makes things simpler
data IsAppView : (FC, Name) -> SnocList (Argument TTImp) -> TTImp -> Type
record AppView : TTImp -> Type
MkAppView : (head : (FC, Name)) -> (args : SnocList (Argument TTImp)) -> (0 _ : IsAppView head args t) -> AppView t
.head : AppView t -> (FC, Name)
head : AppView t -> (FC, Name)
.args : AppView t -> SnocList (Argument TTImp)
args : AppView t -> SnocList (Argument TTImp)
0 .isAppView : ({rec:0} : AppView t) -> IsAppView (head {rec:0}) (args {rec:0}) t
0 isAppView : ({rec:0} : AppView t) -> IsAppView (head {rec:0}) (args {rec:0}) t
appView : (t : TTImp) -> Maybe (AppView t)
mapTTImp : (TTImp -> TTImp) -> TTImp -> TTImp
mapPiInfo : (TTImp -> TTImp) -> PiInfo TTImp -> PiInfo TTImp
mapClause : (TTImp -> TTImp) -> Clause -> Clause
mapITy : (TTImp -> TTImp) -> ITy -> ITy
mapFnOpt : (TTImp -> TTImp) -> FnOpt -> FnOpt
mapData : (TTImp -> TTImp) -> Data -> Data
mapIField : (TTImp -> TTImp) -> IField -> IField
mapRecord : (TTImp -> TTImp) -> Record -> Record
mapDecl : (TTImp -> TTImp) -> Decl -> Decl
mapIFieldUpdate : (TTImp -> TTImp) -> IFieldUpdate -> IFieldUpdate
mapAltType : (TTImp -> TTImp) -> AltType -> AltType
mapATTImp : Applicative m => (m TTImp -> m TTImp) -> TTImp -> m TTImp
mapMPiInfo : Applicative m => (m TTImp -> m TTImp) -> PiInfo TTImp -> m (PiInfo TTImp)
mapMClause : Applicative m => (m TTImp -> m TTImp) -> Clause -> m Clause
mapMITy : Applicative m => (m TTImp -> m TTImp) -> ITy -> m ITy
mapMFnOpt : Applicative m => (m TTImp -> m TTImp) -> FnOpt -> m FnOpt
mapMData : Applicative m => (m TTImp -> m TTImp) -> Data -> m Data
mapMIField : Applicative m => (m TTImp -> m TTImp) -> IField -> m IField
mapMRecord : Applicative m => (m TTImp -> m TTImp) -> Record -> m Record
mapMDecl : Applicative m => (m TTImp -> m TTImp) -> Decl -> m Decl
mapMIFieldUpdate : Applicative m => (m TTImp -> m TTImp) -> IFieldUpdate -> m IFieldUpdate
mapMAltType : Applicative m => (m TTImp -> m TTImp) -> AltType -> m AltType
mapMTTImp : Monad m => (TTImp -> m TTImp) -> TTImp -> m TTImp