# Copyright (C) 2016, 2017  Stefan Vargyas
# 
# This file is part of Json-Type.
# 
# Json-Type is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# Json-Type is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with Json-Type.  If not, see <http://www.gnu.org/licenses/>.

#
# json type gen def gcc test suite:
#

$ . ~/regtest2.sh
$ alias json-type-gen-def-gcc-regtest='regtest2-selftest -f test-json-type-gen-def-gcc.txt -a exec=pipe -B'

# output all test names:
$ json-type-gen-def-gcc-regtest -N
...

# run all tests:
$ json-type-gen-def-gcc-regtest -A
...

--[ prereq ]--------------------------------------------------------------------

$ set -o pipefail
$ json() { LD_LIBRARY_PATH=../lib ../src/json -Td "$@"|sed -r $'1i\\\\\\#include "json-type.h"\n'';s/^#/\\#/;/^\s*\/\//d;/^\s*$/d'|tee /dev/fd/2|sed -r 's/^\\//'|gcc -Wall -Wextra -std=gnu99 -I ../lib -xc -c - -o /dev/null; }
$

--[ node-any ]------------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T="\"$t\""; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '"type"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '"null"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '"boolean"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '"number"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '"string"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '"object"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '"array"'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$

--[ node-plain ]----------------------------------------------------------------

#
# # meta command:
# $ for v in  null false true 123 '"foo"'; do T='{"plain":'"$v"'}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"plain":null}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '{"plain":false}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '{"plain":true}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '{"plain":123}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$ json <<< '{"plain":"foo"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__0
};
$

--[ node-object-any ]-----------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":"'$t'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$

--[ node-object-any2 ]----------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":"'$t'"},{"name":"bar","type":"'$t2'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-dict-any ]-------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":"'$t'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$

--[ node-dict-any2 ]------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":"'$t'"},{"name":"bar","type":"'$t2'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$

--[ node-open-array-any ]-------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":"'$t'"}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":"type"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":"null"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":"boolean"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":"number"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":"string"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":"object"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":"array"}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$

--[ node-open-array-plain ]-----------------------------------------------------

#
# # meta command:
# $ for v in  null false true 123 '"foo"'; do T='{"type":"array","args":{"plain":'"$v"'}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"plain":null}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":{"plain":false}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":{"plain":true}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":{"plain":123}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":{"plain":"foo"}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$

--[ node-open-array-object-any ]------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"'$t'"}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-open-array-object-any2 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"'$t'"},{"name":"bar","type":"'$t2'"}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$

--[ node-open-array-object-plain ]----------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"'; do T='{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":'$v'}}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":null}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":false}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":true}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":123}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":"foo"}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-open-array-object-plain2 ]---------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"'; do for v2 in null false true 456 '"bar"'; do T='{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":'$v'}},{"name":"fuu","type":{"plain":'$v2'}}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"object","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$

--[ node-open-array-dict-any ]--------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"'$t'"}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$

--[ node-open-array-dict-any2 ]-------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"'$t'"},{"name":"bar","type":"'$t2'"}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"type"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"null"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"boolean"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"number"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"string"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"object"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"array"}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__13
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$

--[ node-open-array-dict-plain ]------------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"'; do T='{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":'$v'}}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":null}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'a',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":false}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'a',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":true}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'a',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":123}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'a',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":"foo"}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'a',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__8
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$

--[ node-open-array-dict-plain2 ]-----------------------------------------------

