JSON-Schema-AsType v0.4.4 Perl 5 v5.18.3 x86_64-linux

Status
Pass
From
Chris Williams (BINGOS)
Dist
JSON-Schema-AsType v0.4.4
Platform
Perl 5 v5.18.3 x86_64-linux
Date
2024-04-18 13:11:27
ID
29fa061c-fd85-11ee-98b0-b3c3213a625c
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--

Dear YANICK,

This is a computer-generated error report created automatically by
CPANPLUS, version 0.9914. Testers personal comments may appear
at the end of this report.


Thank you for uploading your work to CPAN.  Congratulations!
All tests were successful.

TEST RESULTS:

Below is the error stack from stage 'make test':

PERL_DL_NONLAZY=1 "/home/cpan/pit/bare/perl-5.18.3/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-compile.t ......... ok
# 
# Versions for all modules listed in MYMETA.json (including optional ones):
# 
# === Configure Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 7.70
# 
# === Build Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 7.70
# 
# === Test Requires ===
# 
#     Module               Want     Have
#     ------------------- ----- --------
#     Exporter              any     5.68
#     ExtUtils::MakeMaker   any     7.70
#     File::Spec            any     3.75
#     IO::Handle            any     1.34
#     IPC::Open3            any     1.13
#     Path::Tiny          0.062    0.144
#     Test::Deep            any    1.204
#     Test::Exception       any     0.43
#     Test::More            any 1.302195
#     lib                   any     0.63
#     parent                any    0.225
# 
# === Test Recommends ===
# 
#     Module         Want     Have
#     ---------- -------- --------
#     CPAN::Meta 2.120900 2.150010
# 
# === Runtime Requires ===
# 
#     Module                     Want     Have
#     ---------------------- -------- --------
#     Clone                       any     0.46
#     JSON                        any     4.10
#     LWP::Simple                 any     6.77
#     List::AllUtils              any     0.19
#     List::MoreUtils             any    0.430
#     List::Util                  any     1.63
#     Moose                       any   2.2207
#     Moose::Role                 any   2.2207
#     Moose::Util                 any   2.2207
#     MooseX::ClassAttribute      any     0.29
#     MooseX::MungeHas            any    0.011
#     Path::Tiny                0.062    0.144
#     Scalar::Util                any     1.63
#     Type::Library               any 2.004000
#     Type::Tiny                  any 2.004000
#     Type::Tiny::Class           any 2.004000
#     Type::Utils                 any 2.004000
#     Types::Standard             any 2.004000
#     URI                         any     5.28
#     perl                   5.014000 5.018003
#     strict                      any     1.07
#     warnings                    any     1.18
# 
t/00-report-prereqs.t .. ok
t/basic.t .............. ok
t/draft3.t ............. ok
t/draft4.t ............. ok
        # {
        #   'pattern' => '^a*$'
        # }
        # Value "abc" did not pass type constraint "Pattern["^a*\$"]"
        # "Pattern["^a*\$"]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; /$regex/ unless not String->check($_); }
        # {
        #   'pattern' => 'a+'
        # }
        # {
        #   'enum' => [
        #     1,
        #     2,
        #     3
        #   ]
        # }
        # Value "4" did not pass type constraint "Enum[1,2,3]"
        # "Enum[1,2,3]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # {
        #   'enum' => [
        #     6,
        #     'foo',
        #     [],
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     {
        #       'foo' => 12
        #     }
        #   ]
        # }
        # Undef did not pass type constraint "Enum[6,foo,ARRAY(0x7fb2a7e847f0),1,HASH(0x7fb2a7fbf548)]"
        # "Enum[6,foo,ARRAY(0x7fb2a7e847f0),1,HASH(0x7fb2a7fbf548)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # Reference {"foo" => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )} did not pass type constraint "Enum[6,foo,ARRAY(0x7fb2a7e847f0),1,HASH(0x7fb2a7fbf548)]"
        # "Enum[6,foo,ARRAY(0x7fb2a7e847f0),1,HASH(0x7fb2a7fbf548)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # {
        #   'properties' => {
        #     'bar' => {
        #       'enum' => [
        #         'bar'
        #       ]
        #     },
        #     'foo' => {
        #       'enum' => [
        #         'foo'
        #       ]
        #     }
        #   },
        #   'required' => [
        #     'bar'
        #   ],
        #   'type' => 'object'
        # }
        # "Properties[bar,Enum[bar],foo,Enum[foo]]&Required[bar]&Object" requires that the value pass "Object", "Properties[bar,Enum[bar],foo,Enum[foo]]", and "Required[bar]"
        # Reference {"foo" => "foo"} did not pass type constraint "Required[bar]"
        # "Required[bar]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; all sub { exists $$obj{$_}; } , @keys; }
        # "Properties[bar,Enum[bar],foo,Enum[foo]]&Required[bar]&Object" requires that the value pass "Object", "Properties[bar,Enum[bar],foo,Enum[foo]]", and "Required[bar]"
        # Reference {} did not pass type constraint "Required[bar]"
        # "Required[bar]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; all sub { exists $$obj{$_}; } , @keys; }
        # {
        #   '$ref' => 'http://localhost:1234/integer.json'
        # }
        # ref schema is {"type":"integer"}
        # Value "a" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # "Ref(http://localhost:1234/integer.json)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   '$ref' => 'http://localhost:1234/subSchemas.json#/integer'
        # }
        # ref schema is {"type":"integer"}
        # Value "a" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # "Ref(http://localhost:1234/subSchemas.json#/integer)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   '$ref' => 'http://localhost:1234/subSchemas.json#/refToInteger'
        # }
        # ref schema is {"$ref":"#/integer"}
        # ref schema is {"type":"integer"}
        # Value "a" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # "Ref(#/integer)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # "Ref(http://localhost:1234/subSchemas.json#/refToInteger)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   '$id' => 'http://localhost:1234/',
        #   'items' => {
        #     '$id' => 'folder/',
        #     'items' => {
        #       '$ref' => 'folderInteger.json'
        #     }
        #   }
        # }
        # "~ArrayRef|Tuple[Slurpy[ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]]]" requires that the value pass "Tuple[Slurpy[ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]]]" or "~ArrayRef"
        # Reference [["a"]] did not pass type constraint "~ArrayRef"
        #     Reference [["a"]] did not pass type constraint "~ArrayRef"
        #     "~ArrayRef" is defined as: (not((ref($_) eq 'ARRAY')))
        # Reference [["a"]] did not pass type constraint "Tuple[Slurpy[ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]]]"
        #     Reference [["a"]] did not pass type constraint "Tuple[Slurpy[ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]]]"
        #     Array elements from index 0 are slurped into a arrayref which is constrained with "ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]"
        #     Reference [["a"]] did not pass type constraint "ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]" (in $SLURPY)
        #     "ArrayRef[~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]]" constrains each value in the array with "~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]"
        #     "~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]" requires that the value pass "Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]" or "~ArrayRef"
        #     Reference ["a"] did not pass type constraint "~ArrayRef"
        #         Reference ["a"] did not pass type constraint "~ArrayRef"
        #         "~ArrayRef" is defined as: (not((ref($_) eq 'ARRAY')))
        #     Reference ["a"] did not pass type constraint "Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]"
        #         Reference ["a"] did not pass type constraint "Tuple[Slurpy[ArrayRef[Ref(folderInteger.json)]]]"
        #         Array elements from index 0 are slurped into a arrayref which is constrained with "ArrayRef[Ref(folderInteger.json)]"
        #         Reference ["a"] did not pass type constraint "ArrayRef[Ref(folderInteger.json)]" (in $SLURPY)
        #         "ArrayRef[Ref(folderInteger.json)]" constrains each value in the array with "Ref(folderInteger.json)"
        #         ref schema is {"type":"integer"}
        # Value "a" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); } (in $SLURPY->[0])
        #         "Ref(folderInteger.json)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   '$id' => 'http://localhost:1234/scope_change_defs1.json',
        #   'definitions' => {
        #     'baz' => {
        #       '$id' => 'folder/',
        #       'items' => {
        #         '$ref' => 'folderInteger.json'
        #       },
        #       'type' => 'array'
        #     }
        #   },
        #   'properties' => {
        #     'list' => {
        #       '$ref' => '#/definitions/baz'
        #     }
        #   },
        #   'type' => 'object'
        # }
        # "Properties[list,Ref(#/definitions/baz)]&Object" requires that the value pass "Object" and "Properties[list,Ref(#/definitions/baz)]"
        # Reference {"list" => ["a"]} did not pass type constraint "Properties[list,Ref(#/definitions/baz)]"
        # "Properties[list,Ref(#/definitions/baz)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   '$id' => 'http://localhost:1234/scope_change_defs2.json',
        #   'definitions' => {
        #     'baz' => {
        #       '$id' => 'folder/',
        #       'definitions' => {
        #         'bar' => {
        #           'items' => {
        #             '$ref' => 'folderInteger.json'
        #           },
        #           'type' => 'array'
        #         }
        #       }
        #     }
        #   },
        #   'properties' => {
        #     'list' => {
        #       '$ref' => '#/definitions/baz/definitions/bar'
        #     }
        #   },
        #   'type' => 'object'
        # }
        # "Properties[list,Ref(#/definitions/baz/definitions/bar)]&Object" requires that the value pass "Object" and "Properties[list,Ref(#/definitions/baz/definitions/bar)]"
        # Reference {"list" => ["a"]} did not pass type constraint "Properties[list,Ref(#/definitions/baz/definitions/bar)]"
        # "Properties[list,Ref(#/definitions/baz/definitions/bar)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   '$id' => 'http://localhost:1234/object',
        #   'properties' => {
        #     'name' => {
        #       '$ref' => 'name.json#/definitions/orNull'
        #     }
        #   },
        #   'type' => 'object'
        # }
        # "Properties[name,Ref(name.json#/definitions/orNull)]&Object" requires that the value pass "Object" and "Properties[name,Ref(name.json#/definitions/orNull)]"
        # Reference {"name" => {"name" => undef}} did not pass type constraint "Properties[name,Ref(name.json#/definitions/orNull)]"
        # "Properties[name,Ref(name.json#/definitions/orNull)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'const' => 2
        # }
        # Value "5" did not pass type constraint "Enum[2]"
        # "Enum[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # Value "a" did not pass type constraint "Enum[2]"
        # "Enum[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # {
        #   'const' => {
        #     'baz' => 'bax',
        #     'foo' => 'bar'
        #   }
        # }
        # Reference {"foo" => "bar"} did not pass type constraint "Enum[HASH(0x7fb2a7886d80)]"
        # "Enum[HASH(0x7fb2a7886d80)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # Reference [1,2] did not pass type constraint "Enum[HASH(0x7fb2a7886d80)]"
        # "Enum[HASH(0x7fb2a7886d80)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # {
        #   'const' => undef
        # }
        # Value "0" did not pass type constraint "Enum[undef]"
        # "Enum[undef]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $j = $_; any sub { same_structs($_, $j); } , @items; }
        # {
        #   'minimum' => '1.1'
        # }
        # Value "0.6" did not pass type constraint "Minimum["1.1"]"
        # "Minimum["1.1"]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $_ >= $minimum unless not Number->check($_); }
        # {
        #   'additionalItems' => {
        #     'type' => 'integer'
        #   },
        #   'items' => [
        #     {}
        #   ]
        # }
        # 
        # {
        #   'additionalItems' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #   'items' => {}
        # }
        # {
        #   'additionalItems' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #   'items' => [
        #     {},
        #     {},
        #     {}
        #   ]
        # }
        # "AdditionalItems[3]&~ArrayRef|Tuple[Optional[Any],Optional[Any],Optional[Any],Slurpy[Any]]" requires that the value pass "AdditionalItems[3]" and "~ArrayRef|Tuple[Optional[Any],Optional[Any],Optional[Any],Slurpy[Any]]"
        # Reference [1,2,3,4] did not pass type constraint "AdditionalItems[3]"
        # "AdditionalItems[3]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; @$_ <= $size; }
        # {
        #   'additionalItems' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        # }
        # {
        #   'items' => [
        #     {
        #       'type' => 'integer'
        #     }
        #   ]
        # }
        # {
        #   'oneOf' => [
        #     {
        #       'type' => 'integer'
        #     },
        #     {
        #       'minimum' => 2
        #     }
        #   ]
        # }
        # Value "3" did not pass type constraint "OneOf[__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # Value "1.5" did not pass type constraint "OneOf[__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # {
        #   'oneOf' => [
        #     {
        #       'minLength' => 2
        #     },
        #     {
        #       'maxLength' => 4
        #     }
        #   ],
        #   'type' => 'string'
        # }
        # "OneOf[__ANON__,__ANON__]&String" requires that the value pass "OneOf[__ANON__,__ANON__]" and "String"
        # Value "3" did not pass type constraint "OneOf[__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # "OneOf[__ANON__,__ANON__]&String" requires that the value pass "OneOf[__ANON__,__ANON__]" and "String"
        # Value "foo" did not pass type constraint "OneOf[__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # {
        #   'oneOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'oneOf'}[0],
        #     $VAR1->{'oneOf'}[0]
        #   ]
        # }
        # Value "foo" did not pass type constraint "OneOf[__ANON__,__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # {
        #   'oneOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'oneOf'}[1]
        #   ]
        # }
        # {
        #   'oneOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'oneOf'}[0],
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        #   ]
        # }
        # Value "foo" did not pass type constraint "OneOf[__ANON__,__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # {
        #   'oneOf' => [
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'oneOf'}[0],
        #     $VAR1->{'oneOf'}[0]
        #   ]
        # }
        # Value "foo" did not pass type constraint "OneOf[__ANON__,__ANON__,__ANON__]"
        # "OneOf[__ANON__,__ANON__,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; 1 == grep({$_->check($v);} @types); }
        # {
        #   'anyOf' => [
        #     {
        #       'type' => 'integer'
        #     },
        #     {
        #       'minimum' => 2
        #     }
        #   ]
        # }
        # Value "1.5" did not pass type constraint "AnyOf[Integer,Minimum[2]]"
        # "AnyOf[Integer,Minimum[2]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # {
        #   'anyOf' => [
        #     {
        #       'maxLength' => 2
        #     },
        #     {
        #       'minLength' => 4
        #     }
        #   ],
        #   'type' => 'string'
        # }
        # "AnyOf[MaxLength[2],MinLength[4]]&String" requires that the value pass "AnyOf[MaxLength[2],MinLength[4]]" and "String"
        # Value "3" did not pass type constraint "String"
        # "String" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 16384; }
        # "AnyOf[MaxLength[2],MinLength[4]]&String" requires that the value pass "AnyOf[MaxLength[2],MinLength[4]]" and "String"
        # Value "foo" did not pass type constraint "AnyOf[MaxLength[2],MinLength[4]]"
        # "AnyOf[MaxLength[2],MinLength[4]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # {
        #   'anyOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'anyOf'}[0]
        #   ]
        # }
        # {
        #   'anyOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        #   ]
        # }
        # {
        #   'anyOf' => [
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'anyOf'}[0]
        #   ]
        # }
        # Value "foo" did not pass type constraint "AnyOf[None,None]"
        # "AnyOf[None,None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # {
        #   'additionalProperties' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #   'patternProperties' => {
        #     '^v' => {}
        #   },
        #   'properties' => {
        #     'bar' => {},
        #     'foo' => {}
        #   }
        # }
        # "AdditionalProperties[ARRAY(0x7fb2a7ec4050),0]&PatternProperties["^v",Any]&Properties[foo,Any,bar,Any]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a7ec4050),0]", "PatternProperties["^v",Any]", and "Properties[foo,Any,bar,Any]"
        # Reference {"bar" => 2,"foo" => 1,"quux" => "boom"} did not pass type constraint "AdditionalProperties[ARRAY(0x7fb2a7ec4050),0]"
        # "AdditionalProperties[ARRAY(0x7fb2a7ec4050),0]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my(@add_keys) = grep({my $key = $_; none sub { ref $_ ? $key =~ /$_/ : $key eq $_; } , @$known_properties;} keys %$_); if (eval { do { $type_or_boolean->can('check') } }) { my $obj = $_; return all(sub { $type_or_boolean->check($$obj{$_}); } , @add_keys); } else { return !(@add_keys && !$type_or_boolean); } }
        # {
        #   'additionalProperties' => {
        #     'type' => 'boolean'
        #   },
        #   'patternProperties' => {},
        #   'properties' => {
        #     'bar' => {},
        #     'foo' => {}
        #   }
        # }
        # "AdditionalProperties[ARRAY(0x7fb2a800ade0),Boolean]&PatternProperties[]&Properties[bar,Any,foo,Any]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a800ade0),Boolean]", "PatternProperties[]", and "Properties[bar,Any,foo,Any]"
        # Reference {"bar" => 2,"foo" => 1,"quux" => 12} did not pass type constraint "AdditionalProperties[ARRAY(0x7fb2a800ade0),Boolean]"
        # "AdditionalProperties[ARRAY(0x7fb2a800ade0),Boolean]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my(@add_keys) = grep({my $key = $_; none sub { ref $_ ? $key =~ /$_/ : $key eq $_; } , @$known_properties;} keys %$_); if (eval { do { $type_or_boolean->can('check') } }) { my $obj = $_; return all(sub { $type_or_boolean->check($$obj{$_}); } , @add_keys); } else { return !(@add_keys && !$type_or_boolean); } }
        # {
        #   'additionalProperties' => {
        #     'type' => 'boolean'
        #   },
        #   'patternProperties' => {},
        #   'properties' => {}
        # }
        # "AdditionalProperties[ARRAY(0x7fb2a780b370),Boolean]&PatternProperties[]&Properties[]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a780b370),Boolean]", "PatternProperties[]", and "Properties[]"
        # Reference {"foo" => 1} did not pass type constraint "AdditionalProperties[ARRAY(0x7fb2a780b370),Boolean]"
        # "AdditionalProperties[ARRAY(0x7fb2a780b370),Boolean]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my(@add_keys) = grep({my $key = $_; none sub { ref $_ ? $key =~ /$_/ : $key eq $_; } , @$known_properties;} keys %$_); if (eval { do { $type_or_boolean->can('check') } }) { my $obj = $_; return all(sub { $type_or_boolean->check($$obj{$_}); } , @add_keys); } else { return !(@add_keys && !$type_or_boolean); } }
        # {
        #   'properties' => {
        #     'bar' => {},
        #     'foo' => {}
        #   }
        # }
        # {
        #   'maxLength' => 2
        # }
        # Value "foo" did not pass type constraint "MaxLength[2]"
        # "MaxLength[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $length >= length $_ unless not String->check($_); }
        # {
        #   'not' => {
        #     'type' => 'integer'
        #   }
        # }
        # Value "1" did not pass type constraint "Not[__ANON__]"
        # "Not[__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not $type->check($_); }
        # {
        #   'not' => {
        #     'type' => [
        #       'integer',
        #       'boolean'
        #     ]
        #   }
        # }
        # Value "1" did not pass type constraint "Not[__ANON__]"
        # "Not[__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not $type->check($_); }
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "Not[__ANON__]"
        # "Not[__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not $type->check($_); }
        # {
        #   'not' => {
        #     'properties' => {
        #       'foo' => {
        #         'type' => 'string'
        #       }
        #     },
        #     'type' => 'object'
        #   }
        # }
        # Reference {"foo" => "bar"} did not pass type constraint "Not[__ANON__]"
        # "Not[__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not $type->check($_); }
        # {
        #   'properties' => {
        #     'foo' => {
        #       'not' => {}
        #     }
        #   }
        # }
        # Reference {"bar" => 2,"foo" => 1} did not pass type constraint "Properties[foo,Not[__ANON__]]"
        # "Properties[foo,Not[__ANON__]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'not' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        # }
        # Value "foo" did not pass type constraint "Not[__ANON__]"
        # "Not[__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not $type->check($_); }
        # {
        #   'not' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        # }
        # {
        #   'exclusiveMinimum' => '1.1'
        # }
        # Value "1.1" did not pass type constraint "ExclusiveMinimum["1.1"]"
        # "ExclusiveMinimum["1.1"]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $_ > $minimum unless not StrictNum->check($_); }
        # Value "0.6" did not pass type constraint "ExclusiveMinimum["1.1"]"
        # "ExclusiveMinimum["1.1"]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $_ > $minimum unless not StrictNum->check($_); }
        # {
        #   'dependencies' => {
        #     'bar' => [
        #       'foo'
        #     ]
        #   }
        # }
        # Reference {"bar" => 2} did not pass type constraint "Dependency[bar,ARRAY(0x7fb2a7852cf8)]"
        # "Dependency[bar,ARRAY(0x7fb2a7852cf8)]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # {
        #   'dependencies' => {
        #     'bar' => []
        #   }
        # }
        # {
        #   'dependencies' => {
        #     'quux' => [
        #       'foo',
        #       'bar'
        #     ]
        #   }
        # }
        # Reference {"foo" => 1,"quux" => 2} did not pass type constraint "Dependency[quux,ARRAY(0x7fb2a77ad320)]"
        # "Dependency[quux,ARRAY(0x7fb2a77ad320)]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # Reference {"bar" => 1,"quux" => 2} did not pass type constraint "Dependency[quux,ARRAY(0x7fb2a77ad320)]"
        # "Dependency[quux,ARRAY(0x7fb2a77ad320)]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # Reference {"quux" => 1} did not pass type constraint "Dependency[quux,ARRAY(0x7fb2a77ad320)]"
        # "Dependency[quux,ARRAY(0x7fb2a77ad320)]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # {
        #   'dependencies' => {
        #     'bar' => {
        #       'properties' => {
        #         'bar' => {
        #           'type' => 'integer'
        #         },
        #         'foo' => {
        #           'type' => 'integer'
        #         }
        #       }
        #     }
        #   }
        # }
        # Reference {"bar" => 2,"foo" => "quux"} did not pass type constraint "Dependency[bar,__ANON__]"
        # "Dependency[bar,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # Reference {"bar" => "quux","foo" => 2} did not pass type constraint "Dependency[bar,__ANON__]"
        # "Dependency[bar,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # Reference {"bar" => "quux","foo" => "quux"} did not pass type constraint "Dependency[bar,__ANON__]"
        # "Dependency[bar,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # {
        #   'dependencies' => {
        #     'bar' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     'foo' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        #   }
        # }
        # "Dependency[bar,__ANON__]&Dependency[foo,__ANON__]" requires that the value pass "Dependency[bar,__ANON__]" and "Dependency[foo,__ANON__]"
        # Reference {"bar" => 2} did not pass type constraint "Dependency[bar,__ANON__]"
        # "Dependency[bar,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # "Dependency[bar,__ANON__]&Dependency[foo,__ANON__]" requires that the value pass "Dependency[bar,__ANON__]" and "Dependency[foo,__ANON__]"
        # Reference {"bar" => 2,"foo" => 1} did not pass type constraint "Dependency[bar,__ANON__]"
        # "Dependency[bar,__ANON__]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 unless exists $$_{$property}; my $obj = $_; return all(sub { exists $$obj{$_}; } , @$dep) if ref $dep eq 'ARRAY'; return exists $$obj{$dep} unless ref $dep; return $dep->check($_); }
        # {
        #   '$ref' => 'http://json-schema.org/draft-04/schema#'
        # }
        # {
        #   '$ref' => 'http://json-schema.org/draft-04/schema#'
        # }
        # ref schema is {"id":"http://json-schema.org/draft-04/schema#","description":"Core schema meta-schema","definitions":{"positiveInteger":{"minimum":0,"type":"integer"},"schemaArray":{"items":{"$ref":"#"},"minItems":1,"type":"array"},"positiveIntegerDefault0":{"allOf":[{"$ref":"#/definitions/positiveInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"items":{"type":"string"},"type":"array","uniqueItems":true,"minItems":1}},"properties":{"minimum":{"type":"number"},"maximum":{"type":"number"},"$schema":{"type":"string","format":"uri"},"allOf":{"$ref":"#/definitions/schemaArray"},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"items":{"$ref":"#/definitions/simpleTypes"},"type":"array","uniqueItems":true,"minItems":1}]},"minProperties":{"$ref":"#/definitions/positiveIntegerDefault0"},"items":{"default":{},"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}]},"minItems":{"$ref":"#/definitions/positiveIntegerDefault0"},"not":{"$ref":"#"},"anyOf":{"$ref":"#/definitions/schemaArray"},"properties":{"type":"object","default":{},"patternProperties":{},"additionalProperties":{"$ref":"#"},"properties":{}},"required":{"$ref":"#/definitions/stringArray"},"title":{"type":"string"},"id":{"type":"string","format":"uri"},"additionalProperties":{"default":{},"anyOf":[{"type":"boolean"},{"$ref":"#"}]},"enum":{"minItems":1,"uniqueItems":true,"type":"array"},"exclusiveMaximum":{"default":false,"type":"boolean"},"maxProperties":{"$ref":"#/definitions/positiveInteger"},"multipleOf":{"minimum":0,"type":"number","exclusiveMinimum":true},"maxLength":{"$ref":"#/definitions/positiveInteger"},"uniqueItems":{"default":false,"type":"boolean"},"additionalItems":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]},"patternProperties":{},"properties":{}},"patternProperties":{"type":"object","patternProperties":{},"additionalProperties":{"$ref":"#"},"default":{},"properties":{}},"pattern":{"type":"string","format":"regex"},"minLength":{"$ref":"#/definitions/positiveIntegerDefault0"},"maxItems":{"$ref":"#/definitions/positiveInteger"},"exclusiveMinimum":{"default":false,"type":"boolean"},"definitions":{"properties":{},"default":{},"patternProperties":{},"additionalProperties":{"$ref":"#"},"type":"object"},"oneOf":{"$ref":"#/definitions/schemaArray"},"description":{"type":"string"},"default":{}},"dependencies":{"exclusiveMaximum":["maximum"],"exclusiveMinimum":["minimum"]},"default":{},"$schema":"http://json-schema.org/draft-04/schema#","type":"object"}
        # "Dependency[exclusiveMinimum,ARRAY(0x7fb2aa486d98)]&Dependency[exclusiveMaximum,ARRAY(0x7fb2a826ecf8)]&Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]&Object" requires that the value pass "Dependency[exclusiveMaximum,ARRAY(0x7fb2a826ecf8)]", "Dependency[exclusiveMinimum,ARRAY(0x7fb2aa486d98)]", "Object", and "Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]"
        # Reference {"definitions" => {"foo" => 'HASH(0x7fb2a7ffd8a0)'}} did not pass type constraint "Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]"
        # "Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # "Ref(http://json-schema.org/draft-04/schema#)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   'patternProperties' => {
        #     'f.*o' => {
        #       'type' => 'integer'
        #     }
        #   }
        # }
        # Reference {"foo" => "bar","fooooo" => 2} did not pass type constraint "PatternProperties["f.*o",Integer]"
        # "PatternProperties["f.*o",Integer]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # Reference {"foo" => "bar","foooooo" => "baz"} did not pass type constraint "PatternProperties["f.*o",Integer]"
        # "PatternProperties["f.*o",Integer]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # {
        #   'patternProperties' => {
        #     'a*' => {
        #       'type' => 'integer'
        #     },
        #     'aaa*' => {
        #       'maximum' => 20
        #     }
        #   }
        # }
        # Reference {"a" => "bar"} did not pass type constraint "PatternProperties["a*",Integer,"aaa*",Maximum[20]]"
        # "PatternProperties["a*",Integer,"aaa*",Maximum[20]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # Reference {"aaaa" => 31} did not pass type constraint "PatternProperties["a*",Integer,"aaa*",Maximum[20]]"
        # "PatternProperties["a*",Integer,"aaa*",Maximum[20]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # Reference {"aaa" => "foo","aaaa" => 31} did not pass type constraint "PatternProperties["a*",Integer,"aaa*",Maximum[20]]"
        # "PatternProperties["a*",Integer,"aaa*",Maximum[20]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # {
        #   'patternProperties' => {
        #     'X_' => {
        #       'type' => 'string'
        #     },
        #     '[0-9]{2,}' => {
        #       'type' => 'boolean'
        #     }
        #   }
        # }
        # Reference {"a31b" => undef} did not pass type constraint "PatternProperties["[0-9]{2,}",Boolean,X_,String]"
        # "PatternProperties["[0-9]{2,}",Boolean,X_,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # Reference {"a_X_3" => 3} did not pass type constraint "PatternProperties["[0-9]{2,}",Boolean,X_,String]"
        # "PatternProperties["[0-9]{2,}",Boolean,X_,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # {
        #   'patternProperties' => {
        #     'b.*' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     'f.*' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        #   }
        # }
        # Reference {"bar" => 2} did not pass type constraint "PatternProperties["f.*",Any,"b.*",None]"
        # "PatternProperties["f.*",Any,"b.*",None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # Reference {"bar" => 2,"foo" => 1} did not pass type constraint "PatternProperties["f.*",Any,"b.*",None]"
        # "PatternProperties["f.*",Any,"b.*",None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # {
        #   'multipleOf' => 2
        # }
        # Value "7" did not pass type constraint "MultipleOf[2]"
        # "MultipleOf[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not Number->check($_) && ($_ / $num) =~ /\./; }
        # {
        #   'multipleOf' => '1.5'
        # }
        # Value "35" did not pass type constraint "MultipleOf["1.5"]"
        # "MultipleOf["1.5"]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not Number->check($_) && ($_ / $num) =~ /\./; }
        # {
        #   'multipleOf' => '0.0001'
        # }
        # Value "0.00751" did not pass type constraint "MultipleOf["0.0001"]"
        # "MultipleOf["0.0001"]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not Number->check($_) && ($_ / $num) =~ /\./; }
        # {
        #   'properties' => {
        #     'foo' => {
        #       'default' => [],
        #       'type' => 'integer'
        #     }
        #   }
        # }
        # {
        #   'properties' => {
        #     'bar' => {
        #       'default' => 'bad',
        #       'minLength' => 4,
        #       'type' => 'string'
        #     }
        #   }
        # }
        # {
        #   'propertyNames' => {
        #     'maxLength' => 3
        #   }
        # }
        # Reference {"foo" => {},"foobar" => {}} did not pass type constraint "PropertyNames[MaxLength[3]]"
        # "PropertyNames[MaxLength[3]]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 if $type eq Any; return !keys(%$_) if $type eq ~Any; return all(sub { $type->check($_); } , keys %$_); }
        # {
        #   'propertyNames' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        # }
        # {
        #   'propertyNames' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        # }
        # Reference {"foo" => 1} did not pass type constraint "PropertyNames[None]"
        # "PropertyNames[None]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Object->check($_); return 1 if $type eq Any; return !keys(%$_) if $type eq ~Any; return all(sub { $type->check($_); } , keys %$_); }
        # {
        #   'maxProperties' => 2
        # }
        # Reference {"bar" => 2,"baz" => 3,"foo" => 1} did not pass type constraint "MaxProperties[2]"
        # "MaxProperties[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $nbr >= keys %$_ unless not Object->check($_); }
        # {
        #   'properties' => {
        #     'bar' => {},
        #     'foo' => {}
        #   },
        #   'required' => [
        #     'foo'
        #   ]
        # }
        # "Properties[foo,Any,bar,Any]&Required[foo]" requires that the value pass "Properties[foo,Any,bar,Any]" and "Required[foo]"
        # Reference {"bar" => 1} did not pass type constraint "Required[foo]"
        # "Required[foo]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; all sub { exists $$obj{$_}; } , @keys; }
        # {
        #   'properties' => {
        #     'foo' => {}
        #   }
        # }
        # {
        #   'properties' => {
        #     'foo' => {}
        #   },
        #   'required' => []
        # }
        # {
        #   'allOf' => [
        #     {
        #       'properties' => {
        #         'bar' => {
        #           'type' => 'integer'
        #         }
        #       },
        #       'required' => [
        #         'bar'
        #       ]
        #     },
        #     {
        #       'properties' => {
        #         'foo' => {
        #           'type' => 'string'
        #         }
        #       },
        #       'required' => [
        #         'foo'
        #       ]
        #     }
        #   ]
        # }
        # Reference {"foo" => "baz"} did not pass type constraint "AllOf[Properties[bar,Integer]&Required[bar],Properties[foo,String]&Required[foo]]"
        # "AllOf[Properties[bar,Integer]&Required[bar],Properties[foo,String]&Required[foo]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # Reference {"bar" => 2} did not pass type constraint "AllOf[Properties[bar,Integer]&Required[bar],Properties[foo,String]&Required[foo]]"
        # "AllOf[Properties[bar,Integer]&Required[bar],Properties[foo,String]&Required[foo]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # Reference {"bar" => "quux","foo" => "baz"} did not pass type constraint "AllOf[Properties[bar,Integer]&Required[bar],Properties[foo,String]&Required[foo]]"
        # "AllOf[Properties[bar,Integer]&Required[bar],Properties[foo,String]&Required[foo]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # {
        #   'allOf' => [
        #     {
        #       'properties' => {
        #         'foo' => {
        #           'type' => 'string'
        #         }
        #       },
        #       'required' => [
        #         'foo'
        #       ]
        #     },
        #     {
        #       'properties' => {
        #         'baz' => {
        #           'type' => 'null'
        #         }
        #       },
        #       'required' => [
        #         'baz'
        #       ]
        #     }
        #   ],
        #   'properties' => {
        #     'bar' => {
        #       'type' => 'integer'
        #     }
        #   },
        #   'required' => [
        #     'bar'
        #   ]
        # }
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]&Properties[bar,Integer]&Required[bar]" requires that the value pass "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]", "Properties[bar,Integer]", and "Required[bar]"
        # Reference {"baz" => undef,"foo" => "quux"} did not pass type constraint "Required[bar]"
        # "Required[bar]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; all sub { exists $$obj{$_}; } , @keys; }
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]&Properties[bar,Integer]&Required[bar]" requires that the value pass "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]", "Properties[bar,Integer]", and "Required[bar]"
        # Reference {"bar" => 2,"baz" => undef} did not pass type constraint "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]"
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]&Properties[bar,Integer]&Required[bar]" requires that the value pass "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]", "Properties[bar,Integer]", and "Required[bar]"
        # Reference {"bar" => 2,"foo" => "quux"} did not pass type constraint "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]"
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]&Properties[bar,Integer]&Required[bar]" requires that the value pass "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]", "Properties[bar,Integer]", and "Required[bar]"
        # Reference {"bar" => 2} did not pass type constraint "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]"
        # "AllOf[Properties[foo,String]&Required[foo],Properties[baz,Null]&Required[baz]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # {
        #   'allOf' => [
        #     {
        #       'maximum' => 30
        #     },
        #     {
        #       'minimum' => 20
        #     }
        #   ]
        # }
        # Value "35" did not pass type constraint "AllOf[Maximum[30],Minimum[20]]"
        # "AllOf[Maximum[30],Minimum[20]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # {
        #   'allOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'allOf'}[0]
        #   ]
        # }
        # {
        #   'allOf' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        #   ]
        # }
        # Value "foo" did not pass type constraint "AllOf[Any,None]"
        # "AllOf[Any,None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # {
        #   'allOf' => [
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     $VAR1->{'allOf'}[0]
        #   ]
        # }
        # Value "foo" did not pass type constraint "AllOf[None,None]"
        # "AllOf[None,None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; all sub { $_->check($v); } , @types; }
        # bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        # bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        # Value "1" did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Value "foo" did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Reference bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Undef did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Reference {"foo" => "bar"} did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Reference {} did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Reference ["foo"] did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # Reference [] did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # {
        #   'properties' => {
        #     'bar' => {
        #       'type' => 'string'
        #     },
        #     'foo' => {
        #       'type' => 'integer'
        #     }
        #   }
        # }
        # Reference {"bar" => {},"foo" => 1} did not pass type constraint "Properties[foo,Integer,bar,String]"
        # "Properties[foo,Integer,bar,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # Reference {"bar" => {},"foo" => []} did not pass type constraint "Properties[foo,Integer,bar,String]"
        # "Properties[foo,Integer,bar,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'additionalProperties' => {
        #     'type' => 'integer'
        #   },
        #   'patternProperties' => {
        #     'f.o' => {
        #       'minItems' => 2
        #     }
        #   },
        #   'properties' => {
        #     'bar' => {
        #       'type' => 'array'
        #     },
        #     'foo' => {
        #       'maxItems' => 3,
        #       'type' => 'array'
        #     }
        #   }
        # }
        # "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]&PatternProperties["f.o",MinItems[2]]&Properties[bar,Array,foo,MaxItems[3]&Array]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]", "PatternProperties["f.o",MinItems[2]]", and "Properties[bar,Array,foo,MaxItems[3]&Array]"
        # Reference {"foo" => [1,2,3,4]} did not pass type constraint "Properties[bar,Array,foo,MaxItems[3]&Array]"
        # "Properties[bar,Array,foo,MaxItems[3]&Array]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]&PatternProperties["f.o",MinItems[2]]&Properties[bar,Array,foo,MaxItems[3]&Array]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]", "PatternProperties["f.o",MinItems[2]]", and "Properties[bar,Array,foo,MaxItems[3]&Array]"
        # Reference {"foo" => []} did not pass type constraint "PatternProperties["f.o",MinItems[2]]"
        # "PatternProperties["f.o",MinItems[2]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]&PatternProperties["f.o",MinItems[2]]&Properties[bar,Array,foo,MaxItems[3]&Array]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]", "PatternProperties["f.o",MinItems[2]]", and "Properties[bar,Array,foo,MaxItems[3]&Array]"
        # Reference {"fxo" => []} did not pass type constraint "PatternProperties["f.o",MinItems[2]]"
        # "PatternProperties["f.o",MinItems[2]]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my $obj = $_; foreach my $key (keys %props) { return unless all sub { $props{$key}->check($$obj{$_}); } , grep({/$key/;} keys %$_); } return 1; }
        # "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]&PatternProperties["f.o",MinItems[2]]&Properties[bar,Array,foo,MaxItems[3]&Array]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]", "PatternProperties["f.o",MinItems[2]]", and "Properties[bar,Array,foo,MaxItems[3]&Array]"
        # Reference {"quux" => "foo"} did not pass type constraint "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]"
        # "AdditionalProperties[ARRAY(0x7fb2a77ad7e8),Integer]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my(@add_keys) = grep({my $key = $_; none sub { ref $_ ? $key =~ /$_/ : $key eq $_; } , @$known_properties;} keys %$_); if (eval { do { $type_or_boolean->can('check') } }) { my $obj = $_; return all(sub { $type_or_boolean->check($$obj{$_}); } , @add_keys); } else { return !(@add_keys && !$type_or_boolean); } }
        # {
        #   'properties' => {
        #     'bar' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #     'foo' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        #   }
        # }
        # Reference {"bar" => 2} did not pass type constraint "Properties[foo,Any,bar,None]"
        # "Properties[foo,Any,bar,None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # Reference {"bar" => 2,"foo" => 1} did not pass type constraint "Properties[foo,Any,bar,None]"
        # "Properties[foo,Any,bar,None]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'contains' => {
        #     'minimum' => 5
        #   }
        # }
        # Reference [2,3,4] did not pass type constraint "Contains[Minimum[5]]"
        # "Contains[Minimum[5]]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Array->check($_); if (Boolean->check($type)) { (); } return any(sub { $type->check($_); } , @$_); }
        # Reference [] did not pass type constraint "Contains[Minimum[5]]"
        # "Contains[Minimum[5]]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Array->check($_); if (Boolean->check($type)) { (); } return any(sub { $type->check($_); } , @$_); }
        # {
        #   'contains' => {
        #     'const' => 5
        #   }
        # }
        # Reference [1,2,3,4] did not pass type constraint "Contains[Enum[5]]"
        # "Contains[Enum[5]]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Array->check($_); if (Boolean->check($type)) { (); } return any(sub { $type->check($_); } , @$_); }
        # {
        #   'contains' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        # }
        # Reference [] did not pass type constraint "Contains[Any]"
        # "Contains[Any]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Array->check($_); if (Boolean->check($type)) { (); } return any(sub { $type->check($_); } , @$_); }
        # {
        #   'contains' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        # }
        # Reference ["foo"] did not pass type constraint "Contains[None]"
        # "Contains[None]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Array->check($_); if (Boolean->check($type)) { (); } return any(sub { $type->check($_); } , @$_); }
        # Reference [] did not pass type constraint "Contains[None]"
        # "Contains[None]" is defined as: sub { package JSON::Schema::AsType::Draft6::Types; return 1 unless Array->check($_); if (Boolean->check($type)) { (); } return any(sub { $type->check($_); } , @$_); }
        # {
        #   'uniqueItems' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        # }
        # Reference [1,1] did not pass type constraint "UniqueItems"
        # "UniqueItems" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Array->check($_); @$_ == uniq(map({to_json $_, {'allow_nonref', 1};} @$_)); }
        # Reference [1,1,1] did not pass type constraint "UniqueItems"
        # "UniqueItems" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Array->check($_); @$_ == uniq(map({to_json $_, {'allow_nonref', 1};} @$_)); }
        # Reference [{"foo" => "bar"},{"foo" => "bar"}] did not pass type constraint "UniqueItems"
        # "UniqueItems" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Array->check($_); @$_ == uniq(map({to_json $_, {'allow_nonref', 1};} @$_)); }
        # Reference [{"foo" => 'HASH(0x7fb2a77834c8)'},{"foo" => 'HASH(0x7fb2a777cfa8)'}] did not pass type constraint "UniqueItems"
        # "UniqueItems" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Array->check($_); @$_ == uniq(map({to_json $_, {'allow_nonref', 1};} @$_)); }
        # Reference [["foo"],["foo"]] did not pass type constraint "UniqueItems"
        # "UniqueItems" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Array->check($_); @$_ == uniq(map({to_json $_, {'allow_nonref', 1};} @$_)); }
        # Reference [{},[1],bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),undef,{},1] did not pass type constraint "UniqueItems"
        # "UniqueItems" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Array->check($_); @$_ == uniq(map({to_json $_, {'allow_nonref', 1};} @$_)); }
        # {
        #   'type' => 'integer'
        # }
        # Value "1.1" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # Value "foo" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # Reference {} did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # Reference [] did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # Undef did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # {
        #   'type' => 'number'
        # }
        # Value "foo" did not pass type constraint "Number"
        # "Number" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 12288 && !($flags & 16384); }
        # Reference {} did not pass type constraint "Number"
        # "Number" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 12288 && !($flags & 16384); }
        # Reference [] did not pass type constraint "Number"
        # "Number" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 12288 && !($flags & 16384); }
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "Number"
        # "Number" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 12288 && !($flags & 16384); }
        # Undef did not pass type constraint "Number"
        # "Number" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 12288 && !($flags & 16384); }
        # {
        #   'type' => 'string'
        # }
        # Value "1" did not pass type constraint "String"
        # "String" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 16384; }
        # Value "1.1" did not pass type constraint "String"
        # "String" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 16384; }
        # "String" is a subtype of "Str"
        # "Str" is a subtype of "Value"
        # Reference {} did not pass type constraint "Value"
        # "Value" is defined as: (defined($_) and not ref($_))
        # "String" is a subtype of "Str"
        # "Str" is a subtype of "Value"
        # Reference [] did not pass type constraint "Value"
        # "Value" is defined as: (defined($_) and not ref($_))
        # "String" is a subtype of "Str"
        # "Str" is a subtype of "Value"
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "Value"
        # "Value" is defined as: (defined($_) and not ref($_))
        # "String" is a subtype of "Str"
        # "Str" is a subtype of "Value"
        # "Value" is a subtype of "Defined"
        # Undef did not pass type constraint "Defined"
        # "Defined" is defined as: (defined($_))
        # {
        #   'type' => 'object'
        # }
        # "Object" is a subtype of "HashRef"
        # "HashRef" is a subtype of "Ref"
        # Value "1" did not pass type constraint "Ref"
        # "Ref" is defined as: (!!ref($_))
        # "Object" is a subtype of "HashRef"
        # "HashRef" is a subtype of "Ref"
        # Value "1.1" did not pass type constraint "Ref"
        # "Ref" is defined as: (!!ref($_))
        # "Object" is a subtype of "HashRef"
        # "HashRef" is a subtype of "Ref"
        # Value "foo" did not pass type constraint "Ref"
        # "Ref" is defined as: (!!ref($_))
        # "Object" is a subtype of "HashRef"
        # Reference [] did not pass type constraint "HashRef"
        # "HashRef" is defined as: (ref($_) eq 'HASH')
        # "Object" is a subtype of "HashRef"
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "HashRef"
        # "HashRef" is defined as: (ref($_) eq 'HASH')
        # "Object" is a subtype of "HashRef"
        # "HashRef" is a subtype of "Ref"
        # "Ref" is a subtype of "Defined"
        # Undef did not pass type constraint "Defined"
        # "Defined" is defined as: (defined($_))
        # {
        #   'type' => 'array'
        # }
        # "Array" is a subtype of "ArrayRef"
        # "ArrayRef" is a subtype of "Ref"
        # Value "1" did not pass type constraint "Ref"
        # "Ref" is defined as: (!!ref($_))
        # "Array" is a subtype of "ArrayRef"
        # "ArrayRef" is a subtype of "Ref"
        # Value "1.1" did not pass type constraint "Ref"
        # "Ref" is defined as: (!!ref($_))
        # "Array" is a subtype of "ArrayRef"
        # "ArrayRef" is a subtype of "Ref"
        # Value "foo" did not pass type constraint "Ref"
        # "Ref" is defined as: (!!ref($_))
        # "Array" is a subtype of "ArrayRef"
        # Reference {} did not pass type constraint "ArrayRef"
        # "ArrayRef" is defined as: (ref($_) eq 'ARRAY')
        # "Array" is a subtype of "ArrayRef"
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "ArrayRef"
        # "ArrayRef" is defined as: (ref($_) eq 'ARRAY')
        # "Array" is a subtype of "ArrayRef"
        # "ArrayRef" is a subtype of "Ref"
        # "Ref" is a subtype of "Defined"
        # Undef did not pass type constraint "Defined"
        # "Defined" is defined as: (defined($_))
        # {
        #   'type' => 'boolean'
        # }
        # Value "1" did not pass type constraint "Boolean"
        # "Boolean" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; ref($_) =~ /JSON/; }
        # Value "1.1" did not pass type constraint "Boolean"
        # "Boolean" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; ref($_) =~ /JSON/; }
        # Value "foo" did not pass type constraint "Boolean"
        # "Boolean" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; ref($_) =~ /JSON/; }
        # Reference {} did not pass type constraint "Boolean"
        # "Boolean" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; ref($_) =~ /JSON/; }
        # Reference [] did not pass type constraint "Boolean"
        # "Boolean" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; ref($_) =~ /JSON/; }
        # Undef did not pass type constraint "Boolean"
        # "Boolean" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; ref($_) =~ /JSON/; }
        # {
        #   'type' => 'null'
        # }
        # Value "1" did not pass type constraint "Null"
        # "Null" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not defined $_; }
        # Value "1.1" did not pass type constraint "Null"
        # "Null" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not defined $_; }
        # Value "foo" did not pass type constraint "Null"
        # "Null" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not defined $_; }
        # Reference {} did not pass type constraint "Null"
        # "Null" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not defined $_; }
        # Reference [] did not pass type constraint "Null"
        # "Null" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not defined $_; }
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "Null"
        # "Null" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not defined $_; }
        # {
        #   'type' => [
        #     'integer',
        #     'string'
        #   ]
        # }
        # Value "1.1" did not pass type constraint "AnyOf[Integer,String]"
        # "AnyOf[Integer,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # Reference {} did not pass type constraint "AnyOf[Integer,String]"
        # "AnyOf[Integer,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # Reference [] did not pass type constraint "AnyOf[Integer,String]"
        # "AnyOf[Integer,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # Reference bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) did not pass type constraint "AnyOf[Integer,String]"
        # "AnyOf[Integer,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # Undef did not pass type constraint "AnyOf[Integer,String]"
        # "AnyOf[Integer,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; my $v = $_; any sub { $_->check($v); } , @types; }
        # {
        #   'minProperties' => 1
        # }
        # Reference {} did not pass type constraint "MinProperties[1]"
        # "MinProperties[1]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $nbr <= scalar keys %$_ unless not Object->check($_); }
        # {
        #   'minItems' => 1
        # }
        # Reference [] did not pass type constraint "MinItems[1]"
        # "MinItems[1]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; @$_ >= $min unless ref $_ ne 'ARRAY'; }
        # {
        #   'maxItems' => 2
        # }
        # Reference [1,2,3] did not pass type constraint "MaxItems[2]"
        # "MaxItems[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; @$_ <= $max unless ref $_ ne 'ARRAY'; }
        # {
        #   'maximum' => '3'
        # }
        # Value "3.5" did not pass type constraint "Maximum[3]"
        # "Maximum[3]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $_ <= $max unless not StrictNum->check($_); }
        # {
        #   'minLength' => 2
        # }
        # Value "f" did not pass type constraint "MinLength[2]"
        # "MinLength[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $length <= length $_ unless not String->check($_); }
        # Value "\x{1f4a9}" did not pass type constraint "MinLength[2]"
        # "MinLength[2]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $length <= length $_ unless not String->check($_); }
        # {
        #   'additionalProperties' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
        #   'patternProperties' => {},
        #   'properties' => {
        #     'foo' => {
        #       '$ref' => '#'
        #     }
        #   }
        # }
        # "AdditionalProperties[ARRAY(0x7fb2a77995c0),0]&PatternProperties[]&Properties[foo,Ref(#)]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a77995c0),0]", "PatternProperties[]", and "Properties[foo,Ref(#)]"
        # Reference {"bar" => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )} did not pass type constraint "AdditionalProperties[ARRAY(0x7fb2a77995c0),0]"
        # "AdditionalProperties[ARRAY(0x7fb2a77995c0),0]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); my(@add_keys) = grep({my $key = $_; none sub { ref $_ ? $key =~ /$_/ : $key eq $_; } , @$known_properties;} keys %$_); if (eval { do { $type_or_boolean->can('check') } }) { my $obj = $_; return all(sub { $type_or_boolean->check($$obj{$_}); } , @add_keys); } else { return !(@add_keys && !$type_or_boolean); } }
        # "AdditionalProperties[ARRAY(0x7fb2a77995c0),0]&PatternProperties[]&Properties[foo,Ref(#)]" requires that the value pass "AdditionalProperties[ARRAY(0x7fb2a77995c0),0]", "PatternProperties[]", and "Properties[foo,Ref(#)]"
        # Reference {"foo" => {"bar" => '0'}} did not pass type constraint "Properties[foo,Ref(#)]"
        # "Properties[foo,Ref(#)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'properties' => {
        #     'bar' => {
        #       '$ref' => '#/properties/foo'
        #     },
        #     'foo' => {
        #       'type' => 'integer'
        #     }
        #   }
        # }
        # Reference {"bar" => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )} did not pass type constraint "Properties[bar,Ref(#/properties/foo),foo,Integer]"
        # "Properties[bar,Ref(#/properties/foo),foo,Integer]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'items' => [
        #     {
        #       'type' => 'integer'
        #     },
        #     {
        #       '$ref' => '#/items/0'
        #     }
        #   ]
        # }
        # "~ArrayRef|Tuple[Optional[Integer],Optional[Ref(#/items/0)],Slurpy[Any]]" requires that the value pass "Tuple[Optional[Integer],Optional[Ref(#/items/0)],Slurpy[Any]]" or "~ArrayRef"
        # Reference [1,"foo"] did not pass type constraint "~ArrayRef"
        #     Reference [1,"foo"] did not pass type constraint "~ArrayRef"
        #     "~ArrayRef" is defined as: (not((ref($_) eq 'ARRAY')))
        # Reference [1,"foo"] did not pass type constraint "Tuple[Optional[Integer],Optional[Ref(#/items/0)],Slurpy[Any]]"
        #     Reference [1,"foo"] did not pass type constraint "Tuple[Optional[Integer],Optional[Ref(#/items/0)],Slurpy[Any]]"
        #     "Tuple[Optional[Integer],Optional[Ref(#/items/0)],Slurpy[Any]]" constrains value at index 1 of array with "Optional[Ref(#/items/0)]"
        #     Value "foo" did not pass type constraint "Optional[Ref(#/items/0)]" (in $_->[1])
        #     $_->[1] exists
        #     "Optional[Ref(#/items/0)]" constrains $_->[1] with "Ref(#/items/0)" if it exists
        #     ref schema is {"type":"integer"}
        # Value "foo" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); } (in $_->[1])
        #     "Ref(#/items/0)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   'percent%field' => {
        #     'type' => 'integer'
        #   },
        #   'properties' => {
        #     'percent' => {
        #       '$ref' => '#/percent%25field'
        #     },
        #     'slash' => {
        #       '$ref' => '#/slash~1field'
        #     },
        #     'tilda' => {
        #       '$ref' => '#/tilda~0field'
        #     }
        #   },
        #   'slash/field' => {
        #     'type' => 'integer'
        #   },
        #   'tilda~field' => {
        #     'type' => 'integer'
        #   }
        # }
        # Reference {"slash" => "aoeu"} did not pass type constraint "Properties[percent,Ref(#/percent%25field),slash,Ref(#/slash~1field),tilda,Ref(#/tilda~0field)]"
        # "Properties[percent,Ref(#/percent%25field),slash,Ref(#/slash~1field),tilda,Ref(#/tilda~0field)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # Reference {"tilda" => "aoeu"} did not pass type constraint "Properties[percent,Ref(#/percent%25field),slash,Ref(#/slash~1field),tilda,Ref(#/tilda~0field)]"
        # "Properties[percent,Ref(#/percent%25field),slash,Ref(#/slash~1field),tilda,Ref(#/tilda~0field)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # Reference {"percent" => "aoeu"} did not pass type constraint "Properties[percent,Ref(#/percent%25field),slash,Ref(#/slash~1field),tilda,Ref(#/tilda~0field)]"
        # "Properties[percent,Ref(#/percent%25field),slash,Ref(#/slash~1field),tilda,Ref(#/tilda~0field)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   '$ref' => '#/definitions/c',
        #   'definitions' => {
        #     'a' => {
        #       'type' => 'integer'
        #     },
        #     'b' => {
        #       '$ref' => '#/definitions/a'
        #     },
        #     'c' => {
        #       '$ref' => '#/definitions/b'
        #     }
        #   }
        # }
        # ref schema is {"$ref":"#/definitions/b"}
        # ref schema is {"$ref":"#/definitions/a"}
        # ref schema is {"type":"integer"}
        # Value "a" did not pass type constraint "Integer"
        # "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # "Ref(#/definitions/a)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # "Ref(#/definitions/b)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # "Ref(#/definitions/c)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   'definitions' => {
        #     'reffed' => {
        #       'type' => 'array'
        #     }
        #   },
        #   'properties' => {
        #     'foo' => {
        #       '$ref' => '#/definitions/reffed',
        #       'maxItems' => 2
        #     }
        #   }
        # }
        # Reference {"foo" => "string"} did not pass type constraint "Properties[foo,Ref(#/definitions/reffed)]"
        # "Properties[foo,Ref(#/definitions/reffed)]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   '$ref' => 'http://json-schema.org/draft-04/schema#'
        # }
        # ref schema is {"id":"http://json-schema.org/draft-04/schema#","description":"Core schema meta-schema","definitions":{"positiveInteger":{"minimum":0,"type":"integer"},"schemaArray":{"items":{"$ref":"#"},"minItems":1,"type":"array"},"positiveIntegerDefault0":{"allOf":[{"$ref":"#/definitions/positiveInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"items":{"type":"string"},"type":"array","uniqueItems":true,"minItems":1}},"properties":{"minimum":{"type":"number"},"maximum":{"type":"number"},"$schema":{"type":"string","format":"uri"},"allOf":{"$ref":"#/definitions/schemaArray"},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"items":{"$ref":"#/definitions/simpleTypes"},"type":"array","uniqueItems":true,"minItems":1}]},"minProperties":{"$ref":"#/definitions/positiveIntegerDefault0"},"items":{"default":{},"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}]},"minItems":{"$ref":"#/definitions/positiveIntegerDefault0"},"not":{"$ref":"#"},"anyOf":{"$ref":"#/definitions/schemaArray"},"properties":{"type":"object","default":{},"patternProperties":{},"additionalProperties":{"$ref":"#"},"properties":{}},"required":{"$ref":"#/definitions/stringArray"},"title":{"type":"string"},"id":{"type":"string","format":"uri"},"additionalProperties":{"default":{},"anyOf":[{"type":"boolean"},{"$ref":"#"}]},"enum":{"minItems":1,"uniqueItems":true,"type":"array"},"exclusiveMaximum":{"default":false,"type":"boolean"},"maxProperties":{"$ref":"#/definitions/positiveInteger"},"multipleOf":{"minimum":0,"type":"number","exclusiveMinimum":true},"maxLength":{"$ref":"#/definitions/positiveInteger"},"uniqueItems":{"default":false,"type":"boolean"},"additionalItems":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]},"patternProperties":{},"properties":{}},"patternProperties":{"type":"object","patternProperties":{},"additionalProperties":{"$ref":"#"},"default":{},"properties":{}},"pattern":{"type":"string","format":"regex"},"minLength":{"$ref":"#/definitions/positiveIntegerDefault0"},"maxItems":{"$ref":"#/definitions/positiveInteger"},"exclusiveMinimum":{"default":false,"type":"boolean"},"definitions":{"properties":{},"default":{},"patternProperties":{},"additionalProperties":{"$ref":"#"},"type":"object"},"oneOf":{"$ref":"#/definitions/schemaArray"},"description":{"type":"string"},"default":{}},"dependencies":{"exclusiveMaximum":["maximum"],"exclusiveMinimum":["minimum"]},"default":{},"$schema":"http://json-schema.org/draft-04/schema#","type":"object"}
        # "Dependency[exclusiveMinimum,ARRAY(0x7fb2aa486d98)]&Dependency[exclusiveMaximum,ARRAY(0x7fb2a826ecf8)]&Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]&Object" requires that the value pass "Dependency[exclusiveMaximum,ARRAY(0x7fb2a826ecf8)]", "Dependency[exclusiveMinimum,ARRAY(0x7fb2aa486d98)]", "Object", and "Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]"
        # Reference {"minLength" => -1} did not pass type constraint "Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]"
        # "Properties[minimum,Number,maximum,Number,"\$schema",String,allOf,Ref(#/definitions/schemaArray),type,AnyOf[Ref(#/definitions/simpleTypes),~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(#/definitions/simpleTypes)]]]&MinItems[1]&Array&UniqueItems],minProperties,Ref(#/definitions/positiveIntegerDefault0),items,AnyOf[Ref(#),Ref(#/definitions/schemaArray)],minItems,Ref(#/definitions/positiveIntegerDefault0),not,Ref(#),anyOf,Ref(#/definitions/schemaArray),properties,AdditionalProperties[ARRAY(0x7fb2a82729e0),Ref(#)]&PatternProperties[]&Properties[]&Object,required,Ref(#/definitions/stringArray),title,String,id,String,additionalProperties,AnyOf[Boolean,Ref(#)],enum,MinItems[1]&Array&UniqueItems,exclusiveMaximum,Boolean,maxProperties,Ref(#/definitions/positiveInteger),multipleOf,ExclusiveMinimum[0]&Number,maxLength,Ref(#/definitions/positiveInteger),uniqueItems,Boolean,additionalItems,AnyOf[Boolean,Ref(#)],dependencies,AdditionalProperties[ARRAY(0x7fb2a8117138),AnyOf[Ref(#),Ref(#/definitions/stringArray)]]&PatternProperties[]&Properties[]&Object,patternProperties,AdditionalProperties[ARRAY(0x7fb2a806f490),Ref(#)]&PatternProperties[]&Properties[]&Object,pattern,String,minLength,Ref(#/definitions/positiveIntegerDefault0),maxItems,Ref(#/definitions/positiveInteger),exclusiveMinimum,Boolean,definitions,AdditionalProperties[ARRAY(0x7fb2a8076940),Ref(#)]&PatternProperties[]&Properties[]&Object,oneOf,Ref(#/definitions/schemaArray),description,String,default,Any]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # "Ref(http://json-schema.org/draft-04/schema#)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   'properties' => {
        #     '$ref' => {
        #       'type' => 'string'
        #     }
        #   }
        # }
        # Reference {"\$ref" => 2} did not pass type constraint "Properties["\$ref",String]"
        # "Properties["\$ref",String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   '$ref' => '#/definitions/bool',
        #   'definitions' => {
        #     'bool' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        #   }
        # }
        # {
        #   '$ref' => '#/definitions/bool',
        #   'definitions' => {
        #     'bool' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        #   }
        # }
        # ref schema is false
        # Value "foo" did not pass type constraint "None"
        # "None" is defined as: (not((!!1)))
        # "Ref(#/definitions/bool)" is defined as: sub { package JSON::Schema::AsType::Draft4; my $r = $self->resolve_reference($ref); $r->check($_); }
        # {
        #   '$id' => 'http://localhost:1234/tree',
        #   'definitions' => {
        #     'node' => {
        #       '$id' => 'http://localhost:1234/node',
        #       'description' => 'node',
        #       'properties' => {
        #         'subtree' => {
        #           '$ref' => 'tree'
        #         },
        #         'value' => {
        #           'type' => 'number'
        #         }
        #       },
        #       'required' => [
        #         'value'
        #       ],
        #       'type' => 'object'
        #     }
        #   },
        #   'description' => 'tree of nodes',
        #   'properties' => {
        #     'meta' => {
        #       'type' => 'string'
        #     },
        #     'nodes' => {
        #       'items' => {
        #         '$ref' => 'node'
        #       },
        #       'type' => 'array'
        #     }
        #   },
        #   'required' => [
        #     'meta',
        #     'nodes'
        #   ],
        #   'type' => 'object'
        # }
        # "Properties[nodes,~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(node)]]]&Array,meta,String]&Required[meta,nodes]&Object" requires that the value pass "Object", "Properties[nodes,~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(node)]]]&Array,meta,String]", and "Required[meta,nodes]"
        # Reference {"meta" => "root","nodes" => ['HASH(0x7fb2a7739910)','HASH(0...} did not pass type constraint "Properties[nodes,~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(node)]]]&Array,meta,String]"
        # "Properties[nodes,~ArrayRef|Tuple[Slurpy[ArrayRef[Ref(node)]]]&Array,meta,String]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 1 unless Object->check($_); return $type->check($_); }
        # {
        #   'items' => {
        #     'type' => 'integer'
        #   }
        # }
        # "~ArrayRef|Tuple[Slurpy[ArrayRef[Integer]]]" requires that the value pass "Tuple[Slurpy[ArrayRef[Integer]]]" or "~ArrayRef"
        # Reference [1,"x"] did not pass type constraint "~ArrayRef"
        #     Reference [1,"x"] did not pass type constraint "~ArrayRef"
        #     "~ArrayRef" is defined as: (not((ref($_) eq 'ARRAY')))
        # Reference [1,"x"] did not pass type constraint "Tuple[Slurpy[ArrayRef[Integer]]]"
        #     Reference [1,"x"] did not pass type constraint "Tuple[Slurpy[ArrayRef[Integer]]]"
        #     Array elements from index 0 are slurped into a arrayref which is constrained with "ArrayRef[Integer]"
        #     Reference [1,"x"] did not pass type constraint "ArrayRef[Integer]" (in $SLURPY)
        #     "ArrayRef[Integer]" constrains each value in the array with "Integer"
        #     Value "x" did not pass type constraint "Integer" (in $SLURPY->[1])
        #     "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # {
        #   'items' => [
        #     {
        #       'type' => 'integer'
        #     },
        #     {
        #       'type' => 'string'
        #     }
        #   ]
        # }
        # "~ArrayRef|Tuple[Optional[Integer],Optional[String],Slurpy[Any]]" requires that the value pass "Tuple[Optional[Integer],Optional[String],Slurpy[Any]]" or "~ArrayRef"
        # Reference ["foo",1] did not pass type constraint "~ArrayRef"
        #     Reference ["foo",1] did not pass type constraint "~ArrayRef"
        #     "~ArrayRef" is defined as: (not((ref($_) eq 'ARRAY')))
        # Reference ["foo",1] did not pass type constraint "Tuple[Optional[Integer],Optional[String],Slurpy[Any]]"
        #     Reference ["foo",1] did not pass type constraint "Tuple[Optional[Integer],Optional[String],Slurpy[Any]]"
        #     "Tuple[Optional[Integer],Optional[String],Slurpy[Any]]" constrains value at index 0 of array with "Optional[Integer]"
        #     Value "foo" did not pass type constraint "Optional[Integer]" (in $_->[0])
        #     $_->[0] exists
        #     "Optional[Integer]" constrains $_->[0] with "Integer" if it exists
        #     Value "foo" did not pass type constraint "Integer" (in $_->[0])
        #     "Integer" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; return 0 if not defined $_ or ref $_; my $b_obj = B::svref_2object(\$_); my $flags = $b_obj->FLAGS; return $flags & 4096 && !($flags & 16384); }
        # {
        #   'items' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        # }
        # {
        #   'items' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        # }
        # Reference [1,"foo",bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )] did not pass type constraint "Items[0]"
        # "Items[0]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; not @$_; }
        # {
        #   'items' => [
        #     bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
        #     bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        #   ]
        # }
        # "~ArrayRef|Tuple[Optional[Any],Optional[None],Slurpy[Any]]" requires that the value pass "Tuple[Optional[Any],Optional[None],Slurpy[Any]]" or "~ArrayRef"
        # Reference [1,"foo"] did not pass type constraint "~ArrayRef"
        #     Reference [1,"foo"] did not pass type constraint "~ArrayRef"
        #     "~ArrayRef" is defined as: (not((ref($_) eq 'ARRAY')))
        # Reference [1,"foo"] did not pass type constraint "Tuple[Optional[Any],Optional[None],Slurpy[Any]]"
        #     Reference [1,"foo"] did not pass type constraint "Tuple[Optional[Any],Optional[None],Slurpy[Any]]"
        #     "Tuple[Optional[Any],Optional[None],Slurpy[Any]]" constrains value at index 1 of array with "Optional[None]"
        #     Value "foo" did not pass type constraint "Optional[None]" (in $_->[1])
        #     $_->[1] exists
        #     "Optional[None]" constrains $_->[1] with "None" if it exists
        #     Value "foo" did not pass type constraint "None" (in $_->[1])
        #     "None" is defined as: (not((!!1)))
        # {
        #   'exclusiveMaximum' => '3'
        # }
        # Value "3" did not pass type constraint "ExclusiveMaximum[3]"
        # "ExclusiveMaximum[3]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $_ < $max unless not StrictNum->check($_); }
        # Value "3.5" did not pass type constraint "ExclusiveMaximum[3]"
        # "ExclusiveMaximum[3]" is defined as: sub { package JSON::Schema::AsType::Draft4::Types; $_ < $max unless not StrictNum->check($_); }
