Aggressive inlining (.) and fmap.

Will merge all arrows which are known at compile time.
Using a trick by Roman Leshchinskiy documented here
http://unlines.wordpress.com/2009/11/05/tricking-ghc-into-evaluating-recursive-functions-at-compile-time/