Wishlist

Clean is a continuous work in progress. If you have any ideas about what is missing in Clean or could be improved you can add them to this page.
Adding something to the wishlist does not automatically mean that your great idea will be added to Clean. This list is just a place to collect ideas about how Clean could be improved.

Improved imports

I would like to see an improved import system for modules which allows hierarchic package names and qualified imports. When for example a definition module Baz.dcl in a directory foo/bar could be imported using the statement import qualified foo.bar.Baz, it becomes possible to create a large hierarchic repository of libraries without namespace conflicts. As an additional advantage, we no longer need to supply multiple paths in project or environment files.

Generic functions with multiple dependencies

Currently, a generic function in Clean automatically depends on itself only. Often, a generic function is a complicated mixture of multiple tasks, which are normally handled by different generic functions. Because of the dependency restriction in Clean, this requires the developer to combine several generic functions into a single generic function, together with additional parameters which denote the current state/mode/function of the generic function.

If a generic function can depend on multiple other generic functions, we are able to define concise generic functions, each with a specific task. This improves the readability, maintainability, and usability of generic functions. Furthermore, specialization of a generic function becomes more fine-grained since we can choose to specialize a single generic function which performs a specific task, instead of specializing a generic function which performs multiple tasks.