The first argument is a raw Scheme s-expression that has zodiac:read objects in one or more positions (type zodiac:mixed). The second argument is any object that is an instance of a sub-type of zodiac:zodiac. The output is a zodiac:read representation of the input. All Scheme s-expressions in the input are recursively converted to zodiac:read forms, while zodiac:read forms are left untouched (and are not traversed further). For all raw inputs that are converted into zodiac:read objects, the origin, start and finish information is extracted from the second argument to structurize-syntax. The optional marks argument is used to give zodiac:symbols and zodiac:list forms their initial set of marks. Ordinary users may ignore this argument.