examples involving case r => ...
undercouting has the natural meaning of conditional prob :-)
a bit more determinism to break prob ties when printing model
indicator extractor and a few type tweaks
more permissive scrutinee types in virt pattern matching

this commit adds preliminary support for definitions like this:

def runOrElse[T,U](in: RandVar[T])(matcher: T => RandVar[U]): RandVar[U]

further testing is needed, this is just a first cut