sig
  module Context :
    sig
      type t
      val create : int -> Slap_io.Context.t
      val ellipsis_default : string Pervasives.ref
      val vertical_default : Slap_io.Context.t option Pervasives.ref
      val horizontal_default : Slap_io.Context.t option Pervasives.ref
      val set_dim_defaults : Slap_io.Context.t option -> unit
    end
  type index = Head | Foot | Ellipsis | Cell of int
  val pp_table :
    ?pp_open:(Format.formatter -> unit) ->
    ?pp_close:(Format.formatter -> unit) ->
    ?pp_head:(Format.formatter -> int -> unit) ->
    ?pp_foot:(Format.formatter -> int -> unit) ->
    ?pp_end_row:(Format.formatter -> Slap_io.index -> unit) ->
    ?pp_end_col:(Format.formatter ->
                 row:Slap_io.index -> col:Slap_io.index -> unit) ->
    ?pp_left:(Format.formatter -> int -> unit) ->
    ?pp_right:(Format.formatter -> int -> unit) ->
    ?pad:char ->
    ?ellipsis:string ->
    ?vertical_context:Slap_io.Context.t option ->
    ?horizontal_context:Slap_io.Context.t option ->
    (Format.formatter -> 'el -> unit) ->
    Format.formatter -> int -> int -> (int -> int -> 'el) -> unit
  val pp_vec_gen :
    ?pp_open:(Format.formatter -> unit) ->
    ?pp_close:(Format.formatter -> unit) ->
    ?pp_head:(Format.formatter -> int -> unit) ->
    ?pp_foot:(Format.formatter -> int -> unit) ->
    ?pp_end_row:(Format.formatter -> Slap_io.index -> unit) ->
    ?pp_end_col:(Format.formatter ->
                 row:Slap_io.index -> col:Slap_io.index -> unit) ->
    ?pp_left:(Format.formatter -> int -> unit) ->
    ?pp_right:(Format.formatter -> int -> unit) ->
    ?pad:char ->
    ?ellipsis:string ->
    ?vertical_context:Slap_io.Context.t option ->
    ?horizontal_context:Slap_io.Context.t option ->
    (Format.formatter -> 'num -> unit) ->
    Format.formatter -> ('n, 'num, 'prec, 'cnt_or_dsc) Slap_vec.t -> unit
  val pp_rvec_gen :
    ?pp_open:(Format.formatter -> unit) ->
    ?pp_close:(Format.formatter -> unit) ->
    ?pp_head:(Format.formatter -> int -> unit) ->
    ?pp_foot:(Format.formatter -> int -> unit) ->
    ?pp_end_row:(Format.formatter -> Slap_io.index -> unit) ->
    ?pp_end_col:(Format.formatter ->
                 row:Slap_io.index -> col:Slap_io.index -> unit) ->
    ?pp_left:(Format.formatter -> int -> unit) ->
    ?pp_right:(Format.formatter -> int -> unit) ->
    ?pad:char ->
    ?ellipsis:string ->
    ?vertical_context:int option ->
    ?horizontal_context:int option ->
    (Format.formatter -> 'num -> unit) ->
    Format.formatter -> ('n, 'num, 'prec, 'cnt_or_dsc) Slap_vec.t -> unit
  val pp_mat_gen :
    ?pp_open:(Format.formatter -> unit) ->
    ?pp_close:(Format.formatter -> unit) ->
    ?pp_head:(Format.formatter -> int -> unit) ->
    ?pp_foot:(Format.formatter -> int -> unit) ->
    ?pp_end_row:(Format.formatter -> Slap_io.index -> unit) ->
    ?pp_end_col:(Format.formatter ->
                 row:Slap_io.index -> col:Slap_io.index -> unit) ->
    ?pp_left:(Format.formatter -> int -> unit) ->
    ?pp_right:(Format.formatter -> int -> unit) ->
    ?pad:char ->
    ?ellipsis:string ->
    ?vertical_context:Slap_io.Context.t option ->
    ?horizontal_context:Slap_io.Context.t option ->
    (Format.formatter -> 'num -> unit) ->
    Format.formatter -> ('m, 'n, 'num, 'prec, 'cnt_or_dsc) Slap_mat.t -> unit
  type 'el pp_el_default = (Format.formatter -> 'el -> unit) Pervasives.ref
  val pp_float_el_default : float Slap_io.pp_el_default
  val pp_complex_el_default : Complex.t Slap_io.pp_el_default
  val pp_int32_el_default : int32 Slap_io.pp_el_default
  type ('n, 'num, 'prec, 'cnt_or_dsc) pp_vec =
      Format.formatter -> ('n, 'num, 'prec, 'cnt_or_dsc) Slap_vec.t -> unit
  val pp_fvec : ('n, float, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
  val pp_cvec : ('n, Complex.t, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
  val pp_ivec : ('n, int32, 'prec, Slap_misc.cnt) Slap_io.pp_vec
  val pp_rfvec : ('n, float, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
  val pp_rcvec : ('n, Complex.t, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
  val pp_rivec : ('n, int32, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
  type ('m, 'n, 'num, 'prec, 'cnt_or_dsc) pp_mat =
      Format.formatter ->
      ('m, 'n, 'num, 'prec, 'cnt_or_dsc) Slap_mat.t -> unit
  val pp_fmat : ('m, 'n, float, 'prec, 'cnt_or_dsc) Slap_io.pp_mat
  val pp_cmat : ('m, 'n, Complex.t, 'prec, 'cnt_or_dsc) Slap_io.pp_mat
  val pp_imat : ('m, 'n, int32, 'prec, 'cnt_or_dsc) Slap_io.pp_mat
  module Toplevel :
    sig
      val ssc : int -> unit
      val lsc : int -> unit
      val pp_fvec : ('n, float, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
      val pp_cvec : ('n, Complex.t, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
      val pp_ivec : ('n, int32, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
      val pp_rfvec : ('n, float, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
      val pp_rcvec : ('n, Complex.t, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
      val pp_rivec : ('n, int32, 'prec, 'cnt_or_dsc) Slap_io.pp_vec
      val pp_fmat : ('m, 'n, float, 'prec, 'cnt_or_dsc) Slap_io.pp_mat
      val pp_cmat : ('m, 'n, Complex.t, 'prec, 'cnt_or_dsc) Slap_io.pp_mat
      val pp_imat : ('m, 'n, int32, 'prec, 'cnt_or_dsc) Slap_io.pp_mat
    end
end