diff options
author | Camil Staps | 2018-12-20 21:46:34 +0100 |
---|---|---|
committer | Camil Staps | 2018-12-20 21:48:37 +0100 |
commit | bde9dfef3a80a155c83fd2e8570e782192aa8402 (patch) | |
tree | 5be65ca7d9767bfd5ba003fb9e693ea3ce5b39f3 /Sil/Util/Parser.icl | |
parent | Fix copy-paste in vim syntax (diff) |
Bring up to date
Diffstat (limited to 'Sil/Util/Parser.icl')
-rw-r--r-- | Sil/Util/Parser.icl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Sil/Util/Parser.icl b/Sil/Util/Parser.icl index eb90408..95b0813 100644 --- a/Sil/Util/Parser.icl +++ b/Sil/Util/Parser.icl @@ -62,11 +62,17 @@ instance Functor (Parser a) where fmap f m = liftM f m -instance Applicative (Parser a) +instance pure (Parser a) +where + pure a = Parser \st -> (Ok a, st) + +instance <*> (Parser a) where - pure a = Parser \st -> (Ok a, st) (<*>) sf p = ap sf p +instance <* (Parser a) +instance *> (Parser a) + instance Monad (Parser a) where bind p f = Parser \st -> case runParser p (commit st) of |