h$    None aeson-commitA   that has _two_ failure modes; recoverable and non-recoverable. The default, recoverable failure is the equivalent to aeson's default   behavior. The non-recoverable failure mode is used to commit to a branch; to commit means that every subsequent failure is non-recoverable.You turn run a  and capture its result in a   using . As an additional benefit, it will contain error info for all attempted parsing branches.%The implementation works by wrapping   in an  . The derived 6 instance will then only recover from failures in the  <. This means that as soon as we successfully construct a  value, the  considers the  a success, even though the underlying parser might have failed. The < represents the guarantee that we only collect error values. aeson-commitConstruct a commit. If the first parser fails, the failure is recoverable through '. If the first parser succeeds, the  is a success, and any failures in the inner action will be preserved. aeson-commitRun a , capturing its result in a  . aeson-commitConvenience wrapper around  for when the commit is checking whether a key is present in some object. If it is, it will commit and append the key to the JSONPath of the inner context through ', which will give nicer error messages. aeson-commitTurn a   into a  Unlike &, the parser's failure is recoverable. 5tryParser empty <|> p = p tryParser p = commit p pure aeson-commitTurn a   into a  . Unlike , the parser's failure is _not_ recoverable, i.e. the parse is always committed. liftParser empty <|> p = empty liftParser p = commit (pure ()) (const p)     'aeson-commit-1.3-8GYX8wDhFLdAP5PtqJRkw7Data.Aeson.CommitCommitunCommitcommit runCommit.:> tryParser liftParser $fMonadCommit$fFunctorCommit$fApplicativeCommit$fAlternativeCommit$aeson-1.5.4.1-7y6KDmAbZkgAOQ44xTjKXWData.Aeson.Types.InternalParsertransformers-0.5.6.2Control.Monad.Trans.ExceptExceptTbaseGHC.Base Alternative Data.EitherRight Data.VoidVoid