Немного необычный вопрос:
А можно ли сделать из дистрибутива ghc свой, портабельный вариант, с добавлением туда ряда внешних библиотек, вроде Qt и/или какой-то либы для какой-то СУБД, неважно. Главное, чтобы был чёткий алгоритм, как это сделать?
То есть на входе стандартный дистрибутив ghc, а также дистрибутивы нужных библиотек, а на выходе - свой портабельный вариант дистрибутива.
Могу предположить, что хочется иметь некое "рабочее место", которое легко предсказуемым образом развернуть.
Имею предложить для этого два варианта:
1. IHaskell в виде Docker Image, при сборке которого можно добавить нужные пакеты. GUI классического не будет, но кое-какие элементы интерфейса можно отображать и в блокнотах, графики и изображения выводить в них же. Хороший вариант для "аналитического окружения", в котором нужно что-то читать из базы и строить диаграммы по результатам.
2. Vagrant. Оный создавался как способ получения рабочих окружений предсказуемым образом. Можно запускать Vagrant поверх докера или любой другой системы виртуализации вроде VirtualBox. И пусть Vagrant в основном предполагает использование терминала в созданном окружении, но подготовленные им виртуальные машины можно использовать и с графическим окружением. В таком виде Vagrant используют в образовательных заведения, когда нужно студентам обеспечить рабочие места на их же железе с ожидаемым зоопарком ОС — в этих случаях уже настроенный образ виртуальной машины просто выкладывают для скачивания и снабжают универсальной инструкцией по разворачиванию ("поставьте VirtualBox, поставьте Vagrant, скачайте образ, запускайте командодй").