#include "ocaml.h" value get_opt(value opt, int index) { if (!opt || opt == Val_none) return 0; else return Field(opt, index); } char* string_opt(const value opt) { value content = get_opt(opt, 0); if (!content) return NULL; else return String_val(content); } value Val_some(value v ) { CAMLparam1( v ); CAMLlocal1( some ); some = caml_alloc(1, 0); Store_field( some, 0, v ); CAMLreturn( some ); } value Val_1field(value v) { CAMLparam1( v ); CAMLlocal1( field ); field = caml_alloc(1, 0); Store_field(field, 0, v); CAMLreturn( field ); }