t/draft6.t ............. ok
t/recurse.t ............ ok
t/register_uris.t ...... ok
t/schema-coerce.t ...... ok
t/spec-schema.t ........ ok
t/string_number.t ...... ok
        # Value "1" did not pass type constraint "Not[Integer]"
t/types_draft3.t ....... ok
        # Value "4" did not pass type constraint "Minimum[5]"
        # Value "5" did not pass type constraint "ExclusiveMinimum[5]"
        # Value "6" did not pass type constraint "Maximum[5]"
        # Value "5" did not pass type constraint "ExclusiveMaximum[5]"
        # Value "foo" did not pass type constraint "MinLength[5]"
        # Value "banana" did not pass type constraint "MaxLength[5]"
        # Value "3" did not pass type constraint "MultipleOf[5]"
        # Reference [1,2,3] did not pass type constraint "MaxItems[2]"
        # Reference [1] did not pass type constraint "MinItems[2]"
Use of uninitialized value in join or string at t/types_draft4.t line 144.
            # Value "banana" did not pass type constraint "Null"
            # Value "1" did not pass type constraint "Boolean"
            # Value "1" did not pass type constraint "Array"
            # Reference [] did not pass type constraint "Object"
            # Reference [] did not pass type constraint "String"
            # Value "1.3" did not pass type constraint "Integer"
            # Reference [] did not pass type constraint "Number"
            # Value "potato" did not pass type constraint "Pattern[(?^:foo)]"
        # Reference {"bar" => 1} did not pass type constraint "Required[foo]"
        # Reference {"bar" => 1} did not pass type constraint "Required[foo,bar]"
        # Value "1" did not pass type constraint "Not[Integer]"
        # Reference {1 => 2,3 => 4,5 => 6} did not pass type constraint "MaxProperties[2]"
        # Reference {1 => 2} did not pass type constraint "MinProperties[2]"
        # Value "banana" did not pass type constraint "OneOf[Integer,Boolean]"
        # Value "banana" did not pass type constraint "OneOf[MaxLength[7],MaxLength[6]]"
        # Value "banana" did not pass type constraint "AnyOf[Integer,Boolean]"
        # Value "banana" did not pass type constraint "AllOf[MaxLength[5],MinLength[2]]"
        # Reference ["banana"] did not pass type constraint "~ArrayRef|Tuple[Slurpy[ArrayRef[Number]]]"
        # Reference [1] did not pass type constraint "AdditionalItems[1,Number]"
        # Reference {"foo" => "x"} did not pass type constraint "PatternProperties[f,Number,b,Array]"
        # Reference {"foo" => "x"} did not pass type constraint "Dependency[baz,MaxProperties[2]]&Dependency[foo,ARRAY(0x7f0e24e5b388)]"
        # Reference {"foo" => "x"} did not pass type constraint "Enum[foo,HASH(0x7f0e24c9a0e0)]"
        # Reference [1,1,2,3] did not pass type constraint "UniqueItems"
        # Reference {"foo" => "x"} did not pass type constraint "Properties[foo,Number,bar,Array]"
        # Reference {"quux" => "x"} did not pass type constraint "AdditionalProperties[ARRAY(0x7f0e24d75958),0]"
