# Path: prolog/builtin/register.py
# def expose_builtin(*args, **kwargs):
#     def really_expose(func):
#         return make_wrapper(func, *args, **kwargs)
#     return really_expose
# 
# Path: prolog/interpreter/continuation.py
# def get_printable_location(rule, sconttype):
# def get_jitcell_at(where, rule):
# def set_jitcell_at(newcell, where, rule):
# def driver(scont, fcont, heap):
# def _process_hooks(scont, fcont, heap):
#     def __init__(self, load_system=False):
#     def _freeze_(self):
#     def add_rule(self, ruleterm, end=True):
#     def make_rule(self, ruleterm, module):
#     def get_builtin(self, signature):
#     def _build_and_run(self, tree, source_string, file_name):
#     def _term_expand(self, term):
#     def runstring(self, s, file_name=None):
#     def parse(self, s, file_name=None):
#     def getoperations(self):
#     def run_query(self, query, module, continuation=None):
#     def run_query_in_current(self, query, continuation=None):
#     def call(self, query, rule, scont, fcont, heap):
#     def call_in_module(self, query, module, scont, fcont, heap):
#     def _get_function(self, signature, module, query): 
#     def switch_module(self, modulename):
#     def throw(self, exc, scont, fcont, heap, rule_likely_source=None):
#     def __freeze__(self):
# def _make_rule_conts(engine, scont, fcont, heap, query, rulechain):
# def _dot(self, seen):
#     def __new__(cls, name, bases, dct):
#     def __init__(self, engine, nextcont):
#     def activate(self, fcont, heap):
#     def is_done(self):
#     def find_end_of_cut(self):
#     def __init__(self, engine, nextcont, rule):
# def view(*objects, **names):
#     def __init__(self, engine, nextcont, orig_fcont, heap):
#     def fail(self, heap):
#     def cut(self, upto, heap):
#     def is_done(self):
# def make_failure_continuation(make_func):
#         def __init__(self, engine, scont, fcont, heap, *state):
#         def fail(self, heap):
#     def make_func_wrapper(*args):
#     def __init__(self, engine):
#     def is_done(self):
#     def __init__(self, engine):
#     def fail(self, heap):
#     def is_done(self):
#     def __init__(self, engine, rule, nextcont, body):
#     def activate(self, fcont, heap):
#     def __repr__(self):
#     def __init__(self, engine, rule, nextcont, builtin, query):
#     def activate(self, fcont, heap):
#     def __repr__(self):
#     def __init__(self, engine, nextcont, orig_fcont, heap, query, rulechain):
#     def fail(self, heap):
#     def __repr__(self):
#     def __init__(self, engine, nextcont, rule, query):
#     def activate(self, fcont, heap):
#     def __repr__(self):
#     def __init__(self, engine, nextcont, fcont_after_cut):
#     def insert_scope_notifier(engine, nextcont, fcont):
#     def find_end_of_cut(self):
#     def activate(self, fcont, heap):
#     def __init__(self, engine, rule, nextcont, fcont, catcher, recover, heap):
#     def activate(self, fcont, heap):
#     def __repr__(self):
# class Engine(object):
# class MetaCont(type):
# class Continuation(object):
# class ContinuationWithRule(Continuation):
# class FailureContinuation(object):
#     class C(FailureContinuation):
# class DoneSuccessContinuation(Continuation):
# class DoneFailureContinuation(FailureContinuation):
# class BodyContinuation(ContinuationWithRule):
# class BuiltinContinuation(ContinuationWithRule):
# class UserCallContinuation(FailureContinuation):
# class RuleContinuation(ContinuationWithRule):
# class CutScopeNotifier(Continuation):
# class CatchingDelimiter(ContinuationWithRule):


from prolog.builtin.register import expose_builtin
from prolog.interpreter import continuation

@expose_builtin("trace", unwrap_spec=[])
def impl_trace(engine, heap):
    pass


