Thu Aug 27 18:27:12 CEST 2015

reading Haskell

Or writing readable Haskell?

Don't worry about wrapping and lifting: this is what the type checker
is for.  If you have a generalized operation, just name it similar to
the closest library function.

 head' ((t:_,_))  = t
 tail' ((_:ts,x)) = (ts, x)

Then, when reading, one can focus on the meaning modulo the