Source

TyLLVM / LLVM_types.ml

Full commit
type 'a t = {data : 'a}

type llvm_int = [`Int of (int * Big_int.big_int option)]
type 'a llvm_array = [`Array of (int * 'a)]
type 'a llvm_pointer = [`Pointer of ('a * int option)]
type ('a, 'b) llvm_function_pointer = [`Function_pointer of ('a array * 'b * int option)]

let int i x = {data = `Int (i, x)}
let array i x = {data = `Array (i, x)}
let pointer t x = {data = `Pointer (t, x)}
let function_pointer params return_type x = {data = `Function_pointer (params, return_type, x)}