F must be Comparable