José Valim explores the limitations of type systems through the lens of a proposed Map.take!/2 function in Elixir. The function takes a map and a list of keys, returning only those keys while raising if any are missing. While trivial to implement in a dynamic language, typing it precisely proves difficult: a broad map() return
Table of contents
Exploring the existing Map.take/2 functionA proposal for Map.take!/2Enter TypeScript’s keyofFinding unsoundnessPaths to soundnessMacros for the rescue?Summing upSort: