def hal_wrapper(f):
    """Decorator to support introspection. The wrapped function must be
       the same name as the wrapper function, but start with an underscore
    """
    wrapped = globals()['_' + f.__name__]
    if hasattr(wrapped, 'fndata'):
        f.fndata = wrapped.fndata
    return f
