ScalarNonlinearFunction is coming to MathOptInterface/JuMP. Among other benefits, this makes it easier to model constraint programming type problems, which tend to be expressed in terms of many different primitives/atoms. As a proof of concept, Oscar and I have been prototyping MiniZinc.jl on top of the MathOptInterface ScalarNonlinearFunction PR. I'll describe some challenges and decisions along the way. I'll also demonstrate some constraint programming examples.
I'll discuss constraint programming in MiniZinc.jl using MathOptInterface's new ScalarNonlinearFunction.