Lobsters | 原文链接 | 2026-09-18 收录

Haskell 格式化器 Tilia 的运算符优先级推断

来源: markkarpov.com — 2026-09-16

概述

Haskell 一直难以格式化,作者认为三个老大难是注释处理、运算符链的优先级推断与 CPP 支持。他新写的格式化器 Tilia 试图用有原则的方式一次解决三者,文章重点讲优先级与 CPP:面对自定义 fixity,他没有维护硬编码数据库,而是与 GHC 和 Cabal 打交道拿真实信息——已安装的包读接口文件,未安装的则下载源码包自己挖,并沿再导出图一路处理循环。为处理 import 带入的构造子,还得跟踪命名空间与 import 的写法。

核心要点

金句

如果你想要绝对正确与精确的承诺,就不能忽略任何东西。
返回 Lobsters 首页