recursive constraint solver which picks right versions for inexact deps
adjust test so it passes

still correct