Awesome job on the new release! I love the clarity in the new interface. A bit more boilerplate, but everything is much more obvious now.
I have ported one of my projects over to this, which was a bit painful, but the result is great.
I have made a number of changes/improvements I feel are necessary (and are actually required for my use cases!). I've added explanations to each commit, but let me know if you have any questions or comments.
Use Snap.getParams instead of Snap.getPostParams
Forms are often used for filtering listings and it sometimes makes
sense to use GET requests while submitting a form. The Snap env should
support this for flexibility of use.
Add runForm' and runFormWith' variants to Snap backend
We should not always *force* GET and POST treatment on forms. Users
should have the option of evaluating forms under GET queries for
flexibility of use.
Let passed-in form attributes overwrite default behavior
Users may want GET forms on occasion; we should let them overwrite the
default behavior when an explicit value is passed in via the splice
tag. Attributes list will likely be empty or consist of 1-2 items, so
the concatenation here should be fine.
I changed the interface a bit (see c4a5d4f), like we briefly discussed yesterday. It's on Hackage as digestive-functors-snap-0.3.2.0.