module Dolos class Parser[A] attr_accessor parser_proc: ^(ParserState) -> Result[A] def initialize: (^(ParserState) -> Result[A]) -> Parser[A] def capture!: -> Parser[A] def choice: [B](Parser[B])-> Parser[A | B] def flat_map: [B](Parser[A], ^(A) -> Parser[B]) -> Parser[B] def flatten: -> Parser[A] def map: [B](^(A) -> B) -> Parser[B] def map_value: [B](^(A) -> B) -> Parser[B] def optional: -> Parser[A?] def product: [B](Parser[A]) -> Parser[B] def run: (String) -> Result[A] def run_with_state: (ParserState) -> Result[A] def repeat: (Integer, Integer)-> Parser[Array[A]] def zero_or_more: -> Parser[Array[A]] def one_or_more: (Integer?) -> Parser[Array[A]] end end