you mean like

    fishForMessage(2 seconds) {
        case "hi again" ⇒ true
      }

That doesn't work. It fails with: assertion failed: timeout (2 seconds) during fishForMessage

This is a more strict receiveWhile:

      receiveWhile(2 seconds) {
        case "hi again" ⇒
        case other      ⇒ fail("unexpected message: " + other)
      }