This is being emitted with [GCC 10.2.1](https://packages.debian.org/bullseye/g++-arm-linux-gnueabihf), in some CI jobs: i.e https://github.com/bitcoin/bitcoin/pull/25972/checks?check_run_id=12423693655, or https://github.com/bitcoin/bitcoin/pull/25972/checks?check_run_id=12423693651 (where we actually turn on all our warning flags with depends builds).
```bash
In file included from test/miniscript_tests.cpp:19:
./script/miniscript.h:1197:71: error: comparison of integers of different signs: 'typename iterator_traits<int *>::difference_type' (aka 'int') and 'const uint32_t' (aka 'const unsigned int') [-Werror,-Wsign-compare]
                    return std::count(subs.begin(), subs.end(), true) >= node.k;
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~
test/miniscript_tests.cpp:346:34: note: in instantiation of function template specialization 'miniscript::Node<CPubKey>::IsSatisfiable<(lambda at test/miniscript_tests.cpp:346:48)>' requested here
        bool satisfiable = node->IsSatisfiable([](const Node&) { return true; });
                                 ^
1 error generated.
```

cc @darosior 
/** A single expression of type B, K, or V. Specifically, this can't be an
     * and_v or an expression of type W (a: and s: wrappers). */
    SINGLE_BKV_EXPR,
    /** Potentially multiple SINGLE_BKV_EXPRs as children of (potentially multiple)
     * and_v expressions. Syntactic sugar for MAYBE_AND_V + SINGLE_BKV_EXPR. */
    BKV_EXPR,
    
    W_EXPR,
    /** SWAP expects the next element to be OP_SWAP (inside a W-type expression that
     * didn't end with FROMALTSTACK), and wraps the top of the constructed stack
     * with s: */
    SWAP,
    /** ALT expects the next element to be TOALTSTACK (we must have already read a
     * FROMALTSTACK earlier), and wraps the top of the constructed stack with a: */
    ALT,
    
    CHECK,
    
    DUP_IF,
    
    VERIFY,
    
    NON_ZERO,