[Haskell-cafe] Help me refactor this type!