■
とりあえず、
let f = function x -> x;; let f = fun x -> x;;
みたいのを:fundefに認識するよう修正。
そのあと、
a = b;;
の=は:identだけど、
let x = 1
の=は:punctに認識するよう直してるうちにわからなくなったので、結局一つもコミットせず。
おんなじ問題は*にもあって、
1*2
の*は:identだけど、
type t = int * string
の*は:punctになっていて欲しいみたいな感じで。めんどくさくって、むきーってなります。むきーって。
相互再帰のandの後のも:fundefに認識するようにしたいけど、これはあまりにめんどいのでとりあえずはパスの方向で(個人的には)。
例えば、
let f = List.map ((+) 1)
みたいな定義を:fundefに認識するのは、型推論すればなんとかなりそうにも見えるが、外で定義された関数をいちいちたどるのは不可能なので、こいつは:identで我慢してもらう方向(個人的には)。
でももうあきらめちゃって、letで束縛されたやつは全て:fundefにしちゃうとかでも良いのかも。関数呼び出しは、ちょっとがんばれば構文的に認識できるわけだし(私が対応したわけでもないのに偉そうですが)。