Some correction and refactoring

    * Require `IsMonomialOrder` instead of `IsOrder` to ensure termination
    * defined `mapMaybeM`
example: caught up with api change
supported inequalities
F5: added regression tests
Changed implementation based on F5C's presentation (not F5C, though)
some refactoring