public abstract void visit(BoolLiteral n);
public virtual void visit(BoolLiteral n) { throw new NotImplementedException(); }