sig
  type diag
  val unit : Slap_common.diag
  val non_unit : Slap_common.diag
  val char_of_diag : Slap_common.diag -> char
  type +'a uplo constraint 'a = [< `A | `L | `U ]
  val upper : [< `A | `L | `U > `U ] Slap_common.uplo
  val lower : [< `A | `L | `U > `L ] Slap_common.uplo
  val upper_lower : [< `A | `L | `U > `A ] Slap_common.uplo
  val char_of_uplo : [< `A | `L | `U ] Slap_common.uplo -> char
  type (+'indim, +'outdim, +'a) trans constraint 'a = [< `C | `N | `T ]
  type ('indim, 'outdim, +'a) trans2 =
      ('indim, 'outdim, 'a) Slap_common.trans
    constraint 'a = [< `N | `T ]
  type ('indim, 'outdim, +'a) trans3 =
      ('indim, 'outdim, 'a) Slap_common.trans
    constraint 'a = [< `C | `N | `T ]
  val normal : ('m * 'n, 'm * 'n, [< `C | `N | `T > `N ]) Slap_common.trans
  val trans : ('m * 'n, 'n * 'm, [< `C | `N | `T > `T ]) Slap_common.trans
  val conjtr : ('m * 'n, 'n * 'm, [< `C | `N | `T > `C ]) Slap_common.trans3
  val get_transposed_dim :
    ('m * 'n, 'k * 'l, [< `C | `N | `T ]) Slap_common.trans ->
    'Slap_size.t -> 'Slap_size.t -> 'Slap_size.t * 'Slap_size.t
  val char_of_trans :
    ('indim, 'outdim, [< `C | `N | `T ]) Slap_common.trans -> char
  type (+'k, +'m, +'n) side
  val left : ('m, 'm, 'n) Slap_common.side
  val right : ('n, 'm, 'n) Slap_common.side
  val check_side_dim :
    'Slap_size.t ->
    'Slap_size.t -> 'Slap_size.t -> ('k, 'm, 'n) Slap_common.side -> bool
  val char_of_side : ('k, 'm, 'n) Slap_common.side -> char
  type +'a norm constraint 'a = [< `F | `I | `M | `O ]
  type +'a norm2 = 'Slap_common.norm constraint 'a = [< `I | `O ]
  type +'a norm4 = 'Slap_common.norm constraint 'a = [< `F | `I | `M | `O ]
  val norm_1 : [< `F | `I | `M | `O > `O ] Slap_common.norm
  val norm_inf : [< `F | `I | `M | `O > `I ] Slap_common.norm
  val norm_amax : [< `F | `I | `M | `O > `M ] Slap_common.norm
  val norm_frob : [< `F | `I | `M | `O > `F ] Slap_common.norm
  val char_of_norm : [< `F | `I | `M | `O ] Slap_common.norm -> char
  type (+'a, +'b, +'c, +'d, +'e) svd_job
  val svd_all : ('a, 'a, 'b, 'c, 'd) Slap_common.svd_job
  val svd_top : ('b, 'a, 'b, 'c, 'd) Slap_common.svd_job
  val svd_overwrite : ('c, 'a, 'b, 'c, 'd) Slap_common.svd_job
  val svd_no : ('d, 'a, 'b, 'c, 'd) Slap_common.svd_job
  val char_of_svd_job : ('a, 'b, 'c, 'd, 'e) Slap_common.svd_job -> char
  type ('n, 'cnt_or_dsc) int_vec =
      ('n, int, Bigarray.int_elt, 'cnt_or_dsc) Slap_vec.t
  val create_int_vec : 'Slap_size.t -> ('n, 'cnt) Slap_common.int_vec
  type ('n, 'cnt_or_dsc) int32_vec =
      ('n, int32, Bigarray.int32_elt, 'cnt_or_dsc) Slap_vec.t
  val create_int32_vec : 'Slap_size.t -> ('n, 'cnt) Slap_common.int32_vec
  val lacaml_trans2 :
    ('a, 'b, [< `C | `N | `T ]) Slap_common.trans -> Lacaml.Common.trans2
  val lacaml_trans3 :
    ('a, 'b, [< `C | `N | `T ]) Slap_common.trans -> [ `C | `N | `T ]
  val lacaml_svd_job :
    ('a, 'b, 'c, 'd, 'e) Slap_common.svd_job -> Lacaml.Common.svd_job
  val __unexpose_uplo : char -> [< `A | `L | `U ] Slap_common.uplo
  val __unexpose_norm : char -> [< `F | `I | `M | `O ] Slap_common.norm
  val __unexpose_side : char -> ('a, 'b, 'c) Slap_common.side
  val __unexpose_svd_job : char -> ('a, 'b, 'c, 'd, 'e) Slap_common.svd_job
end