Little abstraction over arguments + polymorphic payload
type 'arg_payload t = {exp : Exp.t;typ : Typ.t;arg_payload : 'arg_payload;
}val typ : 'arg_payload t -> Typ.tval exp : 'arg_payload t -> Exp.tval arg_payload : 'arg_payload t -> 'arg_payloadval is_var : 'arg_payload t -> boolval map_payload : f:('a -> 'b) -> 'a t -> 'b tval get_var_exn : 'arg_payload t -> Ident.t