I was wondering if there is any possibility to implement a logical implication in scala.
For example:

```
a implies b

```

translating into:

```
!a || b

```

where `a` and `b` are some expressions that evaluate to `Boolean`.

I initially started with following, but that is a wrong approach

```
  implicit def extendedBoolean(a : Boolean) = new {
    def implies(b : Boolean) = {
      !a || b
    }
  }

```

since it will evaluate both `a` and `b` regardless the value of `a`. The correct solution would only evaluate `b` when `a` is true.