Типичным путем является таблица с внешним ключом (например, "ParentId") на себя.
Мой текущий дистрибутив, Arch Linux , имеет обширную поддержку Haskell.
Вы можете увидеть статус напрямую доступных пакетов haskell здесь ( на момент написания доступно 1370 пакетов). Существует также вики-страница о пакетах Haskell в Arch Linux.
На самом деле вам не нужно выбирать конкретный, если тот, который вы используете, предоставляет по крайней мере пакеты одного из доступных интерпретаторов / компиляторов Haskell (Hugs, GHC и т. Д.) И cabal / darcs (вам понадобится один из них, чтобы выбрать полезные библиотеки / инструменты из огромных репозиториев HackageDB или darcs). Раньше я размышлял над тем же вопросом, но позже, когда я узнал, как использовать кабалы / дарки, чтобы найти то, что мне нужно, я понял, что ваш выбор почти не имеет значения. Хотя я предпочитаю Arch, Ubuntu, Fedora (или другие дистрибутивы, упомянутые выше) подойдут.
Haskell Platform 2009.2.0.1 находится в Fedora 11.
Платформа Haskell 2009.2.0.2 находится в Fedora 12.
Платформа Haskell 2009.2.0.2.1 находится в Debian Unstable, она должна перейти на тестирование примерно через неделю.
Платформа Haskell 2009.2.0.2 замаскирована при тестировании Gentoo.
Arch Linux, вероятно, является наиболее всеобъемлющим, почти 90% Hackage упаковано в AUR.
Не уверен, что касается конкретно Haskell, но я обнаружил, что Ubuntu сильно обновляется, но, что более важно, они имеют тенденцию подчеркивать стабильность. Если вы занимаетесь разработкой на Haskell, я полагаю, вы предпочитаете стабильность передовым программам ...
Обычно репозитории ориентированы на «общий» случай, а не на высокопроизводительного пользователя. Вы можете получить больше преимуществ, собрав ghc из исходных текстов со всеми вашими собственными требованиями.
Возможно, вы захотите заглянуть в нестандартные репозитории, чтобы узнать, сделали ли уже другие любители Haskell эту работу за вас.
Я изучаю Haskell и использую Ubuntu, он очень хороший и стабильный.
С уважением.