Companion object for Good that offers, in addition to the standard factory method
for Good that takes single “good” type, an parameterless apply
used to narrow the Good type when creating a Bad.
Supports the syntax that enables Bad instances to be created with a specific
Captures a Good type to enable a Bad to be constructed with a specific
Because Or has two types, but the Bad factory method only takes a value of the “bad” type, the Scala compiler will
infer Nothing for the Good type:
res1: org.scalautils.Bad[Nothing,String] = Bad(oops)
Often Nothing will work fine, as it will be widened as soon as the compiler encounters a more specific Good type.
Sometimes, however, you may need to specify it. In such situations you can use this factory method, like this:
res3: org.scalautils.Bad[Int,String] = Bad(oops)