import public Core.FC
import public Core.Name
import public Core.Name.Scoped
import public Algebra
import public Core.TT.Binder
import public Core.TT.Primitive
import public Core.TT.Subst
import public Core.TT.Term
import public Core.TT.Term.Subst
import public Core.TT.Varrecord KindedName : TypeMkKindedName : Maybe NameType -> Name -> Name -> KindedName.fullName : KindedName -> Name.nameKind : KindedName -> Maybe NameType.rawName : KindedName -> Name.nameKind : KindedName -> Maybe NameTypenameKind : KindedName -> Maybe NameType.fullName : KindedName -> NamefullName : KindedName -> Name.rawName : KindedName -> NamerawName : KindedName -> NamedefaultKindedName : Name -> KindedNamefunKindedName : Name -> KindedNamedata CList : List a -> Type -> TypeNil : CList [] ty(::) : ty -> CList cs ty -> CList (c :: cs) tydata Visibility : TypeEq VisibilityOrd VisibilityPretty Void VisibilityReflect VisibilityReify VisibilityShow VisibilityTTC Visibilitydata DataOpt : TypeSearchBy : List1 Name -> DataOptNoHints : DataOptUniqueSearch : DataOptExternal : DataOptNoNewtype : DataOptEq DataOptdata Fixity : Typedata BindingModifier : TypeEq BindingModifierHasDefault BindingModifierInterpolation BindingModifierShow BindingModifierrecord FixityInfo : TypeMkFixityInfo : FC -> Visibility -> BindingModifier -> Fixity -> Nat -> FixityInfo.bindingInfo : FixityInfo -> BindingModifier.fc : FixityInfo -> FC.fix : FixityInfo -> Fixity.precedence : FixityInfo -> Nat.vis : FixityInfo -> VisibilityEq FixityInfoShow FixityInfo.fc : FixityInfo -> FCfc : FixityInfo -> FC.vis : FixityInfo -> Visibilityvis : FixityInfo -> Visibility.bindingInfo : FixityInfo -> BindingModifierbindingInfo : FixityInfo -> BindingModifier.fix : FixityInfo -> Fixityfix : FixityInfo -> Fixity.precedence : FixityInfo -> Natprecedence : FixityInfo -> Natdata FixityDeclarationInfo : TypeWhenever we read an operator from the parser, we don't know if it's a backticked expression with no fixity
declaration, or if it has a fixity declaration. If it does not have a declaration, we represent this state
with `UndeclaredFixity`.
Note that a backticked expression can have a fixity declaration, in which case it is represented with
`DeclaredFixity`.
data OperatorLHSInfo : tm -> TypeNoBinder : tm -> OperatorLHSInfo tmBindType : tm -> tm -> OperatorLHSInfo tmBindExpr : tm -> tm -> OperatorLHSInfo tmBindExplicitType : tm -> tm -> tm -> OperatorLHSInfo tmFunctor OperatorLHSInfoShow (OperatorLHSInfo tm).getLhs : OperatorLHSInfo tm -> tm.getBoundPat : OperatorLHSInfo tm -> Maybe tm.getBinder : OperatorLHSInfo tm -> BindingModifierdata TotalReq : Typedata PartialReason : TypeNotStrictlyPositive : PartialReasonBadCall : List Name -> PartialReasonBadPath : List (FC, Name) -> Name -> PartialReasonRecPath : List (FC, Name) -> PartialReasondata Terminating : TypeHasNames TerminatingPretty Void TerminatingShow TerminatingTTC Terminatingdata Covering : TypeIsCovering : CoveringMissingCases : List ClosedTerm -> CoveringNonCoveringCall : List Name -> Coveringrecord Totality : TypeMkTotality : Terminating -> Covering -> Totality.isCovering : Totality -> Covering.isTerminating : Totality -> Terminating.isTerminating : Totality -> TerminatingisTerminating : Totality -> Terminating.isCovering : Totality -> CoveringisCovering : Totality -> Coveringunchecked : TotalityisTotal : TotalitynotCovering : Totalitydata Bounds : ScopedsizeOf : Bounds xs -> SizeOf xsaddVars : SizeOf outer -> Bounds bound -> NVar name (outer ++ vars) -> NVar name (outer ++ (bound ++ vars))resolveRef : SizeOf outer -> SizeOf done -> Bounds bound -> FC -> Name -> Maybe (Var (outer ++ (done <>> (bound ++ vars))))refsToLocals : Bounds bound -> Term vars -> Term (bound ++ vars)refToLocal : Name -> (new : Name) -> Term vars -> Term (new :: vars)substName : Name -> Term vars -> Term vars -> Term varsaddMetas : Bool -> NameMap Bool -> Term vars -> NameMap BoolgetMetas : Term vars -> NameMap BooladdRefs : Bool -> Name -> NameMap Bool -> Term vars -> NameMap BoolgetRefs : Name -> Term vars -> NameMap Bool