These calls to `nlp_data` are not type stable, so every callback allocates. Can we fix this? One option is something like #514 https://github.com/jump-dev/Ipopt.jl/blob/077843b3b77b5946011c7656c267fc272a0427f0/ext/IpoptMathOptInterfaceExt/MOI_wrapper.jl#L1033