definition module Sil.Util.Parser

from StdOverloaded import class ==

from Control.Applicative import class Applicative, class Alternative
from Control.Monad import class Monad
from Data.Error import :: MaybeError
from Data.Functor import class Functor

from Sil.Parse import :: ParseError

:: Parser a b = Parser ([a] -> (MaybeError ParseError b, [a]))

instance Functor (Parser a)
instance Applicative (Parser a) 
instance Monad (Parser a)
instance Alternative (Parser a)

class name a :: a -> String
instance name String

runParser :: (Parser a b) [a] -> (MaybeError ParseError b, [a])
(<?>) :: (Parser a b) ParseError -> Parser a b
fail :: Parser a b
top :: Parser a a
peek :: Parser a a
satisfy :: (a -> Bool) -> Parser a a
check :: (a -> Bool) -> Parser a a
(until) infix 2 :: (Parser a b) (Parser a c) -> Parser a [b]
item :: a -> Parser a a | ==, name a
list :: [a] -> Parser a [a] | ==, name a
seplist :: a (Parser a b) -> Parser a [b] | ==, name a
eof :: Parser a ()