t/types_draft4.t ....... ok
All tests successful.
Files=13, Tests=139, 15 wallclock secs ( 0.25 usr  0.03 sys + 13.02 cusr  1.00 csys = 14.30 CPU)
Result: PASS


PREREQUISITES:

Here is a list of prerequisites you specified and versions we
managed to load:

	  Module Name                        Have     Want
	  Clone                              0.46        0
	  Exporter                           5.68        0
	  ExtUtils::MakeMaker                7.70        0
	  File::Spec                         3.75        0
	  IO::Handle                         1.34        0
	  IPC::Open3                         1.13        0
	  JSON                               4.10        0
	  LWP::Simple                        6.77        0
	  List::AllUtils                     0.19        0
	  List::MoreUtils                   0.430        0
	  List::Util                         1.63        0
	  Moose                            2.2207        0
	  Moose::Role                      2.2207        0
	  Moose::Util                      2.2207        0
	  MooseX::ClassAttribute             0.29        0
	  MooseX::MungeHas                  0.011        0
	  Path::Tiny                        0.144    0.062
	  Scalar::Util                       1.63        0
	  Test::Deep                        1.204        0
	  Test::Exception                    0.43        0
	  Test::More                     1.302195        0
	  Type::Library                  2.004000        0
	  Type::Tiny                     2.004000        0
	  Type::Tiny::Class              2.004000        0
	  Type::Utils                    2.004000        0
	  Types::Standard                2.004000        0
	  URI                                5.28        0
	  lib                                0.63        0
	  parent                            0.225        0
	  strict                             1.07        0
	  warnings                           1.18        0

