haskell-invariant