
"""
    Tape

TODO: update docs
- `code::Vector{Expr}`: The julia expression containing the code for the whole graph.
- `inputSymbols::Dict{String, Vector{Symbol}}`: A dictionary of symbols mapping the names of the input nodes of the graph to the symbols their inputs should be provided on.
- `outputSymbol::Symbol`: The symbol of the final calculated value
"""
struct Tape
    initCachesCode::Vector{Expr}
    inputAssignCode::Vector{FunctionCall}
    computeCode::Vector{FunctionCall}
    inputSymbols::Dict{String, Vector{Symbol}}
    outputSymbol::Symbol
    cache::Dict{Symbol, Any}
    process::AbstractProcessDescription
    machine::Machine
end
