Branched from Takusen 0.8.7 from http://code.haskell.org/takusen/