Shortest a -> b -> (a -> b) function in Haskell
Your example can be shrunk by getting rid of the anonymous function on the right-hand side:

f a b x = snd ([a,x],b)


This works because the type a -&gt; b -&gt; a -&gt; b is equivalent to a -&gt; b -&gt; (a -&gt; b) in Haskell.