// A number of bytes, generally a size
.type Bytes <: number

// A line number in a source file
.type LineNumber <: number

// A column number in a source file
.type ColumnNumber <: number

// Name of a func
.type FunctionName <: symbol

// Name of a global variable
.type GlobalVarName <: symbol

.type GlobalName
  = FunctionName
  | GlobalVarName

// An index in a getelementptr
.type GepIndex <: number

// An index into an array, e.g. in a getelementptr instr
.type ArrayIndex <: number

// An index into a struct, e.g. in a getelementptr instr
.type FieldIndex <: number

// An index of an argument to a func
.type ArgumentIndex <: number