Автоматически добавлять сигнатуры типов к функциям верхнего уровня

Я был ленив и написал модуль 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

14
задан misterbee 22 January 2012 в 18:30
поделиться