let list_add (equal: 'a -> 'a -> bool) (list: 'a list) (element: 'a) : 'a list =
  if List.exists (equal element) list then
    list
  else
    element :: list