public static <E,M>ProducerT<E,M,T0> yield(E e){
  return ProducerT.producerT(FreeT.liftF(YieldF.yield(e,T0.of())));
}

public static < E , M > ProducerT < E , M , T0 > yield ( E e ) { return ProducerT . producerT ( FreeT . liftF ( YieldF . yield ( e , T0 . of ( ) ) ) ) ; }
produces a generator that will suspend its computation returning a yielded value , plus the rest of the computation to be completed later .
