「：展开模式匹配成Decision Tree：」

寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。

。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。

寻观「编译器核心」之「编译步骤」之「类型标注擦除」之「模式匹配消除」之书。

寻观「拓展库」之「顺序标识符」之「顺序标识符」之书。

「检查模式头一致」乃化「字符串」而化「节点名称」而化「节点名称」而「爻」也。
「检查模式头一致」者会「调试」而会「名甲」而会「名乙」而
  鉴「名甲」与「名乙」而
    有（「展开后唯一构造器节点」于「序数甲」）与（「展开后唯一构造器节点」于「序数乙」）则
      （「等」于「序数甲」于「序数乙」）
    或有（「整数节点」于「数甲」）与（「整数节点」于「数乙」）则
      （「等」于「数甲」于「数乙」）
    或有（「字符串节点」于「串甲」）与（「字符串节点」于「串乙」）则
      （「串相等」于「串甲」于「串乙」）
    或有（「内建节点」于「内建爻阳」）与（「内建节点」于「内建爻阳」）则
      「阳」
    或有（「内建节点」于「内建爻阴」）与（「内建节点」于「内建爻阴」）则
      「阳」
    或有（「内建节点」于「内建爻阴」）与（「内建节点」于「内建爻阳」）则
      「阴」
    或有（「内建节点」于「内建爻阳」）与（「内建节点」于「内建爻阴」）则
      「阴」
    或有「元组构造节点」与「元组构造节点」则
      「阳」
    或有「其他」则「发生事故」于「调试」附『，67，模式不一致，检查类型检查：』附（「节点名称表示」于「名甲」）附
      『，』附（「节点名称表示」于「名乙」）也。

「收集模式头」乃化（「列」于（「节点名称」合「整数」 「：参数个数：」
  ））而化（「列」于「表达式」）而「列」于（「节点名称」合「整数」）也。
「收集模式头」者会「已有」而会「待处理」而
  鉴「待处理」而
    有「罄」则「已有」
    或有（「缀」于「当前」于「剩余」）则（鉴「当前」而
      有（「式节点」于（「模式匹配新变量」于「名」）于「参」）则
        （「收集模式头」于「已有」于「剩余」）
      或有（「式节点」于（「节点」）于「参数」）则（若（（「存在吗」授以（「节点名称」合「整数」））
            于（会
            「节名及数」而
            若（「检查模式头一致」于『59』于（「节点」）于（「二对子取零」于「节名及数」））
            则
              （若（「等」于（「节名及数」中「一」）于（「长度」于「参数」））
              则
                「阳」
              否则
                「发生事故」于『参数长度不匹配62』
              ）
            否则
              （「阴」））于「已有」
        ）
      则
        （「收集模式头」于「已有」于「剩余」）
      否则
        （「收集模式头」于（（「附加」授以（「节点名称」合「整数」））于「已有」
          于（（（「列」于（「节点名称」合「整数」））也（（「列」【（「节点」与（「长度」于「参数」））】）））））于「剩余」
        ））
      或有「其他」则「发生事故」于『50不支持的模式匹配项』附（「表达式表示」于「当前」））也。

「： 检查模式头全部统一乃化节点名称列而有也。
检查模式头全部统一者会名们而
    鉴名们而
        有【】则元
        或有「第一名」衔「后」则
                （（有列也态射于（检查模式头一致于第一名）于后）；元）也。 ：」

「：TODO Converage 
TODO 减少Code Copying：」
「展开模式匹配」乃化「表达式」 「：报错信息：」而
  化（「列」于「表达式」） 「：待匹配的：」而
  化（「列」于（（「列」于「表达式」）合「表达式」）） 「：可能匹配分支：」而
  「表达式」 「：转换过的模式匹配表达式：」
