sig
  module Make :
    functor (Bsml : Bsmlsig.BSML) ->
      sig
        val replicate : 'a -> 'a Bsml.par
        val parfun : ('a -> 'b) -> 'a Bsml.par -> 'b Bsml.par
        val parfun2 :
          ('a -> 'b -> 'c) -> 'a Bsml.par -> 'b Bsml.par -> 'c Bsml.par
        val parfun3 :
          ('a -> 'b -> 'c -> 'd) ->
          'a Bsml.par -> 'b Bsml.par -> 'c Bsml.par -> 'd Bsml.par
        val parfun4 :
          ('a -> 'b -> 'c -> 'd -> 'e) ->
          'a Bsml.par ->
          'b Bsml.par -> 'c Bsml.par -> 'd Bsml.par -> 'e Bsml.par
        val apply2 :
          ('a -> 'b -> 'c) Bsml.par ->
          'a Bsml.par -> 'b Bsml.par -> 'c Bsml.par
        val apply3 :
          ('a -> 'b -> 'c -> 'd) Bsml.par ->
          'a Bsml.par -> 'b Bsml.par -> 'c Bsml.par -> 'd Bsml.par
        val apply4 :
          ('a -> 'b -> 'c -> 'd -> 'e) Bsml.par ->
          'a Bsml.par ->
          'b Bsml.par -> 'c Bsml.par -> 'd Bsml.par -> 'e Bsml.par
        val mask : (int -> bool) -> 'a Bsml.par -> 'a Bsml.par -> 'a Bsml.par
        val applyat :
          int -> ('a -> 'b) -> ('a -> 'b) -> 'a Bsml.par -> 'b Bsml.par
        val applyif :
          (int -> bool) ->
          ('a -> 'b) -> ('a -> 'b) -> 'a Bsml.par -> 'b Bsml.par
        val procs : int list
        val this : int Bsml.par
        val bsml_print : ('a -> unit) -> int -> 'a Bsml.par -> unit Bsml.par
        val parprint : ('a -> unit) -> 'a Bsml.par -> unit Bsml.par
        val get_one : 'a Bsml.par -> int Bsml.par -> 'a Bsml.par
        val get_list : 'a Bsml.par -> int list Bsml.par -> 'a list Bsml.par
        val put_one : (int * 'a) Bsml.par -> 'a list Bsml.par
        val put_list : (int * 'a) list Bsml.par -> 'a list Bsml.par
      end
end