(mac usform (n s f . body)
`(tag (form method 'post action fnurl* class (string ,s) id ,n name ,n
(fnid-field (fnid (fn (,ga)
(defop || req
(usform "this-is-a-bug" "" [ (pr "args are " _) ]
(tab (row "price: " (input "price"))
(def main ()
Update: Ok, I finally found a way to check when it's safe to convert to string, so now all fields (including fnid) will auto-convert to string when possible. If you get a list of bytes you know it has some sort of non-ascii data.
But it's probably made things a tad slower still (let me know). Sucks that reading characters in scheme just hangs when it should throw an error.
I've also made it faster; 4x faster in my experiments. http://github.com/nex3/arc/commit/16173ec1ff
Do a git pull and give it a whirl.