/** * Application, derived with chain. * @param Maybe $that The wrapped parameter. * @return Maybe The wrapped result. */ public function ap(Maybe $that) : Maybe { return $this->chain(function ($f) use($that) { return $that->map($f); }); }