Some types and functions that support concepts from FP like Option<T> and Choice<T1, T2>