// Parses a fixed string. concrete StringParser { @type create (String) -> (Parser) } // Parses a string containing a limited set of characters. concrete SequenceOfParser { @type create (String, Int min:, Int max:) -> (Parser) } // Parses a fixed character. concrete CharParser { @type create (Char) -> (Parser) } // Parser combinators. concrete Parse { @type const<#x> #x immutable (#x) -> (Parser<#x>) @type error (Formatted) -> (Parser) @type try<#x> (Parser<#x>) -> (Parser<#x>) @type or<#x> (Parser<#x>, Parser<#x>) -> (Parser<#x>) @type left<#x> (Parser<#x>, Parser) -> (Parser<#x>) @type right<#x> (Parser, Parser<#x>) -> (Parser<#x>) }