code: func TakeWhile(subject Enumerable, criteria func(interface{}, uint) bool) Enumerable {
  	return takeWhiler{
  		original: subject,
  		criteria: criteria,
  	}
  }
docs: // TakeWhile creates a reusable stream which will halt once some criteria is no longer met.