private trace — function
trace(f, args; is_primitive = is_trace_primitive,
submodules = [],
ctx = Dict{Any, Any}())
Trace the function call f(args...) and return the Ghost.Tape.
Callables in submodules are considered primitive operators.
This function is not meant to be called by users.
Users should use simulatable or generatehw instead.