cast<T1> method

Maybe<T1> cast<T1>()
inherited

Cast this Maybe<T> into an Maybe<T1>, throwing an TypeError if not possible.

This should be used only in cases where variance would get messed up, for example: ``` abstract class A {}

class B extends A { B getB() => this; }

class C extends A {}

A function(A a) => (a is B ? a.getB().just : None

In this case the code would compile but not run.

So, this is needed:
```A function(A a) =>
     (a is B ? a.getB().just : None<C>()).cast().valueOr(a);```

Implementation

Maybe<T1> cast<T1>() => _self.fmap<T1>((v) => v as T1);