Q:

Is there a clojure function between read-string and load-string?

I would like to read the entire string into a list, but not evaluate it.  wtf? is the function or mix of functions which I can not find to do this.
user=> (wtf?  " S  I I ( S I I)")
(S I I (S I I))

The function should also work as:
user=> (last (wtf?  " S  I I ( S I I)"))
(S I I)

read-string returns only the first object, while load-string returns them all, but tries to evaluate them.

A:

I am such a noob.  I am glad to find out about the safe read, but it seems that my original issue was solved by adding ()'s around the form, which I did inadvertently when trying the safe-read.
user=> (read-string  "( S  I I ( S I I))")
(S I I (S I I))

user=> (last (read-string  "( S  I I ( S I I))"))
(S I I)

