<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def hint(invertible=True, callable=None, **hints):
 """ A decorator that can optionally hang datanommer hints on a rule. """


    def wrapper(fn):
        # Hang hints on fn.
        fn.hints = hints
        fn.hinting_invertible = invertible
        fn.hinting_callable = callable
        return fn

    return wrapper