`Optional` should not be inherited from `FirstOf`. As well as `AndPredicate` to `NotPredicate`