def feature_name(name):
    """
    @feature_name("name")
    def f(...): ...

    Annotate the name to be used when describing f as a feature. The default
    name when this decorator is used is the function name itself, but you can
    define any custom string here if you want to disambiguate or be more
    specific. The name provided will be used in some reports and error
    messages.
    """
    def decorate(f):
        f._feature_name = name
        return f
    return decorate