By returning the dataset in the key polymorphic form, {TAIL ~ the type} of {HEAD ~ the order keys} can be abstracted away, and OptionalSort can decide what that key type will be dynamically 
By returning the dataset in the key polymorphic form , { TAIL ~ the type } of { HEAD ~ the order keys } can be abstracted away , and OptionalSort can decide what that key type will be dynamically
OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH TAIL TAIL TAIL TAIL TAIL TAIL OTH HEAD HEAD HEAD HEAD HEAD HEAD HEAD OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH