a more elegant impl of mkOrdred exploiting the fact Value Constroctors are also functions