I have the following code:
module Make_Set (Elt : EQ) : SET with type elt = Elt.t = struct type elt = Elt.t type t = elt list let empty = [] let rec is_element i set = match set with [] -> false | x :: xs -> Elt.eq x i || is_element i xs let add i set = if is_element i set then set else i :: setend
I can't understand the SET with type elt = Elt.t
, nor I can find it in the official documentation.