Factored out "solution-only" and "full-project" multi-methods