code: function hasProp(key, x) {
    if(!(isString(key) && !isEmpty(key) || isInteger(key))) {
      throw new TypeError(
        'hasProp: Non-empty String or Integer required for first argument'
      )
    }
  
    if(isNil(x)) {
      return false
    }
  
    return isDefined(x[key])
  }
docs: hasProp : (String | Integer) -> a -> Boolean