sig
  type t =
      NullValue
    | Argument
    | BasicBlock
    | InlineAsm
    | MDNode
    | MDString
    | BlockAddress
    | ConstantAggregateZero
    | ConstantArray
    | ConstantDataArray
    | ConstantDataVector
    | ConstantExpr
    | ConstantFP
    | ConstantInt
    | ConstantPointerNull
    | ConstantStruct
    | ConstantVector
    | Function
    | GlobalAlias
    | GlobalVariable
    | UndefValue
    | Instruction of Llvm.Opcode.t
end