也。
「展开模式匹配」者会「报错式」而会「待匹配」而会「可能匹配」而
  虑「递归」者（化（「列」于「表达式」）而化（「列」于（（「列」于「表达式」）合「表达式」））而「表达式」也
      会「后待匹配」而会「后可能匹配」而
        「展开模式匹配」于「报错式」于「后待匹配」于「后可能匹配」
  ）而
  虑「无」者（「编译调试打印行」于『pattern_expand』于（会「无」而
    『正在展开模式匹配：』附（「间合」于『||||』于（（「态射」）于「待匹配」于「表达式表示」））附
        『「：换行：」可能分支：共』附（「整数表示」于（「长度」于「可能匹配」））附『个：』附（「间合」于
          『*********』于（（「打表态射」授以（（「列」于「表达式」）合「表达式」）授以「字符串」）于
            「可能匹配」于（会
            「可能匹配分支们」而「间合」于『||||』于（（「态射」）
              于（（（「列」于「表达式」）合「表达式」也「可能匹配分支们」）中「零」）于
              「表达式表示」））））））而
  鉴「待匹配」而
    有「罄」则（若（「大于」于（「长度」于「可能匹配」）于「零」）
    则
      （（「第N个」授以（（「列」于「表达式」）合「表达式」））于「零」于「可能匹配」）中「一」
    否则
      「报错式」
    ）
    或有「非空待匹配」则（虑「所有模式头」者「收集模式头」于「罄」
        于（（「态射」）于「可能匹配」
          于（会「模式」而（「第N个」授以「表达式」）于「零」于（「二对子取零」于「模式」）））而
                          虑「匹配分支们」者（「态射」授以（「节点名称」合「整数」）授以「表达式」）于「所有模式头」
                          于（会
                「模式头及参数长」而
                      虑「符合分支」者「滤态射」授以（（「列」于「表达式」）合「表达式」）授以（（「列」于「表达式」）合
                        「表达式」
                      ）
                          于（会
                          「当前」而
                          鉴（（「第N个」授以「表达式」）于「零」于（「二对子取零」于「当前」））而
                            有（「式节点」于（「模式匹配新变量」于「变量名」）于「参」）
                            则（虑「新变量名」者（「打表」授以「字符串」）
                              于（「二对子取一」于「模式头及参数长」）
                              于（会「数」而「下个字符序数」于『新参数』附（「整数表示」于「数」）附『_』）而（「可有」
                                于（（（「附加」授以「表达式」）
                                  于（（「态射」）于
                                  「新变量名」于（会「名」而「式节点」
                                  于（「模式匹配新变量」于「名」）
                                  于（（（「列」于「表达式」）也（（「列」【（「式节点」于「待定节点」于「罄」）】））））））
                                  于（（「放」授以「表达式」）于「一」于（「二对子取零」于「当前」）））与（「式节点」于
                                  「内联虑」于（（「列」【（鉴（「模式头及参数长」中「零」）而
                                  有（「展开后唯一构造器节点」于「序数甲」）则（「展开展开后唯一构造器节点」
                                    于（（「式节点」于（「模式头及参数长」中「零」）
                                      于（（「态射」）于「新变量名」于「自由变量」））））
                                  或有「其他」则（（「式节点」
                                        于（「模式头及参数长」中「零」）
                                          于（（「态射」）于「新变量名」于「自由变量」）））），（「进行抽象」于「变量名」于（「二对子取一」于「当前」））】））））））
                            或有（「式节点」于（「其他头」）于「参数」）则（若（「检查模式头一致」于『116』
                                  于（「二对子取零」于「模式头及参数长」）于「其他头」
                              ）则（「可有」
                                  于（（（「附加」授以「表达式」）于「参数」
                                    于（（「放」授以「表达式」）于「一」于（「二对子取零」于「当前」）））与（「二对子取一」于
                                    「当前」
                                  ）））
                            否则
                              （「可无」）））于「可能匹配」而

                      虑「递归分支」者「符合分支」而

                      虑「无」者（「编译调试打印行」于『pattern_expand』
                            于（会「无」而
                              『递归匹配模式头：』附（「节点名称表示」于（「二对子取零」于「模式头及参数长」））附
                                『。。。参数长：』附（「整数表示」于（「二对子取一」于「模式头及参数长」））））
                      而
                      鉴「模式头及参数长」中「零」而
                        有（「展开后唯一构造器节点」于「构造序数」）则
                              「式节点」于（「唯一构造器模式匹配分支」于「构造序数」）
                                于（（「列」【（「构造抽象」于
                                『构造式元组』于（会「构造式元组」而
                                  虑「新待匹配」者（（「打表」授以「表达式」）
                                    于（「模式头及参数长」中「一」）
                                      于（会「序数」而「式节点」
                                      于（「元组解构节点」于「序数」）
                                        于（（「列」【（「自由变量」于「构造式元组」）】））））
                                  而
                                  「递归」于（「附加」于「新待匹配」于（「放」于「一」于「待匹配」））于
                                      「递归分支」））】））
                        或有（「整数节点」于「数」）则
                              「式节点」于（「常量模式匹配分支」）
                                于（（「列」【（「式节点」于（「整数节点」于「数」）于「罄」），（「递归」于（「放」于「一」于「待匹配」）于「递归分支」）】））
                        或有（「字符串节点」于「串」）则
                              「式节点」于（「常量模式匹配分支」）
                                于（（「列」【（「式节点」于（「字符串节点」于「串」）于「罄」），（「递归」于（「放」于「一」于「待匹配」）于「递归分支」）】））
                        或有（「内建节点」于「内建爻阳」）则
                              「式节点」于（「常量模式匹配分支」）
                                于（（「列」【（「式节点」于（「内建节点」于「内建爻阳」）于「罄」），（「递归」于（「放」于「一」于「待匹配」）于「递归分支」）】））
                        或有（「内建节点」于「内建爻阴」）则
                              「式节点」于（「常量模式匹配分支」）
                                于（（「列」【（「式节点」于（「内建节点」于「内建爻阴」）于「罄」），（「递归」于（「放」于「一」于「待匹配」）于「递归分支」）】））
                        或有「元组构造节点」则
                              「式节点」于（「变量模式匹配分支」）
                                于（（「列」【（「构造抽象」于『构造式元组』
                                于（会
                                「构造式元组」而虑「新待匹配」者（（「打表」授以「表达式」）
                                  于（「模式头及参数长」中「一」）
                                    于（会
                                    「序数」而「式节点」于（「元组解构节点」于「序数」）
                                      于（（「列」【（「自由变量」于「构造式元组」）】））））而「递归」
                                        于（「附加」于「新待匹配」于（「放」于「一」于「待匹配」））于
                                        「递归分支」））】）））而
                          虑「默认分支」者（虑「新变量名」者「下个字符序数」于『模式匹配默认变量名』而
                                            虑「递归分支参数」者（「滤态射」授以（（「列」于「表达式」）合「表达式」）
                                                授以（（「列」于「表达式」）合「表达式」））
                                                于（会「当前」而鉴（（「第N个」授以「表达式」）于「零」
                                                于（「二对子取零」于「当前」））而
                                              有（「式节点」于（「模式匹配新变量」于「变量名」）于「参」）则（「可有」
                                                  于（（（「放」授以「表达式」）于「一」于（「二对子取零」于「当前」））
                                                  与（「式有名替换」
                                                    于（「自由变量」于「新变量名」）于「变量名」
                                                    于（「二对子取一」于「当前」））））
                                              或有（「式节点」于（「其他头」）于「参数」）则（「可无」））于「可能匹配」
                                            而
                                            （「或可有」于「表达式」也鉴「递归分支参数」而
                                                有「罄」则「可无」
                                                或有「其他」
                                                则（虑「无」者（「编译调试打印行」于『pattern_expand』
                                                      于（会「无」而『递归默认模式匹配：』附（「间合」于『||||』
                                                        于（（「态射」）于「待匹配」于「表达式表示」））附
                                                        『（可能分支：共』附（「整数表示」于（「长度」于「可能匹配」））
                                                        附『个）』））而（「可有」
                                                        于（「式节点」
                                                        于（「变量模式匹配分支」）
                                                        于（（「列」【（「进行抽象」于「新变量名」
                                                        于（「递归」于（「放」于「一」于「待匹配」）于「递归分支参数」））】）））））））
                          而
                          （
                            「：展开爻匹配，并添加默认：」
                                鉴「匹配分支们」而
                                  有「罄」则（鉴「默认分支」而
                                    有「可无」则「发生事故」于
                                      『229不应当为零，因为待匹配分支不为零，其必属于匹配分支，或必属于默认分支』
                                    或有（「可有」于「首默认分支」）则（「式节点」于「模式匹配」
                                      于（（「列」【（（「第N个」授以「表达式」）于「零」于「待匹配」），「首默认分支」】））））
                                  或有（「缀」于（「式节点」于（「常量模式匹配分支」）
                                    于（（「列」【（「式节点」于（「内建节点」于「内建爻阳」）于「罄」），「阳结果」】）））于
                                      「其余匹配分支」）则（鉴「其余匹配分支」而
                                    有「罄」则（（鉴「默认分支」而
                                        有「可无」则（「式节点」于「内联虑」
                                            于（（「列」【（（「第N个」授以「表达式」）于「零」于「待匹配」），（「构造抽象」于『爻式』
                                            于（会「爻式名」而「式节点」于「爻分支节点」
                                            于（「列」【「自由变量」于「爻式名」，「阳结果」，「报错式」】）））】）））
                                        或有（「可有」于（「式节点」
                                            于（「变量模式匹配分支」）
                                            于（（「列」【「阴参」】））））
                                            则（「式节点」于「内联虑」
                                                于（（「列」【（（「第N个」授以「表达式」）于「零」于「待匹配」），（「构造抽象」于『爻式』
                                                于（会「爻式名」而「式节点」于「爻分支节点」
                                                于（「列」【「自由变量」于「爻式名」，「阳结果」，「式替换」于（「自由变量」于「爻式名」）于「阴参」】）））】）））
                                        或有「其他分支」则（「发生事故」于『默认分支格式不正确』）））
                                    或有（（「列」【（「式节点」
                                      于（「常量模式匹配分支」）
                                      于（（「列」【（「式节点」于（「内建节点」于「内建爻阴」）于「罄」），「阴结果」】）））】））
                                      则（「式节点」于「爻分支节点」
                                        于（「列」【（「第N个」授以「表达式」）于「零」于「待匹配」，「阳结果」，「阴结果」】））
                                    或有「其他」则「发生事故」于『常量匹配分支如果是爻，不应该有超过两个分支』
                                  ）
                                  或有（「缀」于（「式节点」于（「常量模式匹配分支」）
                                    于（（「列」【（「式节点」于（「内建节点」于「内建爻阴」）于「罄」），「阴结果」】）））于
                                      「其余匹配分支」）则（鉴「其余匹配分支」而
                                    有「罄」则（（鉴「默认分支」而
                                        有「可无」则（「式节点」于「内联虑」
                                            于（（「列」【（（「第N个」授以「表达式」）于「零」于「待匹配」），（「构造抽象」于『爻式』
                                            于（会「爻式名」而「式节点」于「爻分支节点」
                                            于（「列」【「自由变量」于「爻式名」，「报错式」，「阴结果」】）））】）））
                                        或有（「可有」于（「式节点」
                                            于（「变量模式匹配分支」）
                                            于（（「列」【「阳参」】））））
                                            则（「式节点」于「内联虑」
                                                于（（「列」【（（「第N个」授以「表达式」）于「零」于「待匹配」），（「构造抽象」于『爻式』
                                                于（会「爻式名」而「式节点」于「爻分支节点」
                                                于（「列」【「自由变量」于「爻式名」，「式替换」于（「自由变量」于「爻式名」）于「阳参」，「阴结果」】）））】）））
                                        或有「其他分支」则（「发生事故」于『默认分支格式不正确』）））
                                    或有（（「列」【（「式节点」
                                      于（「常量模式匹配分支」）
                                      于（（「列」【（「式节点」于（「内建节点」于「内建爻阳」）于「罄」），「阳结果」】）））】））
                                      则（「式节点」于「爻分支节点」
                                        于（「列」【（「第N个」授以「表达式」）于「零」于「待匹配」，「阳结果」，「阴结果」】））
                                    或有「其他」则「发生事故」于『常量匹配分支如果是爻，不应该有超过两个分支』
                                  ）
                                  或有（（「列」【（「式节点」于（「变量模式匹配分支」）于「分支」）】））则（「式节点」于
                                    「模式匹配」
                                      于（「缀」于（（「第N个」授以「表达式」）于「零」于「待匹配」）于「匹配分支们」））
                                  或有（「缀」于（「式节点」于（「变量模式匹配分支」）于「分支」）于「其他」）则
                                    （「发生事故」于『只可以有一个变量模式匹配分支』）
                                  或有「其他」则（鉴「默认分支」而
                                    有「可无」
                                    则（虑「报错默认分支」者（「式节点」
                                          于（「变量模式匹配分支」）
                                            于（（「列」【（「进行无名抽象」于「报错式」）】）））而
                                        虑「所有分支」者「附加」于「匹配分支们」
                                        于（（「列」【「报错默认分支」】））而「式节点」于「模式匹配」
                                        于（「缀」于（（「第N个」授以「表达式」）于「零」于「待匹配」）于「所有分支」））
                                    或有（「可有」于（「首默认」））
                                    则（虑「所有分支」者「附加」于「匹配分支们」
                                      于（（「列」【「首默认」】））而「式节点」于「模式匹配」
                                      于（「缀」于（（「第N个」授以「表达式」）于「零」于「待匹配」）于「所有分支」）））））
