tested with GHC 7.8.3