code: def get_fun_prop(f, k):
      
      if not has_fun_prop(f, k):
          raise InternalError("Function %s has no property %s" % (str(f), k))
      return getattr(f, _FUN_PROPS)[k]
docs: Get the value of property `k` from function `f`.
  
      We define properties as annotations added to a function throughout
      the process of defining a function for verification, e.g. the
      argument types.  If `f` does not have a property named `k`, this
      throws an error.  If `f` has the property named `k`, it returns
      the value of it.
  
      Users should never access this function directly.