(Truncated again - trying plain text. Sorry for the spam.) I have a function that, simplifying a little, looks like this: fn :: [a] -> a fn = (head .) . takeWhile $ (\_ -> True)