sig
  val version : string
  type errno =
      CONTINUE
    | FAILURE
    | EDOM
    | ERANGE
    | EFAULT
    | EINVAL
    | EFAILED
    | EFACTOR
    | ESANITY
    | ENOMEM
    | EBADFUNC
    | ERUNAWAY
    | EMAXITER
    | EZERODIV
    | EBADTOL
    | ETOL
    | EUNDRFLW
    | EOVRFLW
    | ELOSS
    | EROUND
    | EBADLEN
    | ENOTSQR
    | ESING
    | EDIVERGE
    | EUNSUP
    | EUNIMPL
    | ECACHE
    | ETABLE
    | ENOPROG
    | ENOPROGJ
    | ETOLF
    | ETOLX
    | ETOLG
    | EOF
  exception Gsl_exn of (Gsl_error.errno * string)
  val init : unit -> unit
  val uninit : unit -> unit
  external strerror : Gsl_error.errno -> string = "ml_gsl_strerror"
  val string_of_errno : Gsl_error.errno -> string
  val pprint_exn : exn -> string
  val handle_exn : ('-> 'b) -> '-> 'b
end