Semantic
Haskellは言語ではなくデータ構造によってコントロールフローが決定される
同じ構文でも、並列計算だったり、ブロック構文だったり、非決定手計算だったりする
これはGoやJavaのような言語では不可能
どこに使用しているかと言うと、resumable exceptions
「resumable exceptions」ってなに #?? Semanticはインタプリタ的なものなので、構文として誤っているものもの解釈できないといけない
強力な型付けのおかげでランタイムでクラッシュしないため
研究のため
その他
diffのやつは最初はSwiftで実装されていたが扱いにくくなったのでHaskellにした
そもそも何するもの?
tree-sitterを使っている
tech blog, repositoryの中の他ファイルなど