-external sv_get_undef : unit -> sv = "perl4caml_sv_get_undef"
-external sv_get_yes : unit -> sv = "perl4caml_sv_get_yes"
-external sv_get_no : unit -> sv = "perl4caml_sv_get_no"
+external sv_undef : unit -> sv = "perl4caml_sv_undef"
+external sv_yes : unit -> sv = "perl4caml_sv_yes"
+external sv_no : unit -> sv = "perl4caml_sv_no"
+
+let sv_true () = sv_of_int 1
+let sv_false () = sv_of_int 0
+
+let bool_of_sv = sv_is_true
+let sv_of_bool b = if b then sv_true () else sv_false ()
+
+type sv_t = SVt_NULL
+ | SVt_IV
+ | SVt_NV
+ | SVt_PV
+ | SVt_RV
+ | SVt_PVAV
+ | SVt_PVHV
+ | SVt_PVCV
+ | SVt_PVGV
+ | SVt_PVMG
+
+external sv_type : sv -> sv_t = "perl4caml_sv_type"