# Path: prolog/builtin/register.py
# def expose_builtin(*args, **kwargs):
#     def really_expose(func):
#         return make_wrapper(func, *args, **kwargs)
#     return really_expose
# 
# Path: prolog/interpreter/continuation.py
# def get_printable_location(rule, sconttype):
# def get_jitcell_at(where, rule):
# def set_jitcell_at(newcell, where, rule):
# def driver(scont, fcont, heap):
# def _process_hooks(scont, fcont, heap):
#     def __init__(self, load_system=False):
#     def _freeze_(self):
#     def add_rule(self, ruleterm, end=True):
#     def make_rule(self, ruleterm, module):
#     def get_builtin(self, signature):
#     def _build_and_run(self, tree, source_string, file_name):
#     def _term_expand(self, term):
#     def runstring(self, s, file_name=None):
#     def parse(self, s, file_name=None):
#     def getoperations(self):
#     def run_query(self, query, module, continuation=None):
#     def run_query_in_current(self, query, continuation=None):
#     def call(self, query, rule, scont, fcont, heap):
#     def call_in_module(self, query, module, scont, fcont, heap):
#     def _get_function(self, signature, module, query): 
#     def switch_module(self, modulename):
#     def throw(self, exc, scont, fcont, heap, rule_likely_source=None):
#     def __freeze__(self):
# def _make_rule_conts(engine, scont, fcont, heap, query, rulechain):
# def _dot(self, seen):
#     def __new__(cls, name, bases, dct):
#     def __init__(self, engine, nextcont):
#     def activate(self, fcont, heap):
#     def is_done(self):
#     def find_end_of_cut(self):
#     def __init__(self, engine, nextcont, rule):
# def view(*objects, **names):
#     def __init__(self, engine, nextcont, orig_fcont, heap):
#     def fail(self, heap):
#     def cut(self, upto, heap):
#     def is_done(self):
# def make_failure_continuation(make_func):
#         def __init__(self, engine, scont, fcont, heap, *state):
#         def fail(self, heap):
#     def make_func_wrapper(*args):
#     def __init__(self, engine):
#     def is_done(self):
#     def __init__(self, engine):
#     def fail(self, heap):
#     def is_done(self):
#     def __init__(self, engine, rule, nextcont, body):
#     def activate(self, fcont, heap):
#     def __repr__(self):
#     def __init__(self, engine, rule, nextcont, builtin, query):
#     def activate(self, fcont, heap):
#     def __repr__(self):
#     def __init__(self, engine, nextcont, orig_fcont, heap, query, rulechain):
#     def fail(self, heap):
#     def __repr__(self):
#     def __init__(self, engine, nextcont, rule, query):
#     def activate(self, fcont, heap):
#     def __repr__(self):
#     def __init__(self, engine, nextcont, fcont_after_cut):
#     def insert_scope_notifier(engine, nextcont, fcont):
#     def find_end_of_cut(self):
#     def activate(self, fcont, heap):
#     def __init__(self, engine, rule, nextcont, fcont, catcher, recover, heap):
#     def activate(self, fcont, heap):
#     def __repr__(self):
# class Engine(object):
# class MetaCont(type):
# class Continuation(object):
# class ContinuationWithRule(Continuation):
# class FailureContinuation(object):
#     class C(FailureContinuation):
# class DoneSuccessContinuation(Continuation):
# class DoneFailureContinuation(FailureContinuation):
# class BodyContinuation(ContinuationWithRule):
# class BuiltinContinuation(ContinuationWithRule):
# class UserCallContinuation(FailureContinuation):
# class RuleContinuation(ContinuationWithRule):
# class CutScopeNotifier(Continuation):
# class CatchingDelimiter(ContinuationWithRule):


# Path: prolog/builtin/tracing.py
from prolog.builtin.register import expose_builtin
from prolog.interpreter import continuation


@expose_builtin("trace", unwrap_spec=[])
def impl_trace(engine, heap):
    pass


@expose_builtin("notrace", unwrap_spec=[])