module MuCheck.Operators (comparators,
predNums,
binAriths,
arithLists,
allOps) where
import MuCheck.MuOp
import MuCheck.Utils.Common
import Language.Haskell.Exts (Name(Symbol), Exp(Var), QName(UnQual), Name(Ident))
allOps = concat [comparators, predNums, binAriths, arithLists]
comparators = coupling (==>) $ map Symbol ["<", ">", "<=", ">=", "/=", "=="]
predNums = coupling (==>) $ map varfn ["pred", "id", "succ"]
binAriths = coupling (==>) $ map Symbol ["+", "-", "*", "/"]
arithLists = coupling (==>) $ map varfn ["sum", "product", "maximum", "minimum", "head", "last"]
varfn = Var . UnQual . Ident