module Test.MuCheck.Operators (comparators,
predNums,
binAriths,
arithLists,
allOps) where
import Test.MuCheck.MuOp
import Test.MuCheck.Utils.Common
import Language.Haskell.Exts (Name(Symbol), Exp(Var), QName(UnQual), Name(Ident))
allOps,comparators,predNums,binAriths,arithLists :: [MuOp]
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 :: String -> Exp
varfn = Var . UnQual . Ident