# This file is automatically generated by MLStyle Boostrap Tools.
module Infras
using MLStyle
@eval $(LineNumberNode(
  2,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(LineNumberNode(
  3,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :using,
  Expr(
    :.,
    :MLStyle,
    :MatchCore,
  ),
))
@eval $(LineNumberNode(
  4,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :using,
  Expr(
    :.,
    :MLStyle,
    :Extension,
  ),
))
@eval $(LineNumberNode(
  5,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :using,
  Expr(
    :.,
    :MLStyle,
    :Err,
  ),
))
@eval $(LineNumberNode(
  6,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :using,
  Expr(
    :(:),
    Expr(
      :.,
      :MLStyle,
      :Toolz,
    ),
    Expr(
      :.,
      :$,
    ),
  ),
))
@eval $(LineNumberNode(
  7,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :using,
  Expr(
    :(:),
    Expr(
      :.,
      :MLStyle,
      :Render,
    ),
    Expr(
      :.,
      :render,
    ),
    Expr(
      :.,
      :format,
    ),
  ),
))
@eval $(LineNumberNode(
  9,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :const,
  Expr(
    :(=),
    :__L__,
    Expr(
      :macrocall,
      Symbol("@__LINE__"),
      LineNumberNode(
        9,
        Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  10,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  Symbol("@format"),
))
@eval $(LineNumberNode(
  11,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :macro,
  Expr(
    :call,
    :format,
    :args,
    :template,
  ),
  Expr(
    :block,
    LineNumberNode(
      12,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :args,
      Expr(
        :call,
        :Expr,
        QuoteNode(
          :vect,
        ),
        Expr(
          :call,
          :(=>),
          QuoteNode(
            :__L__,
          ),
          Expr(
            :call,
            :LineNumberNode,
            :__L__,
          ),
        ),
        Expr(
          :call,
          :(=>),
          QuoteNode(
            :failed,
          ),
          Expr(
            :call,
            :QuoteNode,
            Expr(
              :quote,
              Expr(
                :.,
                Expr(
                  :$,
                  :MatchCore,
                ),
                QuoteNode(
                  :failed,
                ),
              ),
            ),
          ),
        ),
        Expr(
          :...,
          Expr(
            :.,
            :args,
            QuoteNode(
              :args,
            ),
          ),
        ),
      ),
    ),
    LineNumberNode(
      13,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :esc,
      Expr(
        :call,
        :format,
        :args,
        :template,
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  16,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  Symbol("@typed_as"),
))
@eval $(LineNumberNode(
  17,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :macrocall,
  GlobalRef(
    Core,
    Symbol("@doc"),
  ),
  LineNumberNode(
    17,
    Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
  ),
  "this macro provide a convenient and type-stable way to generate\ntype checking.\n\nHowever, the generated code requires a given variable `TARGET`\nin metaprogramming level.\n\ne.g\n\nTARGET = :target_id\n(@typed_as Int) # which generates a pattern to check if type is Int.\n\n",
  Expr(
    :macro,
    Expr(
      :call,
      :typed_as,
      :t,
    ),
    Expr(
      :block,
      LineNumberNode(
        31,
        Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
      ),
      Expr(
        :call,
        :$,
        :esc,
        Expr(
          :quote,
          Expr(
            :block,
            LineNumberNode(
              32,
              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
            ),
            Expr(
              :(=),
              :NAME,
              Expr(
                :call,
                :mangle,
                :mod,
              ),
            ),
            LineNumberNode(
              33,
              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
            ),
            Expr(
              :(=),
              :__T__,
              Expr(
                :$,
                :t,
              ),
            ),
            LineNumberNode(
              34,
              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
            ),
            Expr(
              :function,
              Expr(
                :tuple,
                :body,
              ),
              Expr(
                :block,
                LineNumberNode(
                  35,
                  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                ),
                Expr(
                  :macrocall,
                  Symbol("@format"),
                  LineNumberNode(
                    35,
                    Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                  ),
                  Expr(
                    :vect,
                    :body,
                    :tag,
                    :TARGET,
                    :NAME,
                    :__T__,
                  ),
                  Expr(
                    :quote,
                    Expr(
                      :block,
                      LineNumberNode(
                        37,
                        Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                      ),
                      Expr(
                        :macrocall,
                        Symbol("@inline"),
                        LineNumberNode(
                          37,
                          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                        ),
                        :__L__,
                        Expr(
                          :function,
                          Expr(
                            :call,
                            :NAME,
                            Expr(
                              :(::),
                              :TARGET,
                              :__T__,
                            ),
                          ),
                          Expr(
                            :block,
                            LineNumberNode(
                              38,
                              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                            ),
                            :__T__,
                            LineNumberNode(
                              39,
                              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                            ),
                            :body,
                          ),
                        ),
                      ),
                      LineNumberNode(
                        42,
                        Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                      ),
                      Expr(
                        :macrocall,
                        Symbol("@inline"),
                        LineNumberNode(
                          42,
                          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                        ),
                        :__L__,
                        Expr(
                          :function,
                          Expr(
                            :call,
                            :NAME,
                            :TARGET,
                          ),
                          Expr(
                            :block,
                            LineNumberNode(
                              43,
                              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                            ),
                            :failed,
                          ),
                        ),
                      ),
                      LineNumberNode(
                        46,
                        Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                      ),
                      Expr(
                        :call,
                        :NAME,
                        :tag,
                      ),
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  52,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :patternOr,
))
@eval $(LineNumberNode(
  53,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :(=),
  :patternOr,
  Expr(
    :->,
    Expr(
      :tuple,
      :p1,
      :p2,
    ),
    Expr(
      :block,
      LineNumberNode(
        53,
        Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
      ),
      Expr(
        :->,
        :body,
        Expr(
          :block,
          LineNumberNode(
            53,
            Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
          ),
          Expr(
            :let,
            Expr(
              :block,
              Expr(
                :(=),
                :p1,
                Expr(
                  :call,
                  :p1,
                  :body,
                ),
              ),
              Expr(
                :(=),
                :p2,
                Expr(
                  :call,
                  :p2,
                  :body,
                ),
              ),
            ),
            Expr(
              :block,
              LineNumberNode(
                55,
                Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
              ),
              Expr(
                :(=),
                :tmp,
                Expr(
                  :call,
                  :mangle,
                  :Infras,
                ),
              ),
              LineNumberNode(
                56,
                Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
              ),
              Expr(
                :macrocall,
                Symbol("@format"),
                LineNumberNode(
                  56,
                  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                ),
                Expr(
                  :vect,
                  :tmp,
                  :p1,
                  :p2,
                ),
                Expr(
                  :quote,
                  Expr(
                    :block,
                    LineNumberNode(
                      57,
                      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                    ),
                    Expr(
                      :(=),
                      :tmp,
                      :p1,
                    ),
                    LineNumberNode(
                      58,
                      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                    ),
                    Expr(
                      :if,
                      Expr(
                        :call,
                        :(===),
                        :tmp,
                        :failed,
                      ),
                      :p2,
                      :tmp,
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  63,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :const,
  Expr(
    :(=),
    :APP_DESTRUCTORS,
    Expr(
      :call,
      Expr(
        :curly,
        :Vector,
        Expr(
          :curly,
          :Tuple,
          :Module,
          :PDesc,
        ),
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  64,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :const,
  Expr(
    :(=),
    :GAPP_DESTRUCTORS,
    Expr(
      :call,
      Expr(
        :curly,
        :Vector,
        Expr(
          :curly,
          :Tuple,
          :Module,
          :PDesc,
        ),
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  66,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :def_pattern,
))
@eval $(LineNumberNode(
  67,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  Expr(
    :call,
    :def_pattern,
    Expr(
      :parameters,
      :predicate,
      :rewrite,
      Expr(
        :kw,
        :qualifiers,
        :nothing,
      ),
    ),
    :mod,
  ),
  Expr(
    :block,
    LineNumberNode(
      68,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :qualifiers,
      Expr(
        :if,
        Expr(
          :call,
          :(===),
          :qualifiers,
          :nothing,
        ),
        Expr(
          :call,
          :Set,
          Expr(
            :vect,
            :invasive,
          ),
        ),
        :qualifiers,
      ),
    ),
    LineNumberNode(
      69,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :desc,
      Expr(
        :call,
        :PDesc,
        :predicate,
        :rewrite,
        :qualifiers,
      ),
    ),
    LineNumberNode(
      70,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :register_pattern,
      :desc,
      :mod,
    ),
  ),
))
@eval $(LineNumberNode(
  76,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :macrocall,
  GlobalRef(
    Core,
    Symbol("@doc"),
  ),
  LineNumberNode(
    76,
    Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
  ),
  " To test if an datatype can\n",
  Expr(
    :function,
    :deconstructable,
  ),
))
@eval $(LineNumberNode(
  82,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :register_app_pattern,
))
@eval $(LineNumberNode(
  83,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  Expr(
    :call,
    :register_app_pattern,
    Expr(
      :(::),
      :pdesc,
      :PDesc,
    ),
    Expr(
      :(::),
      :def_mod,
      :Module,
    ),
  ),
  Expr(
    :block,
    LineNumberNode(
      84,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :push!,
      :APP_DESTRUCTORS,
      Expr(
        :tuple,
        :def_mod,
        :pdesc,
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  87,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :def_app_pattern,
))
@eval $(LineNumberNode(
  88,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  Expr(
    :call,
    :def_app_pattern,
    Expr(
      :parameters,
      :predicate,
      :rewrite,
      Expr(
        :kw,
        :qualifiers,
        :nothing,
      ),
    ),
    :mod,
  ),
  Expr(
    :block,
    LineNumberNode(
      89,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :qualifiers,
      Expr(
        :if,
        Expr(
          :call,
          :(===),
          :qualifiers,
          :nothing,
        ),
        Expr(
          :call,
          :Set,
          Expr(
            :vect,
            :invasive,
          ),
        ),
        :qualifiers,
      ),
    ),
    LineNumberNode(
      90,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :desc,
      Expr(
        :call,
        :PDesc,
        :predicate,
        :rewrite,
        :qualifiers,
      ),
    ),
    LineNumberNode(
      91,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :register_app_pattern,
      :desc,
      :mod,
    ),
  ),
))
@eval $(LineNumberNode(
  94,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :mk_app_pattern,
))
@eval $(LineNumberNode(
  95,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  Expr(
    :call,
    :mk_app_pattern,
    :tag,
    :hd,
    :tl,
    :use_mod,
  ),
  Expr(
    :block,
    LineNumberNode(
      96,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :if,
      Expr(
        :call,
        :isdefined,
        :use_mod,
        :hd,
      ),
      Expr(
        :block,
        LineNumberNode(
          97,
          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
        ),
        Expr(
          :(=),
          :hd,
          Expr(
            :call,
            :getfield,
            :use_mod,
            :hd,
          ),
        ),
        LineNumberNode(
          98,
          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
        ),
        Expr(
          :for,
          Expr(
            :(=),
            Expr(
              :tuple,
              :def_mod,
              :desc,
            ),
            :APP_DESTRUCTORS,
          ),
          Expr(
            :block,
            LineNumberNode(
              99,
              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
            ),
            Expr(
              :if,
              Expr(
                :&&,
                Expr(
                  :call,
                  :qualifier_test,
                  Expr(
                    :.,
                    :desc,
                    QuoteNode(
                      :qualifiers,
                    ),
                  ),
                  :use_mod,
                  :def_mod,
                ),
                Expr(
                  :call,
                  Expr(
                    :.,
                    :desc,
                    QuoteNode(
                      :predicate,
                    ),
                  ),
                  :hd,
                  :tl,
                ),
              ),
              Expr(
                :block,
                LineNumberNode(
                  100,
                  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                ),
                Expr(
                  :return,
                  Expr(
                    :call,
                    Expr(
                      :.,
                      :desc,
                      QuoteNode(
                        :rewrite,
                      ),
                    ),
                    :tag,
                    :hd,
                    :tl,
                    :use_mod,
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    ),
    LineNumberNode(
      104,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :info,
      Expr(
        :call,
        :*,
        Expr(
          :call,
          :string,
          :hd,
        ),
        "(",
        Expr(
          :call,
          :join,
          Expr(
            :call,
            :map,
            :string,
            :tl,
          ),
          ", ",
        ),
        ")",
      ),
    ),
    LineNumberNode(
      105,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :$,
      :throw,
      Expr(
        :call,
        :PatternUnsolvedException,
        Expr(
          :string,
          "invalid usage or unknown application case ",
          :info,
          ".",
        ),
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  112,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :def_gapp_pattern,
))
@eval $(LineNumberNode(
  113,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  Expr(
    :call,
    :def_gapp_pattern,
    Expr(
      :parameters,
      :predicate,
      :rewrite,
      Expr(
        :kw,
        :qualifiers,
        :nothing,
      ),
    ),
    :mod,
  ),
  Expr(
    :block,
    LineNumberNode(
      114,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :qualifiers,
      Expr(
        :if,
        Expr(
          :call,
          :(===),
          :qualifiers,
          :nothing,
        ),
        Expr(
          :call,
          :Set,
          Expr(
            :vect,
            :invasive,
          ),
        ),
        :qualifiers,
      ),
    ),
    LineNumberNode(
      115,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :(=),
      :desc,
      Expr(
        :call,
        :PDesc,
        :predicate,
        :rewrite,
        :qualifiers,
      ),
    ),
    LineNumberNode(
      116,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :register_gapp_pattern,
      :desc,
      :mod,
    ),
  ),
))
@eval $(LineNumberNode(
  119,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :register_gapp_pattern,
))
@eval $(LineNumberNode(
  120,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  Expr(
    :call,
    :register_gapp_pattern,
    Expr(
      :(::),
      :pdesc,
      :PDesc,
    ),
    Expr(
      :(::),
      :def_mod,
      :Module,
    ),
  ),
  Expr(
    :block,
    LineNumberNode(
      121,
      Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
    ),
    Expr(
      :call,
      :push!,
      :GAPP_DESTRUCTORS,
      Expr(
        :tuple,
        :def_mod,
        :pdesc,
      ),
    ),
  ),
))
@eval $(LineNumberNode(
  124,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :export,
  :mk_gapp_pattern,
))
@eval $(LineNumberNode(
  125,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :function,
  :mk_gapp_pattern,
))
@eval $(LineNumberNode(
  130,
  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
))
@eval $(Expr(
  :call,
  :def_pattern,
  :Infras,
  Expr(
    :kw,
    :predicate,
    Expr(
      :->,
      :x,
      Expr(
        :block,
        LineNumberNode(
          131,
          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
        ),
        Expr(
          :&&,
          Expr(
            :call,
            :isa,
            :x,
            :Expr,
          ),
          Expr(
            :call,
            :(==),
            Expr(
              :.,
              :x,
              QuoteNode(
                :head,
              ),
            ),
            QuoteNode(
              :call,
            ),
          ),
        ),
      ),
    ),
  ),
  Expr(
    :kw,
    :rewrite,
    Expr(
      :->,
      Expr(
        :tuple,
        :tag,
        :case,
        :mod,
      ),
      Expr(
        :block,
        LineNumberNode(
          132,
          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
        ),
        Expr(
          :let,
          Expr(
            :block,
            Expr(
              :(=),
              :hd,
              Expr(
                :ref,
                Expr(
                  :.,
                  :case,
                  QuoteNode(
                    :args,
                  ),
                ),
                1,
              ),
            ),
            Expr(
              :(=),
              :tl,
              Expr(
                :ref,
                Expr(
                  :.,
                  :case,
                  QuoteNode(
                    :args,
                  ),
                ),
                Expr(
                  :call,
                  :(:),
                  2,
                  :end,
                ),
              ),
            ),
          ),
          Expr(
            :block,
            LineNumberNode(
              134,
              Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
            ),
            Expr(
              :block,
              Expr(
                :block,
                Expr(
                  :let,
                  Expr(
                    :(=),
                    Symbol("##Main.MLBootstrap 1#432"),
                    :hd,
                  ),
                  Expr(
                    :block,
                    Expr(
                      :block,
                      Expr(
                        :block,
                        LineNumberNode(
                          135,
                          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                        ),
                        Expr(
                          :(=),
                          Symbol("##Main.MLBootstrap 0#431"),
                          Expr(
                            :block,
                            Expr(
                              :function,
                              Expr(
                                :call,
                                Symbol("##Main.MLBootstrap 14#445"),
                                Expr(
                                  :(::),
                                  Symbol("##Main.MLBootstrap 13#444"),
                                  :Symbol,
                                ),
                              ),
                              Expr(
                                :block,
                                Expr(
                                  :meta,
                                  :inline,
                                ),
                                :Symbol,
                                Expr(
                                  :call,
                                  :mk_app_pattern,
                                  :tag,
                                  :hd,
                                  :tl,
                                  :mod,
                                ),
                              ),
                            ),
                            Expr(
                              :function,
                              Expr(
                                :call,
                                Symbol("##Main.MLBootstrap 14#445"),
                                Symbol("##Main.MLBootstrap 13#444"),
                              ),
                              Expr(
                                :block,
                                Expr(
                                  :meta,
                                  :inline,
                                ),
                                Expr(
                                  :.,
                                  MLStyle.MatchCore,
                                  QuoteNode(
                                    :failed,
                                  ),
                                ),
                              ),
                            ),
                            Expr(
                              :call,
                              Symbol("##Main.MLBootstrap 14#445"),
                              Symbol("##Main.MLBootstrap 1#432"),
                            ),
                          ),
                        ),
                        Expr(
                          :if,
                          Expr(
                            :call,
                            :(===),
                            Symbol("##Main.MLBootstrap 0#431"),
                            Expr(
                              :.,
                              MLStyle.MatchCore,
                              QuoteNode(
                                :failed,
                              ),
                            ),
                          ),
                          Expr(
                            :block,
                            Expr(
                              :block,
                              Expr(
                                :block,
                                LineNumberNode(
                                  136,
                                  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                                ),
                                Expr(
                                  :(=),
                                  Symbol("##Main.MLBootstrap 0#431"),
                                  Expr(
                                    :block,
                                    Expr(
                                      :function,
                                      Expr(
                                        :call,
                                        Symbol("##Main.MLBootstrap 5#436"),
                                        Expr(
                                          :(::),
                                          Symbol("##Main.MLBootstrap 2#433"),
                                          Expr,
                                        ),
                                      ),
                                      Expr(
                                        :block,
                                        Expr(
                                          :meta,
                                          :inline,
                                        ),
                                        Expr,
                                        Expr(
                                          :block,
                                          Expr(
                                            :let,
                                            Expr(
                                              :(=),
                                              Expr(
                                                :tuple,
                                                Symbol("##Main.MLBootstrap 3#434"),
                                                Symbol("##Main.MLBootstrap 4#435"),
                                              ),
                                              Expr(
                                                :tuple,
                                                Expr(
                                                  :.,
                                                  Symbol("##Main.MLBootstrap 2#433"),
                                                  QuoteNode(
                                                    :head,
                                                  ),
                                                ),
                                                Expr(
                                                  :.,
                                                  Symbol("##Main.MLBootstrap 2#433"),
                                                  QuoteNode(
                                                    :args,
                                                  ),
                                                ),
                                              ),
                                            ),
                                            Expr(
                                              :block,
                                              Expr(
                                                :block,
                                                Expr(
                                                  :if,
                                                  Expr(
                                                    :call,
                                                    ===,
                                                    Symbol("##Main.MLBootstrap 3#434"),
                                                    QuoteNode(
                                                      :curly,
                                                    ),
                                                  ),
                                                  Expr(
                                                    :block,
                                                    Expr(
                                                      :function,
                                                      Expr(
                                                        :where,
                                                        Expr(
                                                          :call,
                                                          Symbol("##Main.MLBootstrap 7#438"),
                                                          Expr(
                                                            :(::),
                                                            Symbol("##Main.MLBootstrap 6#437"),
                                                            Expr(
                                                              :curly,
                                                              AbstractArray,
                                                              Symbol("##Main.MLBootstrap 8#439"),
                                                              1,
                                                            ),
                                                          ),
                                                        ),
                                                        Symbol("##Main.MLBootstrap 8#439"),
                                                      ),
                                                      Expr(
                                                        :block,
                                                        Expr(
                                                          :meta,
                                                          :inline,
                                                        ),
                                                        Expr(
                                                          :block,
                                                          Expr(
                                                            :if,
                                                            Expr(
                                                              :call,
                                                              :>=,
                                                              Expr(
                                                                :call,
                                                                length,
                                                                Symbol("##Main.MLBootstrap 6#437"),
                                                              ),
                                                              1,
                                                            ),
                                                            Expr(
                                                              :block,
                                                              Expr(
                                                                :(=),
                                                                Symbol("##Main.MLBootstrap 9#440"),
                                                                Expr(
                                                                  :ref,
                                                                  Symbol("##Main.MLBootstrap 6#437"),
                                                                  1,
                                                                ),
                                                              ),
                                                              Expr(
                                                                :block,
                                                                Expr(
                                                                  :function,
                                                                  Expr(
                                                                    :call,
                                                                    Symbol("##Main.MLBootstrap 11#442"),
                                                                    Expr(
                                                                      :(::),
                                                                      Symbol("##Main.MLBootstrap 10#441"),
                                                                      :Symbol,
                                                                    ),
                                                                  ),
                                                                  Expr(
                                                                    :block,
                                                                    Expr(
                                                                      :meta,
                                                                      :inline,
                                                                    ),
                                                                    :Symbol,
                                                                    Expr(
                                                                      :call,
                                                                      :mk_gapp_pattern,
                                                                      :tag,
                                                                      Expr(
                                                                        :vect,
                                                                      ),
                                                                      :hd,
                                                                      :tl,
                                                                      :mod,
                                                                    ),
                                                                  ),
                                                                ),
                                                                Expr(
                                                                  :function,
                                                                  Expr(
                                                                    :call,
                                                                    Symbol("##Main.MLBootstrap 11#442"),
                                                                    Symbol("##Main.MLBootstrap 10#441"),
                                                                  ),
                                                                  Expr(
                                                                    :block,
                                                                    Expr(
                                                                      :meta,
                                                                      :inline,
                                                                    ),
                                                                    Expr(
                                                                      :.,
                                                                      MLStyle.MatchCore,
                                                                      QuoteNode(
                                                                        :failed,
                                                                      ),
                                                                    ),
                                                                  ),
                                                                ),
                                                                Expr(
                                                                  :call,
                                                                  Symbol("##Main.MLBootstrap 11#442"),
                                                                  Symbol("##Main.MLBootstrap 9#440"),
                                                                ),
                                                              ),
                                                            ),
                                                            Expr(
                                                              :.,
                                                              MLStyle.MatchCore,
                                                              QuoteNode(
                                                                :failed,
                                                              ),
                                                            ),
                                                          ),
                                                        ),
                                                      ),
                                                    ),
                                                    Expr(
                                                      :function,
                                                      Expr(
                                                        :call,
                                                        Symbol("##Main.MLBootstrap 7#438"),
                                                        :_,
                                                      ),
                                                      Expr(
                                                        :block,
                                                        Expr(
                                                          :meta,
                                                          :inline,
                                                        ),
                                                        Expr(
                                                          :.,
                                                          MLStyle.MatchCore,
                                                          QuoteNode(
                                                            :failed,
                                                          ),
                                                        ),
                                                      ),
                                                    ),
                                                    Expr(
                                                      :call,
                                                      Symbol("##Main.MLBootstrap 7#438"),
                                                      Symbol("##Main.MLBootstrap 4#435"),
                                                    ),
                                                  ),
                                                  Expr(
                                                    :.,
                                                    MLStyle.MatchCore,
                                                    QuoteNode(
                                                      :failed,
                                                    ),
                                                  ),
                                                ),
                                              ),
                                            ),
                                          ),
                                        ),
                                      ),
                                    ),
                                    Expr(
                                      :function,
                                      Expr(
                                        :call,
                                        Symbol("##Main.MLBootstrap 5#436"),
                                        Symbol("##Main.MLBootstrap 2#433"),
                                      ),
                                      Expr(
                                        :block,
                                        Expr(
                                          :meta,
                                          :inline,
                                        ),
                                        Expr(
                                          :.,
                                          MLStyle.MatchCore,
                                          QuoteNode(
                                            :failed,
                                          ),
                                        ),
                                      ),
                                    ),
                                    Expr(
                                      :call,
                                      Symbol("##Main.MLBootstrap 5#436"),
                                      Symbol("##Main.MLBootstrap 1#432"),
                                    ),
                                  ),
                                ),
                                Expr(
                                  :if,
                                  Expr(
                                    :call,
                                    :(===),
                                    Symbol("##Main.MLBootstrap 0#431"),
                                    Expr(
                                      :.,
                                      MLStyle.MatchCore,
                                      QuoteNode(
                                        :failed,
                                      ),
                                    ),
                                  ),
                                  Expr(
                                    :block,
                                    Expr(
                                      :block,
                                      Expr(
                                        :block,
                                        LineNumberNode(
                                          137,
                                          Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                                        ),
                                        Expr(
                                          :(=),
                                          Symbol("##Main.MLBootstrap 0#431"),
                                          Expr(
                                            :call,
                                            :throw,
                                            Expr(
                                              :string,
                                              "Deconstructor cannot be an expression like ",
                                              Expr(
                                                :call,
                                                :string,
                                                :hd,
                                              ),
                                              ".",
                                            ),
                                          ),
                                        ),
                                        Expr(
                                          :if,
                                          Expr(
                                            :call,
                                            :(===),
                                            Symbol("##Main.MLBootstrap 0#431"),
                                            Expr(
                                              :.,
                                              MLStyle.MatchCore,
                                              QuoteNode(
                                                :failed,
                                              ),
                                            ),
                                          ),
                                          Expr(
                                            :block,
                                            Expr(
                                              :block,
                                              Expr(
                                                :block,
                                                LineNumberNode(
                                                  134,
                                                  Symbol("/home/redbq/github/MLStyle.jl/bootstrap/Infras.jl"),
                                                ),
                                                Expr(
                                                  :call,
                                                  throw,
                                                  Expr(
                                                    :call,
                                                    InternalException,
                                                    "Non-exhaustive pattern found, at #= /home/redbq/github/MLStyle.jl/bootstrap/Infras.jl:134 =#!",
                                                  ),
                                                ),
                                              ),
                                            ),
                                          ),
                                          Expr(
                                            :block,
                                            Symbol("##Main.MLBootstrap 0#431"),
                                          ),
                                        ),
                                      ),
                                    ),
                                  ),
                                  Expr(
                                    :block,
                                    Symbol("##Main.MLBootstrap 0#431"),
                                  ),
                                ),
                              ),
                            ),
                          ),
                          Expr(
                            :block,
                            Symbol("##Main.MLBootstrap 0#431"),
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    ),
  ),
))
end
