def state(func):
    """A decorator that identifies which methods are states.
        The presence of the farc_state attr, not its value,
        determines statehood.
        The Spy debugging system uses the farc_state attribute
        to determine which methods inside a class are actually states.
        Other uses of the attribute may come in the future.
        """
    setattr(func, 'farc_state', True)
    return staticmethod(func)