Perl module toolchain versions installed:
	Module Name                        Have
	CPANPLUS                         0.9914
	CPANPLUS::Dist::Build              0.90
	Cwd                                3.75
	ExtUtils::CBuilder             0.280236
	ExtUtils::Command                  7.70
	ExtUtils::Install                  2.22
	ExtUtils::MakeMaker                7.70
	ExtUtils::Manifest                 1.75
	ExtUtils::ParseXS                  3.44
	File::Spec                         3.75
	Module::Build                    0.4234
	Pod::Parser                        1.60
	Pod::Simple                        3.28
	Test2                          1.302195
	Test::Harness                      3.44
	Test::More                     1.302195
	version                          0.9929

******************************** NOTE ********************************
The comments above are created mechanically, possibly without manual
checking by the sender.  As there are many people performing automatic
tests on each upload to CPAN, it is likely that you will receive
identical messages about the same problem.

If you believe that the message is mistaken, please reply to the first
one with correction and/or additional informations, and do not take
it personally.  We appreciate your patience. :)
**********************************************************************

Additional comments:


This report was machine-generated by CPANPLUS::Dist::YACSmoke 1.08.
Powered by minismokebox version 0.68

CPANPLUS is prefering Build.PL

------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = C.UTF-8
    LC_COLLATE = C
    NONINTERACTIVE_TESTING = 1
    PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PERL5LIB = /home/cpan/pit/jail/tq64VdocXz/lib/perl5:/home/cpan/pit/bare/conf/perl-5.18.3/.cpanplus/5.18.3/build/j2EvuGlT9O/JSON-Schema-AsType-0.4.4/blib/lib:/home/cpan/pit/bare/conf/perl-5.18.3/.cpanplus/5.18.3/build/j2EvuGlT9O/JSON-Schema-AsType-0.4.4/blib/arch
    PERL5_CPANPLUS_IS_RUNNING = 18317
    PERL5_CPANPLUS_IS_VERSION = 0.9914
    PERL5_MINISMOKEBOX = 0.68
    PERL5_YACSMOKE_BASE = /home/cpan/pit/bare/conf/perl-5.18.3
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_LOCAL_LIB_ROOT = /home/cpan/pit/jail/tq64VdocXz
    PERL_MB_OPT = --install_base "/home/cpan/pit/jail/tq64VdocXz"
    PERL_MM_OPT = INSTALL_BASE=/home/cpan/pit/jail/tq64VdocXz
    PERL_MM_USE_DEFAULT = 1
    SHELL = /bin/bash
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    Perl: $^X = /home/cpan/pit/bare/perl-5.18.3/bin/perl
    UID:  $<  = 1001
    EUID: $>  = 1001
    GID:  $(  = 1001 1001
    EGID: $)  = 1001 1001


