Report for Data-Sah-JS-0.87

Back
From: metabase:user:30f4dfbe-2aae-11df-837a-5e0a49663a4f
Subject: FAIL Data-Sah-JS-0.87 v5.16.3 Mac OS X
Date: 2017-03-18T03:50:52Z

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 perlancar,

This is a computer-generated report for Data-Sah-JS-0.87
on perl 5.16.3, created by CPAN-Reporter-1.2018.

Thank you for uploading your work to CPAN.  However, there was a problem
testing your distribution.

If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/sw/bin/make test':

PERL_DL_NONLAZY=1 "/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/bin/perl5.16.3" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-compile.t ........... ok
t/99-various.t ........... ok
t/author-pod-coverage.t .. skipped: these tests are for testing by the author
t/author-pod-syntax.t .... skipped: these tests are for testing by the author
t/js-misc.t .............. ok
t/js-type-date.t ......... ok
t/js-type-duration.t ..... ok
    # Loading 10-type-all.json ...
    # Loading 10-type-any.json ...
    # Loading 10-type-array.json ...
    # Skipping test (tags=clause:check_each_index, type, type:array) array0117: check_each_index: clause check_each_index not yet implemented
    # Skipping test (tags=clause:check_each_elem, type, type:array) array0118: check_each_elem: clause check_each_elem not yet implemented
    # Skipping test (tags=clause:uniq, type, type:array) array0119: uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, type, type:array) array0120: uniq=0: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:array) array0121: !uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:exists, type, type:array) array0122: exists: clause exists not yet implemented
    # Skipping test (tags=prop:len, type, type:array) array0129: prop:len: properties are not yet implemented
    # Skipping test (tags=prop:indices, type, type:array) array0130: prop:indices: properties are not yet implemented
    # Skipping test (tags=prop:elems, type, type:array) array0131: prop:elems: properties are not yet implemented

    #   Failed test 'js file executed successfully'
    #   at /Users/hornenj/.cpan/build/Data-Sah-JS-0.87-0/blib/lib/Test/Data/Sah/JS.pm line 245.
    # output=<<            ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 1 - (tags=type, type:array) array0001: type check: must accept []
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 2 - (tags=type, type:array) array0002: type check: must accept [1,"a"]
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 3 - (tags=type, type:array) array0003: type check: must accept [[]]
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 4 - (tags=type, type:array) array0004: type check: must reject 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 5 - (tags=type, type:array) array0005: type check: must reject a
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 6 - (tags=type, type:array) array0006: type check: must reject {}
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 7 - (tags=type, type:array) array0007: must accept undefined value
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 8 - (tags=clause:defhash_v, type, type:array) array0008: defhash_v
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 9 - (tags=clause:v, type, type:array) array0009: v
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 10 - (tags=clause:c, type, type:array) array0010: c
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 11 - (tags=clause:default_lang, type, type:array) array0011: default_lang
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 12 - (tags=clause:name, type, type:array) array0012: name
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 13 - (tags=clause:summary, type, type:array) array0013: summary
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 14 - (tags=clause:description, type, type:array) array0014: description
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 15 - (tags=clause:tags, type, type:array) array0015: tags
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 16 - (tags=clause:req, type, type:array) array0016: req=0 must accept undefined value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 17 - (tags=clause:req, type, type:array) array0017: req=1 must reject undefined value
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 18 - (tags=clause:forbidden, type, type:array) array0018: forbidden=0 must accept defined value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 19 - (tags=clause:forbidden, type, type:array) array0019: forbidden=1 must reject defined value
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 20 - (tags=clause:default, type, type:array) array0020: default: must accept valid default []
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 21 - (tags=clause:default, type, type:array) array0021: default: must reject invalid default a
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 22 - (tags=clause:clause, type, type:array) array0023: clause (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 23 - (tags=clause:clause, type, type:array) array0024: clause (ok) + clause nok = nok
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 24 - (tags=clause:clause, type, type:array) array0025: clause (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 25 - (tags=type, type:array) array0028: clset (empty = ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 26 - (tags=clause:clset, type, type:array) array0029: clset (ignored clause/attr = ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 27 - (tags=clause:clset, type, type:array) array0030: clset (ok + ok = ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 28 - (tags=clause:clset, type, type:array) array0031: clset (ok) + clause nok = nok
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 29 - (tags=clause:clset, type, type:array) array0032: clset (ok + nok = nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 30 - (tags=clause:clset, type, type:array) array0033: clset (nok + ok = nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 31 - (tags=clause:clset, type, type:array) array0034: clset (nok + nok = nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 32 - (tags=clause:ok, type, type:array) array0035: ok
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 33 - (tags=clause:ok, op, op:not, type, type:array) array0036: ok + op not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 34 - (tags=attr, attr:err_level, type, type:array) array0037: .err_level=error (clause=is, ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 35 - (tags=attr, attr:err_level, type, type:array) array0038: .err_level=error (clause=is, nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 36 - (tags=attr, attr:err_level, type, type:array) array0039: .err_level=warn (clause=is, ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 37 - (tags=attr, attr:err_level, type, type:array) array0040: .err_level=warn (clause=is, nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 38 - (tags=clause:is, type, type:array) array0041: is: must accept same value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 39 - (tags=clause:is, type, type:array) array0042: is: must reject different value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 40 - (tags=clause:is, op, op:not, opshortcut, type, type:array) array0043: !is (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 41 - (tags=clause:is, op, op:not, opshortcut, type, type:array) array0044: !is (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 42 - (tags=clause:is, op, op:not, type, type:array) array0045: is.op=not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 43 - (tags=clause:is, op, op:not, type, type:array) array0046: is.op=not (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 44 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0047: is& (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 45 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0048: is& (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 46 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0049: is& (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0050: is& (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0051: is& (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 49 - (tags=type, type:array) array0052: is.op=and (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 50 - (tags=clause:is, op, op:and, type, type:array) array0053: is.op=and (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 51 - (tags=clause:is, op, op:and, type, type:array) array0054: is.op=and (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 52 - (tags=clause:is, op, op:and, type, type:array) array0055: is.op=and (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 53 - (tags=clause:is, op, op:and, type, type:array) array0056: is.op=and (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 54 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0057: is| (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 55 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0058: is| (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 56 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0059: is| (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0060: is| (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0061: is| (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 59 - (tags=clause:is, op, op:or, type, type:array) array0062: is.op=or (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 60 - (tags=clause:is, op, op:or, type, type:array) array0063: is.op=or (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 61 - (tags=clause:is, op, op:or, type, type:array) array0064: is.op=or (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 62 - (tags=clause:is, op, op:or, type, type:array) array0065: is.op=or (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 63 - (tags=clause:is, op, op:or, type, type:array) array0066: is.op=or (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 64 - (tags=clause:is, op, op:none, type, type:array) array0067: is.op=none (empty items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 65 - (tags=clause:is, op, op:none, type, type:array) array0068: is.op=none (nok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 66 - (tags=clause:is, op, op:none, type, type:array) array0069: is.op=none (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 67 - (tags=clause:is, op, op:none, type, type:array) array0070: is.op=none (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 68 - (tags=clause:is, op, op:none, type, type:array) array0071: is.op=none (ok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 69 - (tags=clause:in, type, type:array) array0072: in: must accept valid choices
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 70 - (tags=clause:in, type, type:array) array0073: in: must reject empty choices
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 71 - (tags=clause:in, op, op:not, opshortcut, type, type:array) array0074: !in (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 72 - (tags=clause:in, op, op:not, opshortcut, type, type:array) array0075: !in (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 73 - (tags=clause:in, op, op:not, type, type:array) array0076: in.op=not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 74 - (tags=clause:in, op, op:not, type, type:array) array0077: in.op=not (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 75 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0078: in& (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 76 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0079: in& (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 77 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0080: in& (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0081: in& (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0082: in& (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 80 - (tags=type, type:array) array0083: in.op=and (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 81 - (tags=clause:in, op, op:and, type, type:array) array0084: in.op=and (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 82 - (tags=clause:in, op, op:and, type, type:array) array0085: in.op=and (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 83 - (tags=clause:in, op, op:and, type, type:array) array0086: in.op=and (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 84 - (tags=clause:in, op, op:and, type, type:array) array0087: in.op=and (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 85 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0088: in| (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 86 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0089: in| (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 87 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0090: in| (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0091: in| (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0092: in| (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 90 - (tags=clause:in, op, op:or, type, type:array) array0093: in.op=or (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 91 - (tags=clause:in, op, op:or, type, type:array) array0094: in.op=or (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 92 - (tags=clause:in, op, op:or, type, type:array) array0095: in.op=or (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 93 - (tags=clause:in, op, op:or, type, type:array) array0096: in.op=or (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 94 - (tags=clause:in, op, op:or, type, type:array) array0097: in.op=or (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 95 - (tags=clause:in, op, op:none, type, type:array) array0098: in.op=none (empty items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 96 - (tags=clause:in, op, op:none, type, type:array) array0099: in.op=none (nok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 97 - (tags=clause:in, op, op:none, type, type:array) array0100: in.op=none (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 98 - (tags=clause:in, op, op:none, type, type:array) array0101: in.op=none (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 99 - (tags=clause:in, op, op:none, type, type:array) array0102: in.op=none (ok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 100 - (tags=clause:len, type, type:array) array0103: len (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 101 - (tags=clause:len, type, type:array) array0104: len (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 102 - (tags=clause:min_len, type, type:array) array0105: min_len (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 103 - (tags=clause:min_len, type, type:array) array0106: min_len (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 104 - (tags=clause:max_len, type, type:array) array0107: max_len (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 105 - (tags=clause:max_len, type, type:array) array0108: max_len (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 106 - (tags=clause:len_between, type, type:array) array0109: len_between (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 107 - (tags=clause:len_between, type, type:array) array0110: len_between (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 108 - (tags=clause:each_index, type, type:array) array0111: each_index (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 109 - (tags=clause:each_index, type, type:array) array0112: each_index (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 110 - (tags=clause:each_elem, type, type:array) array0113: each_elem (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 111 - (tags=clause:each_elem, type, type:array) array0114: each_elem (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 112 - (tags=clause:of, type, type:array) array0115: of (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 113 - (tags=clause:of, type, type:array) array0116: of (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 114 - (tags=clause:elems, type, type:array) array0123: elems (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 115 - (tags=clause:elems, type, type:array) array0124: elems (nok)
    #             not ok 1 - valid input [0]
    #             not ok 2 - valid input [1]
    #             ok 3 - invalid input [0]
    #             ok 4 - invalid input [1]
    #             # 2 failed test(s)
    #             1..4
    #         not ok 116 - (tags=clause:has, type, type:array) array0125: has
    #             ok 1 - valid input [0]
    #             ok 2 - valid input [1]
    #             not ok 3 - invalid input [0]
    #             not ok 4 - invalid input [1]
    #             # 2 failed test(s)
    #             1..4
    #         not ok 117 - (tags=clause:has, op, op:not, opshortcut, type, type:array) array0126: has + op.not
    #             not ok 1 - valid input [0]
    #             not ok 2 - valid input [1]
    #             ok 3 - invalid input [0]
    #             ok 4 - invalid input [1]
    #             # 2 failed test(s)
    #             1..4
    #         not ok 118 - (tags=clause:has, op, op:or, opshortcut, type, type:array) array0127: has + op.or
    #             not ok 1 - valid input [0]
    #             ok 2 - invalid input [0]
    #             ok 3 - invalid input [1]
    #             ok 4 - invalid input [2]
    #             # 1 failed test(s)
    #             1..4
    #         not ok 119 - (tags=clause:has, op, op:and, opshortcut, type, type:array) array0128: has + op.and
    #             ok 1 - valid input [0]
    #             ok 2 - valid input [1]
    #             ok 3 - invalid input [0]
    #             1..3
    #         ok 120 - (tags=clause:of, type, type:array) array0132: array[array[int]] (test nested loop variable in implementation)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 121 - (tags=clause:elems, type, type:array) array0133: elems (nok, first elem required)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 122 - (tags=clause:elems, type, type:array) array0134: elems (ok, missing elem set to undef)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 123 - (tags=clause:elems, type, type:array) array0135: elems (ok, second elem optional)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 124 - (tags=clause:elems, type, type:array) array0136: elems (ok 2)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 125 - (tags=clause:elems, type, type:array) array0137: elems (ok, extra elems ignored)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 126 - (tags=clause:elems, type, type:array) array0138: elems (ok, extra elems ignored 2)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 127 - (tags=clause:elems, type, type:array) array0139: elems (ok, create_default=0)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 128 - (tags=clause:elems, type, type:array) array0140: elems (ok 2, create_default=0)
    #         # 4 failed test(s)
    #         1..128
    # >>, exit status ($?)=256, errno ($!)=Illegal seek, result=256Illegal seek
    # Looks like you failed 1 test of 346.

#   Failed test '10-type-array.json'
#   at /Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/lib/Test/Data/Sah.pm line 276.
    # Loading 10-type-bool.json ...

    #   Failed test 'js file executed successfully'
    #   at /Users/hornenj/.cpan/build/Data-Sah-JS-0.87-0/blib/lib/Test/Data/Sah/JS.pm line 245.
    # output=<<            ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 1 - (tags=type, type:bool) bool0001: type check: must accept 0
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 2 - (tags=type, type:bool) bool0002: type check: must accept 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 3 - (tags=type, type:bool) bool0003: type check: must reject []
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 4 - (tags=type, type:bool) bool0004: type check: must reject {}
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 5 - (tags=type, type:bool) bool0005: must accept undefined value
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 6 - (tags=clause:defhash_v, type, type:bool) bool0006: defhash_v
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 7 - (tags=clause:v, type, type:bool) bool0007: v
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 8 - (tags=clause:c, type, type:bool) bool0008: c
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 9 - (tags=clause:default_lang, type, type:bool) bool0009: default_lang
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 10 - (tags=clause:name, type, type:bool) bool0010: name
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 11 - (tags=clause:summary, type, type:bool) bool0011: summary
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 12 - (tags=clause:description, type, type:bool) bool0012: description
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 13 - (tags=clause:tags, type, type:bool) bool0013: tags
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 14 - (tags=clause:req, type, type:bool) bool0014: req=0 must accept undefined value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 15 - (tags=clause:req, type, type:bool) bool0015: req=1 must reject undefined value
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 16 - (tags=clause:forbidden, type, type:bool) bool0016: forbidden=0 must accept defined value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 17 - (tags=clause:forbidden, type, type:bool) bool0017: forbidden=1 must reject defined value
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 18 - (tags=clause:default, type, type:bool) bool0018: default: must accept valid default 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 19 - (tags=clause:default, type, type:bool) bool0019: default: must reject invalid default []
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 20 - (tags=type, type:bool) bool0023: clset (empty = ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 21 - (tags=clause:clset, type, type:bool) bool0024: clset (ignored clause/attr = ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 22 - (tags=clause:ok, type, type:bool) bool0025: ok
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 23 - (tags=clause:ok, op, op:not, type, type:bool) bool0026: ok + op not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 24 - (tags=attr, attr:err_level, type, type:bool) bool0027: .err_level=error (clause=is, ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 25 - (tags=attr, attr:err_level, type, type:bool) bool0028: .err_level=error (clause=is, nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 26 - (tags=attr, attr:err_level, type, type:bool) bool0029: .err_level=warn (clause=is, ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 27 - (tags=attr, attr:err_level, type, type:bool) bool0030: .err_level=warn (clause=is, nok)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 28 - (tags=clause:is, type, type:bool) bool0031: is: must accept same value
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 29 - (tags=clause:is, type, type:bool) bool0032: is: must reject different value
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 30 - (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0033: !is (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 31 - (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0034: !is (ok)
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 32 - (tags=clause:is, op, op:not, type, type:bool) bool0035: is.op=not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 33 - (tags=clause:is, op, op:not, type, type:bool) bool0036: is.op=not (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 34 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0037: is& (no items)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 35 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0038: is& (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 36 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0039: is& (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 37 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0040: is& (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 38 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0041: is& (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 39 - (tags=type, type:bool) bool0042: is.op=and (no items)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 40 - (tags=clause:is, op, op:and, type, type:bool) bool0043: is.op=and (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 41 - (tags=clause:is, op, op:and, type, type:bool) bool0044: is.op=and (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 42 - (tags=clause:is, op, op:and, type, type:bool) bool0045: is.op=and (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 43 - (tags=clause:is, op, op:and, type, type:bool) bool0046: is.op=and (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 44 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0047: is| (no items)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 45 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0048: is| (ok)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 46 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0049: is| (nok + ok)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 47 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0050: is| (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 48 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0051: is| (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 49 - (tags=clause:is, op, op:or, type, type:bool) bool0052: is.op=or (no items)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 50 - (tags=clause:is, op, op:or, type, type:bool) bool0053: is.op=or (ok)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 51 - (tags=clause:is, op, op:or, type, type:bool) bool0054: is.op=or (nok + ok)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 52 - (tags=clause:is, op, op:or, type, type:bool) bool0055: is.op=or (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 53 - (tags=clause:is, op, op:or, type, type:bool) bool0056: is.op=or (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 54 - (tags=clause:is, op, op:none, type, type:bool) bool0057: is.op=none (empty items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 55 - (tags=clause:is, op, op:none, type, type:bool) bool0058: is.op=none (nok + nok)
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 56 - (tags=clause:is, op, op:none, type, type:bool) bool0059: is.op=none (nok + ok)
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 57 - (tags=clause:is, op, op:none, type, type:bool) bool0060: is.op=none (ok + nok)
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 58 - (tags=clause:is, op, op:none, type, type:bool) bool0061: is.op=none (ok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 59 - (tags=clause:in, type, type:bool) bool0062: in: must accept valid choices
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 60 - (tags=clause:in, type, type:bool) bool0063: in: must reject empty choices
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 61 - (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0064: !in (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 62 - (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0065: !in (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 63 - (tags=clause:in, op, op:not, type, type:bool) bool0066: in.op=not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 64 - (tags=clause:in, op, op:not, type, type:bool) bool0067: in.op=not (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 65 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0068: in& (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 66 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0069: in& (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 67 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0070: in& (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 68 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0071: in& (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 69 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0072: in& (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 70 - (tags=type, type:bool) bool0073: in.op=and (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 71 - (tags=clause:in, op, op:and, type, type:bool) bool0074: in.op=and (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 72 - (tags=clause:in, op, op:and, type, type:bool) bool0075: in.op=and (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 73 - (tags=clause:in, op, op:and, type, type:bool) bool0076: in.op=and (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 74 - (tags=clause:in, op, op:and, type, type:bool) bool0077: in.op=and (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 75 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0078: in| (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 76 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0079: in| (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 77 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0080: in| (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 78 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0081: in| (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 79 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0082: in| (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 80 - (tags=clause:in, op, op:or, type, type:bool) bool0083: in.op=or (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 81 - (tags=clause:in, op, op:or, type, type:bool) bool0084: in.op=or (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 82 - (tags=clause:in, op, op:or, type, type:bool) bool0085: in.op=or (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 83 - (tags=clause:in, op, op:or, type, type:bool) bool0086: in.op=or (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 84 - (tags=clause:in, op, op:or, type, type:bool) bool0087: in.op=or (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 85 - (tags=clause:in, op, op:none, type, type:bool) bool0088: in.op=none (empty items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 86 - (tags=clause:in, op, op:none, type, type:bool) bool0089: in.op=none (nok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 87 - (tags=clause:in, op, op:none, type, type:bool) bool0090: in.op=none (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 88 - (tags=clause:in, op, op:none, type, type:bool) bool0091: in.op=none (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 89 - (tags=clause:in, op, op:none, type, type:bool) bool0092: in.op=none (ok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 90 - (tags=clause:min, type, type:bool) bool0093: min: 1 0
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 91 - (tags=clause:min, type, type:bool) bool0094: min: 1 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 92 - (tags=clause:min, type, type:bool) bool0095: min: 0 1 -> fail
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 93 - (tags=clause:xmin, type, type:bool) bool0096: xmin: 1 0
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 94 - (tags=clause:xmin, type, type:bool) bool0097: xmin: 1 1 -> fail
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 95 - (tags=clause:xmin, type, type:bool) bool0098: xmin: 0 1 -> fail
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 96 - (tags=clause:max, type, type:bool) bool0099: max: 1 0 -> fail
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 97 - (tags=clause:max, type, type:bool) bool0100: max: 1 1
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 98 - (tags=clause:max, type, type:bool) bool0101: max: 0 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 99 - (tags=clause:xmax, type, type:bool) bool0102: xmax: 1 0 -> fail
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 100 - (tags=clause:xmax, type, type:bool) bool0103: xmax: 1 1 -> fail
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 101 - (tags=clause:xmax, type, type:bool) bool0104: xmax: 0 1
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 102 - (tags=clause:between, type, type:bool) bool0105: between: 1 0 & 1
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 103 - (tags=clause:between, type, type:bool) bool0106: between: 1 0 & 1
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 104 - (tags=clause:between, type, type:bool) bool0107: between: 1 1 & 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 105 - (tags=clause:between, type, type:bool) bool0108: between: 0 1 & 1 -> fail
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 106 - (tags=clause:xbetween, type, type:bool) bool0109: xbetween: 1 0 & 1
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 107 - (tags=clause:xbetween, type, type:bool) bool0110: xbetween: 1 0 & 1 -> fail
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 108 - (tags=clause:xbetween, type, type:bool) bool0111: xbetween: 1 1 & 1 -> fail
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 109 - (tags=clause:xbetween, type, type:bool) bool0112: xbetween: 0 1 & 1 -> fail
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 110 - (tags=clause:between, op, op:not, opshortcut, type, type:bool) bool0113: !between (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 111 - (tags=clause:between, op, op:not, opshortcut, type, type:bool) bool0114: !between (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 112 - (tags=clause:between, op, op:not, type, type:bool) bool0115: between.op=not (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 113 - (tags=clause:between, op, op:not, type, type:bool) bool0116: between.op=not (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 114 - (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0117: between& (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 115 - (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0118: between& (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 116 - (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0119: between& (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 117 - (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0120: between& (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 118 - (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0121: between& (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 119 - (tags=type, type:bool) bool0122: between.op=and (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 120 - (tags=clause:between, op, op:and, type, type:bool) bool0123: between.op=and (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 121 - (tags=clause:between, op, op:and, type, type:bool) bool0124: between.op=and (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 122 - (tags=clause:between, op, op:and, type, type:bool) bool0125: between.op=and (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 123 - (tags=clause:between, op, op:and, type, type:bool) bool0126: between.op=and (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 124 - (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0127: between| (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 125 - (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0128: between| (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 126 - (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0129: between| (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 127 - (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0130: between| (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 128 - (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0131: between| (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 129 - (tags=clause:between, op, op:or, type, type:bool) bool0132: between.op=or (no items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 130 - (tags=clause:between, op, op:or, type, type:bool) bool0133: between.op=or (ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 131 - (tags=clause:between, op, op:or, type, type:bool) bool0134: between.op=or (nok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 132 - (tags=clause:between, op, op:or, type, type:bool) bool0135: between.op=or (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 133 - (tags=clause:between, op, op:or, type, type:bool) bool0136: between.op=or (nok + nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 134 - (tags=clause:between, op, op:none, type, type:bool) bool0137: between.op=none (empty items)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 135 - (tags=clause:between, op, op:none, type, type:bool) bool0138: between.op=none (nok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 136 - (tags=clause:between, op, op:none, type, type:bool) bool0139: between.op=none (nok + ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 137 - (tags=clause:between, op, op:none, type, type:bool) bool0140: between.op=none (ok + nok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 138 - (tags=clause:between, op, op:none, type, type:bool) bool0141: between.op=none (ok + ok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 139 - (tags=clause:is_true, type, type:bool) bool0142: is_true: 1 (ok)
    #             ok 1 - invalid (rt=bool)
    #             ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 140 - (tags=clause:is_true, type, type:bool) bool0143: is_true: 1 (nok)
    #             not ok 1 - valid (rt=bool)
    #             not ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 141 - (tags=clause:is_true, type, type:bool) bool0144: is_true: 0 (ok)
    #             not ok 1 - invalid (rt=bool)
    #             not ok 2 - invalid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             not ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             # 3 failed test(s)
    #             1..5
    #         not ok 142 - (tags=clause:is_true, type, type:bool) bool0145: is_true: 0 (nok)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 143 - (tags=clause:is_true, type, type:bool) bool0146: is_true: undef (ok 1)
    #             ok 1 - valid (rt=bool)
    #             ok 2 - valid (rt=str)
    #             ok 3 - validator (rt=full) returns object
    #             ok 4 - errors (rt=full)
    #             ok 5 - warnings (rt=full)
    #             1..5
    #         ok 144 - (tags=clause:is_true, type, type:bool) bool0147: is_true: undef (ok 2)
    #         # 18 failed test(s)
    #         1..144
    # >>, exit status ($?)=256, errno ($!)=Illegal seek, result=256Illegal seek
    # Looks like you failed 1 test of 388.

#   Failed test '10-type-bool.json'
#   at /Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/lib/Test/Data/Sah.pm line 276.
    # Loading 10-type-buf.json ...
    # Skipping test (tags=clause:check_each_index, type, type:buf) buf0164: check_each_index: clause check_each_index not yet implemented
    # Skipping test (tags=clause:check_each_elem, type, type:buf) buf0165: check_each_elem: clause check_each_elem not yet implemented
    # Skipping test (tags=clause:uniq, type, type:buf) buf0166: uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, type, type:buf) buf0167: uniq=0: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:buf) buf0168: !uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:exists, type, type:buf) buf0169: exists: clause exists not yet implemented
    # Skipping test (tags=prop:len, type, type:buf) buf0174: prop:len: properties are not yet implemented
    # Skipping test (tags=prop:indices, type, type:buf) buf0175: prop:indices: properties are not yet implemented
    # Skipping test (tags=prop:elems, type, type:buf) buf0176: prop:elems: properties are not yet implemented
    # Loading 10-type-cistr.json ...
    # Skipping test (tags=clause:check_each_index, type, type:cistr) cistr0164: check_each_index: clause check_each_index not yet implemented
    # Skipping test (tags=clause:check_each_elem, type, type:cistr) cistr0165: check_each_elem: clause check_each_elem not yet implemented
    # Skipping test (tags=clause:uniq, type, type:cistr) cistr0166: uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, type, type:cistr) cistr0167: uniq=0: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:cistr) cistr0168: !uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:exists, type, type:cistr) cistr0169: exists: clause exists not yet implemented
    # Skipping test (tags=prop:len, type, type:cistr) cistr0174: prop:len: properties are not yet implemented
    # Skipping test (tags=prop:indices, type, type:cistr) cistr0175: prop:indices: properties are not yet implemented
    # Skipping test (tags=prop:elems, type, type:cistr) cistr0176: prop:elems: properties are not yet implemented
    # Loading 10-type-float.json ...
    # Loading 10-type-hash.json ...
    # Skipping test (tags=clause:check_each_index, type, type:hash) hash0121: check_each_index: clause check_each_index not yet implemented
    # Skipping test (tags=clause:check_each_key, type, type:hash) hash0122: check_each_key: clause check_each_key not yet implemented
    # Skipping test (tags=clause:check_each_elem, type, type:hash) hash0123: check_each_elem: clause check_each_elem not yet implemented
    # Skipping test (tags=clause:check_each_value, type, type:hash) hash0124: check_each_value: clause check_each_value not yet implemented
    # Skipping test (tags=clause:uniq, type, type:hash) hash0125: uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, type, type:hash) hash0126: uniq=0: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:hash) hash0127: !uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:exists, type, type:hash) hash0128: exists: clause exists not yet implemented
    # Skipping test (tags=prop:len, type, type:hash) hash0133: prop:len: properties are not yet implemented
    # Skipping test (tags=prop:indices, type, type:hash) hash0134: prop:indices: properties are not yet implemented
    # Skipping test (tags=prop:keys, type, type:hash) hash0135: prop:keys: properties are not yet implemented
    # Skipping test (tags=prop:elems, type, type:hash) hash0136: prop:elems: properties are not yet implemented
    # Skipping test (tags=prop:values, type, type:hash) hash0137: prop:values: properties are not yet implemented
    # Skipping test (tags=prop:keys, type, type:hash) hash0263: prop:keys: properties are not yet implemented
    # Skipping test (tags=prop:values, type, type:hash) hash0264: prop:values: properties are not yet implemented
    # Loading 10-type-int.json ...
    # Loading 10-type-num.json ...
    # Loading 10-type-obj.json ...
    # Skipping test (tags=clause:isa, type, type:obj) obj0002: isa (nok): obj clause isa not yet implemented
    # Skipping test (tags=prop:meths, type, type:obj) obj0003: prop:meths (nok): properties are not yet implemented
    # Skipping test (tags=prop:attrs, type, type:obj) obj0004: prop:attrs (nok): properties are not yet implemented
    # Loading 10-type-str.json ...
    # Skipping test (tags=clause:check_each_index, type, type:str) str0164: check_each_index: clause check_each_index not yet implemented
    # Skipping test (tags=clause:check_each_elem, type, type:str) str0165: check_each_elem: clause check_each_elem not yet implemented
    # Skipping test (tags=clause:uniq, type, type:str) str0166: uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, type, type:str) str0167: uniq=0: clause uniq not yet implemented
    # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:str) str0168: !uniq=1: clause uniq not yet implemented
    # Skipping test (tags=clause:exists, type, type:str) str0169: exists: clause exists not yet implemented
    # Skipping test (tags=prop:len, type, type:str) str0174: prop:len: properties are not yet implemented
    # Skipping test (tags=prop:indices, type, type:str) str0175: prop:indices: properties are not yet implemented
    # Skipping test (tags=prop:elems, type, type:str) str0176: prop:elems: properties are not yet implemented
    # Loading 10-type-undef.json ...
# Looks like you failed 2 tests of 13.
t/spectest-js.t .......... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/13 subtests 

Test Summary Report
-------------------
t/spectest-js.t        (Wstat: 512 Tests: 13 Failed: 2)
  Failed tests:  3-4
  Non-zero exit status: 2
Files=8, Tests=46,  9 wallclock secs ( 0.49 usr  0.06 sys +  6.79 cusr  1.46 csys =  8.80 CPU)
Result: FAIL
Failed 1/8 test programs. 2/46 subtests failed.
make: *** [Makefile:1012: test_dynamic] Error 2

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module                        Need     Have    
    ----------------------------- -------- --------
    Capture::Tiny                 0        0.30    
    Data::Clean::JSON             0.11     0.38    
    Data::Sah                     0.84     0.87    
    Data::Sah::Coerce             0.014    0.021   
    Data::Sah::Compiler::Prog     0        0.87    
    Data::Sah::Compiler::Prog::TH 0        0.87    
    Data::Sah::Type::array        0        0.87    
    Data::Sah::Type::bool         0        0.87    
    Data::Sah::Type::buf          0        0.87    
    Data::Sah::Type::cistr        0        0.87    
    Data::Sah::Type::code         0        0.87    
    Data::Sah::Type::date         0        0.87    
    Data::Sah::Type::duration     0        0.87    
    Data::Sah::Type::float        0        0.87    
    Data::Sah::Type::hash         0        0.87    
    Data::Sah::Type::int          0        0.87    
    Data::Sah::Type::num          0        0.87    
    Data::Sah::Type::obj          0        0.87    
    Data::Sah::Type::re           0        0.87    
    Data::Sah::Type::str          0        0.87    
    Data::Sah::Type::undef        0        0.87    
    Exporter                      0        5.72    
    File::Temp                    0        0.2304  
    IPC::System::Options          0.27     0.30    
    JSON::MaybeXS                 0        1.003005
    Mo                            0        0.40    
    Nodejs::Util                  0.006    0.006   
    parent                        0        0.234   
    perl                          5.010001 5.016003
    Role::Tiny::With              0        2.000001
    Scalar::Util                  0        1.42    
    Scalar::Util::Numeric::PP     0        0.04    
    strict                        0        1.07    
    String::Indent                0        0.03    
    Test::Data::Sah               0.87     0.87    
    Test::More                    0.98     1.302075
    warnings                      0        1.13    

build_requires:

    Module                        Need     Have    
    ----------------------------- -------- --------
    ExtUtils::MakeMaker           0        7.22    
    File::Spec                    0        3.47    
    IO::Handle                    0        1.33    
    IPC::Open3                    0        1.12    
    Sah::SpecTest                 v0.9.42  0.9.45  
    Test::Exception               0        0.43    
    Test::More                    0.98     1.302075

configure_requires:

    Module                        Need     Have    
    ----------------------------- -------- --------
    ExtUtils::MakeMaker           0        7.22    


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

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = en_US.UTF-8
    LC_ALL = POSIX
    LDFLAGS = 
    PATH = /Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/bin:/Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/bin:/sw/lib/perl5/ExtUtils:/sw/bin:/am/ncbiapdata/bin:/usr/bin:/bin:/usr/X11R6/bin:/netopt/ncbi_tools/bin:/usr/local/ncbi/blast/bin:/net/traces01.be-md.ncbi.nlm.nih.gov/trace_software/vdb/mac/release/x86_64/bin
    PERL5LIB = /Users/hornenj/.cpan/build/String-Indent-0.03-1/blib/arch:/Users/hornenj/.cpan/build/String-Indent-0.03-1/blib/lib:/Users/hornenj/.cpan/build/Perl-osnames-0.11-2/blib/arch:/Users/hornenj/.cpan/build/Perl-osnames-0.11-2/blib/lib:/Users/hornenj/.cpan/build/Data-Clean-JSON-0.38-2/blib/arch:/Users/hornenj/.cpan/build/Data-Clean-JSON-0.38-2/blib/lib:/Users/hornenj/.cpan/build/Data-Clean-0.48-2/blib/arch:/Users/hornenj/.cpan/build/Data-Clean-0.48-2/blib/lib:/Users/hornenj/.cpan/build/String-PerlQuote-0.02-2/blib/arch:/Users/hornenj/.cpan/build/String-PerlQuote-0.02-2/blib/lib:/Users/hornenj/.cpan/build/String-LineNumber-0.01-2/blib/arch:/Users/hornenj/.cpan/build/String-LineNumber-0.01-2/blib/lib:/Users/hornenj/.cpan/build/Clone-PP-1.06-4/blib/arch:/Users/hornenj/.cpan/build/Clone-PP-1.06-4/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Format-0.002-0/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Format-0.002-0/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/lib:/Users/hornenj/.cpan/build/lib-filter-0.27-1/blib/arch:/Users/hornenj/.cpan/build/lib-filter-0.27-1/blib/lib:/Users/hornenj/.cpan/build/Module-Path-More-0.33-2/blib/arch:/Users/hornenj/.cpan/build/Module-Path-More-0.33-2/blib/lib:/Users/hornenj/.cpan/build/experimental-0.016-2/blib/arch:/Users/hornenj/.cpan/build/experimental-0.016-2/blib/lib:/Users/hornenj/.cpan/build/Time-Duration-Parse-AsHash-0.10.6-1/blib/arch:/Users/hornenj/.cpan/build/Time-Duration-Parse-AsHash-0.10.6-1/blib/lib:/Users/hornenj/.cpan/build/Text-sprintfn-0.08-1/blib/arch:/Users/hornenj/.cpan/build/Text-sprintfn-0.08-1/blib/lib:/Users/hornenj/.cpan/build/Scalar-Util-Numeric-PP-0.04-1/blib/arch:/Users/hornenj/.cpan/build/Scalar-Util-Numeric-PP-0.04-1/blib/lib:/Users/hornenj/.cpan/build/Sah-0.9.45-1/blib/arch:/Users/hornenj/.cpan/build/Sah-0.9.45-1/blib/lib:/Users/hornenj/.cpan/build/Module-Installed-Tiny-0.003-1/blib/arch:/Users/hornenj/.cpan/build/Module-Installed-Tiny-0.003-1/blib/lib:/Users/hornenj/.cpan/build/File-Slurper-0.009-4/blib/arch:/Users/hornenj/.cpan/build/File-Slurper-0.009-4/blib/lib:/Users/hornenj/.cpan/build/File-ShareDir-Tarball-0.2.2-1/blib/arch:/Users/hornenj/.cpan/build/File-ShareDir-Tarball-0.2.2-1/blib/lib:/Users/hornenj/.cpan/build/Test-File-ShareDir-1.001002-24/blib/arch:/Users/hornenj/.cpan/build/Test-File-ShareDir-1.001002-24/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Resolve-0.004-1/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Resolve-0.004-1/blib/lib:/Users/hornenj/.cpan/build/Sah-Schemas-Examples-0.005-1/blib/arch:/Users/hornenj/.cpan/build/Sah-Schemas-Examples-0.005-1/blib/lib:/Users/hornenj/.cpan/build/Sah-Schemas-Int-0.06-1/blib/arch:/Users/hornenj/.cpan/build/Sah-Schemas-Int-0.06-1/blib/lib:/Users/hornenj/.cpan/build/Data-ModeMerge-0.35-1/blib/arch:/Users/hornenj/.cpan/build/Data-ModeMerge-0.35-1/blib/lib:/Users/hornenj/.cpan/build/Mo-0.40-2/blib/arch:/Users/hornenj/.cpan/build/Mo-0.40-2/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Normalize-0.04-2/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Normalize-0.04-2/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Coerce-0.021-1/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Coerce-0.021-1/blib/lib:/Users/hornenj/.cpan/build/Test-Needs-0.002005-14/blib/arch:/Users/hornenj/.cpan/build/Test-Needs-0.002005-14/blib/lib:/Users/hornenj/.cpan/build/PERLANCAR-Module-List-0.003005-2/blib/arch:/Users/hornenj/.cpan/build/PERLANCAR-Module-List-0.003005-2/blib/lib:/Users/hornenj/.cpan/build/Nodejs-Util-0.006-1/blib/arch:/Users/hornenj/.cpan/build/Nodejs-Util-0.006-1/blib/lib:/Users/hornenj/.cpan/build/IPC-System-Options-0.30-2/blib/arch:/Users/hornenj/.cpan/build/IPC-System-Options-0.30-2/blib/lib:/Users/hornenj/.cpan/build/String-ShellQuote-1.04-3/blib/arch:/Users/hornenj/.cpan/build/String-ShellQuote-1.04-3/blib/lib:/Users/hornenj/.cpan/build/Proc-ChildError-0.04-2/blib/arch:/Users/hornenj/.cpan/build/Proc-ChildError-0.04-2/blib/lib:/Users/hornenj/.cpan/build/Data-Dmp-0.23-2/blib/arch:/Users/hornenj/.cpan/build/Data-Dmp-0.23-2/blib/lib:/Users/hornenj/.cpan/build/Regexp-Stringify-0.06-2/blib/arch:/Users/hornenj/.cpan/build/Regexp-Stringify-0.06-2/blib/lib:/Users/hornenj/.cpan/build/Data-Dump-Color-0.23-0/blib/arch:/Users/hornenj/.cpan/build/Data-Dump-Color-0.23-0/blib/lib:/Users/hornenj/.cpan/build/Scalar-Util-LooksLikeNumber-1.39.2-0/blib/arch:/Users/hornenj/.cpan/build/Scalar-Util-LooksLikeNumber-1.39.2-0/blib/lib:/Users/hornenj/.cpan/build/Complete-Module-0.24-1/blib/arch:/Users/hornenj/.cpan/build/Complete-Module-0.24-1/blib/lib:/Users/hornenj/.cpan/build/Filesys-Cap-0.02-1/blib/arch:/Users/hornenj/.cpan/build/Filesys-Cap-0.02-1/blib/lib:/Users/hornenj/.cpan/build/UUID-Random-0.04-2/blib/arch:/Users/hornenj/.cpan/build/UUID-Random-0.04-2/blib/lib:/Users/hornenj/.cpan/build/File-chdir-0.1010-53/blib/arch:/Users/hornenj/.cpan/build/File-chdir-0.1010-53/blib/lib:/Users/hornenj/.cpan/build/File-Slurp-Tiny-0.004-32/blib/arch:/Users/hornenj/.cpan/build/File-Slurp-Tiny-0.004-32/blib/lib:/Users/hornenj/.cpan/build/Complete-Path-0.23-2/blib/arch:/Users/hornenj/.cpan/build/Complete-Path-0.23-2/blib/lib:/Users/hornenj/.cpan/build/Complete-Util-0.58-2/blib/arch:/Users/hornenj/.cpan/build/Complete-Util-0.58-2/blib/lib:/Users/hornenj/.cpan/build/Log-Any-IfLOG-0.08-2/blib/arch:/Users/hornenj/.cpan/build/Log-Any-IfLOG-0.08-2/blib/lib:/Users/hornenj/.cpan/build/Complete-Common-0.22-2/blib/arch:/Users/hornenj/.cpan/build/Complete-Common-0.22-2/blib/lib
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 96224
    PERL5_CPAN_IS_RUNNING = 96224
    PERL5_MINISMOKEBOX = 0.58
    PERLBREW_BASHRC_VERSION = 0.77
    PERLBREW_HOME = /Users/hornenj/.perlbrew
    PERLBREW_LIB = 
    PERLBREW_MANPATH = /Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/man
    PERLBREW_PATH = /Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/bin
    PERLBREW_PERL = perl-5.16.3
    PERLBREW_ROOT = /Users/hornenj/perl5/perlbrew
    PERLBREW_VERSION = 0.77
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_LOCAL_LIB_ROOT = 
    PERL_MM_USE_DEFAULT = 1
    SHELL = /bin/bash
    TERM = xterm-256color
    TMPDIR = /var/folders/pz/pd7y1qjs6s3cbk170cw50fjc000c61/T/
    ac_cv_path_INTLTOOL_PERL = /usr/bin/perl

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

    $^X = /Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/bin/perl5.16.3
    $UID/$EUID = 12481 / 12481
    $GID = 14 14 5344 37191 527 37223 241
    $EGID = 14 14 5344 37191 527 37223 241

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.14    
    CPAN::Meta          2.150005
    Cwd                 3.47    
    ExtUtils::CBuilder  0.280224
    ExtUtils::Command   7.22    
    ExtUtils::Install   2.04    
    ExtUtils::MakeMaker 7.22    
    ExtUtils::Manifest  1.70    
    ExtUtils::ParseXS   3.30    
    File::Spec          3.47    
    JSON                2.90    
    JSON::PP            2.27400 
    Module::Build       0.4214  
    Module::Signature   n/a     
    Parse::CPAN::Meta   1.4422  
    Test::Harness       3.36    
    Test::More          1.302075
    YAML                1.21    
    YAML::Syck          1.29    
    version             0.9912  


--

Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
   
  Platform:
    osname=darwin, osvers=13.4.0, archname=darwin-thread-multi-2level
    uname='darwin ncbimac2008.ncbi.nlm.nih.gov 13.4.0 darwin kernel version 13.4.0: sun aug 17 19:50:11 pdt 2014; root:xnu-2422.115.4~1release_x86_64 x86_64 '
    config_args='-de -Dprefix=/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3 -Duseithreads -Dusemultiplicity -Dusedevel -Accflags=-O2 -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -mtune=native -march=native -fomit-frame-pointer -msse2 -msse -mmmx -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fassociative-math -Acc=cc -Aeval:scriptdir=/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc=' cc', ccflags ='-fno-common -DPERL_DARWIN -O2 -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -mtune=native -march=native -fomit-frame-pointer -msse2 -msse -mmmx -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fassociative-math -fno-strict-aliasing -I/usr/local/include',
    optimize='-O3',
    cppflags='-fno-common -DPERL_DARWIN -O2 -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -mtune=native -march=native -fomit-frame-pointer -msse2 -msse -mmmx -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fassociative-math -fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)', 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='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_USE_DEVEL
                        USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
                        USE_PERL_ATOF USE_REENTRANT_API
  Built under darwin
  Compiled at Nov  6 2014 09:32:39
  %ENV:
    PERL5LIB="/Users/hornenj/.cpan/build/String-Indent-0.03-1/blib/arch:/Users/hornenj/.cpan/build/String-Indent-0.03-1/blib/lib:/Users/hornenj/.cpan/build/Perl-osnames-0.11-2/blib/arch:/Users/hornenj/.cpan/build/Perl-osnames-0.11-2/blib/lib:/Users/hornenj/.cpan/build/Data-Clean-JSON-0.38-2/blib/arch:/Users/hornenj/.cpan/build/Data-Clean-JSON-0.38-2/blib/lib:/Users/hornenj/.cpan/build/Data-Clean-0.48-2/blib/arch:/Users/hornenj/.cpan/build/Data-Clean-0.48-2/blib/lib:/Users/hornenj/.cpan/build/String-PerlQuote-0.02-2/blib/arch:/Users/hornenj/.cpan/build/String-PerlQuote-0.02-2/blib/lib:/Users/hornenj/.cpan/build/String-LineNumber-0.01-2/blib/arch:/Users/hornenj/.cpan/build/String-LineNumber-0.01-2/blib/lib:/Users/hornenj/.cpan/build/Clone-PP-1.06-4/blib/arch:/Users/hornenj/.cpan/build/Clone-PP-1.06-4/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Format-0.002-0/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Format-0.002-0/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/lib:/Users/hornenj/.cpan/build/lib-filter-0.27-1/blib/arch:/Users/hornenj/.cpan/build/lib-filter-0.27-1/blib/lib:/Users/hornenj/.cpan/build/Module-Path-More-0.33-2/blib/arch:/Users/hornenj/.cpan/build/Module-Path-More-0.33-2/blib/lib:/Users/hornenj/.cpan/build/experimental-0.016-2/blib/arch:/Users/hornenj/.cpan/build/experimental-0.016-2/blib/lib:/Users/hornenj/.cpan/build/Time-Duration-Parse-AsHash-0.10.6-1/blib/arch:/Users/hornenj/.cpan/build/Time-Duration-Parse-AsHash-0.10.6-1/blib/lib:/Users/hornenj/.cpan/build/Text-sprintfn-0.08-1/blib/arch:/Users/hornenj/.cpan/build/Text-sprintfn-0.08-1/blib/lib:/Users/hornenj/.cpan/build/Scalar-Util-Numeric-PP-0.04-1/blib/arch:/Users/hornenj/.cpan/build/Scalar-Util-Numeric-PP-0.04-1/blib/lib:/Users/hornenj/.cpan/build/Sah-0.9.45-1/blib/arch:/Users/hornenj/.cpan/build/Sah-0.9.45-1/blib/lib:/Users/hornenj/.cpan/build/Module-Installed-Tiny-0.003-1/blib/arch:/Users/hornenj/.cpan/build/Module-Installed-Tiny-0.003-1/blib/lib:/Users/hornenj/.cpan/build/File-Slurper-0.009-4/blib/arch:/Users/hornenj/.cpan/build/File-Slurper-0.009-4/blib/lib:/Users/hornenj/.cpan/build/File-ShareDir-Tarball-0.2.2-1/blib/arch:/Users/hornenj/.cpan/build/File-ShareDir-Tarball-0.2.2-1/blib/lib:/Users/hornenj/.cpan/build/Test-File-ShareDir-1.001002-24/blib/arch:/Users/hornenj/.cpan/build/Test-File-ShareDir-1.001002-24/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Resolve-0.004-1/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Resolve-0.004-1/blib/lib:/Users/hornenj/.cpan/build/Sah-Schemas-Examples-0.005-1/blib/arch:/Users/hornenj/.cpan/build/Sah-Schemas-Examples-0.005-1/blib/lib:/Users/hornenj/.cpan/build/Sah-Schemas-Int-0.06-1/blib/arch:/Users/hornenj/.cpan/build/Sah-Schemas-Int-0.06-1/blib/lib:/Users/hornenj/.cpan/build/Data-ModeMerge-0.35-1/blib/arch:/Users/hornenj/.cpan/build/Data-ModeMerge-0.35-1/blib/lib:/Users/hornenj/.cpan/build/Mo-0.40-2/blib/arch:/Users/hornenj/.cpan/build/Mo-0.40-2/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Normalize-0.04-2/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Normalize-0.04-2/blib/lib:/Users/hornenj/.cpan/build/Data-Sah-Coerce-0.021-1/blib/arch:/Users/hornenj/.cpan/build/Data-Sah-Coerce-0.021-1/blib/lib:/Users/hornenj/.cpan/build/Test-Needs-0.002005-14/blib/arch:/Users/hornenj/.cpan/build/Test-Needs-0.002005-14/blib/lib:/Users/hornenj/.cpan/build/PERLANCAR-Module-List-0.003005-2/blib/arch:/Users/hornenj/.cpan/build/PERLANCAR-Module-List-0.003005-2/blib/lib:/Users/hornenj/.cpan/build/Nodejs-Util-0.006-1/blib/arch:/Users/hornenj/.cpan/build/Nodejs-Util-0.006-1/blib/lib:/Users/hornenj/.cpan/build/IPC-System-Options-0.30-2/blib/arch:/Users/hornenj/.cpan/build/IPC-System-Options-0.30-2/blib/lib:/Users/hornenj/.cpan/build/String-ShellQuote-1.04-3/blib/arch:/Users/hornenj/.cpan/build/String-ShellQuote-1.04-3/blib/lib:/Users/hornenj/.cpan/build/Proc-ChildError-0.04-2/blib/arch:/Users/hornenj/.cpan/build/Proc-ChildError-0.04-2/blib/lib:/Users/hornenj/.cpan/build/Data-Dmp-0.23-2/blib/arch:/Users/hornenj/.cpan/build/Data-Dmp-0.23-2/blib/lib:/Users/hornenj/.cpan/build/Regexp-Stringify-0.06-2/blib/arch:/Users/hornenj/.cpan/build/Regexp-Stringify-0.06-2/blib/lib:/Users/hornenj/.cpan/build/Data-Dump-Color-0.23-0/blib/arch:/Users/hornenj/.cpan/build/Data-Dump-Color-0.23-0/blib/lib:/Users/hornenj/.cpan/build/Scalar-Util-LooksLikeNumber-1.39.2-0/blib/arch:/Users/hornenj/.cpan/build/Scalar-Util-LooksLikeNumber-1.39.2-0/blib/lib:/Users/hornenj/.cpan/build/Complete-Module-0.24-1/blib/arch:/Users/hornenj/.cpan/build/Complete-Module-0.24-1/blib/lib:/Users/hornenj/.cpan/build/Filesys-Cap-0.02-1/blib/arch:/Users/hornenj/.cpan/build/Filesys-Cap-0.02-1/blib/lib:/Users/hornenj/.cpan/build/UUID-Random-0.04-2/blib/arch:/Users/hornenj/.cpan/build/UUID-Random-0.04-2/blib/lib:/Users/hornenj/.cpan/build/File-chdir-0.1010-53/blib/arch:/Users/hornenj/.cpan/build/File-chdir-0.1010-53/blib/lib:/Users/hornenj/.cpan/build/File-Slurp-Tiny-0.004-32/blib/arch:/Users/hornenj/.cpan/build/File-Slurp-Tiny-0.004-32/blib/lib:/Users/hornenj/.cpan/build/Complete-Path-0.23-2/blib/arch:/Users/hornenj/.cpan/build/Complete-Path-0.23-2/blib/lib:/Users/hornenj/.cpan/build/Complete-Util-0.58-2/blib/arch:/Users/hornenj/.cpan/build/Complete-Util-0.58-2/blib/lib:/Users/hornenj/.cpan/build/Log-Any-IfLOG-0.08-2/blib/arch:/Users/hornenj/.cpan/build/Log-Any-IfLOG-0.08-2/blib/lib:/Users/hornenj/.cpan/build/Complete-Common-0.22-2/blib/arch:/Users/hornenj/.cpan/build/Complete-Common-0.22-2/blib/lib"
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="96224"
    PERL5_CPAN_IS_RUNNING="96224"
    PERL5_MINISMOKEBOX="0.58"
    PERLBREW_BASHRC_VERSION="0.77"
    PERLBREW_HOME="/Users/hornenj/.perlbrew"
    PERLBREW_LIB=""
    PERLBREW_MANPATH="/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/man"
    PERLBREW_PATH="/Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/bin"
    PERLBREW_PERL="perl-5.16.3"
    PERLBREW_ROOT="/Users/hornenj/perl5/perlbrew"
    PERLBREW_VERSION="0.77"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_LOCAL_LIB_ROOT=""
    PERL_MM_USE_DEFAULT="1"
  @INC:
    /Users/hornenj/.cpan/build/String-Indent-0.03-1/blib/arch
    /Users/hornenj/.cpan/build/String-Indent-0.03-1/blib/lib
    /Users/hornenj/.cpan/build/Perl-osnames-0.11-2/blib/arch
    /Users/hornenj/.cpan/build/Perl-osnames-0.11-2/blib/lib
    /Users/hornenj/.cpan/build/Data-Clean-JSON-0.38-2/blib/arch
    /Users/hornenj/.cpan/build/Data-Clean-JSON-0.38-2/blib/lib
    /Users/hornenj/.cpan/build/Data-Clean-0.48-2/blib/arch
    /Users/hornenj/.cpan/build/Data-Clean-0.48-2/blib/lib
    /Users/hornenj/.cpan/build/String-PerlQuote-0.02-2/blib/arch
    /Users/hornenj/.cpan/build/String-PerlQuote-0.02-2/blib/lib
    /Users/hornenj/.cpan/build/String-LineNumber-0.01-2/blib/arch
    /Users/hornenj/.cpan/build/String-LineNumber-0.01-2/blib/lib
    /Users/hornenj/.cpan/build/Clone-PP-1.06-4/blib/arch
    /Users/hornenj/.cpan/build/Clone-PP-1.06-4/blib/lib
    /Users/hornenj/.cpan/build/Data-Sah-Format-0.002-0/blib/arch
    /Users/hornenj/.cpan/build/Data-Sah-Format-0.002-0/blib/lib
    /Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/arch
    /Users/hornenj/.cpan/build/Data-Sah-0.87-1/blib/lib
    /Users/hornenj/.cpan/build/lib-filter-0.27-1/blib/arch
    /Users/hornenj/.cpan/build/lib-filter-0.27-1/blib/lib
    /Users/hornenj/.cpan/build/Module-Path-More-0.33-2/blib/arch
    /Users/hornenj/.cpan/build/Module-Path-More-0.33-2/blib/lib
    /Users/hornenj/.cpan/build/experimental-0.016-2/blib/arch
    /Users/hornenj/.cpan/build/experimental-0.016-2/blib/lib
    /Users/hornenj/.cpan/build/Time-Duration-Parse-AsHash-0.10.6-1/blib/arch
    /Users/hornenj/.cpan/build/Time-Duration-Parse-AsHash-0.10.6-1/blib/lib
    /Users/hornenj/.cpan/build/Text-sprintfn-0.08-1/blib/arch
    /Users/hornenj/.cpan/build/Text-sprintfn-0.08-1/blib/lib
    /Users/hornenj/.cpan/build/Scalar-Util-Numeric-PP-0.04-1/blib/arch
    /Users/hornenj/.cpan/build/Scalar-Util-Numeric-PP-0.04-1/blib/lib
    /Users/hornenj/.cpan/build/Sah-0.9.45-1/blib/arch
    /Users/hornenj/.cpan/build/Sah-0.9.45-1/blib/lib
    /Users/hornenj/.cpan/build/Module-Installed-Tiny-0.003-1/blib/arch
    /Users/hornenj/.cpan/build/Module-Installed-Tiny-0.003-1/blib/lib
    /Users/hornenj/.cpan/build/File-Slurper-0.009-4/blib/arch
    /Users/hornenj/.cpan/build/File-Slurper-0.009-4/blib/lib
    /Users/hornenj/.cpan/build/File-ShareDir-Tarball-0.2.2-1/blib/arch
    /Users/hornenj/.cpan/build/File-ShareDir-Tarball-0.2.2-1/blib/lib
    /Users/hornenj/.cpan/build/Test-File-ShareDir-1.001002-24/blib/arch
    /Users/hornenj/.cpan/build/Test-File-ShareDir-1.001002-24/blib/lib
    /Users/hornenj/.cpan/build/Data-Sah-Resolve-0.004-1/blib/arch
    /Users/hornenj/.cpan/build/Data-Sah-Resolve-0.004-1/blib/lib
    /Users/hornenj/.cpan/build/Sah-Schemas-Examples-0.005-1/blib/arch
    /Users/hornenj/.cpan/build/Sah-Schemas-Examples-0.005-1/blib/lib
    /Users/hornenj/.cpan/build/Sah-Schemas-Int-0.06-1/blib/arch
    /Users/hornenj/.cpan/build/Sah-Schemas-Int-0.06-1/blib/lib
    /Users/hornenj/.cpan/build/Data-ModeMerge-0.35-1/blib/arch
    /Users/hornenj/.cpan/build/Data-ModeMerge-0.35-1/blib/lib
    /Users/hornenj/.cpan/build/Mo-0.40-2/blib/arch
    /Users/hornenj/.cpan/build/Mo-0.40-2/blib/lib
    /Users/hornenj/.cpan/build/Data-Sah-Normalize-0.04-2/blib/arch
    /Users/hornenj/.cpan/build/Data-Sah-Normalize-0.04-2/blib/lib
    /Users/hornenj/.cpan/build/Data-Sah-Coerce-0.021-1/blib/arch
    /Users/hornenj/.cpan/build/Data-Sah-Coerce-0.021-1/blib/lib
    /Users/hornenj/.cpan/build/Test-Needs-0.002005-14/blib/arch
    /Users/hornenj/.cpan/build/Test-Needs-0.002005-14/blib/lib
    /Users/hornenj/.cpan/build/PERLANCAR-Module-List-0.003005-2/blib/arch
    /Users/hornenj/.cpan/build/PERLANCAR-Module-List-0.003005-2/blib/lib
    /Users/hornenj/.cpan/build/Nodejs-Util-0.006-1/blib/arch
    /Users/hornenj/.cpan/build/Nodejs-Util-0.006-1/blib/lib
    /Users/hornenj/.cpan/build/IPC-System-Options-0.30-2/blib/arch
    /Users/hornenj/.cpan/build/IPC-System-Options-0.30-2/blib/lib
    /Users/hornenj/.cpan/build/String-ShellQuote-1.04-3/blib/arch
    /Users/hornenj/.cpan/build/String-ShellQuote-1.04-3/blib/lib
    /Users/hornenj/.cpan/build/Proc-ChildError-0.04-2/blib/arch
    /Users/hornenj/.cpan/build/Proc-ChildError-0.04-2/blib/lib
    /Users/hornenj/.cpan/build/Data-Dmp-0.23-2/blib/arch
    /Users/hornenj/.cpan/build/Data-Dmp-0.23-2/blib/lib
    /Users/hornenj/.cpan/build/Regexp-Stringify-0.06-2/blib/arch
    /Users/hornenj/.cpan/build/Regexp-Stringify-0.06-2/blib/lib
    /Users/hornenj/.cpan/build/Data-Dump-Color-0.23-0/blib/arch
    /Users/hornenj/.cpan/build/Data-Dump-Color-0.23-0/blib/lib
    /Users/hornenj/.cpan/build/Scalar-Util-LooksLikeNumber-1.39.2-0/blib/arch
    /Users/hornenj/.cpan/build/Scalar-Util-LooksLikeNumber-1.39.2-0/blib/lib
    /Users/hornenj/.cpan/build/Complete-Module-0.24-1/blib/arch
    /Users/hornenj/.cpan/build/Complete-Module-0.24-1/blib/lib
    /Users/hornenj/.cpan/build/Filesys-Cap-0.02-1/blib/arch
    /Users/hornenj/.cpan/build/Filesys-Cap-0.02-1/blib/lib
    /Users/hornenj/.cpan/build/UUID-Random-0.04-2/blib/arch
    /Users/hornenj/.cpan/build/UUID-Random-0.04-2/blib/lib
    /Users/hornenj/.cpan/build/File-chdir-0.1010-53/blib/arch
    /Users/hornenj/.cpan/build/File-chdir-0.1010-53/blib/lib
    /Users/hornenj/.cpan/build/File-Slurp-Tiny-0.004-32/blib/arch
    /Users/hornenj/.cpan/build/File-Slurp-Tiny-0.004-32/blib/lib
    /Users/hornenj/.cpan/build/Complete-Path-0.23-2/blib/arch
    /Users/hornenj/.cpan/build/Complete-Path-0.23-2/blib/lib
    /Users/hornenj/.cpan/build/Complete-Util-0.58-2/blib/arch
    /Users/hornenj/.cpan/build/Complete-Util-0.58-2/blib/lib
    /Users/hornenj/.cpan/build/Log-Any-IfLOG-0.08-2/blib/arch
    /Users/hornenj/.cpan/build/Log-Any-IfLOG-0.08-2/blib/lib
    /Users/hornenj/.cpan/build/Complete-Common-0.22-2/blib/arch
    /Users/hornenj/.cpan/build/Complete-Common-0.22-2/blib/lib
    /Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/darwin-thread-multi-2level
    /Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3
    /Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/darwin-thread-multi-2level
    /Users/hornenj/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3
    .