code: function propPathEq(keys, value, target) {
    if(!isArray(keys)) {
      throw new TypeError(
        'propPathEq: Array of Non-empty Strings or Integers required for first argument'
      )
    }
  
    if(isNil(target)) {
      return false
    }
  
    let acc = target
    for(let i = 0; i < keys.length; i++) {
      const key = keys[i]
  
      if(!(isString(key) && !isEmpty(key) || isInteger(key))) {
        throw new TypeError(
          'propPathEq: Array of Non-empty Strings or Integers required for first argument'
        )
      }
  
      if(isNil(acc)) {
        return false
      }
  
      acc = acc[key]
  
      if(!isDefined(acc)) {
        return false
      }
    }
  
    return equals(acc, value)
  }
docs: propPathEq :: [ String | Number ] -> a -> Object -> Boolean