Итак, я решил старые проблемы с deriving и получил новые. На функциях он не падает. Полиморфный тип ('a. 'b) PMap.t я обренул
тут.
Получил новую проблему: deriving повисает, когда две переменные рекурсивные. (По-видимому надо использовать механизм подбный тому, что есть в ocamldebug - печатать только до определеной глубины). Впрочем даже "великий и могучий" х-ь не спарвляется с такими вот типами
data T = A T | B T | C deriving (Show)
foo = A x
where
x = B foo
show foo продолжает работает пока ему это не надоест. Выкинуть deriving? Писать печаталку ручками?я даже не знаю
TODO:
- Понять нужен ли deriving. Может быть стоит обойтись печатью руками или sexplib?
- Точно знать какая связь с исходным файлом есть в сегодняшнем AST. Пока я придерживаюсь мнения, что есть привязки только к методам класса.
- Надо понять к чему плагин я буду делать: emacs или QtCreator.
- Доразбираться с плагинной системой QtCreator. Я нашел, что подстветка для С++ делается руками в файле $QTC_SRC/src/plugins/cppeditor/cpphighlighter.cpp. Надо сваять редактор для хакса хотя бы с подстветкой.
- Надо научиться апдейтить исходники компилятора. Я так и не понял как это лучше сделать.