{-# LANGUAGE ImplicitParams, BangPatterns #-}
sort :: (?cmp :: a -> a -> Bool) => [a] -> [a]
sort !f = undefined