--- /dev/null
+import "Prelude" hiding (maximumBy)\r
+\r
+maximumBy :: Ord b => (a -> b) -> [a] -> a\r
+maximumBy f = snd . foldl1 maxF . map (\x -> (f x, x))\r
+ where\r
+ maxF (a @ (aV,_)) (b @ (bV,_)) = if aV >= bV then a else b\r
+ \r
+main = maximumBy (`mod` 10) [1::Integer, 14, 23, 9, 14, 67] \r
+--\r
+9
\ No newline at end of file