function createSignaturesMap(signatures) {
      var signaturesMap = {};
      signatures.forEach(function (signature) {
        if (!signature.params.some(hasConversions)) {
          splitParams(signature.params, true).forEach(function (params) {
            signaturesMap[stringifyParams(params)] = signature.fn;
          });
        }
      });

      return signaturesMap;
    }
Convert an array with signatures into a map with signatures,
where signatures with union types are split into separate signatures

Throws an error when there are conflicting types

@param {Signature[]} signatures
@return {Object.<string, function>}  Returns a map with signatures
                                     as key and the original function
                                     of this signature as value.