也。

「：将一个归一过的模式匹配变成决策树（Decision Tree）：」
「展开模式匹配内部顶层」乃化「字符串」而化「表达式」而「表达式」也。
「展开模式匹配内部顶层」者会「错误信息」而会「式」而
  鉴「式」而
    有（「式节点」于「模式匹配」于（「缀」于「分析式」于「分支们」））
    则（虑「展开后结果」者「展开模式匹配」
      于（「式节点」
        于（「顺序执行节点」）
        于（「缀」
        于（「式节点」
          于（「解析后外部调用节点无类型」于『豫言_打印通用值』）
          于（（「列」【（「式节点」于（「字符串节点」于『模式匹配失败式』）于「罄」），「分析式」】）））
          于（「缀」
          于（「添加函数调用参数」
          于（「式节点」于（「解析后外部调用节点无类型」于『豫言_获取当前异常处理器』）于「罄」）于
          「显式」
          于（「式节点」于（「字符串节点」于（『模式匹配错误，缺少分支：』附「错误信息」））于「罄」）） 「：仅取前100字符：」
          于「罄」）））
          于（（「列」【「分析式」】））
          于（（「态射」）于「分支们」
          于（会「分支式」而鉴「分支式」而
            有（「式节点」于（「模式匹配分支」）于（（「列」【「模式」，「结果」】）））则
              （（（「列」于「表达式」）也（（「列」【「模式」】））））与「结果」
            或有「其他」则「发生事故」于『期待模式匹配分支』））而
        虑「无」者（「编译调试打印行」于
          『pattern_expand』
          于（会「无」而『展开完成，结果：』附（「表达式表示」于「展开后结果」）附『友好表示：「：换行：」』附（「抽象语法友好表示顶层」于
            「展开后结果」
          ）））而
        虑「最终结果」者（鉴「展开后结果」而
          有（「式节点」于「模式匹配」于「参」）则
            （「模式匹配消除」于「展开后结果」）
          或有「其他」则（「展开后结果」））而
        虑「无」者（「编译调试打印行」于
          『pattern_expand』
          于（会「无」而『消除完成，结果：』附（「表达式表示」于「最终结果」）附『友好表示：「：换行：」』附（「抽象语法友好表示顶层」于
            「最终结果」
          ）））而「最终结果」
    ）
    或有「其他」则
      （「发生事故」于『展开模式匹配期待模式匹配』）也。
