Добрый вечер! Высылаю два архива: один для hugs, другой для ghc. В первом изменения по сравнению изначальным packetTSG.zip касаются только импортируемых библиотек: вместо IORef надо теперь писать Data.IORef, а функции для unsafe IO теперь лежат в System.IO.Unsafe. Этих изменений достаточно для работы с новым hugs (сентябрь 2006). Запускать: hugs -98 +o HUGSMain.hs (или GHCMain.hs, неважно). С ghc сложнее. В версии 6.6 они ввели правило, что если некий модуль скомпилирован без -fallow-overlapping-instances, то нельзя потом вводить инстансы, которые пересекаются с теми, что были в этом модуле. При этом инстансы для Show у них скомпилированны без -fallow-overlapping-instances. Поэтому делать свои show для своих списков или своих таплов нельзя. В архиве для ghc я закомментировал все такие инстансы. Где возможно, я заменил их на специализированные функции для показа (например, showBranches вместо instance Show [Branch]). Однако полностью это проблему не решает, потому что в программе активно используется именно стандартный механизм show. Т.е. всё работает, но многие вещи показываются некрасиво. Исправлять это можно двумя способами: либо везде использовать свои функции показа вместо show, либо (и это более правильно) имправлять структуры данных -- вместо type alias'ов использовать полноценные data с конструкторами. Запускать ghc интерактивно так: ghci -fglasgow-exts -fallow-undecidable-instances -fallow-overlapping-instances GHCMain.hs А на компиляцию так: ghc --make -fglasgow-exts -fallow-undecidable-instances -fallow-overlapping-instances GHCMain.hs On Thu, Nov 09, 2006 at 00:02:41 +0300, Sergei M. Abramov wrote: > У меня с новыми версиями GHC и WinHUGS все программы под Windows работают. > > >> The Glorious Glasgow Haskell Compilation System, version 6.4.2 > >> (21.04.2006) Да, с 6.4 проблем нет. Я долго пытался понять, что же они наворотили в 6.6 (выпущен 11 October 2006) -- думал, что у Вас проблема именно с ним. > >> WinHugs-Sep2006.exe > > Студентам надо правильно ставить опции при компиляции и/или запуске. Можно > им отписать. > > В том числе -- надо подсказывать путь на "старые" библиотеки. Это опции -P > для HUGS и "-package lang" -- для GHC -- см. bat-файлы. Если использовать мой подправленный архив для hugs, то эти опции не нужны. > Понятно, что так же можно запускать и другие модули с функциями main и/или > test*. Например, ScpTest.hs. А вот этот, кстати, не работает. Я не разбирался, почему. Антон.