Common practice is to match SERVER to MODULE and to put the client side (that calls gen_server:call) in the same module. It may seem odd at first, but it helps encapsulate the messaging details.

So I'd export a `solve` function from this module and call it in chef_depsolver module.