It looks like we're not quite handling literal_pow correctly:
julia> using SimpleQP
julia> model = SimpleQP.MockModel()
SimpleQP.MockModel(SimpleQP.Parameter[], Base.RefValue{Int64}(1))
julia> p = Parameter(() -> 1.0, model)
Parameter{Float64, …}(…)
julia> e = @expression(p^2)
LazyExpression{FunctionWrapper{…}(LazyExpression{Base.#literal_pow, …}(…))}(…)
julia> e()
1.0
julia> SimpleQP.findallocs(e)
LazyExpression{FunctionWrapper{…}(LazyExpression{Base.#literal_pow, …}(…))}(…): 48 bytes
[1]: Base.#^
[2]: Parameter{Float64, …}(…): 0 bytes
[3]: DataType
It looks like we're not quite handling
literal_powcorrectly: