added ioprimitives through readAll; doesn't compile because of would-be circular dependency between eval.hs and primitives.hs. TODO: reorganize