I'm nervous about binary compatibility here. Can we get a non anonymous class for the public API? Something dumb like:
```scala
trait WithProb {
  def withProbAtLeast(p: Double): Boolean
}
``` 
then return a new one of those.