寻观「标准库」之书。
寻观「编译器核心」之「编译步骤」之「类型检查」之「模式合一」之书。

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

。

寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「命名环境术」之书。
寻观「编译器核心」之「编译数据」之「语言服务信息」之书。
寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。

寻观「编译器核心」之「顺序标识符」之「顺序标识符」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
寻观「编译器核心」之「编译步骤」之「类型检查」之「类型检查工具」之书。
寻观「编译器核心」之「编译步骤」之「类型检查」之「类型检查基础」之书。
寻观「编译器核心」之「编译步骤」之「类型检查」之「函数应用隐式参数合成」之书。

「检查模式类型并更新环境」乃
  化「命名环境」而
  化「表达式」 「：对象：」而
  化「表达式」 「：模式的类型：」而
  「表达式」合
    「命名环境」 「：检查后的环境及类型：」
也。
「检查模式类型并更新环境」者会「境」而会「物」而会「类」而
  虑「结果」者
    （化「命名环境」而化「表达式」而化「表达式」而「表达式」合「命名环境」也会「境」而会「物」而会「类」而
    虑「无」者
      「详细调试打印行」于（会「无」而『[D]正在检查模式类型，模式：』附（「表达式表示」于「物」）附
        『，类型：』附（「表达式表示」于「类」））
    而
    虑「检查模式函数应用」者
      （化「命名环境」而化「表达式」而化「表达式」而「表达式」合「命名环境」也
      会「初境」而会「应用物」而会「期望类」而
      虑「头及脊」者「收集函数调用头脊」于「应用物」而
      虑「头类及物」者
        （「读引用」于「进行对象类型合成引用」）于「初境」
          于（「头及脊」中「零」）而
      递归虑「处理参数组」其
        化「表达式」而化「表达式」而化「命名环境」而化（「列」于（「参数形式」合「表达式」））而
        「表达式」合「表达式」合「命名环境」者
          会「当前类」而会「当前物」而会「当前境」而会「剩余脊」而
          虑「初已用名」者
            （「附加」授以「字符串」）
            于（「读取式自由变量」于「当前物」）
            于（（「附加」授以「字符串」）
            于（「读取式自由变量」于「期望类」）
            于（「命名环境获取所有名称」于「当前境」））
          而
          鉴（「读取函数应用类型骨架」于「初已用名」于「当前类」）而
            有（「上下文」与「隐式名们」与「参数类型们」与「返回类型」）则
              若（「且」
                于（「等」于（「长度」于「隐式名们」）于「零」）
                于（「等」于（「长度」于「参数类型们」）于「零」））
              则
                「发生事故」
                  于『模式函数调用的当前结果不是函数：』附（「表达式表示」于「当前类」）
              否则
                （
                  鉴（「拆分函数应用参数组」
                    于（「长度」于「隐式名们」）
                    于（「长度」于「参数类型们」）于
                      「阳」于「剩余脊」）而
                    有（「已给隐式参数们」与「显式参数们」与「后脊」）
                    则（
                      虑「当前可能期望类」者
                        （
                          鉴「后脊」而
                            有「罄」则（「可有」授以「表达式」）
                            于「期望类」
                            或有「非空后脊」则
                              「可无」授以「表达式」
                        ）
                      而
                      虑「接地骨架」者「上下文」与「隐式名们」与「参数类型们」与
                        「返回类型」
                      而
                      虑「缺省隐式参数们」者
                        「求解函数应用隐式参数」
                          于「当前境」
                          于
                          「接地骨架」
                            于「已给隐式参数们」
                            于「显式参数们」于
                            「当前可能期望类」
                      而
                      虑「全部隐式参数们」者
                        （「附加」授以「表达式」）
                        于
                          「已给隐式参数们」于「缺省隐式参数们」而
                      递归虑「检查隐式参数们」其化「表达式」而化「表达式」而化「爻」而化（「列」于「表达式」）而
                        「表达式」合「表达式」合
                          「爻」者会「隐式当前类」而会「隐式当前物」而会「已经开始」
                            而
  会「待查隐式参数们」而
  鉴「待查隐式参数们」而
    有「罄」则「隐式当前类」与「隐式当前物」与「已经开始」
    或有（「缀」于「参数」于「后参数们」）
    则（
      虑「后参数」者
        （「读引用」于「进行类型类型检查引用」）于「当前境」于「参数」
      而
      虑「后类」者
        「应用首隐式类型参数」于
          「隐式当前类」于
            「后参数」
      而
      虑「后物」者
        「添加当前函数应用组参数」于
          「已经开始」于
            「隐式当前物」于
              「隐式」于
                「后参数」
      而
      「检查隐式参数们」于
        「后类」于
          「后物」于「阳」于
            「后参数们」
    ）
                      而
                      鉴（「检查隐式参数们」于「当前类」于「当前物」于「阴」于「全部隐式参数们」）而
                        有（「显式函数类」与「隐式后物」与「已经开始」）则（
                          鉴
                          「显式参数们」而
                            有「罄」则（
                              鉴「后脊」而
                                有「罄」则「显式函数类」与「隐式后物」与「当前境」
                                或有「非空后脊」则
                                  「处理参数组」
                                    于「显式函数类」
                                    于
                                    「隐式后物」于「当前境」于「后脊」
                            ）
                            或有「非空显式参数们」则（
                              鉴（「拆分多参数函数类型」于「显式函数类」）而
                                有（「可有」于（「实际参数类型们」与「实际返回类型」））
                                则（
                                  虑「无」者
                                    若（「等」于（「长度」于「实际参数类型们」）于（「长度」于「显式参数们」））则
                                      「元」
                                    否则
                                      「发生事故」
                                        于
                                        『模式函数应用显式参数数量与函数类型不一致』而
                                  递归虑
                                    「检查显式参数们」其化「表达式」而化「命名环境」而化「爻」而化（「列」于「表达式」）而
                                    化（「列」于「表达式」）而「表达式」合「命名环境」者会「显式当前物」而会
                                      「显式当前境」而会「已有参数」而会「待查参数们」而会「待查类型们」而鉴
                                        「待查参数们」与「待查类型们」而
                                        有「罄」与「罄」则「显式当前物」
                                          与「显式当前境」
                                        或有（「缀」于「参数」于「后参数们」）与（「缀」于「定义域」于「后类型们」）
                                        则（
                                          鉴（「检查模式类型并更新环境」于「显式当前境」于「参数」于「定义域」）而
                                            有（「后参数」与「后境」）则（
                                              虑「后物」者
                                                「添加当前函数应用组参数」
                                                  于「已有参数」
                                                  于「显式当前物」
                                                  于「显式」于「后参数」
                                              而
                                              「检查显式参数们」
                                                于「后物」
                                                于「后境」
                                                于「阳」
                                                于「后参数们」于「后类型们」
                                            ）
                                        ）
                                        或有「其他」则
                                          「发生事故」
                                            于『模式函数应用参数与参数类型没有一一对应』而鉴（「检查显式参数们」
                                            于「隐式后物」
                                            于「当前境」
                                            于「已经开始」
                                            于「显式参数们」于「实际参数类型们」）而
                                            有（「显式后物」与「显式后境」）则（
                                              鉴「后脊」而
                                                有「罄」则「实际返回类型」与「显式后物」与「显式后境」
                                                或有「非空后脊」则
                                                  「处理参数组」
                                                    于「实际返回类型」
                                                    于「显式后物」
                                                    于「显式后境」于「后脊」
                                            ）
                                ）
                                或有「可无」则
                                  「发生事故」
                                    于
                                    『模式函数调用的当前类型不是显式函数类型』
                            ）
                        ）
                    ）
                ）
      而
      鉴（「处理参数组」于（「头类及物」中「零」）于（「头类及物」中「一」）于「初境」于（「头及脊」中「一」））