「展开模式匹配顶层」乃化「表达式」而「表达式」也。
「展开模式匹配顶层」者会「式」而
  鉴「式」而
    有（「式节点」于「模式匹配」于（「缀」于「分析式」于「分支们」））
    则（虑「分支续延们」者「新引用」授以（「列」于（「字符串」合「表达式」））于「罄」而
        虑「后分支式们」者（「打表态射」授以「表达式」授以「表达式」）于「分支们」
        于（会「分支式」而鉴「分支式」而
            有（「式节点」于（「模式匹配分支」）于（（「列」【「模式」，「结果」】）））
            则（虑「模式新变量们」者（「滤」授以「字符串」）
              于（会「新变量」而「自由变量在式出现」于「新变量」于「结果」）
              于（「读取模式匹配新变量」于「模式」）而
                虑「抽象名」
                者
                  「下个字符序数」于
                  『匹配展开函数』
                而
                虑「无」者（若（（「存在吗」授以「字符串」）
                    于（会「变量名」而「串相等」于「抽象名」于「变量名」）
                      于（（「附加」授以「字符串」）于「模式新变量们」于（「读取式自由变量」于「结果」）））则
                      「发生事故」于
                      『148重复名：』附「抽象名」附『，』附（「表达式表示」于「式」）
                否则
                  「元」
                ）
                而
                虑「无」者（（「列引用前衔」授以（「字符串」合「表达式」））于
                    「分支续延们」
                    于（「抽象名」与（虑「分支结果」者「式节点」
                      于（「拉姆达抽象」于「显式」）
                      于（ 「：这个地方理应用续延，但因为续延无法直接返回，所以还是用函数：」
                      （（（「列」于「表达式」）也（（「列」【（「构造抽象」于『所有新变量』
                        于（会「所有新变量」而（「从左折叠带序数」授以「字符串」授以「表达式」）于「零」
                        于（会「序数」而会「新变量名」而会「已有式」而「式节点」于
                        「内联虑」
                        于（（（「列」于「表达式」）也（（「列」【（「式节点」
                        于（「元组解构节点」于「序数」）
                        于（（（「列」于「表达式」）也（（「列」【（「自由变量」于「所有新变量」）】））））），（「进行抽象」于「新变量名」于「已有式」）】）））））于
                        「结果」于「模式新变量们」））】）））
                      ））而
                                      虑「无」者（「编译调试打印行」于『pattern_expand_branches』
                                      于（会「无」而『分支名：』附（「抽象名」）附『分支内容：「：换行：」』附（「抽象语法友好表示顶层」于
                                      「分支结果」
                                      ）））而
                                      「分支结果」
                    ）））而
                虑「结果」者（「式节点」
                    于（「模式匹配分支」）
                    于（（（「列」于「表达式」）也（（「列」【「模式」，（「添加函数调用参数」
                    于（「自由变量」于「抽象名」）于「显式」
                    于（「式节点」于「元组构造节点」于（（「态射」）于「模式新变量们」于「自由变量」）））】）））））而

                「结果」
            ）
            或有「其他」则「发生事故」于『期待模式匹配分支』
        ）而（「从左折叠」授以（「字符串」合「表达式」）授以「表达式」）
        于（会「抽象名及抽象式」而会「已有式」而
          虑「抽象名」者「二对子取零」于
          「抽象名及抽象式」而
          虑「抽象式」者「二对子取一」于
          「抽象名及抽象式」而
          虑「出现次数」者「自由变量在式出现次数」于
          「抽象名」于「已有式」而（若（「等」于「出现次数」于「零」）则（「非常粗略调试打印行」
              于（会「无」而『错误警告：未使用的匹配分支式：』附（「表达式表示」于「抽象式」）附
                『，模式匹配：』附（「表达式表示」于「式」））；
              「已有式」
            ）
          否则
            （若（「等」于「出现次数」于「一」）则
                （「式有名替换」于「抽象式」于「抽象名」于「已有式」）
            否则
              （「式节点」于
                「内联虑」
                于（（（「列」于「表达式」）也（（「列」【「抽象式」，（「进行抽象」于（「抽象名」）于「已有式」）】））））））））
                  于（（「展开模式匹配内部顶层」
                    于（「获取子字符串」于「零」于「一零零零」于（「表达式表示」于「式」））
                    于（「式节点」于「模式匹配」于（「缀」于「分析式」于「后分支式们」））））
                    于（「读引用」于「分支续延们」））
    或有「其他」则
      （「发生事故」于『展开模式匹配期待模式匹配』）也。
