functor (Ord : OrderedType->
  sig
    type key = Ord.t
    and 'a t
    val create : ?size:int -> unit -> 'SkipList.S.t
    val clear : 'SkipList.S.t -> unit
    val size : 'SkipList.S.t -> int
    val add : 'SkipList.S.t -> key:SkipList.S.key -> data:'-> unit
    val find : 'SkipList.S.t -> SkipList.S.key -> 'a
    val remove : 'SkipList.S.t -> SkipList.S.key -> unit
    val mem : 'SkipList.S.t -> SkipList.S.key -> bool
    val iter : 'SkipList.S.t -> f:(SkipList.S.key -> '-> unit) -> unit
    val fold :
      'SkipList.S.t ->
      f:(SkipList.S.key -> '-> '-> 'b) -> init:'-> 'b
  end