public static Map <OrdK, K, V> create <OrdK, K, V>(KeyValuePair <K, V> head, params KeyValuePair <K, V>[] tail) where OrdK : struct, Ord <K> => empty <OrdK, K, V>().AddRange(head.Cons(tail));
public static Map <K, V> create <K, V>(KeyValuePair <K, V> head, params KeyValuePair <K, V>[] tail) => empty <K, V>().AddRange(head.Cons(tail));