Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.

Reason
sig
 module type OrderedType =
  sig
   type t
   val compare : Map.OrderedType.t -> Map.OrderedType.t -> int
  end
 module type S =
  sig
   type key
   type +!'a t
   val empty : 'a Map.S.t
   val is_empty : 'a Map.S.t -> bool
   val mem : Map.S.key -> 'a Map.S.t -> bool
   val add : Map.S.key -> 'a -> 'a Map.S.t -> 'a Map.S.t
   val update :
    Map.S.key -> ('a option -> 'a option) -> 'a Map.S.t -> 'a Map.S.t
   val singleton : Map.S.key -> 'a -> 'a Map.S.t
   val remove : Map.S.key -> 'a Map.S.t -> 'a Map.S.t
   val merge :
    (Map.S.key -> 'a option -> 'b option -> 'c option) ->
    'a Map.S.t -> 'b Map.S.t -> 'c Map.S.t
   val union :
    (Map.S.key -> 'a -> 'a -> 'a option) ->
    'a Map.S.t -> 'a Map.S.t -> 'a Map.S.t
   val compare : ('a -> 'a -> int) -> 'a Map.S.t -> 'a Map.S.t -> int
   val equal : ('a -> 'a -> bool) -> 'a Map.S.t -> 'a Map.S.t -> bool
   val iter : (Map.S.key -> 'a -> unit) -> 'a Map.S.t -> unit
   val fold : (Map.S.key -> 'a -> 'b -> 'b) -> 'a Map.S.t -> 'b -> 'b
   val for_all : (Map.S.key -> 'a -> bool) -> 'a Map.S.t -> bool
   val exists : (Map.S.key -> 'a -> bool) -> 'a Map.S.t -> bool
   val filter : (Map.S.key -> 'a -> bool) -> 'a Map.S.t -> 'a Map.S.t
   val filter_map :
    (Map.S.key -> 'a -> 'b option) -> 'a Map.S.t -> 'b Map.S.t
   val partition :
    (Map.S.key -> 'a -> bool) -> 'a Map.S.t -> 'a Map.S.t * 'a Map.S.t
   val cardinal : 'a Map.S.t -> int
   val bindings : 'a Map.S.t -> (Map.S.key * 'a) list
   val min_binding : 'a Map.S.t -> Map.S.key * 'a
   val min_binding_opt : 'a Map.S.t -> (Map.S.key * 'a) option
   val max_binding : 'a Map.S.t -> Map.S.key * 'a
   val max_binding_opt : 'a Map.S.t -> (Map.S.key * 'a) option
   val choose : 'a Map.S.t -> Map.S.key * 'a
   val choose_opt : 'a Map.S.t -> (Map.S.key * 'a) option
   val split :
    Map.S.key -> 'a Map.S.t -> 'a Map.S.t * 'a option * 'a Map.S.t
   val find : Map.S.key -> 'a Map.S.t -> 'a
   val find_opt : Map.S.key -> 'a Map.S.t -> 'a option
   val find_first : (Map.S.key -> bool) -> 'a Map.S.t -> Map.S.key * 'a
   val find_first_opt :
    (Map.S.key -> bool) -> 'a Map.S.t -> (Map.S.key * 'a) option
   val find_last : (Map.S.key -> bool) -> 'a Map.S.t -> Map.S.key * 'a
   val find_last_opt :
    (Map.S.key -> bool) -> 'a Map.S.t -> (Map.S.key * 'a) option
   val map : ('a -> 'b) -> 'a Map.S.t -> 'b Map.S.t
   val mapi : (Map.S.key -> 'a -> 'b) -> 'a Map.S.t -> 'b Map.S.t
   val to_seq : 'a Map.S.t -> (Map.S.key * 'a) Stdlib.Seq.t
   val to_rev_seq : 'a Map.S.t -> (Map.S.key * 'a) Stdlib.Seq.t
   val to_seq_from :
    Map.S.key -> 'a Map.S.t -> (Map.S.key * 'a) Stdlib.Seq.t
   val add_seq : (Map.S.key * 'a) Stdlib.Seq.t -> 'a Map.S.t -> 'a Map.S.t
   val of_seq : (Map.S.key * 'a) Stdlib.Seq.t -> 'a Map.S.t
  end
 module Make :
  functor (Ord : OrderedType) ->
   sig
    type key = Ord.t
    type +!'a t
    val empty : 'a t
    val is_empty : 'a t -> bool
    val mem : key -> 'a t -> bool
    val add : key -> 'a -> 'a t -> 'a t
    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
    val singleton : key -> 'a -> 'a t
    val remove : key -> 'a t -> 'a t
    val merge :
     (key -> 'a option -> 'b option -> 'c option) ->
     'a t -> 'b t -> 'c t
    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
    val iter : (key -> 'a -> unit) -> 'a t -> unit
    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
    val for_all : (key -> 'a -> bool) -> 'a t -> bool
    val exists : (key -> 'a -> bool) -> 'a t -> bool
    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
    val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
    val cardinal : 'a t -> int
    val bindings : 'a t -> (key * 'a) list
    val min_binding : 'a t -> key * 'a
    val min_binding_opt : 'a t -> (key * 'a) option
    val max_binding : 'a t -> key * 'a
    val max_binding_opt : 'a t -> (key * 'a) option
    val choose : 'a t -> key * 'a
    val choose_opt : 'a t -> (key * 'a) option
    val split : key -> 'a t -> 'a t * 'a option * 'a t
    val find : key -> 'a t -> 'a
    val find_opt : key -> 'a t -> 'a option
    val find_first : (key -> bool) -> 'a t -> key * 'a
    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
    val find_last : (key -> bool) -> 'a t -> key * 'a
    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
    val map : ('a -> 'b) -> 'a t -> 'b t
    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
    val to_seq : 'a t -> (key * 'a) Seq.t
    val to_rev_seq : 'a t -> (key * 'a) Seq.t
    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
    val of_seq : (key * 'a) Seq.t -> 'a t
   end
end

AltStyle によって変換されたページ (->オリジナル) /