Consider adding recoverability to the vocabulary of parser combinators

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Consider adding recoverability to the vocabulary of parser combinators

Compl Yue
Dear Cafe,

I'm still not fully clear about the confusion regarding megaparsec's behavior that I posted lately here. But now comes to my mind that it may have some problem rooted in the lacking of recoverability semantic with respect to parser combinators, some quoting from http://hackage.haskell.org/package/parser-combinators/docs/Control-Applicative-Combinators.html

The  *A note on backtracking* section

Combinators in this module are defined in terms Applicative and Alternative operations.

And `empty`'s doc:

This parser fails unconditionally without providing any information about the cause of the failure.

Clearly `empty` is used to express failure, but there is seemingly no device to explicitly express whether a failure is recoverable. Then I observed megaparsec's implicit rule as currently implemented is like:

*) a failure with no input consumed can be recovered by rest parsers
*) a failure with some input consumed can not be recovered by rest parsers

This works to great extent, but I would think the expressiveness can be further extended for a parser from the application, to tell the library that some input induces recoverable failure.

I have no expertise to suggest whether `MonadPlus` and/or `MonadFail` are suitable devices to be considered, but as megaparsec has implemented instances for them, I do feel some tweaks would be possible and meaningful.

Best regards,
Compl


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

[ANN] Keycloak-hs V2

Corentin Dupont
Hello,
I'm very proud to announce the second version of Keycloak-hs, a library to access Keycloak:
http://hackage.haskell.org/package/keycloak-hs. Keycloak (www.keycloak.org) is a tool allowing you to authenticate and manage users, and protect your API resources.
This version has a much better interface to Keycloak, and more documentation. With this library you can:
- Manage and verify Auth tokens
- Manage Users in Keycloak
- Manage Resources to be protected with Keycloak
- Evaluate permissions and policies

Comments are welcome!

Cheers!
Corentin

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.