Option monad! unfortunately big slowdown (200s)
perf debugging. down to 5s

things that make a difference:
- the random seed passed to z3 (!)
- the way we emit path conditions (only last cond vs
  conjunction of all conds and let-insertion vs. duplication)

conclusion: seed=0, all conds, duplicate