func AppleFlatMap(in <-chan Apple, out chan<- Apple, fn func(Apple) AppleCollection) {
	for vi := range in {
		c := fn(vi)
		c.Foreach(func(vo Apple) {
			out <- vo
		})
	}
	close(out)
}
// AppleFlatMap transforms a stream of Apple by applying a function fn to each item in the stream that
// gives zero or more results, all of which are sent out.
// When the sender closes the input channel, the output channel is closed then the function terminates.
//
// It is part of the Plumbing function suite for Apple.
AppleFlatMap transforms a stream of Apple by applying a function fn to each item in the stream that
gives zero or more results, all of which are sent out.
When the sender closes the input channel, the output channel is closed then the function terminates.

It is part of the Plumbing function suite for Apple.
// AppleFlatMap transforms a stream of Apple by applying a function fn to each item in the stream that // gives zero or more results all of which are sent out . // When the sender closes the input channel the output channel is closed then the function terminates . // // It is part of the Plumbing function suite for Apple .
func AppleFlatMap(in <-chan Apple, out chan<- Apple, fn func(Apple) AppleCollection) {
	for vi := range in {
		c := fn(vi)
		c.Foreach(func(vo Apple) {
			out <- vo
		})
	}
	close(out)
}
func AppleFlatMap ( in <- chan Apple , out chan <- Apple , fn func ( Apple ) AppleCollection ) { for vi := range in { c := fn ( vi ) c . Foreach ( func ( vo Apple ) { out <- vo } ) } close ( out ) }
AppleFlatMap transforms a stream of Apple by applying a function fn to each item in the stream that
gives zero or more results, all of which are sent out.
AppleFlatMap transforms a stream of Apple by applying a function fn to each item in the stream that gives zero or more results all of which are sent out .