nit: I think this is clearer if done as `this.sexpr(val)` as `val.type` will always be `sexpr`.