whole_func_string: function findMorph (args, morphs) {
    for (var i = 0; i < morphs.length; i++) {
      var sig = morphs[i].sig
  
      if (args.length == sig.length) {
        var matched = true
  
        for (var j = 0; j < sig.length; j++) {
          if (!isType(sig[j], args[j])) {
            matched = false
            break
          }
        }
  
        if (matched) {
          return morphs[i]
        }
      }
    }
    throw new Error('No matching function signature')
  }
func_code_string: function findMorph (args, morphs) {
    for (var i = 0; i < morphs.length; i++) {
      var sig = morphs[i].sig
  
      if (args.length == sig.length) {
        var matched = true
  
        for (var j = 0; j < sig.length; j++) {
          if (!isType(sig[j], args[j])) {
            matched = false
            break
          }
        }
  
        if (matched) {
          return morphs[i]
        }
      }
    }
    throw new Error('No matching function signature')
  }
func_documentation_string: Find a morph for the passed arguments