Getting Warning 32 [unused-value-declaration] in functor declaration

I have the following functor code:

module type EQ = sig
  type t

  val eq : t -> t -> bool
end

module type SET = sig
  type elt
  type t

  val empty : t
  val is_element : elt -> t -> bool
  val add : elt -> t -> t
end

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 :: set
end

The code above compiles with the following message:

val is_element : elt -> t -> bool
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning 32 [unused-value-declaration]: unused value is_element.

Does anybody tell me how to remove the warning/error message?

That snippet works for me.
If the above file is A.ml is there an A.mli ? The compiler error simply notes that this is unused code and it is not possible to reference this value elsewhere