Benjamin Franksen wrote: > This one is a little bit shorter and somewhat more 'elementary': > > s = (.) (flip (.) (head . uncurry zip . splitAt 1 . replicate 2) . uncurry) . > (flip (.) (flip (.)) . flip (.)) And with less flips: s = (((. head . uncurry zip . splitAt 1 . repeat) . uncurry) .) . (.) . flip /Stephan