Я был ленив и написал модуль Haskell (используя превосходную EclipseFP IDE), не давая сигнатуры типов для моих функций верхнего уровня.
EclipseFP использует HLint для автоматической пометки каждой вызывающей нарушение функции, и я могу исправить каждую с помощью 4 щелчков мыши. Эффективно, но утомительно.
Существует ли служебная программа, которая будет сканировать файл .hs и генерировать измененную версию, которая добавляет сигнатуры типов к каждой функции верхнего уровня?
Пример:
./addTypeSignatures Foo.hs
будет читать файл Foo.hs
:
foo x = foo + a
и выдают
foo :: Num a => a -> a
foo x = x + 1
бонусные баллы, если инструмент автоматически редактирует Foo.hs
на месте и сохраняет резервную копию Foo.bak.hs