#
# # meta command:
# $ for v in null false true 123 '"foo"'; do for v2 in null false true 456 '"bar"'; do T='{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":'$v'}},{"name":"fuu","type":{"plain":'$v2'}}]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":null}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":false}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":true}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":123}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":null}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":false}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":true}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":456}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "456"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"array","args":{"type":"dict","args":[{"name":"faa","type":{"plain":"foo"}},{"name":"fuu","type":{"plain":"bar"}}]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "bar"
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'a',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'u',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'u',
    .lo = &__4,
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'f',
    .EQ = &__7
};
static const struct json_type_dict_trie_t __9 = {
    .root = &__8
};
static const struct json_type_dict_attr_t __10 = {
    .args = &__9
};
static const struct json_type_dict_node_arg_t __11[] = {
    {
        .name = (const uchar_t*) "faa",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "fuu",
        .type = &__1
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__10,
    .node.dict = {
        .args = __11,
        .size = 2
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__12
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$

--[ node-closed-array-empty ]---------------------------------------------------

$ json <<< '{"type":"array","args":[]}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__1
};
$ json <<< '{"type":"array","args":[{"type":"array","args":[]}]}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":[{"type":"array","args":[]}]}]}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$

--[ node-closed-array-any ]-----------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":["'$t'"]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":["type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":["null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":["boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":["number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":["string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":["object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":["array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$

--[ node-closed-array-any2 ]----------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":["'$t'","'$t2'"]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":["type","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["type","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["type","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["type","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["type","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["type","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["type","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["null","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["boolean","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["number","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["string","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["object","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","type"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","null"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","boolean"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","number"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","string"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","object"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":["array","array"]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-closed-array-plain ]---------------------------------------------------

#
# # meta command:
# $ for v in  null false true 123 '"foo"'; do T='{"type":"array","args":[{"plain":'"$v"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":[{"plain":null}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":[{"plain":false}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":[{"plain":true}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":[{"plain":123}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":[{"plain":"foo"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$

--[ node-closed-array-plain2 ]--------------------------------------------------

#
# # meta command:
# $ for v in  null false true 123 '"foo"'; do for v2 in  null false true 123 '"foo"'; do T='{"type":"array","args":[{"plain":'"$v"'},{"plain":'"$v2"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":[{"plain":null},{"plain":null}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":null},{"plain":false}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":null},{"plain":true}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":null},{"plain":123}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":null},{"plain":"foo"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":false},{"plain":null}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":false},{"plain":false}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":false},{"plain":true}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":false},{"plain":123}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":false},{"plain":"foo"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":true},{"plain":null}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":true},{"plain":false}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":true},{"plain":true}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":true},{"plain":123}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":true},{"plain":"foo"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":123},{"plain":null}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":123},{"plain":false}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":123},{"plain":true}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":123},{"plain":123}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":123},{"plain":"foo"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":"foo"},{"plain":null}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":"foo"},{"plain":false}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":"foo"},{"plain":true}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":"foo"},{"plain":123}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"plain":"foo"},{"plain":"foo"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-closed-array-object-any ]----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"'$t'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$

--[ node-closed-array-object-any2 ]---------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"'$t'"},{"name":"bar","type":"'$t2'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 2
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$

--[ node-closed-array-object-any3 ]---------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"'$t'"}]},{"type":"object","args":[{"name":"bar","type":"'$t2'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_node_t* __6[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$

--[ node-closed-array-dict-any ]------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"'$t'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t* __9[] = {
    &__8,
    NULL
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __9,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$

--[ node-closed-array-dict-any2 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"'$t'"},{"name":"bar","type":"'$t2'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"},{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'r',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'a',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'b',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .lo = &__5,
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__1
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_node_t* __14[] = {
    &__13,
    NULL
};
static const struct json_type_node_t __15 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __14,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$

--[ node-closed-array-dict-any3 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"'$t'"}]},{"type":"dict","args":[{"name":"bar","type":"'$t2'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$ json <<< '{"type":"array","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"bar","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __1 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = 'o',
    .EQ = &__1
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'f',
    .EQ = &__3
};
static const struct json_type_dict_trie_t __5 = {
    .root = &__4
};
static const struct json_type_dict_attr_t __6 = {
    .args = &__5
};
static const struct json_type_dict_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__6,
    .node.dict = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'r',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'a',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'b',
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__9
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 1
    }
};
static const struct json_type_node_t* __18[] = {
    &__8,
    &__17,
    NULL
};
static const struct json_type_node_t __19 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __18,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__19
};
$

--[ node-closed-array-open-array-any ]------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":[{"type":"array","args":"'$t'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-closed-array-open-array-any2 ]-----------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":[{"type":"array","args":"'$t'"},{"type":"array","args":"'$t2'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"type"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"null"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"boolean"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"number"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"string"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"object"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"type"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"array","args":[{"type":"array","args":"array"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t* __4[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 2
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$

--[ node-open-array-closed-array-empty ]----------------------------------------

$ json <<< '{"type":"array","args":{"type":"array","args":[]}}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"array","args":{"type":"array","args":[{"type":"array","args":[]}]}}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":[{"type":"array","args":[{"type":"array","args":[{"type":"array","args":[]}]}]}]}}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __6[] = {
    &__5,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 1
        }
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__7
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$

--[ node-open-array-closed-array-any ]------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":{"type":"array","args":["'$t'"]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"type":"array","args":["type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-open-array-closed-array-any2 ]-----------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"array","args":{"type":"array","args":["'$t'","'$t2'"]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"array","args":["type","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["type","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["type","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["type","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["type","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["type","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["type","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["null","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["boolean","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["number","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["string","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["object","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","type"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","null"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","boolean"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","number"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","string"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","object"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":["array","array"]}}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __2[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 2
        }
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$

--[ node-object-open-array-any ]------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"'$t'"}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$

--[ node-object-open-array-any2 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"'$t'"}},{"name":"bar","type":{"type":"array","args":"'$t2'"}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$

--[ node-object-closed-array-empty ]--------------------------------------------

$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":[]}}]}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_object_node_arg_t __2[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":[{"type":"array","args":[]}]}}]}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__5
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":[{"type":"array","args":[{"type":"array","args":[]}]}]}}]}'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$

--[ node-object-closed-array-any ]----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["'$t'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$

--[ node-object-closed-array-any2 ]---------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["'$t'"]}},{"name":"bar","type":{"type":"array","args":["'$t2'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_object_node_arg_t __6[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$

--[ node-dict-open-array-any ]--------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"'$t'"}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$

--[ node-dict-open-array-any2 ]-------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"'$t'"}},{"name":"bar","type":{"type":"array","args":"'$t2'"}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"type"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"null"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"boolean"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"number"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"string"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"object"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"type"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"null"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"boolean"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"number"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"string"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"object"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":"array"}},{"name":"bar","type":{"type":"array","args":"array"}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'r',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'a',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'b',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'o',
    .EQ = &__9
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'f',
    .lo = &__7,
    .EQ = &__10
};
static const struct json_type_dict_trie_t __12 = {
    .root = &__11
};
static const struct json_type_dict_attr_t __13 = {
    .args = &__12
};
static const struct json_type_dict_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__3
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__13,
    .node.dict = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$

--[ node-dict-closed-array-empty ]----------------------------------------------

$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":[]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_dict_trie_node_t __2 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = 'o',
    .EQ = &__2
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'f',
    .EQ = &__4
};
static const struct json_type_dict_trie_t __6 = {
    .root = &__5
};
static const struct json_type_dict_attr_t __7 = {
    .args = &__6
};
static const struct json_type_dict_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__1
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__7,
    .node.dict = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":[{"type":"array","args":[]}]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'o',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'f',
    .EQ = &__6
};
static const struct json_type_dict_trie_t __8 = {
    .root = &__7
};
static const struct json_type_dict_attr_t __9 = {
    .args = &__8
};
static const struct json_type_dict_node_arg_t __10[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __11 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__9,
    .node.dict = {
        .args = __10,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":[{"type":"array","args":[{"type":"array","args":[]}]}]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'o',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'f',
    .EQ = &__8
};
static const struct json_type_dict_trie_t __10 = {
    .root = &__9
};
static const struct json_type_dict_attr_t __11 = {
    .args = &__10
};
static const struct json_type_dict_node_arg_t __12[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__5
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__11,
    .node.dict = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$

--[ node-dict-closed-array-any ]------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["'$t'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __3 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __4 = {
    .sym = 'o',
    .EQ = &__3
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = 'o',
    .EQ = &__4
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = 'f',
    .EQ = &__5
};
static const struct json_type_dict_trie_t __7 = {
    .root = &__6
};
static const struct json_type_dict_attr_t __8 = {
    .args = &__7
};
static const struct json_type_dict_node_arg_t __9[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__8,
    .node.dict = {
        .args = __9,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$

--[ node-dict-closed-array-any2 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["'$t'"]}},{"name":"bar","type":{"type":"array","args":["'$t2'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["type"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["null"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["boolean"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["number"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["string"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["object"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"array","args":["array"]}},{"name":"bar","type":{"type":"array","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = 'r',
    .EQ = &__6
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'a',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'b',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = 'o',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = 'o',
    .EQ = &__11
};
static const struct json_type_dict_trie_node_t __13 = {
    .sym = 'f',
    .lo = &__9,
    .EQ = &__12
};
static const struct json_type_dict_trie_t __14 = {
    .root = &__13
};
static const struct json_type_dict_attr_t __15 = {
    .args = &__14
};
static const struct json_type_dict_node_arg_t __16[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__5
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__15,
    .node.dict = {
        .args = __16,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__17
};
$

--[ node-list-empty ]-----------------------------------------------------------

$ json <<< '{"type":"list","args":[]}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__2
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":[]}}]}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_object_node_arg_t __3[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __3,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"list","args":[]}}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":[{"type":"list","args":[]}]}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_node_t* __3[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __3,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$

--[ node-list-any ]-------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":["'$t'"]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":["type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":["null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":["boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":["number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":["string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":["object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":["array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$

--[ node-list-any2 ]------------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"list","args":["'$t'","'$t2'"]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":["type","null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["type","boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["type","number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["type","string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["type","object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["type","array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["null","type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["null","boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["null","number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["null","string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["null","object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["null","array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["boolean","type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["boolean","null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["boolean","number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["boolean","string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["boolean","object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["boolean","array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["number","type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["number","null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["number","boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["number","string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["number","object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["number","array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["string","type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["string","null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["string","boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["string","number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["string","object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["string","array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["object","type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["object","null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["object","boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["object","number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["object","string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["object","array"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["array","type"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["array","null"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["array","boolean"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["array","number"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["array","string"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":["array","object"]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$

--[ node-list-plain ]-----------------------------------------------------------

#
# # meta command:
# $ for v in  null false true 123 '"foo"'; do T='{"type":"list","args":[{"plain":'"$v"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"plain":null}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .plain = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":[{"plain":false}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .plain = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":[{"plain":true}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .plain = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":[{"plain":123}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .plain = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$ json <<< '{"type":"list","args":[{"plain":"foo"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .plain = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$

--[ node-list-plain2 ]----------------------------------------------------------

#
# # meta command:
# $ for v in  null false true 123 '"foo"'; do for v2 in  null false true 123 '"foo"'; do test "$v" == "$v2" && continue; T='{"type":"list","args":[{"plain":'"$v"'},{"plain":'"$v2"'}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":false}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":true}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":123}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":null},{"plain":"foo"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":null}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":true}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":123}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":false},{"plain":"foo"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":null}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":false}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":123}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":true},{"plain":"foo"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":null}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":false}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":true}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":123},{"plain":"foo"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":"foo"},{"plain":null}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":"foo"},{"plain":false}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":"foo"},{"plain":true}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"plain":"foo"},{"plain":123}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .plain = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$

--[ node-list-object-any ]------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"'$t'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __3 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __4 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__3
};
static const struct json_type_object_trie_node_t __5 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__4
};
static const struct json_type_object_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .object = &__6
};
static const struct json_type_node_t* __8[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__9
};
$

--[ node-list-object-any2 ]-----------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"'$t'"}]},{"type":"object","args":[{"name":"foo","type":"'$t2'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
json: error: <stdin>:1:70: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:126)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"type"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:126: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"null"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:129: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"boolean"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"number"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"string"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:128: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"object"}]},{"type":"object","args":[{"name":"foo","type":"array"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:127: attribute error: invalid "list" type object: object argument ambiguity (the other is at 1:70)
command failed: json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"null"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"boolean"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"number"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"string"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"list","args":[{"type":"object","args":[{"name":"foo","type":"array"}]},{"type":"object","args":[{"name":"foo","type":"object"}]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_object_node_arg_t __1[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __1,
        .size = 1
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_trie_node_t __6 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__5
};
static const struct json_type_object_trie_node_t __7 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__3
    },
    .EQ = &__6
};
static const struct json_type_object_trie_node_t __8 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__2
};
static const struct json_type_object_trie_node_t __9 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__0
    },
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_object_trie_node_t __10 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "foo"
    },
    .EQ = &__9
};
static const struct json_type_object_trie_t __11 = {
    .root = &__10
};
static const struct json_type_list_attr_t __12 = {
    .object = &__11
};
static const struct json_type_node_t* __13[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __14 = {
    .type = json_type_list_node_type,
    .attr.list = &__12,
    .node.list = {
        .args = __13,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$

--[ node-list-dict-any ]--------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"'$t'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]}]}'
$

--[ node-list-dict-any2 ]-------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"'$t'"}]},{"type":"dict","args":[{"name":"faa","type":"'$t2'"}]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"type"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"null"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"boolean"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"number"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"string"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"object"}]},{"type":"dict","args":[{"name":"faa","type":"array"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"type"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"null"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"boolean"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"number"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"string"}]}]}'
$ json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
json: error: <stdin>:1:24: attribute error: invalid "list" type object: element is a "dict" (the "list" begins at 1:1)
command failed: json <<< '{"type":"list","args":[{"type":"dict","args":[{"name":"foo","type":"array"}]},{"type":"dict","args":[{"name":"faa","type":"object"}]}]}'
$

--[ node-list-open-array-any ]--------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":[{"type":"array","args":"'$t'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_t __4 = {
    .root = &__3
};
static const struct json_type_list_attr_t __5 = {
    .open_array = &__4
};
static const struct json_type_node_t* __6[] = {
    &__1,
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_list_node_type,
    .attr.list = &__5,
    .node.list = {
        .args = __6,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$

--[ node-list-open-array-any2 ]-------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"list","args":[{"type":"array","args":"'$t'"},{"type":"array","args":"'$t2'"}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"null"}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:78)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"null"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"boolean"}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:78)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"boolean"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"number"}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:78)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"number"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"string"}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:78)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"string"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"object"}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:78)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"object"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"array"}]}'
json: error: <stdin>:1:47: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:78)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"type"},{"type":"array","args":"array"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:78: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:47)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"null"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:47)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"boolean"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:80: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:47)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"number"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:80: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:47)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"string"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:80: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:47)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"object"},{"type":"array","args":"array"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__2,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"type"}]}'
json: error: <stdin>:1:79: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:47)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"type"}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"null"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"boolean"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"number"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"string"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$ json <<< '{"type":"list","args":[{"type":"array","args":"array"},{"type":"array","args":"object"}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__2,
    .EQ = &__4
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .lo = &__5,
    .EQ = &__6
};
static const struct json_type_trie_t __8 = {
    .root = &__7
};
static const struct json_type_list_attr_t __9 = {
    .open_array = &__8
};
static const struct json_type_node_t* __10[] = {
    &__1,
    &__3,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_list_node_type,
    .attr.list = &__9,
    .node.list = {
        .args = __10,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__11
};
$

--[ node-list-closed-array-any ]------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"list","args":[{"type":"array","args":["'$t'"]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __3 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = &__0,
    .EQ = &__3
};
static const struct json_type_trie_t __5 = {
    .root = &__4
};
static const struct json_type_list_attr_t __6 = {
    .closed_array = &__5
};
static const struct json_type_node_t* __7[] = {
    &__2,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_list_node_type,
    .attr.list = &__6,
    .node.list = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$

--[ node-list-closed-array-any2 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"list","args":[{"type":"array","args":["'$t'"]},{"type":"array","args":["'$t2'"]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["null"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["boolean"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["number"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["string"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["object"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array"]}]}'
json: error: <stdin>:1:48: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:81)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["type"]},{"type":"array","args":["array"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:81: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["null"]},{"type":"array","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:84: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["boolean"]},{"type":"array","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["number"]},{"type":"array","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["string"]},{"type":"array","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:83: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["object"]},{"type":"array","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__0,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__3,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type"]}]}'
json: error: <stdin>:1:82: attribute error: invalid "list" type object: array argument ambiguity (the other is at 1:48)
command failed: json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["type"]}]}'
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$ json <<< '{"type":"list","args":[{"type":"array","args":["array"]},{"type":"array","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t* __1[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __1,
            .size = 1
        }
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_trie_node_t __6 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __7 = {
    .sym = &__3,
    .EQ = &__6
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__2
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__0,
    .lo = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .closed_array = &__10
};
static const struct json_type_node_t* __12[] = {
    &__2,
    &__5,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__13
};
$

--[ node-object-list-any ]------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["'$t'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __7[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __7,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$

--[ node-object-list-any2 ]-----------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["'$t'"]}},{"name":"bar","type":{"type":"list","args":["'$t2'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$ json <<< '{"type":"object","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __14[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __15 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __14,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__15
};
$

--[ node-dict-list-any ]--------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["'$t'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = 'o',
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = 'o',
    .EQ = &__8
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = 'f',
    .EQ = &__9
};
static const struct json_type_dict_trie_t __11 = {
    .root = &__10
};
static const struct json_type_dict_attr_t __12 = {
    .args = &__11
};
static const struct json_type_dict_node_arg_t __13[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__12,
    .node.dict = {
        .args = __13,
        .size = 1
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__14
};
$

--[ node-dict-list-any2 ]-------------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do T='{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["'$t'"]}},{"name":"bar","type":{"type":"list","args":["'$t2'"]}}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["type"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["null"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["boolean"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["number"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["string"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["object"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["type"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["null"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["boolean"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["number"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["string"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["object"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$ json <<< '{"type":"dict","args":[{"name":"foo","type":{"type":"list","args":["array"]}},{"name":"bar","type":{"type":"list","args":["array"]}}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __8 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __9 = {
    .sym = &__7,
    .EQ = &__8
};
static const struct json_type_trie_t __10 = {
    .root = &__9
};
static const struct json_type_list_attr_t __11 = {
    .any = &__10
};
static const struct json_type_node_t* __12[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __13 = {
    .type = json_type_list_node_type,
    .attr.list = &__11,
    .node.list = {
        .args = __12,
        .size = 1
    }
};
static const struct json_type_dict_trie_node_t __14 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __15 = {
    .sym = 'r',
    .EQ = &__14
};
static const struct json_type_dict_trie_node_t __16 = {
    .sym = 'a',
    .EQ = &__15
};
static const struct json_type_dict_trie_node_t __17 = {
    .sym = 'b',
    .EQ = &__16
};
static const struct json_type_dict_trie_node_t __18 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __19 = {
    .sym = 'o',
    .EQ = &__18
};
static const struct json_type_dict_trie_node_t __20 = {
    .sym = 'o',
    .EQ = &__19
};
static const struct json_type_dict_trie_node_t __21 = {
    .sym = 'f',
    .lo = &__17,
    .EQ = &__20
};
static const struct json_type_dict_trie_t __22 = {
    .root = &__21
};
static const struct json_type_dict_attr_t __23 = {
    .args = &__22
};
static const struct json_type_dict_node_arg_t __24[] = {
    {
        .name = (const uchar_t*) "foo",
        .type = &__6
    },
    {
        .name = (const uchar_t*) "bar",
        .type = &__13
    }
};
static const struct json_type_node_t __25 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__23,
    .node.dict = {
        .args = __24,
        .size = 2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__25
};
$

--[ node-open-array-list-empty ]------------------------------------------------

$ json <<< '{"type":"array","args":{"type":"list","args":[]}}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__3
};
$ json <<< '{"type":"array","args":{"type":"array","args":{"type":"list","args":[]}}}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__4
};
$ json <<< '{"type":"array","args":{"type":"array","args":{"type":"array","args":{"type":"array","args":{"type":"list","args":[]}}}}}'
\#include "json-type.h"
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__4
    }
};
static const struct json_type_node_t __6 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__5
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__6
};
$

--[ node-open-array-list-any ]------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":{"type":"list","args":["'$t'"]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":{"type":"list","args":["type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__7
};
$

--[ node-open-array-list-any2 ]-------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"array","args":{"type":"list","args":["'$t'","'$t2'"]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"list","args":["type","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$

--[ node-closed-array-list-any ]------------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do T='{"type":"array","args":[{"type":"list","args":["'$t'"]}]}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done
#
$ json <<< '{"type":"array","args":[{"type":"list","args":["type"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"array","args":[{"type":"list","args":["null"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"array","args":[{"type":"list","args":["boolean"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"array","args":[{"type":"list","args":["number"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"array","args":[{"type":"list","args":["string"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"array","args":[{"type":"list","args":["object"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$ json <<< '{"type":"array","args":[{"type":"list","args":["array"]}]}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __1 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __2 = {
    .sym = &__0,
    .EQ = &__1
};
static const struct json_type_trie_t __3 = {
    .root = &__2
};
static const struct json_type_list_attr_t __4 = {
    .any = &__3
};
static const struct json_type_node_t* __5[] = {
    &__0,
    NULL
};
static const struct json_type_node_t __6 = {
    .type = json_type_list_node_type,
    .attr.list = &__4,
    .node.list = {
        .args = __5,
        .size = 1
    }
};
static const struct json_type_node_t* __7[] = {
    &__6,
    NULL
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __7,
            .size = 1
        }
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__8
};
$

--[ node-closed-array-list-any2 ]-----------------------------------------------

#
# # meta command:
# $ for t in type null boolean number string object array; do for t2 in type null boolean number string object array; do test "$t" == "$t2" && continue; T='{"type":"array","args":{"type":"list","args":["'$t'","'$t2'"]}}'; c="json <<< '$T'"; echo "$ $c"; eval "$c"; test $? -eq 0 || echo "command failed: $c"; done; done
#
$ json <<< '{"type":"array","args":{"type":"list","args":["type","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["type","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["null","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["boolean","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["number","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["string","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["object","array"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","type"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__0,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__1,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","null"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","boolean"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","number"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","string"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$ json <<< '{"type":"array","args":{"type":"list","args":["array","object"]}}'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_trie_node_t __2 = {
    .sym = NULL,
    .VAL = &__1
};
static const struct json_type_trie_node_t __3 = {
    .sym = &__1,
    .EQ = &__2
};
static const struct json_type_trie_node_t __4 = {
    .sym = NULL,
    .VAL = &__0
};
static const struct json_type_trie_node_t __5 = {
    .sym = &__0,
    .lo = &__3,
    .EQ = &__4
};
static const struct json_type_trie_t __6 = {
    .root = &__5
};
static const struct json_type_list_attr_t __7 = {
    .any = &__6
};
static const struct json_type_node_t* __8[] = {
    &__0,
    &__1,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_list_node_type,
    .attr.list = &__7,
    .node.list = {
        .args = __8,
        .size = 2
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__9
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__10
};
$

--[ node-dict-expr ]------------------------------------------------------------

$ json() { ../lib/test-gen --dict -T -d1 -k4 -e "$1"|LD_LIBRARY_PATH=../lib ../src/json -Td|sed -r $'1i\\\\\\#include "json-type.h"\n'';s/^#/\\#/;/^\s*\/\//d;/^\s*$/d'|tee /dev/fd/2|sed -r 's/^\\//'|gcc -Wall -Wextra -std=gnu99 -I ../lib -xc -c - -o /dev/null; }
$ json '0'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_dict_expr_t __0 = {
    .text = (const uchar_t*) "0",
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '0',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '1',
    .lo = &__6,
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = '\0',
    .VAL = 2
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 3
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = '3',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = '2',
    .lo = &__8,
    .EQ = &__9,
    .hi = &__11
};
static const struct json_type_dict_trie_t __13 = {
    .root = &__12
};
static const struct bit_set_t __14 = {
    .size = 4,
    .u.val = 0x0ul
};
static const struct bit_set_t* __15[] = {
    &__14,
    NULL
};
static const struct json_type_dict_attr_t __16 = {
    .args = &__13,
    .expr = __15,
    .size = 1
};
static const struct json_type_dict_node_arg_t __17[] = {
    {
        .name = (const uchar_t*) "0",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "1",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "2",
        .type = &__3
    },
    {
        .name = (const uchar_t*) "3",
        .type = &__4
    }
};
static const struct json_type_node_t __18 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__16,
    .node.dict = {
        .expr = &__0,
        .args = __17,
        .size = 4
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__18
};
$ json '1'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_dict_expr_t __0 = {
    .text = (const uchar_t*) "1",
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_dict_trie_node_t __5 = {
    .sym = '\0',
    .VAL = 0
};
static const struct json_type_dict_trie_node_t __6 = {
    .sym = '0',
    .EQ = &__5
};
static const struct json_type_dict_trie_node_t __7 = {
    .sym = '\0',
    .VAL = 1
};
static const struct json_type_dict_trie_node_t __8 = {
    .sym = '1',
    .lo = &__6,
    .EQ = &__7
};
static const struct json_type_dict_trie_node_t __9 = {
    .sym = '\0',
    .VAL = 2
};
static const struct json_type_dict_trie_node_t __10 = {
    .sym = '\0',
    .VAL = 3
};
static const struct json_type_dict_trie_node_t __11 = {
    .sym = '3',
    .EQ = &__10
};
static const struct json_type_dict_trie_node_t __12 = {
    .sym = '2',
    .lo = &__8,
    .EQ = &__9,
    .hi = &__11
};
static const struct json_type_dict_trie_t __13 = {
    .root = &__12
};
static const struct bit_set_t __14 = {
    .size = 4,
    .u.val = 0xful
};
static const struct bit_set_t* __15[] = {
    &__14,
    NULL
};
static const struct json_type_dict_attr_t __16 = {
    .args = &__13,
    .expr = __15,
    .size = 1
};
static const struct json_type_dict_node_arg_t __17[] = {
    {
        .name = (const uchar_t*) "0",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "1",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "2",
        .type = &__3
    },
    {
        .name = (const uchar_t*) "3",
        .type = &__4
    }
};
static const struct json_type_node_t __18 = {
    .type = json_type_dict_node_type,
    .attr.dict = &__16,
    .node.dict = {
        .expr = &__0,
        .args = __17,
        .size = 4
    }
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_node_type,
    .val.node = &__18
};
$ 

--[ node-dict-expr2 ]-----------------------------------------------------------

$ json() { ../lib/test-gen --dict -T -d1 -k128 -e "$1"|LD_LIBRARY_PATH=../lib ../src/json -Td|sed -r $'1i\\\\\\#include "json-type.h"\n'';s/^#/\\#/;/^\s*\/\//d;/^\s*$/d'|tee >(sed -nr '/^\s*$/d;/^static\s+const\s+(uchar_t|struct\s+(bit_set_t(\s*\*)?|json_type_dict_attr_t))\s/,/^\}/p' >&2)|sed -r 's/^\\//'|gcc -Wall -Wextra -std=gnu99 -I ../lib -xc -c - -o /dev/null; }
$ json '0'
static const uchar_t __386[16] = {};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
$ json '1'
static const uchar_t __386[16] = {
    [0] = 0xffu,
    [1] = 0xffu,
    [2] = 0xffu,
    [3] = 0xffu,
    [4] = 0xffu,
    [5] = 0xffu,
    [6] = 0xffu,
    [7] = 0xffu,
    [8] = 0xffu,
    [9] = 0xffu,
    [10] = 0xffu,
    [11] = 0xffu,
    [12] = 0xffu,
    [13] = 0xffu,
    [14] = 0xffu,
    [15] = 0xffu,
};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
$ json '`0`'
static const uchar_t __386[16] = {
    [0] = 0x01u,
};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
$ json '`127`'
static const uchar_t __386[16] = {
    [15] = 0x80u,
};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
$ json '`0`|`127`'
static const uchar_t __386[16] = {
    [0] = 0x01u,
    [15] = 0x80u,
};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
# $ e=''; for((k=0;k<128;k+=2)); do e+="${e:+|}\`$k\`"; done; c="json '$e'"; echo "$ $c"; eval "$c"
$ json '`0`|`2`|`4`|`6`|`8`|`10`|`12`|`14`|`16`|`18`|`20`|`22`|`24`|`26`|`28`|`30`|`32`|`34`|`36`|`38`|`40`|`42`|`44`|`46`|`48`|`50`|`52`|`54`|`56`|`58`|`60`|`62`|`64`|`66`|`68`|`70`|`72`|`74`|`76`|`78`|`80`|`82`|`84`|`86`|`88`|`90`|`92`|`94`|`96`|`98`|`100`|`102`|`104`|`106`|`108`|`110`|`112`|`114`|`116`|`118`|`120`|`122`|`124`|`126`'
static const uchar_t __386[16] = {
    [0] = 0x55u,
    [1] = 0x55u,
    [2] = 0x55u,
    [3] = 0x55u,
    [4] = 0x55u,
    [5] = 0x55u,
    [6] = 0x55u,
    [7] = 0x55u,
    [8] = 0x55u,
    [9] = 0x55u,
    [10] = 0x55u,
    [11] = 0x55u,
    [12] = 0x55u,
    [13] = 0x55u,
    [14] = 0x55u,
    [15] = 0x55u,
};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
# $ e=''; for((k=1;k<128;k+=2)); do e+="${e:+|}\`$k\`"; done; c="json '$e'"; echo "$ $c"; eval "$c"
$ json '`1`|`3`|`5`|`7`|`9`|`11`|`13`|`15`|`17`|`19`|`21`|`23`|`25`|`27`|`29`|`31`|`33`|`35`|`37`|`39`|`41`|`43`|`45`|`47`|`49`|`51`|`53`|`55`|`57`|`59`|`61`|`63`|`65`|`67`|`69`|`71`|`73`|`75`|`77`|`79`|`81`|`83`|`85`|`87`|`89`|`91`|`93`|`95`|`97`|`99`|`101`|`103`|`105`|`107`|`109`|`111`|`113`|`115`|`117`|`119`|`121`|`123`|`125`|`127`'
static const uchar_t __386[16] = {
    [0] = 0xaau,
    [1] = 0xaau,
    [2] = 0xaau,
    [3] = 0xaau,
    [4] = 0xaau,
    [5] = 0xaau,
    [6] = 0xaau,
    [7] = 0xaau,
    [8] = 0xaau,
    [9] = 0xaau,
    [10] = 0xaau,
    [11] = 0xaau,
    [12] = 0xaau,
    [13] = 0xaau,
    [14] = 0xaau,
    [15] = 0xaau,
};
static const struct bit_set_t __387 = {
    .size = 128,
    .u.ptr = __386
};
static const struct bit_set_t* __388[] = {
    &__387,
    NULL
};
static const struct json_type_dict_attr_t __389 = {
    .args = &__385,
    .expr = __388,
    .size = 1
};
$

--[ defs ]----------------------------------------------------------------------

$ json <<< '[{"name":"type","type":"type"},{"name":"null","type":"null"},{"name":"boolean","type":"boolean"},{"name":"number","type":"number"},{"name":"string","type":"string"},{"name":"object","type":"object"},{"name":"array","type":"array"}]'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __6 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_defs_arg_t __7[] = {
    {
        .name = (const uchar_t*) "type",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "null",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "boolean",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "number",
        .type = &__3
    },
    {
        .name = (const uchar_t*) "string",
        .type = &__4
    },
    {
        .name = (const uchar_t*) "object",
        .type = &__5
    },
    {
        .name = (const uchar_t*) "array",
        .type = &__6
    }
};
static const struct json_type_defs_t __8 = {
    .args = __7,
    .size = 7
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_defs_type,
    .val.defs = &__8
};
$ json <<< '[{"name":"null","type":{"plain":null}},{"name":"false","type":{"plain":false}},{"name":"true","type":{"plain":true}},{"name":"123","type":{"plain":123}},{"name":"\"foo\"","type":{"plain":"foo"}}]'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_defs_arg_t __5[] = {
    {
        .name = (const uchar_t*) "null",
        .type = &__0
    },
    {
        .name = (const uchar_t*) "false",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "true",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "123",
        .type = &__3
    },
    {
        .name = (const uchar_t*) "\"foo\"",
        .type = &__4
    }
};
static const struct json_type_defs_t __6 = {
    .args = __5,
    .size = 5
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_defs_type,
    .val.defs = &__6
};
$ json <<< '[{"name":"object","type":{"type":"object","args":[]}},{"name":"object2","type":{"type":"object","args":[{"name":"arg","type":{"type":"object","args":[]}}]}},{"name":"object3","type":{"type":"object","args":[{"name":"name","type":{"type":"object","args":[{"name":"name","type":{"type":"object","args":[]}}]}}]}}]'
\#include "json-type.h"
static const struct json_type_object_node_arg_t __0[] = {
};
static const struct json_type_node_t __1 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __0,
        .size = 0
    }
};
static const struct json_type_object_node_arg_t __2[] = {
};
static const struct json_type_node_t __3 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __2,
        .size = 0
    }
};
static const struct json_type_object_node_arg_t __4[] = {
    {
        .name = (const uchar_t*) "arg",
        .type = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __4,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __6[] = {
};
static const struct json_type_node_t __7 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __6,
        .size = 0
    }
};
static const struct json_type_object_node_arg_t __8[] = {
    {
        .name = (const uchar_t*) "name",
        .type = &__7
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __8,
        .size = 1
    }
};
static const struct json_type_object_node_arg_t __10[] = {
    {
        .name = (const uchar_t*) "name",
        .type = &__9
    }
};
static const struct json_type_node_t __11 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __10,
        .size = 1
    }
};
static const struct json_type_defs_arg_t __12[] = {
    {
        .name = (const uchar_t*) "object",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "object2",
        .type = &__5
    },
    {
        .name = (const uchar_t*) "object3",
        .type = &__11
    }
};
static const struct json_type_defs_t __13 = {
    .args = __12,
    .size = 3
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_defs_type,
    .val.defs = &__13
};
$ json <<< '[{"name":"open-array","type":{"type":"array","args":"type"}},{"name":"open-array2","type":{"type":"array","args":{"type":"array","args":"type"}}},{"name":"open-array3","type":{"type":"array","args":{"type":"array","args":{"type":"array","args":"type"}}}}]'
\#include "json-type.h"
static const struct json_type_node_t __0 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__0
    }
};
static const struct json_type_node_t __2 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__2
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__3
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __6 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__5
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__6
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__7
    }
};
static const struct json_type_defs_arg_t __9[] = {
    {
        .name = (const uchar_t*) "open-array",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "open-array2",
        .type = &__4
    },
    {
        .name = (const uchar_t*) "open-array3",
        .type = &__8
    }
};
static const struct json_type_defs_t __10 = {
    .args = __9,
    .size = 3
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_defs_type,
    .val.defs = &__10
};
$ json <<< '[{"name":"closed-array","type":{"type":"array","args":[]}},{"name":"closed-array2","type":{"type":"array","args":[{"type":"array","args":[]}]}},{"name":"closed-array3","type":{"type":"array","args":[{"type":"array","args":[{"type":"array","args":[]}]}]}}]'
\#include "json-type.h"
static const struct json_type_node_t* __0[] = {
    NULL
};
static const struct json_type_node_t __1 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __0,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __2[] = {
    NULL
};
static const struct json_type_node_t __3 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __2,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __4[] = {
    &__3,
    NULL
};
static const struct json_type_node_t __5 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __4,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __6[] = {
    NULL
};
static const struct json_type_node_t __7 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __6,
            .size = 0
        }
    }
};
static const struct json_type_node_t* __8[] = {
    &__7,
    NULL
};
static const struct json_type_node_t __9 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __8,
            .size = 1
        }
    }
};
static const struct json_type_node_t* __10[] = {
    &__9,
    NULL
};
static const struct json_type_node_t __11 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_closed_array_node_type,
        .val.closed = {
            .args = __10,
            .size = 1
        }
    }
};
static const struct json_type_defs_arg_t __12[] = {
    {
        .name = (const uchar_t*) "closed-array",
        .type = &__1
    },
    {
        .name = (const uchar_t*) "closed-array2",
        .type = &__5
    },
    {
        .name = (const uchar_t*) "closed-array3",
        .type = &__11
    }
};
static const struct json_type_defs_t __13 = {
    .args = __12,
    .size = 3
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_defs_type,
    .val.defs = &__13
};
$ json <<< '[{"name":"list","type":{"type":"list","args":[]}},{"name":"list2","type":{"type":"list","args":["type","null","boolean","number","string","object","array",{"plain":null},{"plain":false},{"plain":true},{"plain":123},{"plain":"foo"},{"type":"object","args":[]},{"type":"object","args":[{"name":"bar","type":"object"}]},{"type":"array","args":"array"}]}}]'
\#include "json-type.h"
\#define EQ  cell.eq
\#define VAL cell.val
static const struct json_type_list_attr_t __0;
static const struct json_type_node_t* __1[] = {
    NULL
};
static const struct json_type_node_t __2 = {
    .type = json_type_list_node_type,
    .attr.list = &__0,
    .node.list = {
        .args = __1,
        .size = 0
    }
};
static const struct json_type_node_t __3 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_type_type
    }
};
static const struct json_type_node_t __4 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_null_type
    }
};
static const struct json_type_node_t __5 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_boolean_type
    }
};
static const struct json_type_node_t __6 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_number_type
    }
};
static const struct json_type_node_t __7 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_string_type
    }
};
static const struct json_type_node_t __8 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_node_t __9 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __10 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_null_type,
    }
};
static const struct json_type_node_t __11 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = false
    }
};
static const struct json_type_node_t __12 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_boolean_type,
        .val.boolean = true
    }
};
static const struct json_type_node_t __13 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_number_type,
        .val.number = (const uchar_t*) "123"
    }
};
static const struct json_type_node_t __14 = {
    .type = json_type_plain_node_type,
    .node.plain = {
        .type = json_type_plain_string_type,
        .val.string = (const uchar_t*) "foo"
    }
};
static const struct json_type_object_node_arg_t __15[] = {
};
static const struct json_type_node_t __16 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __15,
        .size = 0
    }
};
static const struct json_type_node_t __17 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_object_type
    }
};
static const struct json_type_object_node_arg_t __18[] = {
    {
        .name = (const uchar_t*) "bar",
        .type = &__17
    }
};
static const struct json_type_node_t __19 = {
    .type = json_type_object_node_type,
    .node.object = {
        .args = __18,
        .size = 1
    }
};
static const struct json_type_node_t __20 = {
    .type = json_type_any_node_type,
    .node.any = {
        .type = json_type_any_array_type
    }
};
static const struct json_type_node_t __21 = {
    .type = json_type_array_node_type,
    .node.array = {
        .type = json_type_open_array_node_type,
        .val.open.arg = &__20
    }
};
static const struct json_type_trie_node_t __22 = {
    .sym = NULL,
    .VAL = &__4
};
static const struct json_type_trie_node_t __23 = {
    .sym = &__4,
    .EQ = &__22
};
static const struct json_type_trie_node_t __24 = {
    .sym = NULL,
    .VAL = &__5
};
static const struct json_type_trie_node_t __25 = {
    .sym = NULL,
    .VAL = &__6
};
static const struct json_type_trie_node_t __26 = {
    .sym = &__6,
    .EQ = &__25
};
static const struct json_type_trie_node_t __27 = {
    .sym = &__5,
    .lo = &__23,
    .EQ = &__24,
    .hi = &__26
};
static const struct json_type_trie_node_t __28 = {
    .sym = NULL,
    .VAL = &__7
};
static const struct json_type_trie_node_t __29 = {
    .sym = NULL,
    .VAL = &__8
};
static const struct json_type_trie_node_t __30 = {
    .sym = &__8,
    .EQ = &__29
};
static const struct json_type_trie_node_t __31 = {
    .sym = NULL,
    .VAL = &__9
};
static const struct json_type_trie_node_t __32 = {
    .sym = NULL,
    .VAL = &__3
};
static const struct json_type_trie_node_t __33 = {
    .sym = &__3,
    .EQ = &__32
};
static const struct json_type_trie_node_t __34 = {
    .sym = &__9,
    .lo = &__30,
    .EQ = &__31,
    .hi = &__33
};
static const struct json_type_trie_node_t __35 = {
    .sym = &__7,
    .lo = &__27,
    .EQ = &__28,
    .hi = &__34
};
static const struct json_type_trie_t __36 = {
    .root = &__35
};
static const struct json_type_trie_node_t __37 = {
    .sym = NULL,
    .VAL = &__10
};
static const struct json_type_trie_node_t __38 = {
    .sym = &__10,
    .EQ = &__37
};
static const struct json_type_trie_node_t __39 = {
    .sym = NULL,
    .VAL = &__11
};
static const struct json_type_trie_node_t __40 = {
    .sym = NULL,
    .VAL = &__12
};
static const struct json_type_trie_node_t __41 = {
    .sym = &__12,
    .EQ = &__40
};
static const struct json_type_trie_node_t __42 = {
    .sym = &__11,
    .lo = &__38,
    .EQ = &__39,
    .hi = &__41
};
static const struct json_type_trie_node_t __43 = {
    .sym = NULL,
    .VAL = &__13
};
static const struct json_type_trie_node_t __44 = {
    .sym = NULL,
    .VAL = &__14
};
static const struct json_type_trie_node_t __45 = {
    .sym = &__14,
    .EQ = &__44
};
static const struct json_type_trie_node_t __46 = {
    .sym = &__13,
    .lo = &__42,
    .EQ = &__43,
    .hi = &__45
};
static const struct json_type_trie_t __47 = {
    .root = &__46
};
static const struct json_type_object_trie_node_t __48 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__16
};
static const struct json_type_object_trie_node_t __49 = {
    .sym = {
        .type = json_type_object_sym_null_type
    },
    .VAL = &__19
};
static const struct json_type_object_trie_node_t __50 = {
    .sym = {
        .type = json_type_object_sym_node_type,
        .val.node = &__17
    },
    .EQ = &__49
};
static const struct json_type_object_trie_node_t __51 = {
    .sym = {
        .type = json_type_object_sym_name_type,
        .val.name = (const uchar_t*) "bar"
    },
    .lo = &__48,
    .EQ = &__50
};
static const struct json_type_object_trie_t __52 = {
    .root = &__51
};
static const struct json_type_trie_node_t __53 = {
    .sym = NULL,
    .VAL = &__21
};
static const struct json_type_trie_node_t __54 = {
    .sym = &__20,
    .EQ = &__53
};
static const struct json_type_trie_t __55 = {
    .root = &__54
};
static const struct json_type_list_attr_t __56 = {
    .any = &__36,
    .plain = &__47,
    .object = &__52,
    .open_array = &__55
};
static const struct json_type_node_t* __57[] = {
    &__3,
    &__4,
    &__5,
    &__6,
    &__7,
    &__8,
    &__9,
    &__10,
    &__11,
    &__12,
    &__13,
    &__14,
    &__16,
    &__19,
    &__21,
    NULL
};
static const struct json_type_node_t __58 = {
    .type = json_type_list_node_type,
    .attr.list = &__56,
    .node.list = {
        .args = __57,
        .size = 15
    }
};
static const struct json_type_defs_arg_t __59[] = {
    {
        .name = (const uchar_t*) "list",
        .type = &__2
    },
    {
        .name = (const uchar_t*) "list2",
        .type = &__58
    }
};
static const struct json_type_defs_t __60 = {
    .args = __59,
    .size = 2
};
static const struct json_type_def_t MODULE_TYPE_DEF = {
    .type = json_type_def_defs_type,
    .val.defs = &__60
};
$

