{-# LANGUAGE OverloadedStrings #-} module OpOrdering where import Language.REST.Op import Language.REST.OpOrdering import Language.REST.WQO import Data.Maybe as Mb tests = [ ("parse", fromJust ( parseOO "cons = z ∧ g = nil ∧ h = s ∧ cons > g ∧ cons > h ∧ h > f ∧ h > g" ) == wqo) ,("minimal", fromJust ( parseOO "f > + ^ g > z ^ + = cons ^ cons > z ^ f = g" ) == fromJust ( parseOO "f > + ^ + = cons ^ cons > z ^ f = g" ) ) ] where Just wqo = mergeAll [ ("cons" =. "z") , ("g" =. "nil") , ("h" =. "s") , ("cons" >. "g") , ("cons" >. "h") , ("h" >. "f") , ("h" >. "g") ]