This repository was archived by the owner on Nov 15, 2019. It is now read-only.

Description
Create a new ChoicePoint implementation which, in a separate goroutine, steps a machine until it fails or finds an answer. It then sends itself down a channel where the original machine can extract its "future self" if it follows that disjunction.
We'll need some timing information to know which predicates are worth spawning. Once we have that, we can choose which choice points want parallel execution and which don't.
During this process, keep an eye open for ways to support and-parallelism too.