而
        有（「结果类」与「结果物」与「结果境」）
        则（虑「无」者「断言类型相等」于「结果类」于「期望类」而「结果物」与「结果境」）
      ）
    而
    「尝试运行」
      于（会「无」而
        鉴「类」而
          「：TODO 检查对象节点的匹配：」
          有「其他类」则（
            鉴「物」而
              有（「式节点」于（「源码范围标注节点」于「范围」）于（（「列」【「源码物」】）））
              则（
                虑「后物及境」者
                  「检查模式类型并更新环境」于
                    「境」于
                    「源码物」于
                    「类」
                而
                虑「无」者
                  「记录悬停文字信息」于「范围」
                  于（「悬停类型文字」于「类」）
                而
                「后物及境」
              ）
              或有「自由变量」于「名」则（
                鉴（「解析单个名称及物」于「境」于「名」）而
                  有（「可有」于（「名类」与「名物」））则（
                    鉴「名类」而
                      有「构造器类」则（
                        鉴「构造器类」而
                        「：TODO 为何要加隐式参数？：」
                          有（「式节点」于（「隐式派类型节点」于「忽略参数个数」）于（（「列」【「值域」】）））
                          则
                            （「检查模式函数应用」于「境」于「名物」于「类」）
                          或有「其他构造器类」
                          则（虑「无」者「断言类型相等」于「构造器类」于「类」而「名物」与「境」）
                      ）
                  ）
                  或有「可无」则（ 「：新绑定：」
                    鉴「类」而
                      有「其他」则（
                        虑「后境」者
                          「添加声明不改变名」于『129』于「境」于「名」于「类」而
                        「：TODO：被绑定的变量仍以自由变量形式存在：」
                        （「式节点」于（「模式匹配新变量」于「名」）于（（「列」【「类」】）））与
                          「后境」
                      ）
                  ）
              ）
              或有「式节点」
                于（「模式匹配新变量」于「名」）
                于（（「列」【「模式名类」】））则（
                  鉴（「解析单个名称及物」于「境」于「名」）而
                    有（「可有」于（「名类」与「名物」））则（「发生事故」于『模式匹配不应当存在』）
                    或有「可无」则（
                      虑「无」者「断言类型相等」于「类」于「模式名类」
                      而
                      虑「后境」者
                        「添加声明不改变名」于『144』于「境」于「名」于「类」
                      而
                      （「式节点」于（「模式匹配新变量」于「名」）于（（「列」【「模式名类」】）））与
                      「后境」
                    ）
                ）
              或有（「式节点」于「空缺」于「罄」）
              则（
                虑「新名」者「下个字符序数」于『匿名模式』
                而
                虑「后境」者
                  「添加声明不改变名」于『模式空缺』于「境」于「新名」于
                  「类」
                而
                （「式节点」于（「模式匹配新变量」于「新名」）于（（「列」【「类」】）））与「后境」
              ）
              或有（「式节点」于「函数调用」于「忽略项们」）则
                （「检查模式函数应用」于「境」于「物」于「类」）
              或有（「式节点」于（「元组构造节点」）于「元素们」）则（
                鉴「类」而
                  有
                （「式节点」于（「元组类型节点」）于「类型们」）则（
                  若（「不等于」于（「长度」于「元素们」）于（「长度」于「类型们」））
                  则
                    （「发生事故」于『元组模式元素个数和元组类型个数不匹配』）
                  否则
                    （
                      虑「结果」者
                        （「从左折叠」授以（「表达式」合「表达式」）授以（（「列」于「表达式」）合「命名环境」））
                        于（遇
                          「表达式」合「表达式」者「元素及类型」而会「已有」
                            而
  虑「后元素及境」者
    「检查模式类型并更新环境」
      于（「已有」中「一」）
      于（「元素及类型」中「零」）
      于（「元素及类型」中「一」）
  而
  （（「缀」授以「表达式」）于（「后元素及境」中「零」）于（「已有」中「零」））与（「后元素及境」中「一」））
  于（（「罄」授以「表达式」）与「境」）
  于（（「拉链合并」授以「表达式」授以「表达式」）于「元素们」于「类型们」）而
  （「式节点」于（「元组构造节点」）于（「反转」于（「结果」中「零」）））与（「结果」中「一」）
                    ）
                ）
                  或有「其他」则
                    「发生事故」
                      于『元组模式需要明确的元组类型：』附（「表达式表示」于「类」）
              ）
              或有（「式节点」于（「内建节点」于「内建爻阳」）于「罄」）
              则（
                虑「无」者
                  「断言类型相等」
                    于（「式节点」于（「内建节点」于「内建类型爻」）于「罄」）
                    于「类」
                而
                「物」与「境」
              ）
              或有（「式节点」于（「内建节点」于「内建爻阴」）于「罄」）
              则（
                虑「无」者
                  「断言类型相等」
                    于（「式节点」于（「内建节点」于「内建类型爻」）于「罄」）
                    于「类」
                而
                「物」与「境」
              ）
              或有（「式节点」于（「整数节点」于「数」）于「罄」）
              则（
                虑「无」者
                  「断言类型相等」
                    于（「式节点」于（「内建节点」于「内建类型整数」）于「罄」）
                    于「类」
                而
                「物」与「境」
              ）
              或有（「式节点」于（「字符串节点」于「串」）于「罄」）
              则（
                虑「无」者
                  「断言类型相等」
                    于（「式节点」于（「内建节点」于「内建类型字符串」）于「罄」）
                    于「类」
                而
                「物」与「境」
              ）
                「：其他表达式假设是直接值，不含变量，直接检查类型：」
              或有（「式节点」于（「结构投影」于「投影名」）于「参」）则
                （虑「后物」者（「读引用」于「进行对象类型检查引用」）于「境」于「物」于「类」而「后物」与「境」）
              或有（「式节点」于（「结构投影带序数」于「投影名」于「序数」）于「参」）则
                （虑「后物」者（「读引用」于「进行对象类型检查引用」）于「境」于「物」于「类」而「后物」与「境」）
              或有（「式节点」于（「文件定义引用节点」于「文件名」于「定义名」于「序数」）于「参」）则
                （虑「后物」者（「读引用」于「进行对象类型检查引用」）于「境」于「物」于「类」而「后物」与「境」）
              或有（「式节点」
                于（「唯一构造器节点」于「序数」于「文件路径」于「构造器名」）
                于（（「列」【「构造器类」】）））
                则
                  （虑「无」者「断言类型相等」于「构造器类」于「类」而「物」与「境」）
              或有「其他」则
                「发生事故」
                  于『不是支持的模式匹配项：』附（「表达式表示」于「物」）
          ））
          于（会「异常」而
            「发生事故」于（「异常」附『「：换行：」=======》》》》 在检查模式|』附（「表达式表示」于「物」）
            附『|「：换行：」    拥有类型|』附（「表达式表示」于「类」）
            附『|「：换行：」    即：|』附（「表达式表示」于（「类」））附『|时』
              附『|「：换行：」    环境：：|』附（「间合」于『，』于（「命名环境获取所有名称」于「境」））附
                『|时』））
    ）而
      「结果」于「境」于「物」于「类」
