MonadPlus<Conveyor<F, O>> conveyorMP<F, O>() => new MonadPlusOpsMonadPlus((a) => Conveyor.produce(cast<O>(a)), () => Conveyor.halt(Conveyor.End));