Discretely probabilistic non-determinism in Haskell