也。

「检查模式匹配分支」乃
  化「命名环境」而
  化「表达式」 「：分支：」而
  化「表达式」 「：返回的类型：」而
  化「表达式」 「：被匹配的类型：」而
  「表达式」 「：检查后的分支：」
也。
「检查模式匹配分支」者会「境」而会「分支」而会「返回类」而会「原匹配类」而
  鉴「分支」而
    有（「式节点」于（「模式匹配分支」）于（（「列」【「模式」，「尾式」】）））
    则（
      虑「后模式及后境」者
        「检查模式类型并更新环境」于
          「境」于「模式」于
          「原匹配类」而
          虑「后模式」者「后模式及后境」中「零」而
          虑「后境」者「后模式及后境」中「一」而
          虑「后尾式」者
            （「读引用」于「进行对象类型检查引用」）
            于
            「后境」于「尾式」于「返回类」
          而
          （「式节点」于（「模式匹配分支」）于（（「列」【「后模式」，「后尾式」】）））
    ）
    或有「其他」则
      「发生事故」于『不是模式匹配分支』
也。

「模式匹配分支类型合成」乃
  化「命名环境」而
  化「表达式」 「：分支：」而
  化「表达式」 「：被匹配的类型：」而
  「表达式」合
    「表达式」 「：检查后的分支类及物：」
也。
「模式匹配分支类型合成」者会「境」而会「分支」而会「原匹配类」而
  鉴「分支」而
    有（「式节点」于（「模式匹配分支」）于（（「列」【「模式」，「尾式」】）））
    则（
      虑「后模式及后境」者
        「检查模式类型并更新环境」于
          「境」于「模式」于
          「原匹配类」而
          虑「后模式」者「后模式及后境」中「零」而
          虑「后境」者「后模式及后境」中「一」而
          虑「尾类及物」者
            （「读引用」于「进行对象类型合成引用」）于
              「后境」于「尾式」
          而
          （「尾类及物」中「零」）
            与（「式节点」于（「模式匹配分支」）于（（「列」【「后模式」，（「尾类及物」中「一」）】）））
    ）
    或有「其他」则
      「发生事故」于『不是模式匹配分支』
也。

「写引用」于「检查模式匹配分支引用」于「检查模式匹配分支」。
「写引用」于「模式匹配分支类型合成引用」于「模式匹配分支类型合成」。
