improve test coverage; curry prepend and append

I'd be fine removing the public `isAtom`, and the private implementation if we don't use it internally.  It looks a little like LISP-envy.