Python's Distutils system is in many ways similar to what we propose here. It is a system for building and installing Python modules, written purely in Python. The user interface is a Python script, (setup.py by convention) and a setup configuration file (setup.cfg by convention). To quote from Distributing Python Modules, "The setup configuration file is a useful middle-ground between the setup script--which, ideally, would be opaque to installers -- and the command-line to the setup script, which is outside of your control and entirely up to the installer. "
Its noteworthy that Python has a big advantage over many programming languages when implementing a system like Distutils: It is designed to be well suited to so-called scripting tasks, which are common to the installation task, and Python has done these tasks in a portable way for a long time. I believe that Haskell should evolve portable ways to perform common scripting tasks.