--[ json-type ]-----------------------------------------------------------------

# $ jpp -c ../lib/json-type.json|json --terse
# ...
$ json <<< '{"type":"list","args":[{"plain":"type"},{"plain":"null"},{"plain":"boolean"},{"plain":"number"},{"plain":"string"},{"plain":"object"},{"plain":"array"},{"type":"object","args":[{"name":"plain","type":{"type":"list","args":["null","boolean","number","string"]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"object"}},{"name":"args","type":{"type":"array","args":{"type":"object","args":[{"name":"name","type":"string"},{"name":"type","type":"type"}]}}}]},{"type":"object","args":[{"name":"type","type":{"plain":"array"}},{"name":"args","type":{"type":"list","args":["type",{"type":"array","args":"type"}]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"list"}},{"name":"args","type":{"type":"array","args":"type"}}]}]}'
json: error: <stdin>:1:153: attribute error: invalid "list" type object: sort of object of list type not yet supported (the inner list is at 1:201)
command failed: json <<< '{"type":"list","args":[{"plain":"type"},{"plain":"null"},{"plain":"boolean"},{"plain":"number"},{"plain":"string"},{"plain":"object"},{"plain":"array"},{"type":"object","args":[{"name":"plain","type":{"type":"list","args":["null","boolean","number","string"]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"object"}},{"name":"args","type":{"type":"array","args":{"type":"object","args":[{"name":"name","type":"string"},{"name":"type","type":"type"}]}}}]},{"type":"object","args":[{"name":"type","type":{"plain":"array"}},{"name":"args","type":{"type":"list","args":["type",{"type":"array","args":"type"}]}}]},{"type":"object","args":[{"name":"type","type":{"plain":"list"}},{"name":"args","type":{"type":"array","args":"type"}}]}]}'
$


