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