A module providing a type for (commutative) multivariate polynomials, with support for various term orders.

- newtype MPoly ord r = MP [(Monomial ord, r)]
- var :: String -> MPoly Grevlex Q
- a, z, y, x, w, v, u, t, s, d, c, b :: MPoly Grevlex Q
- x0, x3, x2, x1 :: MPoly Grevlex Q
- toLex :: MPoly ord k -> MPoly Lex k
- toGlex :: MPoly ord k -> MPoly Glex k
- toGrevlex :: MPoly ord k -> MPoly Grevlex k
- toElim :: MPoly ord k -> MPoly Elim k

# Documentation

Type for multivariate polynomials. ord is a phantom type defining how terms are ordered, r is the type of the ring we are working over. For example, a common choice will be MPoly Grevlex Q, meaning polynomials over Q with the grevlex term ordering