code: function insert(key) {
      return function(val) {
        return function(strMap) {
          return Z.concat (strMap, singleton (key) (val));
        };
      };
    }
docs: # insert :: String -> a -> StrMap a -> StrMap a . . Takes a string, a value of any type, and a string map, and returns a . string map comprising all the entries of the given string map plus the . entry specified by the first two arguments (which takes precedence). . . Equivalent to Haskell's `insert` function. Similar to Clojure's `assoc` . function. . . ```javascript . > S.insert ('c') (3) ({a: 1, b: 2}) . {a: 1, b: 2, c: 3} . . > S.insert ('a') (4) ({a: 1, b: 2}) . {a: 4, b: 2} . ```