The unquote character (,) is definitely ugly. I'd suggest using ~ instead, as Clojure does. Of course that means dropping the current meaning of ~, which strikes me as redundant anyway given the composition operator (i.e. ~foo is the same as no:foo).
The fundamental philosophy of Arc is that "hard to understand" is not an issue. It's a language for programmers who aren't afraid of learning hard things, and rarely have any trouble doing so. It's the anti-Java, if you like. So that's not really a good reason to discard the OP's idea.
Partial application probably isn't as useful in Arc as it is in Haskell since many functions take an arbitrary number of arguments. E.g. you couldn't do (map (+ 10) xs) because (+ 10) just evaluates to 10.
Edit: why is there a gap at the top of my comment?
Probably not, but it's still useful as a generic way to write generator functions. Your par macro isn't working as expected for me. Is this a bug, or am I using it wrong?
I don't know if a call-by-reference par could be implemented using macros. I also don't know that that's a good idea, since it could lead to bugs when mutation is involved.
(= fns nil)
(= x 1)
(push (par + x) fns)
(= x 2)
(push (par + x) fns)
(= x 3)
(push (par + x) fns)
(map [_ 1] fns) => (4 4 4) ; probably not what you want
Edit: I think the issue is that we have slightly different definitions of partial application. You are thinking of it as a sort of syntactic sugar on top of closures, whereas I (being primarily an ML programmer) am used to thinking of partial application as a function call. So that's why we have different intuitions about how it should work.
By the way, why are you bothering with generators? Arc being an exploratory language, the idea seems to be to use lists for everything, at least at first. Iterators/generators are often a premature optimization.
I translated into Arc a little program I wrote a few months ago to compare the distribution of characters in Qwerty vs. Dvorak by hands, fingers, etc. It currently outputs text; the next step of course is to output HTML.
Getting the program to work was a bitch as there doesn't seem to be any debugging support at all. Nevertheless, I'm extremely pleased with the language itself.
The utility at the beginning reflects the only serious issue I ran into: objs don't seem to be able refer to themselves. I had to write a new obj macro that binds the current object to 'this'.
Also, although it's not a serious problem, I'd love to be able to refer to obj fields with a simpler syntax, e.g. x.foo instead of (x 'foo). In particular, that quote before the field name is kind of a wart.