--- /dev/null
+CM
\ No newline at end of file
--- /dev/null
+CM
\ No newline at end of file
--- /dev/null
+CM
\ No newline at end of file
--- /dev/null
+The things in this directory were generated automatically by SML/NJ
+NLFFI tools. I'm not sure how that works out with redistributing them,
+but here they are all the same! I've actually modified them slightly
+to make an abstract type for connections visible outside this library.
+
+-- Adam
\ No newline at end of file
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_0 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr) *
+ (unit * string * string -> unit) list -> unit
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_1 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ CMemory.cc_addr *
+ (unit * string -> Int31.int) list -> CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_10 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_sint) *
+ (unit * string * Int31.int -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_11 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_addr *
+ CMemory.cc_sint) *
+ (unit *
+ string *
+ Int31.int *
+ string *
+ string *
+ Int31.int *
+ string *
+ Int31.int -> string) list -> CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_12 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_sint) *
+ (unit * string * Int31.int -> string) list -> CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_13 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr) *
+ (unit * string * string -> Int31.int) list -> CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_14 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_sint) *
+ (unit * string * Int31.int -> Word31.word) list ->
+ CMemory.cc_uint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_15 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_sint * CMemory.cc_sint) *
+ (unit * string * Int31.int * Int31.int -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_16 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr * CMemory.cc_sint) *
+ (unit * string * string * Int31.int -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_17 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_sint * CMemory.cc_sint) *
+ (unit * string * Int31.int * Int31.int -> string) list ->
+ CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_18 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ CMemory.cc_addr *
+ (unit * string -> Word31.word) list -> CMemory.cc_uint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_19 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr * CMemory.cc_addr) *
+ (unit * string * string * string -> unit) list -> unit
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_2 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word * CMemory.cc_addr * (unit * string -> unit) list ->
+ unit
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_20 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_sint *
+ CMemory.cc_sint) *
+ (unit * string * string * Int31.int * Int31.int * Int31.int ->
+ unit) list -> unit
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_21 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ CMemory.cc_sint *
+ (unit * Int31.int -> string) list -> CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_22 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr * CMemory.cc_addr) *
+ (unit * string * string * string -> string) list ->
+ CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_23 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_addr) *
+ (unit *
+ string *
+ string *
+ string *
+ string *
+ string *
+ string *
+ string -> string) list -> CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_24 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_uint * CMemory.cc_addr) *
+ (unit * string * Word31.word * string -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_25 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr) *
+ (unit * string * string -> Word31.word) list ->
+ CMemory.cc_uint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_26 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_sint *
+ CMemory.cc_sint) *
+ (unit * string * Int31.int * Int31.int * Int31.int ->
+ Int31.int) list -> CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_27 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_uint * CMemory.cc_sint) *
+ (unit * string * Word31.word * Int31.int -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_28 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_addr *
+ CMemory.cc_uint) *
+ (unit * string * Int31.int * string * Word31.word ->
+ Int31.int) list -> CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_29 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_uint) *
+ (unit * string * Word31.word -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_3 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word * CMemory.cc_addr * (unit * string -> string) list ->
+ CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_4 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word * unit * (unit -> string) list -> CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_5 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr *
+ CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_addr *
+ CMemory.cc_sint *
+ CMemory.cc_sint) *
+ (unit *
+ string *
+ string *
+ Int31.int *
+ string *
+ Int31.int *
+ Int31.int -> unit) list -> unit
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_6 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word * unit * (unit -> Int31.int) list ->
+ CMemory.cc_sint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_7 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_uint * CMemory.cc_addr) *
+ (unit * string * Word31.word * string -> string) list ->
+ CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_8 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr * CMemory.cc_uint) *
+ (unit * string * string * Word31.word -> Word31.word) list ->
+ CMemory.cc_uint
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+structure Callop_9 = struct
+ val callop =
+ RawMemInlineT.rawccall :
+ Word32.word *
+ (CMemory.cc_addr * CMemory.cc_addr) *
+ (unit * string * string -> string) list -> CMemory.cc_addr
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":38.1-60.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C in
+structure E_'ConnStatusType = struct
+ open ET_'ConnStatusType
+ type mlrep = MLRep.Signed.int
+ val e_CONNECTION_OK = 0 : mlrep
+ val e_CONNECTION_BAD = 1 : mlrep
+ val e_CONNECTION_STARTED = 2 : mlrep
+ val e_CONNECTION_MADE = 3 : mlrep
+ val e_CONNECTION_AWAITING_RESPONSE = 4 : mlrep
+ val e_CONNECTION_AUTH_OK = 5 : mlrep
+ val e_CONNECTION_SETENV = 6 : mlrep
+ fun m2i (x : mlrep) = x : MLRep.Signed.int
+ fun i2m (x : MLRep.Signed.int) = x : mlrep
+ fun c x = Cvt.i2c_enum (m2i x) : tag enum
+ fun ml (x : tag enum) = i2m (Cvt.c2i_enum x)
+ fun get' (x : (tag, 'c) enum_obj') = i2m (Get.enum' x)
+ fun set' (x : (tag, rw) enum_obj', v) = Set.enum' (x, m2i v)
+ fun get (x : (tag, 'c) enum_obj) = i2m (Get.enum x)
+ fun set (x : (tag, rw) enum_obj, v) = Set.enum (x, m2i v)
+end
+end (* local *)
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":71.1-86.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C in
+structure E_'ExecStatusType = struct
+ open ET_'ExecStatusType
+ type mlrep = MLRep.Signed.int
+ val e_PGRES_EMPTY_QUERY = 0 : mlrep
+ val e_PGRES_COMMAND_OK = 1 : mlrep
+ val e_PGRES_TUPLES_OK = 2 : mlrep
+ val e_PGRES_COPY_OUT = 3 : mlrep
+ val e_PGRES_COPY_IN = 4 : mlrep
+ val e_PGRES_BAD_RESPONSE = 5 : mlrep
+ val e_PGRES_NONFATAL_ERROR = 6 : mlrep
+ val e_PGRES_FATAL_ERROR = 7 : mlrep
+ fun m2i (x : mlrep) = x : MLRep.Signed.int
+ fun i2m (x : MLRep.Signed.int) = x : mlrep
+ fun c x = Cvt.i2c_enum (m2i x) : tag enum
+ fun ml (x : tag enum) = i2m (Cvt.c2i_enum x)
+ fun get' (x : (tag, 'c) enum_obj') = i2m (Get.enum' x)
+ fun set' (x : (tag, rw) enum_obj', v) = Set.enum' (x, m2i v)
+ fun get (x : (tag, 'c) enum_obj) = i2m (Get.enum x)
+ fun set (x : (tag, rw) enum_obj, v) = Set.enum (x, m2i v)
+end
+end (* local *)
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":62.1-69.28] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C in
+structure E_'PostgresPollingStatusType = struct
+ open ET_'PostgresPollingStatusType
+ type mlrep = MLRep.Signed.int
+ val e_PGRES_POLLING_FAILED = 0 : mlrep
+ val e_PGRES_POLLING_READING = 1 : mlrep
+ val e_PGRES_POLLING_WRITING = 2 : mlrep
+ val e_PGRES_POLLING_OK = 3 : mlrep
+ val e_PGRES_POLLING_ACTIVE = 4 : mlrep
+ fun m2i (x : mlrep) = x : MLRep.Signed.int
+ fun i2m (x : MLRep.Signed.int) = x : mlrep
+ fun c x = Cvt.i2c_enum (m2i x) : tag enum
+ fun ml (x : tag enum) = i2m (Cvt.c2i_enum x)
+ fun get' (x : (tag, 'c) enum_obj') = i2m (Get.enum' x)
+ fun set' (x : (tag, rw) enum_obj', v) = Set.enum' (x, m2i v)
+ fun get (x : (tag, 'c) enum_obj) = i2m (Get.enum x)
+ fun set (x : (tag, rw) enum_obj, v) = Set.enum (x, m2i v)
+end
+end (* local *)
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":38.1-60.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure E_'ConnStatusType = struct
+ local
+ open Tag
+ in
+ type tag =
+ e t_' t_C t_o t_n t_n t_S t_t t_a t_t t_u t_s t_T t_y t_p t_e
+ end
+ end
+in
+ structure ET_'ConnStatusType = E_'ConnStatusType
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":71.1-86.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure E_'ExecStatusType = struct
+ local
+ open Tag
+ in
+ type tag =
+ e t_' t_E t_x t_e t_c t_S t_t t_a t_t t_u t_s t_T t_y t_p t_e
+ end
+ end
+in
+ structure ET_'ExecStatusType = E_'ExecStatusType
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":62.1-69.28] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure E_'PostgresPollingStatusType = struct
+ local
+ open Tag
+ in
+ type tag =
+ e t_' t_P t_o t_s t_t t_g t_r t_e t_s t_P t_o t_l t_l t_i t_n t_g t_S t_t t_a t_t t_u t_s t_T t_y t_p t_e
+ end
+ end
+in
+ structure ET_'PostgresPollingStatusType = E_'PostgresPollingStatusType
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":230.1-44] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQbackendPID"
+in
+structure F_PQbackendPID : sig
+ val typ : ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_1.typ
+ fun fptr () = mk_fptr (FPtrRTTI_1.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":301.1-47] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQbinaryTuples"
+in
+structure F_PQbinaryTuples : sig
+ val typ : ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_2.typ
+ fun fptr () = mk_fptr (FPtrRTTI_2.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":316.1-35] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQclear"
+in
+structure F_PQclear : sig
+ val typ : ((ST_pg_result.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr : unit -> ((ST_pg_result.tag, rw) su_obj ptr' -> unit) fptr
+ val f : (ST_pg_result.tag, rw) su_obj ptr -> unit
+ val f' : (ST_pg_result.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_3.typ
+ fun fptr () = mk_fptr (FPtrRTTI_3.mkcall, h ())
+ fun f x1 = call (fptr (), Light.ptr x1)
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":231.1-48] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQclientEncoding"
+in
+structure F_PQclientEncoding : sig
+ val typ : ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_1.typ
+ fun fptr () = mk_fptr (FPtrRTTI_1.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":307.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQcmdStatus"
+in
+structure F_PQcmdStatus : sig
+ val typ :
+ ((ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_result.tag, rw) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_4.typ
+ fun fptr () = mk_fptr (FPtrRTTI_4.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":310.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQcmdTuples"
+in
+structure F_PQcmdTuples : sig
+ val typ :
+ ((ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_result.tag, rw) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_4.typ
+ fun fptr () = mk_fptr (FPtrRTTI_4.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":200.1-46] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQconndefaults"
+in
+structure F_PQconndefaults : sig
+ val typ :
+ (unit -> (ST__PQconninfoOption.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit -> (unit -> (ST__PQconninfoOption.tag, rw) su_obj ptr') fptr
+ val f : unit -> (ST__PQconninfoOption.tag, rw) su_obj ptr
+ val f' : unit -> (ST__PQconninfoOption.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_5.typ
+ fun fptr () = mk_fptr (FPtrRTTI_5.mkcall, h ())
+ fun f ()
+ = Heavy.ptr
+ (T.pointer ST__PQconninfoOption.typ) (call (fptr (), ()))
+ fun f' () = call (fptr (), ())
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":184.1-61] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQconnectPoll"
+in
+structure F_PQconnectPoll : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ ET_'PostgresPollingStatusType.tag enum) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ ET_'PostgresPollingStatusType.tag enum) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_6.typ
+ fun fptr () = mk_fptr (FPtrRTTI_6.mkcall, h ())
+ fun f x1 = Cvt.c2i_enum (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.c2i_enum (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":183.1-52] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQconnectStart"
+in
+structure F_PQconnectStart : sig
+ val typ :
+ (ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ (ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr
+ val f' : ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_7.typ
+ fun fptr () = mk_fptr (FPtrRTTI_7.mkcall, h ())
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":187.1-49] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQconnectdb"
+in
+structure F_PQconnectdb : sig
+ val typ :
+ (ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ (ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr
+ val f' : ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_7.typ
+ fun fptr () = mk_fptr (FPtrRTTI_7.mkcall, h ())
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":203.1-58] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQconninfoFree"
+in
+structure F_PQconninfoFree : sig
+ val typ :
+ ((ST__PQconninfoOption.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr :
+ unit -> ((ST__PQconninfoOption.tag, rw) su_obj ptr' -> unit) fptr
+ val f : (ST__PQconninfoOption.tag, rw) su_obj ptr -> unit
+ val f' : (ST__PQconninfoOption.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_8.typ
+ fun fptr () = mk_fptr (FPtrRTTI_8.mkcall, h ())
+ fun f x1 = call (fptr (), Light.ptr x1)
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":267.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQconsumeInput"
+in
+structure F_PQconsumeInput : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_9.typ
+ fun fptr () = mk_fptr (FPtrRTTI_9.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":220.1-38] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQdb"
+in
+structure F_PQdb : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":335.1-341.15] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQdisplayTuples"
+in
+structure F_PQdisplayTuples : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ sint *
+ ro uchar_obj ptr' *
+ sint *
+ sint -> unit) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ sint *
+ ro uchar_obj ptr' *
+ sint *
+ sint -> unit) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr *
+ (ST__IO_FILE.tag, rw) su_obj ptr *
+ MLRep.Signed.int *
+ ro uchar_obj ptr *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> unit
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ MLRep.Signed.int *
+ ro uchar_obj ptr' *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> unit
+end = struct
+ val typ = FPtrRTTI_11.typ
+ fun fptr () = mk_fptr (FPtrRTTI_11.mkcall, h ())
+ fun f (x1, x2, x3, x4, x5, x6)
+ = call
+ (fptr (),
+ (Light.ptr x1,
+ Light.ptr x2,
+ Cvt.c_sint x3,
+ Light.ptr x4,
+ Cvt.c_sint x5,
+ Cvt.c_sint x6))
+ fun f' (x1, x2, x3, x4, x5, x6)
+ = call
+ (fptr (),
+ (x1, x2, Cvt.c_sint x3, x4, Cvt.c_sint x5, Cvt.c_sint x6))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":274.1-35] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQendcopy"
+in
+structure F_PQendcopy : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_9.typ
+ fun fptr () = mk_fptr (FPtrRTTI_9.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":372.1-32] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQenv2encoding"
+in
+structure F_PQenv2encoding : sig
+ val typ : (unit -> sint) fptr T.typ
+ val fptr : unit -> (unit -> sint) fptr
+ val f : unit -> MLRep.Signed.int
+ val f' : unit -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_12.typ
+ fun fptr () = mk_fptr (FPtrRTTI_12.mkcall, h ())
+ fun f () = Cvt.ml_sint (call (fptr (), ()))
+ fun f' () = Cvt.ml_sint (call (fptr (), ()))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":228.1-48] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQerrorMessage"
+in
+structure F_PQerrorMessage : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":253.1-254.23] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQescapeBytea"
+in
+structure F_PQescapeBytea : sig
+ val typ :
+ (rw uchar_obj ptr' * uint * rw uint_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ (rw uchar_obj ptr' * uint * rw uint_obj ptr' ->
+ rw uchar_obj ptr') fptr
+ val f :
+ rw uchar_obj ptr * MLRep.Unsigned.word * rw uint_obj ptr ->
+ rw uchar_obj ptr
+ val f' :
+ rw uchar_obj ptr' * MLRep.Unsigned.word * rw uint_obj ptr' ->
+ rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_13.typ
+ fun fptr () = mk_fptr (FPtrRTTI_13.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Heavy.ptr
+ (T.pointer T.uchar)
+ (call
+ (fptr (), (Light.ptr x1, Cvt.c_uint x2, Light.ptr x3)))
+ fun f' (x1, x2, x3) = call (fptr (), (x1, Cvt.c_uint x2, x3))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":252.1-72] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQescapeString"
+in
+structure F_PQescapeString : sig
+ val typ :
+ (rw uchar_obj ptr' * ro uchar_obj ptr' * uint -> uint) fptr T.typ
+ val fptr :
+ unit ->
+ (rw uchar_obj ptr' * ro uchar_obj ptr' * uint -> uint) fptr
+ val f :
+ rw uchar_obj ptr * ro uchar_obj ptr * MLRep.Unsigned.word ->
+ MLRep.Unsigned.word
+ val f' :
+ rw uchar_obj ptr' * ro uchar_obj ptr' * MLRep.Unsigned.word ->
+ MLRep.Unsigned.word
+end = struct
+ val typ = FPtrRTTI_14.typ
+ fun fptr () = mk_fptr (FPtrRTTI_14.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_uint
+ (call
+ (fptr (), (Light.ptr x1, Light.ptr x2, Cvt.c_uint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_uint (call (fptr (), (x1, x2, Cvt.c_uint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":257.1-57] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQexec"
+in
+structure F_PQexec : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_15.typ
+ fun fptr () = mk_fptr (FPtrRTTI_15.mkcall, h ())
+ fun f' (x1, x2) = call (fptr (), (x1, x2))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":197.1-35] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfinish"
+in
+structure F_PQfinish : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> unit
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_16.typ
+ fun fptr () = mk_fptr (FPtrRTTI_16.mkcall, h ())
+ fun f x1 = call (fptr (), Light.ptr x1)
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":281.1-33] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQflush"
+in
+structure F_PQflush : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_9.typ
+ fun fptr () = mk_fptr (FPtrRTTI_9.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":306.1-54] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfmod"
+in
+structure F_PQfmod : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint -> sint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_result.tag, ro) su_obj ptr' * sint -> sint) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_17.typ
+ fun fptr () = mk_fptr (FPtrRTTI_17.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":287.1-293.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfn"
+in
+structure F_PQfn : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw sint_obj ptr' *
+ rw sint_obj ptr' *
+ sint *
+ (ST_'PQArgBlock.tag, ro) su_obj ptr' *
+ sint -> (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw sint_obj ptr' *
+ rw sint_obj ptr' *
+ sint *
+ (ST_'PQArgBlock.tag, ro) su_obj ptr' *
+ sint -> (ST_pg_result.tag, rw) su_obj ptr') fptr
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ MLRep.Signed.int *
+ rw sint_obj ptr' *
+ rw sint_obj ptr' *
+ MLRep.Signed.int *
+ (ST_'PQArgBlock.tag, ro) su_obj ptr' *
+ MLRep.Signed.int -> (ST_pg_result.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_18.typ
+ fun fptr () = mk_fptr (FPtrRTTI_18.mkcall, h ())
+ fun f' (x1, x2, x3, x4, x5, x6, x7)
+ = call
+ (fptr (),
+ (x1,
+ Cvt.c_sint x2,
+ x3,
+ x4,
+ Cvt.c_sint x5,
+ x6,
+ Cvt.c_sint x7))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":302.1-57] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfname"
+in
+structure F_PQfname : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint ->
+ rw uchar_obj ptr') fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr * MLRep.Signed.int ->
+ rw uchar_obj ptr
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' * MLRep.Signed.int ->
+ rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_19.typ
+ fun fptr () = mk_fptr (FPtrRTTI_19.mkcall, h ())
+ fun f (x1, x2)
+ = Heavy.ptr
+ (T.pointer T.uchar)
+ (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = call (fptr (), (x1, Cvt.c_sint x2))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":303.1-66] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfnumber"
+in
+structure F_PQfnumber : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' * ro uchar_obj ptr' ->
+ sint) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr * ro uchar_obj ptr ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' * ro uchar_obj ptr' ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_20.typ
+ fun fptr () = mk_fptr (FPtrRTTI_20.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Light.ptr x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":259.1-43] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfreeNotify"
+in
+structure F_PQfreeNotify : sig
+ val typ : ((ST_pgNotify.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr : unit -> ((ST_pgNotify.tag, rw) su_obj ptr' -> unit) fptr
+ val f : (ST_pgNotify.tag, rw) su_obj ptr -> unit
+ val f' : (ST_pgNotify.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_21.typ
+ fun fptr () = mk_fptr (FPtrRTTI_21.mkcall, h ())
+ fun f x1 = call (fptr (), Light.ptr x1)
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":305.1-55] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQfsize"
+in
+structure F_PQfsize : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint -> sint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_result.tag, ro) su_obj ptr' * sint -> sint) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_17.typ
+ fun fptr () = mk_fptr (FPtrRTTI_17.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":304.1-55] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQftype"
+in
+structure F_PQftype : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint -> uint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_result.tag, ro) su_obj ptr' * sint -> uint) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Unsigned.word
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Unsigned.word
+end = struct
+ val typ = FPtrRTTI_22.typ
+ fun fptr () = mk_fptr (FPtrRTTI_22.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_uint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_uint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":263.1-43] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQgetResult"
+in
+structure F_PQgetResult : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_23.typ
+ fun fptr () = mk_fptr (FPtrRTTI_23.mkcall, h ())
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":313.1-72] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQgetisnull"
+in
+structure F_PQgetisnull : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint -> sint) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_24.typ
+ fun fptr () = mk_fptr (FPtrRTTI_24.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Cvt.c_sint x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2, Cvt.c_sint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":312.1-72] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQgetlength"
+in
+structure F_PQgetlength : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint -> sint) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_24.typ
+ fun fptr () = mk_fptr (FPtrRTTI_24.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Cvt.c_sint x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2, Cvt.c_sint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":270.1-61] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQgetline"
+in
+structure F_PQgetline : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * rw uchar_obj ptr' * sint ->
+ sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * rw uchar_obj ptr' * sint ->
+ sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ rw uchar_obj ptr *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ rw uchar_obj ptr' *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_25.typ
+ fun fptr () = mk_fptr (FPtrRTTI_25.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Light.ptr x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, x2, Cvt.c_sint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":272.1-67] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQgetlineAsync"
+in
+structure F_PQgetlineAsync : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * rw uchar_obj ptr' * sint ->
+ sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * rw uchar_obj ptr' * sint ->
+ sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ rw uchar_obj ptr *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ rw uchar_obj ptr' *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_25.typ
+ fun fptr () = mk_fptr (FPtrRTTI_25.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Light.ptr x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, x2, Cvt.c_sint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":311.1-73] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQgetvalue"
+in
+structure F_PQgetvalue : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint ->
+ rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint ->
+ rw uchar_obj ptr') fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> rw uchar_obj ptr
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_26.typ
+ fun fptr () = mk_fptr (FPtrRTTI_26.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Heavy.ptr
+ (T.pointer T.uchar)
+ (call
+ (fptr (), (Light.ptr x1, Cvt.c_sint x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = call (fptr (), (x1, Cvt.c_sint x2, Cvt.c_sint x3))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":223.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQhost"
+in
+structure F_PQhost : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":266.1-34] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQisBusy"
+in
+structure F_PQisBusy : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_9.typ
+ fun fptr () = mk_fptr (FPtrRTTI_9.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":278.1-47] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQisnonblocking"
+in
+structure F_PQisnonblocking : sig
+ val typ : ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_1.typ
+ fun fptr () = mk_fptr (FPtrRTTI_1.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":323.1-74] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQmakeEmptyPGresult"
+in
+structure F_PQmakeEmptyPGresult : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ET_'ExecStatusType.tag enum ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ ET_'ExecStatusType.tag enum ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * MLRep.Signed.int ->
+ (ST_pg_result.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_27.typ
+ fun fptr () = mk_fptr (FPtrRTTI_27.mkcall, h ())
+ fun f' (x1, x2) = call (fptr (), (x1, Cvt.i2c_enum x2))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":369.1-57] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQmblen"
+in
+structure F_PQmblen : sig
+ val typ : (ro uchar_obj ptr' * sint -> sint) fptr T.typ
+ val fptr : unit -> (ro uchar_obj ptr' * sint -> sint) fptr
+ val f : ro uchar_obj ptr * MLRep.Signed.int -> MLRep.Signed.int
+ val f' : ro uchar_obj ptr' * MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_28.typ
+ fun fptr () = mk_fptr (FPtrRTTI_28.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":300.1-42] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQnfields"
+in
+structure F_PQnfields : sig
+ val typ : ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_2.typ
+ fun fptr () = mk_fptr (FPtrRTTI_2.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":258.1-42] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQnotifies"
+in
+structure F_PQnotifies : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pgNotify.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pgNotify.tag, rw) su_obj ptr') fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr ->
+ (ST_pgNotify.tag, rw) su_obj ptr
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pgNotify.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_29.typ
+ fun fptr () = mk_fptr (FPtrRTTI_29.mkcall, h ())
+ fun f x1
+ = Heavy.ptr
+ (T.pointer ST_pgNotify.typ) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":299.1-42] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQntuples"
+in
+structure F_PQntuples : sig
+ val typ : ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_2.typ
+ fun fptr () = mk_fptr (FPtrRTTI_2.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":308.1-46] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQoidStatus"
+in
+structure F_PQoidStatus : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_30.typ
+ fun fptr () = mk_fptr (FPtrRTTI_30.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":309.1-43] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQoidValue"
+in
+structure F_PQoidValue : sig
+ val typ : ((ST_pg_result.tag, ro) su_obj ptr' -> uint) fptr T.typ
+ val fptr : unit -> ((ST_pg_result.tag, ro) su_obj ptr' -> uint) fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> MLRep.Unsigned.word
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> MLRep.Unsigned.word
+end = struct
+ val typ = FPtrRTTI_31.typ
+ fun fptr () = mk_fptr (FPtrRTTI_31.mkcall, h ())
+ fun f x1 = Cvt.ml_uint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_uint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":226.1-43] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQoptions"
+in
+structure F_PQoptions : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":222.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQpass"
+in
+structure F_PQpass : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":224.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQport"
+in
+structure F_PQport : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":327.1-330.24] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQprint"
+in
+structure F_PQprint : sig
+ val typ :
+ ((ST__IO_FILE.tag, rw) su_obj ptr' *
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__PQprintOpt.tag, ro) su_obj ptr' -> unit) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST__IO_FILE.tag, rw) su_obj ptr' *
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__PQprintOpt.tag, ro) su_obj ptr' -> unit) fptr
+ val f :
+ (ST__IO_FILE.tag, rw) su_obj ptr *
+ (ST_pg_result.tag, ro) su_obj ptr *
+ (ST__PQprintOpt.tag, ro) su_obj ptr -> unit
+ val f' :
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__PQprintOpt.tag, ro) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_32.typ
+ fun fptr () = mk_fptr (FPtrRTTI_32.mkcall, h ())
+ fun f (x1, x2, x3)
+ = call (fptr (), (Light.ptr x1, Light.ptr x2, Light.ptr x3))
+ fun f' (x1, x2, x3) = call (fptr (), (x1, x2, x3))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":343.1-348.16] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQprintTuples"
+in
+structure F_PQprintTuples : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ sint *
+ sint *
+ sint -> unit) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ sint *
+ sint *
+ sint -> unit) fptr
+ val f :
+ (ST_pg_result.tag, ro) su_obj ptr *
+ (ST__IO_FILE.tag, rw) su_obj ptr *
+ MLRep.Signed.int *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> unit
+ val f' :
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ MLRep.Signed.int *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> unit
+end = struct
+ val typ = FPtrRTTI_33.typ
+ fun fptr () = mk_fptr (FPtrRTTI_33.mkcall, h ())
+ fun f (x1, x2, x3, x4, x5)
+ = call
+ (fptr (),
+ (Light.ptr x1,
+ Light.ptr x2,
+ Cvt.c_sint x3,
+ Cvt.c_sint x4,
+ Cvt.c_sint x5))
+ fun f' (x1, x2, x3, x4, x5)
+ = call
+ (fptr (),
+ (x1, x2, Cvt.c_sint x3, Cvt.c_sint x4, Cvt.c_sint x5))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":271.1-55] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQputline"
+in
+structure F_PQputline : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * ro uchar_obj ptr ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_34.typ
+ fun fptr () = mk_fptr (FPtrRTTI_34.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Light.ptr x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":273.1-69] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQputnbytes"
+in
+structure F_PQputnbytes : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' * sint ->
+ sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' * sint ->
+ sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ ro uchar_obj ptr *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ ro uchar_obj ptr' *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_35.typ
+ fun fptr () = mk_fptr (FPtrRTTI_35.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Light.ptr x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, x2, Cvt.c_sint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":217.1-41] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQrequestCancel"
+in
+structure F_PQrequestCancel : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_9.typ
+ fun fptr () = mk_fptr (FPtrRTTI_9.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":297.1-48] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQresStatus"
+in
+structure F_PQresStatus : sig
+ val typ :
+ (ET_'ExecStatusType.tag enum -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit -> (ET_'ExecStatusType.tag enum -> rw uchar_obj ptr') fptr
+ val f : MLRep.Signed.int -> rw uchar_obj ptr
+ val f' : MLRep.Signed.int -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_36.typ
+ fun fptr () = mk_fptr (FPtrRTTI_36.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Cvt.i2c_enum x1))
+ fun f' x1 = call (fptr (), Cvt.i2c_enum x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":214.1-34] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQreset"
+in
+structure F_PQreset : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> unit
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_16.typ
+ fun fptr () = mk_fptr (FPtrRTTI_16.mkcall, h ())
+ fun f x1 = call (fptr (), Light.ptr x1)
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":211.1-59] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQresetPoll"
+in
+structure F_PQresetPoll : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ ET_'PostgresPollingStatusType.tag enum) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ ET_'PostgresPollingStatusType.tag enum) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_6.typ
+ fun fptr () = mk_fptr (FPtrRTTI_6.mkcall, h ())
+ fun f x1 = Cvt.c2i_enum (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.c2i_enum (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":210.1-38] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQresetStart"
+in
+structure F_PQresetStart : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_9.typ
+ fun fptr () = mk_fptr (FPtrRTTI_9.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":298.1-55] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQresultErrorMessage"
+in
+structure F_PQresultErrorMessage : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_30.typ
+ fun fptr () = mk_fptr (FPtrRTTI_30.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":296.1-58] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQresultStatus"
+in
+structure F_PQresultStatus : sig
+ val typ :
+ ((ST_pg_result.tag, ro) su_obj ptr' ->
+ ET_'ExecStatusType.tag enum) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_result.tag, ro) su_obj ptr' ->
+ ET_'ExecStatusType.tag enum) fptr
+ val f : (ST_pg_result.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_result.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_37.typ
+ fun fptr () = mk_fptr (FPtrRTTI_37.mkcall, h ())
+ fun f x1 = Cvt.c2i_enum (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.c2i_enum (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":262.1-56] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQsendQuery"
+in
+structure F_PQsendQuery : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * ro uchar_obj ptr ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_34.typ
+ fun fptr () = mk_fptr (FPtrRTTI_34.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Light.ptr x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":232.1-67] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQsetClientEncoding"
+in
+structure F_PQsetClientEncoding : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * ro uchar_obj ptr ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_34.typ
+ fun fptr () = mk_fptr (FPtrRTTI_34.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Light.ptr x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":245.1-247.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQsetNoticeProcessor"
+in
+structure F_PQsetNoticeProcessor : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ (voidptr * ro uchar_obj ptr' -> unit) fptr' *
+ voidptr -> (voidptr * ro uchar_obj ptr' -> unit) fptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ (voidptr * ro uchar_obj ptr' -> unit) fptr' *
+ voidptr -> (voidptr * ro uchar_obj ptr' -> unit) fptr') fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ (voidptr * ro uchar_obj ptr' -> unit) fptr *
+ voidptr -> (voidptr * ro uchar_obj ptr' -> unit) fptr
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ (voidptr * ro uchar_obj ptr' -> unit) fptr' *
+ voidptr -> (voidptr * ro uchar_obj ptr' -> unit) fptr'
+end = struct
+ val typ = FPtrRTTI_38.typ
+ fun fptr () = mk_fptr (FPtrRTTI_38.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Heavy.fptr
+ FPtrRTTI_0.typ
+ (call (fptr (), (Light.ptr x1, Light.fptr x2, x3)))
+ fun f' (x1, x2, x3) = call (fptr (), (x1, x2, x3))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":188.1-191.40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQsetdbLogin"
+in
+structure F_PQsetdbLogin : sig
+ val typ :
+ (ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ (ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr
+ val f' :
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr'
+end = struct
+ val typ = FPtrRTTI_39.typ
+ fun fptr () = mk_fptr (FPtrRTTI_39.mkcall, h ())
+ fun f' (x1, x2, x3, x4, x5, x6, x7)
+ = call (fptr (), (x1, x2, x3, x4, x5, x6, x7))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":277.1-51] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQsetnonblocking"
+in
+structure F_PQsetnonblocking : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_40.typ
+ fun fptr () = mk_fptr (FPtrRTTI_40.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":229.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQsocket"
+in
+structure F_PQsocket : sig
+ val typ : ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_1.typ
+ fun fptr () = mk_fptr (FPtrRTTI_1.mkcall, h ())
+ fun f x1 = Cvt.ml_sint (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.ml_sint (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":227.1-51] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQstatus"
+in
+structure F_PQstatus : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> ET_'ConnStatusType.tag enum) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' ->
+ ET_'ConnStatusType.tag enum) fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> MLRep.Signed.int
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_41.typ
+ fun fptr () = mk_fptr (FPtrRTTI_41.mkcall, h ())
+ fun f x1 = Cvt.c2i_enum (call (fptr (), Light.ptr x1))
+ fun f' x1 = Cvt.c2i_enum (call (fptr (), x1))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":241.1-52] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQtrace"
+in
+structure F_PQtrace : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' -> unit) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * (ST__IO_FILE.tag, rw) su_obj ptr ->
+ unit
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_42.typ
+ fun fptr () = mk_fptr (FPtrRTTI_42.mkcall, h ())
+ fun f (x1, x2) = call (fptr (), (Light.ptr x1, Light.ptr x2))
+ fun f' (x1, x2) = call (fptr (), (x1, x2))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":225.1-39] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQtty"
+in
+structure F_PQtty : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":242.1-36] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQuntrace"
+in
+structure F_PQuntrace : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr T.typ
+ val fptr : unit -> ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr
+ val f : (ST_pg_conn.tag, rw) su_obj ptr -> unit
+ val f' : (ST_pg_conn.tag, rw) su_obj ptr' -> unit
+end = struct
+ val typ = FPtrRTTI_16.typ
+ fun fptr () = mk_fptr (FPtrRTTI_16.mkcall, h ())
+ fun f x1 = call (fptr (), Light.ptr x1)
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":221.1-40] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "PQuser"
+in
+structure F_PQuser : sig
+ val typ :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr
+ val f : (ST_pg_conn.tag, ro) su_obj ptr -> rw uchar_obj ptr
+ val f' : (ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr'
+end = struct
+ val typ = FPtrRTTI_10.typ
+ fun fptr () = mk_fptr (FPtrRTTI_10.mkcall, h ())
+ fun f x1
+ = Heavy.ptr (T.pointer T.uchar) (call (fptr (), Light.ptr x1))
+ fun f' x1 = call (fptr (), x1)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":356.1-42] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_close"
+in
+structure F_lo_close : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_40.typ
+ fun fptr () = mk_fptr (FPtrRTTI_40.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":360.1-44] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_creat"
+in
+structure F_lo_creat : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> uint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> uint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Unsigned.word
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Unsigned.word
+end = struct
+ val typ = FPtrRTTI_43.typ
+ fun fptr () = mk_fptr (FPtrRTTI_43.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_uint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_uint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":364.1-69] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_export"
+in
+structure F_lo_export : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint * ro uchar_obj ptr' ->
+ sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint * ro uchar_obj ptr' ->
+ sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ MLRep.Unsigned.word *
+ ro uchar_obj ptr -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ MLRep.Unsigned.word *
+ ro uchar_obj ptr' -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_44.typ
+ fun fptr () = mk_fptr (FPtrRTTI_44.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Cvt.c_uint x2, Light.ptr x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_uint x2, x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":363.1-57] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_import"
+in
+structure F_lo_import : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> uint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> uint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * ro uchar_obj ptr ->
+ MLRep.Unsigned.word
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ MLRep.Unsigned.word
+end = struct
+ val typ = FPtrRTTI_45.typ
+ fun fptr () = mk_fptr (FPtrRTTI_45.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_uint (call (fptr (), (Light.ptr x1, Light.ptr x2)))
+ fun f' (x1, x2) = Cvt.ml_uint (call (fptr (), (x1, x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":359.1-66] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_lseek"
+in
+structure F_lo_lseek : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * sint * sint * sint -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * sint * sint * sint ->
+ sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ MLRep.Signed.int *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ MLRep.Signed.int *
+ MLRep.Signed.int *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_46.typ
+ fun fptr () = mk_fptr (FPtrRTTI_46.mkcall, h ())
+ fun f (x1, x2, x3, x4)
+ = Cvt.ml_sint
+ (call
+ (fptr (),
+ (Light.ptr x1,
+ Cvt.c_sint x2,
+ Cvt.c_sint x3,
+ Cvt.c_sint x4)))
+ fun f' (x1, x2, x3, x4)
+ = Cvt.ml_sint
+ (call
+ (fptr (),
+ (x1, Cvt.c_sint x2, Cvt.c_sint x3, Cvt.c_sint x4)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":355.1-55] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_open"
+in
+structure F_lo_open : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint * sint -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint * sint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ MLRep.Unsigned.word *
+ MLRep.Signed.int -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ MLRep.Unsigned.word *
+ MLRep.Signed.int -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_47.typ
+ fun fptr () = mk_fptr (FPtrRTTI_47.mkcall, h ())
+ fun f (x1, x2, x3)
+ = Cvt.ml_sint
+ (call
+ (fptr (), (Light.ptr x1, Cvt.c_uint x2, Cvt.c_sint x3)))
+ fun f' (x1, x2, x3)
+ = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_uint x2, Cvt.c_sint x3)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":357.1-64] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_read"
+in
+structure F_lo_read : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw uchar_obj ptr' *
+ uint -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw uchar_obj ptr' *
+ uint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ MLRep.Signed.int *
+ rw uchar_obj ptr *
+ MLRep.Unsigned.word -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ MLRep.Signed.int *
+ rw uchar_obj ptr' *
+ MLRep.Unsigned.word -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_48.typ
+ fun fptr () = mk_fptr (FPtrRTTI_48.mkcall, h ())
+ fun f (x1, x2, x3, x4)
+ = Cvt.ml_sint
+ (call
+ (fptr (),
+ (Light.ptr x1,
+ Cvt.c_sint x2,
+ Light.ptr x3,
+ Cvt.c_uint x4)))
+ fun f' (x1, x2, x3, x4)
+ = Cvt.ml_sint
+ (call (fptr (), (x1, Cvt.c_sint x2, x3, Cvt.c_uint x4)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":361.1-41] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_tell"
+in
+structure F_lo_tell : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * MLRep.Signed.int ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * MLRep.Signed.int ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_40.typ
+ fun fptr () = mk_fptr (FPtrRTTI_40.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_sint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_sint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":362.1-47] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_unlink"
+in
+structure F_lo_unlink : sig
+ val typ : ((ST_pg_conn.tag, rw) su_obj ptr' * uint -> sint) fptr T.typ
+ val fptr :
+ unit -> ((ST_pg_conn.tag, rw) su_obj ptr' * uint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr * MLRep.Unsigned.word ->
+ MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' * MLRep.Unsigned.word ->
+ MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_49.typ
+ fun fptr () = mk_fptr (FPtrRTTI_49.mkcall, h ())
+ fun f (x1, x2)
+ = Cvt.ml_sint (call (fptr (), (Light.ptr x1, Cvt.c_uint x2)))
+ fun f' (x1, x2) = Cvt.ml_sint (call (fptr (), (x1, Cvt.c_uint x2)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":358.1-65] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ open C.Dim C_Int
+ val h = LibpqH.libh "lo_write"
+in
+structure F_lo_write : sig
+ val typ :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw uchar_obj ptr' *
+ uint -> sint) fptr T.typ
+ val fptr :
+ unit ->
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw uchar_obj ptr' *
+ uint -> sint) fptr
+ val f :
+ (ST_pg_conn.tag, rw) su_obj ptr *
+ MLRep.Signed.int *
+ rw uchar_obj ptr *
+ MLRep.Unsigned.word -> MLRep.Signed.int
+ val f' :
+ (ST_pg_conn.tag, rw) su_obj ptr' *
+ MLRep.Signed.int *
+ rw uchar_obj ptr' *
+ MLRep.Unsigned.word -> MLRep.Signed.int
+end = struct
+ val typ = FPtrRTTI_48.typ
+ fun fptr () = mk_fptr (FPtrRTTI_48.mkcall, h ())
+ fun f (x1, x2, x3, x4)
+ = Cvt.ml_sint
+ (call
+ (fptr (),
+ (Light.ptr x1,
+ Cvt.c_sint x2,
+ Light.ptr x3,
+ Cvt.c_uint x4)))
+ fun f' (x1, x2, x3, x4)
+ = Cvt.ml_sint
+ (call (fptr (), (x1, Cvt.c_sint x2, x3, Cvt.c_uint x4)))
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_0 = struct
+ fun mkcall a (x1, x2)
+ = Callop_0.callop
+ (a,
+ (CMemory.wrap_addr (reveal x1),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2))),
+ nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ (voidptr * ro uchar_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_1 = struct
+ fun mkcall a x1
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_1.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_10 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_3.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_11 = struct
+ fun mkcall a (x1, x2, x3, x4, x5, x6)
+ = Callop_5.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_sint (Cvt.ml_sint x3),
+ CMemory.wrap_addr (reveal (Ptr.inject' x4)),
+ CMemory.wrap_sint (Cvt.ml_sint x5),
+ CMemory.wrap_sint (Cvt.ml_sint x6)),
+ nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ sint *
+ ro uchar_obj ptr' *
+ sint *
+ sint -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_12 = struct
+ fun mkcall a ()
+ = Cvt.c_sint (CMemory.unwrap_sint (Callop_6.callop (a, (), nil)))
+ val typ = mk_fptr_typ mkcall : (unit -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_13 = struct
+ fun mkcall a (x1, x2, x3)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_7.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_uint (Cvt.ml_uint x2),
+ CMemory.wrap_addr (reveal (Ptr.inject' x3))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ (rw uchar_obj ptr' * uint * rw uint_obj ptr' ->
+ rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_14 = struct
+ fun mkcall a (x1, x2, x3)
+ = Cvt.c_uint
+ (CMemory.unwrap_uint
+ (Callop_8.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_uint (Cvt.ml_uint x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ (rw uchar_obj ptr' * ro uchar_obj ptr' * uint -> uint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_15 = struct
+ fun mkcall a (x1, x2)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_9.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_16 = struct
+ fun mkcall a x1
+ = Callop_2.callop
+ (a, CMemory.wrap_addr (reveal (Ptr.inject' x1)), nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_17 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_10.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_18 = struct
+ fun mkcall a (x1, x2, x3, x4, x5, x6, x7)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_11.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2),
+ CMemory.wrap_addr (reveal (Ptr.inject' x3)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x4)),
+ CMemory.wrap_sint (Cvt.ml_sint x5),
+ CMemory.wrap_addr (reveal (Ptr.inject' x6)),
+ CMemory.wrap_sint (Cvt.ml_sint x7)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw sint_obj ptr' *
+ rw sint_obj ptr' *
+ sint *
+ (ST_'PQArgBlock.tag, ro) su_obj ptr' *
+ sint -> (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_19 = struct
+ fun mkcall a (x1, x2)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_12.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint ->
+ rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_2 = struct
+ fun mkcall a x1
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_1.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_20 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_13.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' * ro uchar_obj ptr' ->
+ sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_21 = struct
+ fun mkcall a x1
+ = Callop_2.callop
+ (a, CMemory.wrap_addr (reveal (Ptr.inject' x1)), nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pgNotify.tag, rw) su_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_22 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_uint
+ (CMemory.unwrap_uint
+ (Callop_14.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint -> uint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_23 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_3.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_24 = struct
+ fun mkcall a (x1, x2, x3)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_15.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2),
+ CMemory.wrap_sint (Cvt.ml_sint x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_25 = struct
+ fun mkcall a (x1, x2, x3)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_16.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_sint (Cvt.ml_sint x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * rw uchar_obj ptr' * sint ->
+ sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_26 = struct
+ fun mkcall a (x1, x2, x3)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_17.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2),
+ CMemory.wrap_sint (Cvt.ml_sint x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' * sint * sint ->
+ rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_27 = struct
+ fun mkcall a (x1, x2)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_12.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.c2i_enum x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ ET_'ExecStatusType.tag enum ->
+ (ST_pg_result.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_28 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_10.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall : (ro uchar_obj ptr' * sint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_29 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_3.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ (ST_pgNotify.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_3 = struct
+ fun mkcall a x1
+ = Callop_2.callop
+ (a, CMemory.wrap_addr (reveal (Ptr.inject' x1)), nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, rw) su_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_30 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_3.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_31 = struct
+ fun mkcall a x1
+ = Cvt.c_uint
+ (CMemory.unwrap_uint
+ (Callop_18.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' -> uint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_32 = struct
+ fun mkcall a (x1, x2, x3)
+ = Callop_19.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x3))),
+ nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST__IO_FILE.tag, rw) su_obj ptr' *
+ (ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__PQprintOpt.tag, ro) su_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_33 = struct
+ fun mkcall a (x1, x2, x3, x4, x5)
+ = Callop_20.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_sint (Cvt.ml_sint x3),
+ CMemory.wrap_sint (Cvt.ml_sint x4),
+ CMemory.wrap_sint (Cvt.ml_sint x5)),
+ nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' *
+ sint *
+ sint *
+ sint -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_34 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_13.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_35 = struct
+ fun mkcall a (x1, x2, x3)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_16.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_sint (Cvt.ml_sint x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' * sint ->
+ sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_36 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_21.callop
+ (a, CMemory.wrap_sint (Cvt.c2i_enum x1), nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ (ET_'ExecStatusType.tag enum -> rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_37 = struct
+ fun mkcall a x1
+ = Cvt.i2c_enum
+ (CMemory.unwrap_sint
+ (Callop_1.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, ro) su_obj ptr' ->
+ ET_'ExecStatusType.tag enum) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_38 = struct
+ fun mkcall a (x1, x2, x3)
+ = fcast
+ (CMemory.unwrap_addr
+ (Callop_22.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (freveal x2),
+ CMemory.wrap_addr (reveal x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ (voidptr * ro uchar_obj ptr' -> unit) fptr' *
+ voidptr -> (voidptr * ro uchar_obj ptr' -> unit) fptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_39 = struct
+ fun mkcall a (x1, x2, x3, x4, x5, x6, x7)
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_23.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x3)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x4)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x5)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x6)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x7))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ (ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' *
+ ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_4 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_3.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_result.tag, rw) su_obj ptr' -> rw uchar_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_40 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_10.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_41 = struct
+ fun mkcall a x1
+ = Cvt.i2c_enum
+ (CMemory.unwrap_sint
+ (Callop_1.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, ro) su_obj ptr' ->
+ ET_'ConnStatusType.tag enum) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_42 = struct
+ fun mkcall a (x1, x2)
+ = Callop_0.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2))),
+ nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ (ST__IO_FILE.tag, rw) su_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_43 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_uint
+ (CMemory.unwrap_uint
+ (Callop_14.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * sint -> uint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_44 = struct
+ fun mkcall a (x1, x2, x3)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_24.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_uint (Cvt.ml_uint x2),
+ CMemory.wrap_addr (reveal (Ptr.inject' x3))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint * ro uchar_obj ptr' ->
+ sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_45 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_uint
+ (CMemory.unwrap_uint
+ (Callop_25.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_addr (reveal (Ptr.inject' x2))),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * ro uchar_obj ptr' -> uint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_46 = struct
+ fun mkcall a (x1, x2, x3, x4)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_26.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2),
+ CMemory.wrap_sint (Cvt.ml_sint x3),
+ CMemory.wrap_sint (Cvt.ml_sint x4)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * sint * sint * sint ->
+ sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_47 = struct
+ fun mkcall a (x1, x2, x3)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_27.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_uint (Cvt.ml_uint x2),
+ CMemory.wrap_sint (Cvt.ml_sint x3)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint * sint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_48 = struct
+ fun mkcall a (x1, x2, x3, x4)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_28.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_sint (Cvt.ml_sint x2),
+ CMemory.wrap_addr (reveal (Ptr.inject' x3)),
+ CMemory.wrap_uint (Cvt.ml_uint x4)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' *
+ sint *
+ rw uchar_obj ptr' *
+ uint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_49 = struct
+ fun mkcall a (x1, x2)
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_29.callop
+ (a,
+ (CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ CMemory.wrap_uint (Cvt.ml_uint x2)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' * uint -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_5 = struct
+ fun mkcall a ()
+ = pcast (CMemory.unwrap_addr (Callop_4.callop (a, (), nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ (unit -> (ST__PQconninfoOption.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_6 = struct
+ fun mkcall a x1
+ = Cvt.i2c_enum
+ (CMemory.unwrap_sint
+ (Callop_1.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' ->
+ ET_'PostgresPollingStatusType.tag enum) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_7 = struct
+ fun mkcall a x1
+ = pcast
+ (CMemory.unwrap_addr
+ (Callop_3.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ (ro uchar_obj ptr' -> (ST_pg_conn.tag, rw) su_obj ptr') fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_8 = struct
+ fun mkcall a x1
+ = Callop_2.callop
+ (a, CMemory.wrap_addr (reveal (Ptr.inject' x1)), nil)
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST__PQconninfoOption.tag, rw) su_obj ptr' -> unit) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure FPtrRTTI_9 = struct
+ fun mkcall a x1
+ = Cvt.c_sint
+ (CMemory.unwrap_sint
+ (Callop_1.callop
+ (a,
+ CMemory.wrap_addr (reveal (Ptr.inject' x1)),
+ nil)))
+ val typ =
+ mk_fptr_typ mkcall :
+ ((ST_pg_conn.tag, rw) su_obj ptr' -> sint) fptr T.typ
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+(primitive c-int)
+library
+ structure ST_pg_conn
+ structure F_lo_write
+ structure F_lo_unlink
+ structure F_lo_tell
+ structure F_lo_read
+ structure F_lo_open
+ structure F_lo_lseek
+ structure F_lo_import
+ structure F_lo_export
+ structure F_lo_creat
+ structure F_lo_close
+ structure F_PQuser
+ structure F_PQuntrace
+ structure F_PQtty
+ structure F_PQtrace
+ structure F_PQstatus
+ structure F_PQsocket
+ structure F_PQsetnonblocking
+ structure F_PQsetdbLogin
+ structure F_PQsetNoticeProcessor
+ structure F_PQsetClientEncoding
+ structure F_PQsendQuery
+ structure F_PQresultStatus
+ structure F_PQresultErrorMessage
+ structure F_PQresetStart
+ structure F_PQresetPoll
+ structure F_PQreset
+ structure F_PQresStatus
+ structure F_PQrequestCancel
+ structure F_PQputnbytes
+ structure F_PQputline
+ structure F_PQprintTuples
+ structure F_PQprint
+ structure F_PQport
+ structure F_PQpass
+ structure F_PQoptions
+ structure F_PQoidValue
+ structure F_PQoidStatus
+ structure F_PQntuples
+ structure F_PQnotifies
+ structure F_PQnfields
+ structure F_PQmblen
+ structure F_PQmakeEmptyPGresult
+ structure F_PQisnonblocking
+ structure F_PQisBusy
+ structure F_PQhost
+ structure F_PQgetvalue
+ structure F_PQgetlineAsync
+ structure F_PQgetline
+ structure F_PQgetlength
+ structure F_PQgetisnull
+ structure F_PQgetResult
+ structure F_PQftype
+ structure F_PQfsize
+ structure F_PQfreeNotify
+ structure F_PQfnumber
+ structure F_PQfname
+ structure F_PQfn
+ structure F_PQfmod
+ structure F_PQflush
+ structure F_PQfinish
+ structure F_PQexec
+ structure F_PQescapeString
+ structure F_PQescapeBytea
+ structure F_PQerrorMessage
+ structure F_PQenv2encoding
+ structure F_PQendcopy
+ structure F_PQdisplayTuples
+ structure F_PQdb
+ structure F_PQconsumeInput
+ structure F_PQconninfoFree
+ structure F_PQconnectdb
+ structure F_PQconnectStart
+ structure F_PQconnectPoll
+ structure F_PQconndefaults
+ structure F_PQcmdTuples
+ structure F_PQcmdStatus
+ structure F_PQclientEncoding
+ structure F_PQclear
+ structure F_PQbinaryTuples
+ structure F_PQbackendPID
+ structure T_pqbool
+ structure T_PostgresPollingStatusType
+ structure T_PQprintOpt
+ structure T_PQnoticeProcessor
+ structure T_PQconninfoOption
+ structure T_PQArgBlock
+ structure T_PGnotify
+ structure T_ExecStatusType
+ structure T_ConnStatusType
+ structure E_'PostgresPollingStatusType
+ structure E_'ExecStatusType
+ structure E_'ConnStatusType
+ structure U_'PQArgBlock'0
+ structure S_pgNotify
+ structure S__PQprintOpt
+ structure S__PQconninfoOption
+ structure S_'PQArgBlock
+is
+ $/basis.cm
+ $c/internals/c-int.cm
+ $smlnj/init/init.cmi : cm
+ f-lo_write.sml(noguid)
+ f-lo_unlink.sml(noguid)
+ f-lo_tell.sml(noguid)
+ f-lo_read.sml(noguid)
+ f-lo_open.sml(noguid)
+ f-lo_lseek.sml(noguid)
+ f-lo_import.sml(noguid)
+ f-lo_export.sml(noguid)
+ f-lo_creat.sml(noguid)
+ f-lo_close.sml(noguid)
+ f-PQuser.sml(noguid)
+ f-PQuntrace.sml(noguid)
+ f-PQtty.sml(noguid)
+ f-PQtrace.sml(noguid)
+ f-PQstatus.sml(noguid)
+ f-PQsocket.sml(noguid)
+ f-PQsetnonblocking.sml(noguid)
+ f-PQsetdbLogin.sml(noguid)
+ f-PQsetNoticeProcessor.sml(noguid)
+ f-PQsetClientEncoding.sml(noguid)
+ f-PQsendQuery.sml(noguid)
+ f-PQresultStatus.sml(noguid)
+ f-PQresultErrorMessage.sml(noguid)
+ f-PQresetStart.sml(noguid)
+ f-PQresetPoll.sml(noguid)
+ f-PQreset.sml(noguid)
+ f-PQresStatus.sml(noguid)
+ f-PQrequestCancel.sml(noguid)
+ f-PQputnbytes.sml(noguid)
+ f-PQputline.sml(noguid)
+ f-PQprintTuples.sml(noguid)
+ f-PQprint.sml(noguid)
+ f-PQport.sml(noguid)
+ f-PQpass.sml(noguid)
+ f-PQoptions.sml(noguid)
+ f-PQoidValue.sml(noguid)
+ f-PQoidStatus.sml(noguid)
+ f-PQntuples.sml(noguid)
+ f-PQnotifies.sml(noguid)
+ f-PQnfields.sml(noguid)
+ f-PQmblen.sml(noguid)
+ f-PQmakeEmptyPGresult.sml(noguid)
+ f-PQisnonblocking.sml(noguid)
+ f-PQisBusy.sml(noguid)
+ f-PQhost.sml(noguid)
+ f-PQgetvalue.sml(noguid)
+ f-PQgetlineAsync.sml(noguid)
+ f-PQgetline.sml(noguid)
+ f-PQgetlength.sml(noguid)
+ f-PQgetisnull.sml(noguid)
+ f-PQgetResult.sml(noguid)
+ f-PQftype.sml(noguid)
+ f-PQfsize.sml(noguid)
+ f-PQfreeNotify.sml(noguid)
+ f-PQfnumber.sml(noguid)
+ f-PQfname.sml(noguid)
+ f-PQfn.sml(noguid)
+ f-PQfmod.sml(noguid)
+ f-PQflush.sml(noguid)
+ f-PQfinish.sml(noguid)
+ f-PQexec.sml(noguid)
+ f-PQescapeString.sml(noguid)
+ f-PQescapeBytea.sml(noguid)
+ f-PQerrorMessage.sml(noguid)
+ f-PQenv2encoding.sml(noguid)
+ f-PQendcopy.sml(noguid)
+ f-PQdisplayTuples.sml(noguid)
+ f-PQdb.sml(noguid)
+ f-PQconsumeInput.sml(noguid)
+ f-PQconninfoFree.sml(noguid)
+ f-PQconnectdb.sml(noguid)
+ f-PQconnectStart.sml(noguid)
+ f-PQconnectPoll.sml(noguid)
+ f-PQconndefaults.sml(noguid)
+ f-PQcmdTuples.sml(noguid)
+ f-PQcmdStatus.sml(noguid)
+ f-PQclientEncoding.sml(noguid)
+ f-PQclear.sml(noguid)
+ f-PQbinaryTuples.sml(noguid)
+ f-PQbackendPID.sml(noguid)
+ t-pqbool.sml(noguid)
+ t-PostgresPollingStatusType.sml(noguid)
+ t-PQprintOpt.sml(noguid)
+ t-PQnoticeProcessor.sml(noguid)
+ t-PQconninfoOption.sml(noguid)
+ t-PQArgBlock.sml(noguid)
+ t-PGnotify.sml(noguid)
+ t-ExecStatusType.sml(noguid)
+ t-ConnStatusType.sml(noguid)
+ e--PostgresPollingStatusType.sml(noguid)
+ e--ExecStatusType.sml(noguid)
+ e--ConnStatusType.sml(noguid)
+ u--PQArgBlock-0.sml(noguid)
+ s-pgNotify.sml(noguid)
+ s-_PQprintOpt.sml(noguid)
+ s-_PQconninfoOption.sml(noguid)
+ s--PQArgBlock.sml(noguid)
+ st-pg_result.sml(noguid)
+ st-pg_conn.sml(noguid)
+ st-_IO_FILE.sml(noguid)
+ et--PostgresPollingStatusType.sml(noguid)
+ et--ExecStatusType.sml(noguid)
+ et--ConnStatusType.sml(noguid)
+ ut--PQArgBlock-0.sml(noguid)
+ st-pgNotify.sml(noguid)
+ st-_PQprintOpt.sml(noguid)
+ st-_PQconninfoOption.sml(noguid)
+ st--PQArgBlock.sml(noguid)
+ callop-29.sml(noguid)
+ fptr-rtti-49.sml(noguid)
+ callop-28.sml(noguid)
+ fptr-rtti-48.sml(noguid)
+ callop-27.sml(noguid)
+ fptr-rtti-47.sml(noguid)
+ callop-26.sml(noguid)
+ fptr-rtti-46.sml(noguid)
+ callop-25.sml(noguid)
+ fptr-rtti-45.sml(noguid)
+ callop-24.sml(noguid)
+ fptr-rtti-44.sml(noguid)
+ fptr-rtti-43.sml(noguid)
+ fptr-rtti-42.sml(noguid)
+ fptr-rtti-41.sml(noguid)
+ fptr-rtti-40.sml(noguid)
+ callop-23.sml(noguid)
+ fptr-rtti-39.sml(noguid)
+ callop-22.sml(noguid)
+ fptr-rtti-38.sml(noguid)
+ fptr-rtti-37.sml(noguid)
+ callop-21.sml(noguid)
+ fptr-rtti-36.sml(noguid)
+ fptr-rtti-35.sml(noguid)
+ fptr-rtti-34.sml(noguid)
+ callop-20.sml(noguid)
+ fptr-rtti-33.sml(noguid)
+ callop-19.sml(noguid)
+ fptr-rtti-32.sml(noguid)
+ callop-18.sml(noguid)
+ fptr-rtti-31.sml(noguid)
+ fptr-rtti-30.sml(noguid)
+ fptr-rtti-29.sml(noguid)
+ fptr-rtti-28.sml(noguid)
+ fptr-rtti-27.sml(noguid)
+ callop-17.sml(noguid)
+ fptr-rtti-26.sml(noguid)
+ callop-16.sml(noguid)
+ fptr-rtti-25.sml(noguid)
+ callop-15.sml(noguid)
+ fptr-rtti-24.sml(noguid)
+ fptr-rtti-23.sml(noguid)
+ callop-14.sml(noguid)
+ fptr-rtti-22.sml(noguid)
+ fptr-rtti-21.sml(noguid)
+ callop-13.sml(noguid)
+ fptr-rtti-20.sml(noguid)
+ callop-12.sml(noguid)
+ fptr-rtti-19.sml(noguid)
+ callop-11.sml(noguid)
+ fptr-rtti-18.sml(noguid)
+ callop-10.sml(noguid)
+ fptr-rtti-17.sml(noguid)
+ fptr-rtti-16.sml(noguid)
+ callop-9.sml(noguid)
+ fptr-rtti-15.sml(noguid)
+ callop-8.sml(noguid)
+ fptr-rtti-14.sml(noguid)
+ callop-7.sml(noguid)
+ fptr-rtti-13.sml(noguid)
+ callop-6.sml(noguid)
+ fptr-rtti-12.sml(noguid)
+ callop-5.sml(noguid)
+ fptr-rtti-11.sml(noguid)
+ fptr-rtti-10.sml(noguid)
+ fptr-rtti-9.sml(noguid)
+ fptr-rtti-8.sml(noguid)
+ fptr-rtti-7.sml(noguid)
+ fptr-rtti-6.sml(noguid)
+ callop-4.sml(noguid)
+ fptr-rtti-5.sml(noguid)
+ callop-3.sml(noguid)
+ fptr-rtti-4.sml(noguid)
+ callop-2.sml(noguid)
+ fptr-rtti-3.sml(noguid)
+ fptr-rtti-2.sml(noguid)
+ callop-1.sml(noguid)
+ fptr-rtti-1.sml(noguid)
+ callop-0.sml(noguid)
+ fptr-rtti-0.sml(noguid)
+ ../libpq-h.sml
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":163.1-172.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure S_'PQArgBlock = struct
+ open ST_'PQArgBlock
+ type t_f_len = sint
+ val typ_f_len = T.sint : t_f_len T.typ
+ fun f_len' (x : (tag, 'c) su_obj')
+ = mk_field' (0, x) : (t_f_len, 'c) obj'
+ fun f_len (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_len, 0, x)
+ type t_f_isint = sint
+ val typ_f_isint = T.sint : t_f_isint T.typ
+ fun f_isint' (x : (tag, 'c) su_obj')
+ = mk_field' (4, x) : (t_f_isint, 'c) obj'
+ fun f_isint (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_isint, 4, x)
+ type t_f_u = UT_'PQArgBlock'0.tag su
+ val typ_f_u = UT_'PQArgBlock'0.typ : t_f_u T.typ
+ fun f_u' (x : (tag, 'c) su_obj') = mk_field' (8, x) : (t_f_u, 'c) obj'
+ fun f_u (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_u, 8, x)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":144.1-157.19] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure S__PQconninfoOption = struct
+ open ST__PQconninfoOption
+ type t_f_keyword = rw uchar_obj ptr
+ val typ_f_keyword = T.pointer T.uchar : t_f_keyword T.typ
+ fun f_keyword' (x : (tag, 'c) su_obj')
+ = mk_field' (0, x) : (t_f_keyword, 'c) obj'
+ fun f_keyword (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_keyword, 0, x)
+ type t_f_envvar = rw uchar_obj ptr
+ val typ_f_envvar = T.pointer T.uchar : t_f_envvar T.typ
+ fun f_envvar' (x : (tag, 'c) su_obj')
+ = mk_field' (4, x) : (t_f_envvar, 'c) obj'
+ fun f_envvar (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_envvar, 4, x)
+ type t_f_compiled = rw uchar_obj ptr
+ val typ_f_compiled = T.pointer T.uchar : t_f_compiled T.typ
+ fun f_compiled' (x : (tag, 'c) su_obj')
+ = mk_field' (8, x) : (t_f_compiled, 'c) obj'
+ fun f_compiled (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_compiled, 8, x)
+ type t_f_val = rw uchar_obj ptr
+ val typ_f_val = T.pointer T.uchar : t_f_val T.typ
+ fun f_val' (x : (tag, 'c) su_obj')
+ = mk_field' (12, x) : (t_f_val, 'c) obj'
+ fun f_val (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_val, 12, x)
+ type t_f_label = rw uchar_obj ptr
+ val typ_f_label = T.pointer T.uchar : t_f_label T.typ
+ fun f_label' (x : (tag, 'c) su_obj')
+ = mk_field' (16, x) : (t_f_label, 'c) obj'
+ fun f_label (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_label, 16, x)
+ type t_f_dispchar = rw uchar_obj ptr
+ val typ_f_dispchar = T.pointer T.uchar : t_f_dispchar T.typ
+ fun f_dispchar' (x : (tag, 'c) su_obj')
+ = mk_field' (20, x) : (t_f_dispchar, 'c) obj'
+ fun f_dispchar (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_dispchar, 20, x)
+ type t_f_dispsize = sint
+ val typ_f_dispsize = T.sint : t_f_dispsize T.typ
+ fun f_dispsize' (x : (tag, 'c) su_obj')
+ = mk_field' (24, x) : (t_f_dispsize, 'c) obj'
+ fun f_dispsize (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_dispsize, 24, x)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":120.1-134.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure S__PQprintOpt = struct
+ open ST__PQprintOpt
+ type t_f_header = uchar
+ val typ_f_header = T.uchar : t_f_header T.typ
+ fun f_header' (x : (tag, 'c) su_obj')
+ = mk_field' (0, x) : (t_f_header, 'c) obj'
+ fun f_header (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_header, 0, x)
+ type t_f_align = uchar
+ val typ_f_align = T.uchar : t_f_align T.typ
+ fun f_align' (x : (tag, 'c) su_obj')
+ = mk_field' (1, x) : (t_f_align, 'c) obj'
+ fun f_align (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_align, 1, x)
+ type t_f_standard = uchar
+ val typ_f_standard = T.uchar : t_f_standard T.typ
+ fun f_standard' (x : (tag, 'c) su_obj')
+ = mk_field' (2, x) : (t_f_standard, 'c) obj'
+ fun f_standard (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_standard, 2, x)
+ type t_f_html3 = uchar
+ val typ_f_html3 = T.uchar : t_f_html3 T.typ
+ fun f_html3' (x : (tag, 'c) su_obj')
+ = mk_field' (3, x) : (t_f_html3, 'c) obj'
+ fun f_html3 (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_html3, 3, x)
+ type t_f_expanded = uchar
+ val typ_f_expanded = T.uchar : t_f_expanded T.typ
+ fun f_expanded' (x : (tag, 'c) su_obj')
+ = mk_field' (4, x) : (t_f_expanded, 'c) obj'
+ fun f_expanded (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_expanded, 4, x)
+ type t_f_pager = uchar
+ val typ_f_pager = T.uchar : t_f_pager T.typ
+ fun f_pager' (x : (tag, 'c) su_obj')
+ = mk_field' (5, x) : (t_f_pager, 'c) obj'
+ fun f_pager (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_pager, 5, x)
+ type t_f_fieldSep = rw uchar_obj ptr
+ val typ_f_fieldSep = T.pointer T.uchar : t_f_fieldSep T.typ
+ fun f_fieldSep' (x : (tag, 'c) su_obj')
+ = mk_field' (8, x) : (t_f_fieldSep, 'c) obj'
+ fun f_fieldSep (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_fieldSep, 8, x)
+ type t_f_tableOpt = rw uchar_obj ptr
+ val typ_f_tableOpt = T.pointer T.uchar : t_f_tableOpt T.typ
+ fun f_tableOpt' (x : (tag, 'c) su_obj')
+ = mk_field' (12, x) : (t_f_tableOpt, 'c) obj'
+ fun f_tableOpt (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_tableOpt, 12, x)
+ type t_f_caption = rw uchar_obj ptr
+ val typ_f_caption = T.pointer T.uchar : t_f_caption T.typ
+ fun f_caption' (x : (tag, 'c) su_obj')
+ = mk_field' (16, x) : (t_f_caption, 'c) obj'
+ fun f_caption (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_caption, 16, x)
+ type t_f_fieldName = (rw uchar_obj ptr, rw) obj ptr
+ val typ_f_fieldName =
+ T.pointer (T.pointer T.uchar) : t_f_fieldName T.typ
+ fun f_fieldName' (x : (tag, 'c) su_obj')
+ = mk_field' (20, x) : (t_f_fieldName, 'c) obj'
+ fun f_fieldName (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_fieldName, 20, x)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":106.1-111.11] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure S_pgNotify = struct
+ open ST_pgNotify
+ type t_f_relname = (uchar, dec dg3 dg2) arr
+ val typ_f_relname =
+ T.arr (T.uchar, dec dg3 dg2 dim) : t_f_relname T.typ
+ fun f_relname' (x : (tag, 'c) su_obj')
+ = mk_field' (0, x) : (t_f_relname, 'c) obj'
+ fun f_relname (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_relname, 0, x)
+ type t_f_be_pid = sint
+ val typ_f_be_pid = T.sint : t_f_be_pid T.typ
+ fun f_be_pid' (x : (tag, 'c) su_obj')
+ = mk_field' (32, x) : (t_f_be_pid, 'c) obj'
+ fun f_be_pid (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_be_pid, 32, x)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":163.1-172.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S_'PQArgBlock = struct
+ local
+ open Tag
+ in
+ type tag = s t_' t_P t_Q t_A t_r t_g t_B t_l t_o t_c t_k
+ end
+ val size = C_Int.mk_su_size 0wxc : tag C.su C.S.size
+ val typ = C_Int.mk_su_typ size
+ end
+in
+ structure ST_'PQArgBlock = S_'PQArgBlock
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S__IO_FILE = struct
+ local
+ open Tag
+ in
+ type tag = s t__ t_I t_O t__ t_F t_I t_L t_E
+ end
+ end
+in
+ structure ST__IO_FILE = S__IO_FILE
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":144.1-157.19] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S__PQconninfoOption = struct
+ local
+ open Tag
+ in
+ type tag =
+ s t__ t_P t_Q t_c t_o t_n t_n t_i t_n t_f t_o t_O t_p t_t t_i t_o t_n
+ end
+ val size = C_Int.mk_su_size 0wx1c : tag C.su C.S.size
+ val typ = C_Int.mk_su_typ size
+ end
+in
+ structure ST__PQconninfoOption = S__PQconninfoOption
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":120.1-134.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S__PQprintOpt = struct
+ local
+ open Tag
+ in
+ type tag = s t__ t_P t_Q t_p t_r t_i t_n t_t t_O t_p t_t
+ end
+ val size = C_Int.mk_su_size 0wx18 : tag C.su C.S.size
+ val typ = C_Int.mk_su_typ size
+ end
+in
+ structure ST__PQprintOpt = S__PQprintOpt
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":106.1-111.11] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S_pgNotify = struct
+ local
+ open Tag
+ in
+ type tag = s t_p t_g t_N t_o t_t t_i t_f t_y
+ end
+ val size = C_Int.mk_su_size 0wx24 : tag C.su C.S.size
+ val typ = C_Int.mk_su_typ size
+ end
+in
+ structure ST_pgNotify = S_pgNotify
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S_pg_conn = struct
+ local
+ open Tag
+ in
+ type tag = s t_p t_g t__ t_c t_o t_n t_n
+ end
+ end
+in
+ structure ST_pg_conn = S_pg_conn
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure S_pg_result = struct
+ local
+ open Tag
+ in
+ type tag = s t_p t_g t__ t_r t_e t_s t_u t_l t_t
+ end
+ end
+in
+ structure ST_pg_result = S_pg_result
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":38.1-60.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_ConnStatusType = struct
+ type t = ET_'ConnStatusType.tag enum T.typ
+ val typ = T.enum : ET_'ConnStatusType.tag enum T.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":71.1-86.17] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_ExecStatusType = struct
+ type t = ET_'ExecStatusType.tag enum T.typ
+ val typ = T.enum : ET_'ExecStatusType.tag enum T.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":106.1-111.11] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_PGnotify = struct
+ type t = ST_pgNotify.tag su T.typ
+ val typ = ST_pgNotify.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":163.1-172.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_PQArgBlock = struct
+ type t = ST_'PQArgBlock.tag su T.typ
+ val typ = ST_'PQArgBlock.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":144.1-157.19] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_PQconninfoOption = struct
+ type t = ST__PQconninfoOption.tag su T.typ
+ val typ = ST__PQconninfoOption.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":115.1-67] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_PQnoticeProcessor = struct
+ type t = (voidptr * ro uchar_obj ptr' -> unit) fptr T.typ
+ val typ = FPtrRTTI_0.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":120.1-134.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_PQprintOpt = struct
+ type t = ST__PQprintOpt.tag su T.typ
+ val typ = ST__PQprintOpt.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":62.1-69.28] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_PostgresPollingStatusType = struct
+ type t = ET_'PostgresPollingStatusType.tag enum T.typ
+ val typ = T.enum : ET_'PostgresPollingStatusType.tag enum T.typ : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":118.1-20] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C in
+structure T_pqbool = struct
+ type t = uchar T.typ
+ val typ = T.uchar : t
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":163.1-172.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local open C.Dim C_Int in
+structure U_'PQArgBlock'0 = struct
+ open UT_'PQArgBlock'0
+ type t_f_ptr = rw sint_obj ptr
+ val typ_f_ptr = T.pointer T.sint : t_f_ptr T.typ
+ fun f_ptr' (x : (tag, 'c) su_obj')
+ = mk_field' (0, x) : (t_f_ptr, 'c) obj'
+ fun f_ptr (x : (tag, 'c) su_obj) = mk_rw_field (typ_f_ptr, 0, x)
+ type t_f_integer = sint
+ val typ_f_integer = T.sint : t_f_integer T.typ
+ fun f_integer' (x : (tag, 'c) su_obj')
+ = mk_field' (0, x) : (t_f_integer, 'c) obj'
+ fun f_integer (x : (tag, 'c) su_obj)
+ = mk_rw_field (typ_f_integer, 0, x)
+end
+end
--- /dev/null
+(* This file has been generated automatically. DO NOT EDIT! *)
+(* [from code at "/usr/include/postgresql/libpq-fe.h":163.1-172.13] *)
+(* [by Matthias Blume's ml-nlffigen (version 0.9) for x86-unix] *)
+(* Send comments and suggestions to blume@research.bell-labs.com. Thanks! *)
+local
+ structure U_'PQArgBlock'0 = struct
+ local
+ open Tag
+ in
+ type tag =
+ u t_' t_P t_Q t_A t_r t_g t_B t_l t_o t_c t_k t_' t_0
+ end
+ val size = C_Int.mk_su_size 0wx4 : tag C.su C.S.size
+ val typ = C_Int.mk_su_typ size
+ end
+in
+ structure UT_'PQArgBlock'0 = U_'PQArgBlock'0
+end
--- /dev/null
+FILES = /usr/include/postgresql/libpq-fe.h
+H = LibpqH.libh
+D = FFI
+HF = ../libpq-h.sml
+CF = libpq.h.cm
+
+$(D)/$(CF): $(FILES)
+ ml-nlffigen -include $(HF) -libhandle $(H) -dir $(D) -cmfile $(CF) $^
\ No newline at end of file
--- /dev/null
+structure LibpqH = struct
+ local
+ val lh = DynLinkage.open_lib
+ { name = "/usr/lib/libpq.so", global = true, lazy = true }
+ in
+ fun libh s = let
+ val sh = DynLinkage.lib_symbol (lh, s)
+ in
+ fn () => DynLinkage.addr sh
+ end
+ end
+end
--- /dev/null
+(*
+ * SQL database interfaces for Standard ML
+ * Copyright (C) 2003 Adam Chlipala
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *)
+
+structure PgDriver :> SQL_DRIVER =
+struct
+ val print = TextIO.print
+
+ type conn = (ST_pg_conn.tag, C.rw) C.su_obj C.ptr'
+
+ exception Sql of string
+
+ fun cerrmsg con = Int32.toString (F_PQstatus.f' (C.Ptr.ro' con)) ^ ": "
+ ^ ZString.toML' (F_PQerrorMessage.f' (C.Ptr.ro' con))
+
+ fun errmsg (con, res, query) = Int32.toString (F_PQresultStatus.f' (C.Ptr.ro' res)) ^ ": " ^ ZString.toML' (F_PQresultErrorMessage.f' (C.Ptr.ro' res)) ^ ": " ^ ZString.toML' query
+
+ fun conn params =
+ let
+ val params = ZString.dupML' params
+ val c = F_PQconnectdb.f' params
+ val _ = C.free' params
+ in
+ if C.Ptr.isNull' c then
+ raise Sql "Null connection returned"
+ else
+ (case F_PQstatus.f' (C.Ptr.ro' c) of
+ 0 => c
+ | _ =>
+ let
+ val msg = cerrmsg c
+ in
+ F_PQfinish.f' c;
+ raise Sql msg
+ end)
+ end
+
+ fun close c = ignore (F_PQfinish.f' c)
+
+ fun dml c q =
+ let
+ val q = ZString.dupML' q
+ val res = F_PQexec.f' (c, q)
+ val roRes = C.Ptr.ro' res
+ val code = F_PQresultStatus.f' roRes
+ fun done () = (C.free' q;
+ F_PQclear.f' res)
+ in
+ case code of
+ 1 => (done ();
+ "")
+ | _ =>
+ let
+ val msg = errmsg (c, res, q)
+ in
+ done ();
+ raise Sql msg
+ end
+ end
+
+ fun fold c f b q =
+ let
+ val q = ZString.dupML' q
+ val res = F_PQexec.f' (c, q)
+ val roRes = C.Ptr.ro' res
+ fun done () = (C.free' q;
+ F_PQclear.f' res)
+
+ val code = F_PQresultStatus.f' roRes
+ in
+ case code of
+ 2 =>
+ let
+ val nt = F_PQntuples.f' roRes
+ val nf = F_PQnfields.f' roRes
+
+ fun builder (i, acc) =
+ if i = nt then
+ acc
+ else
+ let
+ fun build (~1, acc) = acc
+ | build (j, acc) =
+ build (j-1, ZString.toML' (F_PQgetvalue.f' (roRes, i, j)) :: acc)
+ in
+ builder (i+1, f (build (nf-1, []), acc))
+ end
+ in
+ builder (0, b)
+ before done ()
+ end
+ | code =>
+ let
+ val msg = errmsg (c, res, q)
+ in
+ done ();
+ raise Sql msg
+ end
+ end
+
+
+ type timestamp = Time.time
+ exception Format of string
+
+ fun intToSql n =
+ if n < 0 then
+ "-" ^ Int.toString(~n)
+ else
+ Int.toString n
+ fun intFromSql "" = 0
+ | intFromSql s =
+ (case Int.fromString s of
+ NONE => raise Format ("Bad integer: " ^ s)
+ | SOME n => n)
+
+ fun stringToSql s =
+ let
+ fun xch #"'" = "\\'"
+ | xch #"\n" = "\\n"
+ | xch #"\r" = "\\r"
+ | xch c = str c
+ in
+ foldl (fn (c, s) => s ^ xch c) "'" (String.explode s) ^ "'"
+ end
+ fun stringFromSql s = s
+
+ fun realToSql s =
+ if s < 0.0 then
+ "-" ^ Real.toString(~s)
+ else
+ Real.toString s
+ fun realFromSql "" = 0.0
+ | realFromSql s =
+ (case Real.fromString s of
+ NONE => raise Format ("Bad real: " ^ s)
+ | SOME r => r)
+ fun realToString s = realToSql s
+
+ fun toMonth m =
+ let
+ open Date
+ in
+ case m of
+ 1 => Jan
+ | 2 => Feb
+ | 3 => Mar
+ | 4 => Apr
+ | 5 => May
+ | 6 => Jun
+ | 7 => Jul
+ | 8 => Aug
+ | 9 => Sep
+ | 10 => Oct
+ | 11 => Nov
+ | 12 => Dec
+ | _ => raise Format "Invalid month number"
+ end
+
+ fun fromMonth m =
+ let
+ open Date
+ in
+ case m of
+ Jan => 1
+ | Feb => 2
+ | Mar => 3
+ | Apr => 4
+ | May => 5
+ | Jun => 6
+ | Jul => 7
+ | Aug => 8
+ | Sep => 9
+ | Oct => 10
+ | Nov => 11
+ | Dec => 12
+ end
+
+ fun pad' (s, 0) = s
+ | pad' (s, n) = pad' ("0" ^ s, n-1)
+ fun pad (n, i) = pad' (Int.toString n, i)
+
+ fun offsetStr NONE = "+00"
+ | offsetStr (SOME n) =
+ let
+ val n = Int32.toInt (Time.toSeconds n) div 3600
+ in
+ if n < 0 then
+ "-" ^ pad (~n, 2)
+ else
+ "+" ^ pad (n, 2)
+ end
+
+ fun timestampToSql t =
+ let
+ val d = Date.fromTimeLocal t
+ in
+ "'" ^ pad (Date.year d, 4) ^ "-" ^ pad (fromMonth (Date.month d), 2) ^ "-" ^ pad (Date.day d, 2) ^
+ " " ^ pad (Date.hour d, 2) ^ ":" ^ pad (Date.minute d, 2) ^ ":" ^ pad (Date.second d, 2) ^
+ ".000000+" ^ offsetStr (Date.offset d) ^ "'"
+ end
+ fun timestampFromSql s =
+ let
+ val tokens = String.tokens (fn ch => ch = #"-" orelse ch = #" " orelse ch = #":"
+ orelse ch = #"." orelse ch = #"+") s
+ in
+ case tokens of
+ [year, mon, day, hour, minute, second, _, offset] =>
+ Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute,
+ month = toMonth (intFromSql mon),
+ offset = SOME (Time.fromSeconds (Int32.fromInt (intFromSql offset * 3600))),
+ second = intFromSql second div 1000, year = intFromSql year})
+ | _ => raise Format "Invalid timestamp"
+ end
+
+
+ fun boolToSql true = "TRUE"
+ | boolToSql false = "FALSE"
+
+ fun boolFromSql "FALSE" = false
+ | boolFromSql "f" = false
+ | boolFromSql "false" = false
+ | boolFromSql "n" = false
+ | boolFromSql "no" = false
+ | boolFromSql "0" = false
+ | boolFromSql "" = false
+ | boolFromSql _ = true
+end
+
+structure PgClient = SqlClient(PgDriver)
\ No newline at end of file
--- /dev/null
+(*
+ * SQL database interfaces for Standard ML
+ * Copyright (C) 2003 Adam Chlipala
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *)
+
+library
+ library(FFI/libpq.h.cm)
+ structure PgClient
+is
+ ../smlsql.cm
+
+ $/basis.cm
+ $c/c.cm
+ FFI/libpq.h.cm (*: make ()*)
+
+ pg.sml
+ pg.sig
--- /dev/null
+(*
+ * SQL database interfaces for Standard ML
+ * Copyright (C) 2003 Adam Chlipala
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *)
+
+Library
+ signature SQL_DRIVER
+ signature SQL_CLIENT
+ functor SqlClient
+is
+ $/basis.cm
+
+ sql_driver.sig
+ sql_client.sig
+ sql_client.sml
--- /dev/null
+(*
+ * SQL database interfaces for Standard ML
+ * Copyright (C) 2003 Adam Chlipala
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *)
+
+(* Signature for a full-fledged client interface *)
+
+signature SQL_CLIENT =
+sig
+ include SQL_DRIVER
+
+ val query : conn -> string -> string list list
+ (* Get thr row results of an SQL query over a connection *)
+
+ val oneRow : conn -> string -> string list
+ (* Make a query that must return exactly one row *)
+ val oneOrNoRows : conn -> string -> string list option
+ (* Make a query that may return zero or one row *)
+
+ val app : conn -> (string list -> unit) -> string -> unit
+ (* Behaves like List.app over the results of a query *)
+ val map : conn -> (string list -> 'a) -> string -> 'a list
+ (* Behaves like List.map over the results of a query *)
+end
--- /dev/null
+(*
+ * SQL database interfaces for Standard ML
+ * Copyright (C) 2003 Adam Chlipala
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *)
+
+(* Functor for creating a client from a minimal driver *)
+
+functor SqlClient(Driver : SQL_DRIVER) :> SQL_CLIENT
+ where type conn = Driver.conn =
+struct
+ open Driver
+
+ fun oneOrNoRows conn query =
+ fold conn (fn (row, NONE) => SOME row
+ | (_, SOME _) => raise Sql "Expected one or zero rows; got multiple") NONE query
+
+ fun oneRow conn query =
+ (case oneOrNoRows conn query of
+ NONE => raise Sql "Expected one row; got none"
+ | SOME row => row)
+
+ fun app conn f q = fold conn (fn (row, ()) => f row) () q
+ fun map conn f q = List.rev (fold conn (fn (row, out) => (f row)::out) [] q)
+
+ fun query conn q = List.rev (fold conn op:: [] q)
+end
+
--- /dev/null
+(*
+ * SQL database interfaces for Standard ML
+ * Copyright (C) 2003 Adam Chlipala
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *)
+
+(* Signature to be implemented to make use of a new client *)
+
+signature SQL_DRIVER =
+sig
+ type conn
+ (* SQL client connection *)
+
+ exception Sql of string
+ (* All-purpose exception *)
+
+ val conn : string -> conn
+ (* Connect to a server based on a string of information *)
+ val close : conn -> unit
+ (* Close a connection *)
+ val dml : conn -> string -> string
+ (* Execute a DML command over a connection, returning a result message *)
+ val fold : conn -> (string list * 'a -> 'a) -> 'a -> string -> 'a
+ (* Behaves like List.foldl, applied over the result rows of a query *)
+
+ type timestamp = Time.time
+ exception Format of string
+
+ (* Conversions between SML values and their string representations from SQL queries *)
+ val intToSql : int -> string
+ val intFromSql : string -> int
+ val stringToSql : string -> string
+ val stringFromSql : string -> string
+ val timestampToSql : timestamp -> string
+ val timestampFromSql : string -> timestamp
+ val realToSql : real -> string
+ val realFromSql : string -> real
+ val boolToSql : bool -> string
+ val boolFromSql : string -> bool
+end