diff options
Diffstat (limited to 'src/HSVIS/Parser.hs')
-rw-r--r-- | src/HSVIS/Parser.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/HSVIS/Parser.hs b/src/HSVIS/Parser.hs index 3251989..0df4aa8 100644 --- a/src/HSVIS/Parser.hs +++ b/src/HSVIS/Parser.hs @@ -162,9 +162,9 @@ instance KnownFallible fail => MonadChronicle (Bag Diagnostic) (Parser fail) whe (kok ps mempty def) condemn (Parser f) = Parser $ \ctx ps kok kfat kbt -> f ctx ps - (\ps' errs x -> case errs of - BZero -> kok ps' mempty x - _ -> kfat errs) + (\ps' errs x -> if null errs + then kok ps' mempty x + else kfat errs) kfat kbt retcon g (Parser f) = Parser $ \ctx ps kok kfat kbt -> @@ -180,9 +180,9 @@ instance KnownFallible fail => MonadChronicle (Bag Diagnostic) (Parser fail) whe parse :: FilePath -> String -> ([Diagnostic], Maybe PProgram) parse fp source = runParser pProgram (Context fp (lines source) []) (PS (Pos 0 0) (Pos 0 0) source) - (\_ errs res -> case errs of - BZero -> ([], Just res) - _ -> (toList errs, Just res)) + (\_ errs res -> if null errs + then ([], Just res) + else (toList errs, Just res)) (\errs -> (toList errs, Nothing)) () -- the program parser cannot fail! :D |