Simplification, guard and substitute added to Haskell