implement a LispVal algebraic data type, and now actually parse Atoms
implement accepting LispString values, playing with different forms of these parsers

in particular experimenting with the different sorts of sugar that are available for 
monadic computation. atom uses "do" notation, string uses something like (>>)