-------------------------------


--

Summary of my perl5 (revision 5 version 18 subversion 3) configuration:
   
  Platform:
    osname=linux, osvers=5.10.16-0-lts, archname=x86_64-linux
    uname='linux agaric 5.10.16-0-lts #1-alpine smp wed, 17 feb 2021 08:17:06 utc x86_64 linux '
    config_args='-des -Dprefix=/home/cpan/pit/bare/perl-5.18.3'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector'
    ccversion='', gccversion='10.2.1 20201203', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/../lib /usr/lib/../lib /lib /usr/lib
    libs=-lgdbm -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
    perllibs=-ldl -lm -lcrypt -lutil -lc
    libc=/usr/lib/libc.a, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
                        USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
  Locally applied patches:
	Devel::PatchPerl 2.08
  Built under linux
  Compiled at Mar 12 2021 00:55:17
  %ENV:
    PERL5LIB="/home/cpan/pit/jail/tq64VdocXz/lib/perl5:/home/cpan/pit/bare/conf/perl-5.18.3/.cpanplus/5.18.3/build/j2EvuGlT9O/JSON-Schema-AsType-0.4.4/blib/lib:/home/cpan/pit/bare/conf/perl-5.18.3/.cpanplus/5.18.3/build/j2EvuGlT9O/JSON-Schema-AsType-0.4.4/blib/arch"
    PERL5_CPANPLUS_IS_RUNNING="18317"
    PERL5_CPANPLUS_IS_VERSION="0.9914"
    PERL5_MINISMOKEBOX="0.68"
    PERL5_YACSMOKE_BASE="/home/cpan/pit/bare/conf/perl-5.18.3"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_LOCAL_LIB_ROOT="/home/cpan/pit/jail/tq64VdocXz"
    PERL_MB_OPT="--install_base "/home/cpan/pit/jail/tq64VdocXz""
    PERL_MM_OPT="INSTALL_BASE=/home/cpan/pit/jail/tq64VdocXz"
    PERL_MM_USE_DEFAULT="1"
  @INC:
    /home/cpan/pit/jail/tq64VdocXz/lib/perl5/5.18.3/x86_64-linux
    /home/cpan/pit/jail/tq64VdocXz/lib/perl5/5.18.3
    /home/cpan/pit/jail/tq64VdocXz/lib/perl5/x86_64-linux
    /home/cpan/pit/jail/tq64VdocXz/lib/perl5
    /home/cpan/pit/bare/conf/perl-5.18.3/.cpanplus/5.18.3/build/j2EvuGlT9O/JSON-Schema-AsType-0.4.4/blib/lib
    /home/cpan/pit/bare/conf/perl-5.18.3/.cpanplus/5.18.3/build/j2EvuGlT9O/JSON-Schema-AsType-0.4.4/blib/arch
    /home/cpan/pit/bare/perl-5.18.3/lib/site_perl/5.18.3/x86_64-linux
    /home/cpan/pit/bare/perl-5.18.3/lib/site_perl/5.18.3
    /home/cpan/pit/bare/perl-5.18.3/lib/5.18.3/x86_64-linux
    /home/cpan/pit/bare/perl-5.18.3/lib/5.18.3
    .