
Dave, Unless I hear otherwise, I'll resolve the technical issues with Proto you raised as follows: 1) The aliasing issue (proto::_left as a typedef for proto::transform::left) will be resolved by eliminating the "transform" namespace and everything in it. 2) The "functional" namespace will be renamed "functor". 3) "visitor" will be renamed "data" 4) I don't intend to rename the "call" transform or the "function" tag/metafunction. (If I renamed "call" to "apply" like I suggested, then I should also rename "is_callable" to "is_applicable" or some such, which is awful, IMO.) 5) You can override an expression's domain with "proto::as_expr<Domain>(expr)". This gives a way to mix expressions from different domains in the same expression. If you object to any of these resolutions, holler. -- Eric Niebler Boost Consulting www.boost-consulting.com