with-readers macro for objects, structs, arrays