(almost Maybe<T>) • Func<T> — represents a T that can be computed on demand • Lazy<T> — represents a T that can be computed on demand once, then cached • Task<T> — represents a T that is being computed asynchronously and will be available in the future, if it isn’t already https://ericlippert.com/2013/02/25/monads-part-two/