| ▲ | foxes 8 hours ago | |
So if we pretend a list is a function from an index to an entry for the moment ``` Enum.take(list , 2) ``` Is more like ``` Enum.take(list, [1,2]) ``` So if you apply that to a list of length 1 or zero, you just get either list[1], or [] The difference is that Enum is maybe a total function - the domain of the function is always well defined, while Map take is trying to be dressed up as a total function but its really something thats only partial. So the type system needs a way to describe a map that has "at least these keys" a bit like the enum case. So that requires some polymorphism. | ||