Dear Cafe,

I was wondering if there exists a tool to approximate what would be the minimal versions of the dependencies required by a package.

I know that calculating this exactly is a bit intractable, but I was considering whether a tool that works as follows would work:

1) Compile the package with known to work dependencies
2) For each version of dependency as d:
        For each function in d used by My Package:
             * Perform unification of the resulting type when compiled with known to work dependencies
               and the type exported by the api of the version of the dependency in consideration.
         If all unifications succeeds, mark the version as compatible, incompatible otherwise

This approximation is obviously not complete. Nevertheless, I would like to get opinions about whether this would be a good/useful/feasible approximation? Does the current GHC api export enough functionality for this package to be feasible? Are there alternatives? I was consider doing this as my `hack` during the high energy, intense no-sleep jacobsHack! hackathon, do you think it would be a good idea?

Thank you for the opinions and best regards,

Ernesto Rodriguez

--
Ernesto Rodriguez

Masters Student
Computer Science
Utrecht University