require_root as function, not annotation