human
I wrote the below code

    def decorator(p_cls, registration_name=None):
        'Registers    &    returns    p_cls    with    registration_name    or    default    name.'
        p_name = (registration_name or _default_name(p_cls))
        if (p_name in _PROBLEMS):
            raise ValueError(('Problem    %s    already    registered.' % p_name))
        _PROBLEMS[p_name] = p_cls
        p_cls.name = p_name
        return p_cls
    if callable(name):
        p_cls = name
        return decorator(p_cls, registration_name=_default_name(p_cls))
    return (lambda p_cls: decorator(p_cls, name))

What's a good function header?
 ... Here's a good function header?
assistant
#Here's a good function header.

def register_problem(name=None):