You might want to take a look at DeprecationFinder (on smalltalkhub). You could make a data structure representing all missing dependencies for a package, so you can create independent models for all versions of packages. If you can reason about multiple versions of packages you calculate which versions can (not) work together based on class/method signatures.
To do this over something as large as Moose, you currently need to create deltas or at least a structure more memory efficient than Famix, otherwise you'll run out of memory. I'm looking forward to a 64 bit image+vm
Stephan