import public Language.Reflection.TTdata BindMode : TypeEq BindModedata UseSide : TypeEq UseSidedata DotReason : TypeNonLinearVar : DotReasonVarApplied : DotReasonNotConstructor : DotReasonErasedArg : DotReasonUserDotted : DotReasonUnknownDot : DotReasonUnderAppliedCon : DotReasonEq DotReasondata TTImp : TypeIVar : FC -> Name -> TTImpIPi : FC -> Count -> PiInfo TTImp -> Maybe Name -> TTImp -> TTImp -> TTImpILam : FC -> Count -> PiInfo TTImp -> Maybe Name -> TTImp -> TTImp -> TTImpILet : FC -> FC -> Count -> Name -> TTImp -> TTImp -> TTImp -> TTImpICase : FC -> List FnOpt -> TTImp -> TTImp -> List Clause -> TTImpILocal : FC -> List Decl -> TTImp -> TTImpIUpdate : FC -> List IFieldUpdate -> TTImp -> TTImpIApp : FC -> TTImp -> TTImp -> TTImpINamedApp : FC -> TTImp -> Name -> TTImp -> TTImpIAutoApp : FC -> TTImp -> TTImp -> TTImpIWithApp : FC -> TTImp -> TTImp -> TTImpISearch : FC -> Nat -> TTImpIAlternative : FC -> AltType -> List TTImp -> TTImpIRewrite : FC -> TTImp -> TTImp -> TTImpIBindHere : FC -> BindMode -> TTImp -> TTImpIBindVar : FC -> String -> TTImpIAs : FC -> FC -> UseSide -> Name -> TTImp -> TTImpIMustUnify : FC -> DotReason -> TTImp -> TTImpIDelayed : FC -> LazyReason -> TTImp -> TTImpIDelay : FC -> TTImp -> TTImpIForce : FC -> TTImp -> TTImpIQuote : FC -> TTImp -> TTImpIQuoteName : FC -> Name -> TTImpIQuoteDecl : FC -> List Decl -> TTImpIUnquote : FC -> TTImp -> TTImpIPrimVal : FC -> Constant -> TTImpIType : FC -> TTImpIHole : FC -> String -> TTImpImplicit : FC -> Bool -> TTImpIWithUnambigNames : FC -> List (FC, Name) -> TTImp -> TTImpdata IFieldUpdate : TypeISetField : List String -> TTImp -> IFieldUpdateISetFieldApp : List String -> TTImp -> IFieldUpdateEq TTImp => Eq IFieldUpdateShow IFieldUpdatedata AltType : TypeFirstSuccess : AltTypeUnique : AltTypeUniqueDefault : TTImp -> AltTypedata FnOpt : TypeInline : FnOptNoInline : FnOptDeprecate : FnOptTCInline : FnOptHint : Bool -> FnOptGlobalHint : Bool -> FnOptExternFn : FnOptForeignFn : List TTImp -> FnOptForeignExport : List TTImp -> FnOptInvertible : FnOptTotality : TotalReq -> FnOptMacro : FnOptSpecArgs : List Name -> FnOptdata ITy : Typedata DataOpt : TypeSearchBy : List Name -> DataOptNoHints : DataOptUniqueSearch : DataOptExternal : DataOptNoNewtype : DataOptEq DataOptdata Data : TypeMkData : FC -> Name -> Maybe TTImp -> List DataOpt -> List ITy -> DataMkLater : FC -> Name -> TTImp -> Datadata IField : Typedata Record : TypeMkRecord : FC -> Name -> List (Name, (Count, (PiInfo TTImp, TTImp))) -> List DataOpt -> Name -> List IField -> Recorddata WithFlag : TypeEq WithFlagdata Clause : TypePatClause : FC -> TTImp -> TTImp -> ClauseWithClause : FC -> TTImp -> Count -> TTImp -> Maybe Name -> List WithFlag -> List Clause -> ClauseImpossibleClause : FC -> TTImp -> Clausedata WithDefault : (a : Type) -> a -> TypeDefaultedValue : WithDefault a defSpecifiedValue : a -> WithDefault a defEq a => Eq (WithDefault a def)Ord a => Ord (WithDefault a def)Show a => Show (WithDefault a def)specified : a -> WithDefault a defdefaulted : WithDefault a defcollapseDefault : WithDefault a def -> aonWithDefault : Lazy b -> (a -> b) -> WithDefault a def -> bdata Decl : TypeIClaim : FC -> Count -> Visibility -> List FnOpt -> ITy -> DeclIData : FC -> WithDefault Visibility Private -> Maybe TotalReq -> Data -> DeclIDef : FC -> Name -> List Clause -> DeclIParameters : FC -> List (Name, (Count, (PiInfo TTImp, TTImp))) -> List Decl -> DeclIRecord : FC -> Maybe String -> WithDefault Visibility Private -> Maybe TotalReq -> Record -> DeclINamespace : FC -> Namespace -> List Decl -> DeclITransform : FC -> Name -> TTImp -> TTImp -> DeclIRunElabDecl : FC -> TTImp -> DeclILog : Maybe (List String, Nat) -> DeclIBuiltin : FC -> BuiltinType -> Name -> DeclgetFC : TTImp -> FCmapTopmostFC : (FC -> FC) -> TTImp -> TTImpdata Mode : TypeshowClause : Mode -> Clause -> Stringdata Argument : Type -> TypeArg : FC -> a -> Argument aNamedArg : FC -> Name -> a -> Argument aAutoArg : FC -> a -> Argument aFunctor ArgumentisExplicit : Argument a -> Maybe (FC, a)fromPiInfo : FC -> PiInfo t -> Maybe Name -> a -> Maybe (Argument a)iApp : TTImp -> Argument TTImp -> TTImpunArg : Argument a -> aapply : TTImp -> List (Argument TTImp) -> TTImpWe often apply multiple arguments, this makes things simpler
data IsAppView : (FC, Name) -> SnocList (Argument TTImp) -> TTImp -> Typerecord AppView : TTImp -> TypeMkAppView : (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}) t0 isAppView : ({rec:0} : AppView t) -> IsAppView (head {rec:0}) (args {rec:0}) tappView : (t : TTImp) -> Maybe (AppView t)mapTTImp : (TTImp -> TTImp) -> TTImp -> TTImpmapPiInfo : (TTImp -> TTImp) -> PiInfo TTImp -> PiInfo TTImpmapClause : (TTImp -> TTImp) -> Clause -> ClausemapITy : (TTImp -> TTImp) -> ITy -> ITymapFnOpt : (TTImp -> TTImp) -> FnOpt -> FnOptmapData : (TTImp -> TTImp) -> Data -> DatamapIField : (TTImp -> TTImp) -> IField -> IFieldmapRecord : (TTImp -> TTImp) -> Record -> RecordmapDecl : (TTImp -> TTImp) -> Decl -> DeclmapIFieldUpdate : (TTImp -> TTImp) -> IFieldUpdate -> IFieldUpdatemapAltType : (TTImp -> TTImp) -> AltType -> AltTypemapATTImp : Applicative m => (m TTImp -> m TTImp) -> TTImp -> m TTImpmapMPiInfo : Applicative m => (m TTImp -> m TTImp) -> PiInfo TTImp -> m (PiInfo TTImp)mapMClause : Applicative m => (m TTImp -> m TTImp) -> Clause -> m ClausemapMITy : Applicative m => (m TTImp -> m TTImp) -> ITy -> m ITymapMFnOpt : Applicative m => (m TTImp -> m TTImp) -> FnOpt -> m FnOptmapMData : Applicative m => (m TTImp -> m TTImp) -> Data -> m DatamapMIField : Applicative m => (m TTImp -> m TTImp) -> IField -> m IFieldmapMRecord : Applicative m => (m TTImp -> m TTImp) -> Record -> m RecordmapMDecl : Applicative m => (m TTImp -> m TTImp) -> Decl -> m DeclmapMIFieldUpdate : Applicative m => (m TTImp -> m TTImp) -> IFieldUpdate -> m IFieldUpdatemapMAltType : Applicative m => (m TTImp -> m TTImp) -> AltType -> m AltTypemapMTTImp : Monad m => (TTImp -> m TTImp) -> TTImp -> m TTImp