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