# Functions
Concat takes zero to many source `Ènumerable`s and stacks them on top of each other, resulting in one enumerable that will iterate through all the values in all of the given sources.
ForEach iterates over the given source `Enumerable` performing the given action on each item.
New creates an `Enumerable` from the given slice.
NewQueue creates an empty FIFO queue.
NewSocket creates a new Socket enumerable with no initial source.
OnEach iterates over the given source `Enumerable` performing the given action for each item yielded.
Select creates a new `Enumerable` that iterates through each item yielded by the given source and then yields the value returned by the given selector.
Skip creates an `Enumerable` from the given `Enumerable` and offset.
Sort creates an `Enumerable` from the given `Enumerable`, using the given less function to determine as to whether an item is less than the other in in terms of order.
Take creates an `Enumerable` from the given `Enumerable` and limit.
TryGetFirst returns the first element yielded from the given source along with true.
Where creates an `Enumerable` from the given `Enumerable` and predicate.
# Interfaces
Concatenation is an extention of the enumerable interface allowing new sources to be added after initial construction.
Enumerable represents a set of elements that can be iterated through multiple times.
Queue is an extention of the enumerable interface allowing individual items to be added into the enumerable.
Socket is an extention of the enumerable interface allowing the source to be replaced after initial construction.