import public Data.List
import public Data.String
data Namespace : Type
data ModuleIdent : Type
MkMI : List String -> ModuleIdent
showSep : String -> List String -> String
FilePos : Type
data VirtualIdent : Type
data OriginDesc : Type
PhysicalIdrSrc : ModuleIdent -> OriginDesc
Anything that originates in physical Idris source files is assigned a
`PhysicalIdrSrc modIdent`,
where `modIdent` is the top-level module identifier of that file.
PhysicalPkgSrc : String -> OriginDesc
Anything parsed from a package file is decorated with `PhysicalPkgSrc fname`,
where `fname` is path to the package file.
Virtual : VirtualIdent -> OriginDesc
data FC : Type
A file context is a filename together with starting and ending positions.
It's often carried by AST nodes that might have been created from a source
file or by the compiler. That makes it useful to have the notion of
`EmptyFC` as part of the type.
MkFC : OriginDesc -> FilePos -> FilePos -> FC
MkVirtualFC : OriginDesc -> FilePos -> FilePos -> FC
Virtual FCs are FC attached to desugared/generated code. They can help with marking
errors, but we shouldn't attach semantic highlighting metadata to them.
EmptyFC : FC
emptyFC : FC
data NameType : Type
data PrimType : Type
IntType : PrimType
IntegerType : PrimType
Int8Type : PrimType
Int16Type : PrimType
Int32Type : PrimType
Int64Type : PrimType
Bits8Type : PrimType
Bits16Type : PrimType
Bits32Type : PrimType
Bits64Type : PrimType
StringType : PrimType
CharType : PrimType
DoubleType : PrimType
WorldType : PrimType
data Constant : Type
I : Int -> Constant
BI : Integer -> Constant
I8 : Int8 -> Constant
I16 : Int16 -> Constant
I32 : Int32 -> Constant
I64 : Int64 -> Constant
B8 : Bits8 -> Constant
B16 : Bits16 -> Constant
B32 : Bits32 -> Constant
B64 : Bits64 -> Constant
Str : String -> Constant
Ch : Char -> Constant
Db : Double -> Constant
PrT : PrimType -> Constant
WorldVal : Constant
data UserName : Type
data Name : Type
NS : Namespace -> Name -> Name
UN : UserName -> Name
MN : String -> Int -> Name
DN : String -> Name -> Name
Nested : (Int, Int) -> Name -> Name
CaseBlock : String -> Int -> Name
WithBlock : String -> Int -> Name
dropNS : Name -> Name
isOp : Name -> Bool
showPrefix : Bool -> Name -> String
record NameInfo : Type
MkNameInfo : NameType -> NameInfo
.nametype : NameInfo -> NameType
nametype : NameInfo -> NameType
data Count : Type
enunciate : Count -> String
showCount : Count -> String -> String
data PiInfo : Type -> Type
ImplicitArg : PiInfo t
ExplicitArg : PiInfo t
AutoImplicit : PiInfo t
DefImplicit : t -> PiInfo t
Eq a => Eq (PiInfo a)
showPiInfo : Show a => {default True _ : Bool} -> PiInfo a -> String -> String
data IsVar : Name -> Nat -> List Name -> Type
data LazyReason : Type
Eq LazyReason
Show LazyReason
data TotalReq : Type
showTotalReq : Maybe TotalReq -> String -> String
data Visibility : Type
Eq Visibility
Show Visibility
data BuiltinType : Type
Eq BuiltinType
Show BuiltinType