sig
  type ty_kind =
      SQL_TinyInt
    | SQL_MediumInt
    | SQL_Int
    | SQL_BigInt
    | SQL_Double
    | SQL_Float
    | SQL_Decimal
    | SQL_Char
    | SQL_VarChar
    | SQL_TinyBlob
    | SQL_Blob
    | SQL_MediumBlob
    | SQL_LongBlob
    | SQL_TinyText
    | SQL_Text
    | SQL_MediumText
    | SQL_LongText
  type ty_class = SQL_C_Int | SQL_C_Real | SQL_C_Char
  exception Invalid_type of string
  val kind_of_type : Dbf_sql.SQL_db.ty -> Dbf_sql.SQL_ty.ty_kind
  val kind_uses_display_width :
    Dbf_sql.SQL_ty.ty_kind -> Dbf_misc.yes_no_maybe
  val kind_uses_precision : Dbf_sql.SQL_ty.ty_kind -> Dbf_misc.yes_no_maybe
  val options_of_kind : Dbf_sql.SQL_ty.ty_kind -> string list
  val kind_string_assoc : (Dbf_sql.SQL_ty.ty_kind * string) list
  val numeric_opt_string_assoc :
    (Dbf_sql.SQL_db.numeric_option * string) list
  val string_of_kind : Dbf_sql.SQL_ty.ty_kind -> string
  val kind_of_string : string -> Dbf_sql.SQL_ty.ty_kind
  val class_of_kind : Dbf_sql.SQL_ty.ty_kind -> Dbf_sql.SQL_ty.ty_class
  val string_of_numeric_option : Dbf_sql.SQL_db.numeric_option -> string
  val numeric_option_of_string : string -> Dbf_sql.SQL_db.numeric_option
  val get_display_size : Dbf_sql.SQL_db.ty -> int option
  val get_precision : Dbf_sql.SQL_db.ty -> int option
  val get_options_as_string : Dbf_sql.SQL_db.ty -> string option
  val type_of_string :
    ?dispsize:int ->
    ?precision:int -> ?options:string -> string -> Dbf_sql.SQL_db.ty
  val string_of_type : Dbf_sql.SQL_db.ty -> string
  val string_of_type_options : Dbf_sql.SQL_db.ty -> string option
  val fullstring_of_type : Dbf_sql.SQL_db.ty -> string
end