adedd nondeterministic choose and fail

Based on Scheme implementation at p.293 of "On Lisp" by Paul Graham