code: function prop(key, target) {
    if(!(isString(key) && !isEmpty(key) || isInteger(key))) {
      throw new TypeError('prop: Non-empty String or Integer required for first argument')
    }
  
    if(isNil(target)) {
      return Nothing()
    }
  
    const value = target[key]
  
    return isDefined(value)
      ? Just(value)
      : Nothing()
  }
docs: prop : (String | Integer) -> a -> Maybe b