id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	difficulty	ghcversion	platform
175	cabal-install needs a new package dependency resolution algorithm	duncan		"The current package dependency algorithm is pretty simple. It's main failing is that it cannot backtrack if it finds the solution is impossible.

What we would like is a new dependency resolution algorithm that can backtrack. We would also like to be able to configure policy issues separately, perhaps as a parameter. It may also be handy to let users or the system add extra version constraints.

The input is the set of available packages and the output is a list of packages to install, and the assignment of configuration flags to use for each one. As for the policy input, this might take the form of a function that picks between possible dependencies in a slot, this could then allow us to make choices like preferring installed packages over the latest available package version, or vica versa.

See also symptoms of the existing system:
 * bug #168  -- lack of configurable policy
 * bug #174  -- lack of backtracking
"	task	closed	normal		cabal-install tool	1.2.2.0	normal	fixed		dbueno@…	normal	6.4.2	Linux
