public Expr Parse(ParserContext pcon, object frm)
{
//int line = (int)Compiler.LINE.deref();
ISeq form = (ISeq)frm;
// form => (new Typename args ... )
if (form.count() < 2)
throw new ParseException("wrong number of arguments, expecting: (new Typename args ...)");
Type t = HostExpr.MaybeType(RT.second(form), false);
if (t == null)
throw new ParseException("Unable to resolve classname: " + RT.second(form));
List<HostArg> args = HostExpr.ParseArgs(pcon, RT.next(RT.next(form)));
return new NewExpr(t, args, (IPersistentMap)Compiler.SourceSpanVar.deref());
}