Not sure if it&#x27;s directly applicable to Hypothesis, but one way to use QuickCheck for interactive code is to define a type representing actions to take, eg.<p><pre><code>  data Action = DoFoo | DoBar | DoSequence [Action] | DoParallel [Action]
</code></pre>
We can then write an &quot;run&quot; function which executes these action, and use it in our properties.