我如何 deconstruct/uncons 一个符号?

How do I deconstruct/uncons a Symbol?

给定一个类型 s :: Symbol,有没有办法通过逐一递归其字符来定义类型族? IE。就像在术语级字符串上定义递归函数一样?

你不能 - 类型级别 Symbol 不是由字符组成的字符串。 Symbol 是一组无限的名义上不同的类型,它们在语法上看起来像值级字符串,但它们具有字符串的 none 属性。事实上,除了名义上不同(和可比)之外,它们根本没有其他属性。

在任何发布的 GHC 中都不可能,但如果你想这样做,你可以使用我的补丁并加入讨论 here