testParse :: String -> String -> ([PartialDef] -> Bool) -> Assertion
testParse label code checkResult =
    either (assertFailure . ((label ++ ":") ++) . show)
           (\ result ->
                if checkResult result then return () else assertFailure label)
           (compile (parse "(test)" code))
testParse :: String -> String -> ([PartialDef] -> Bool) -> Assertion
testParse label code checkResult =
    either (assertFailure . ((label ++ ":") ++) . show)
           (\ result ->
                if checkResult result then return () else assertFailure label)
           (compile (parse "(test)" code))
testParse label code checkResult =
    either (assertFailure . ((label ++ ":") ++) . show)
           (\ result ->
                if checkResult result then return () else assertFailure label)
           (compile (parse "(test)" code))