internal ConsResult(Option <T> head) { Head = head; Tail = ConsEnumerable <T> .EmptyEnumerable; }
internal ConsResult(IConsEnumerable <T> tail) { Head = Option <T> .None(); Tail = tail; }
internal ConsResult(Option <T> head, IConsEnumerable <T> tail) { Head = head; Tail = tail; }
internal ConsResult(T head, IConsEnumerable <T> tail) { Head = Option <T> .Some(head); Tail = tail; }