import public Language.Reflection.Compat.Constr
import public Language.Reflection.Expr
import public Syntax.IHateParens.SortedSet.decl : TypeInfo -> DeclGenerate a declaration from TypeInfo
allInvolvedTypes : Elaboration m => Count -> TypeInfo -> m (List TypeInfo)ensureTyArgsNamed : Elaboration m => (ty : TypeInfo) -> m (AllTyArgsNamed ty).argNames : (ti : TypeInfo) -> {auto 0 _ : AllTyArgsNamed ti} -> List Namerecord NamesInfoInTypes : TypeNames : ListMap Name TypeInfo -> ListMap Name (TypeInfo, Con) -> ListMap TypeInfo (SortedSet Name) -> NamesInfoInTypes.cons : NamesInfoInTypes -> ListMap Name (TypeInfo, Con).namesInTypes : NamesInfoInTypes -> ListMap TypeInfo (SortedSet Name).types : NamesInfoInTypes -> ListMap Name TypeInfoMonoid NamesInfoInTypesSemigroup NamesInfoInTypeslookupType : NamesInfoInTypes => Name -> Maybe TypeInfolookupCon : NamesInfoInTypes => Name -> Maybe ConknownTypes : NamesInfoInTypes => ListMap Name TypeInforesolveNamesUniquely : NamesInfoInTypes => SortedSet Name -> TTImp -> Either (Name, SortedSet Name) TTImpReturns either resolved expression, or a non-unique name and the set of alternatives.
hasNameInsideDeep : NamesInfoInTypes => Name -> TTImp -> BoolisRecursive : NamesInfoInTypes => Con -> {default Nothing _ : Maybe TypeInfo} -> BoolisRecursiveConstructor : NamesInfoInTypes => Name -> Maybe BoolenrichNamesInfoInTypes : Elaboration m => List TypeInfo -> NamesInfoInTypes -> m NamesInfoInTypesgetNamesInfoInTypes : Elaboration m => TypeInfo -> m NamesInfoInTypesgetNamesInfoInTypes' : Elaboration m => TTImp -> m NamesInfoInTypes