Documentation

PrimParser.Properties

PrimParser Lawfulness Proofs #

Lawful instances for Success, Outcome, and Parser: LawfulFunctor, LawfulGFunctor, LawfulGApplicative, LawfulGMonad.

theorem Parser.gbind_assoc {α β γ ε : Type} {ge1 gc1 ge2 gc2 ge3 gc3 : Necessity} (p1 : Parser ε { errors := ge1, consumes := gc1 } α) (p2 : αParser ε { errors := ge2, consumes := gc2 } β) (p3 : βParser ε { errors := ge3, consumes := gc3 } γ) :
p1 >>=ᵍ p2 >>=ᵍ p3 p1 >>=ᵍ fun (a : α) => p2 a >>=ᵍ p3