Both compile_tr and compile_tr_private_experimental fail for pk(A). Expected result in both cases is tr(A), extract_key correctly promotes A to the taproot internal key, but the remaining Policy::Unsatisfiable is not handled the same as Policy::Trivial, causing it to fall through to leaf compilation with nothing to compile.
compile_tr_private_experimental also panics for and(pk(A),pk(B)) (compile_tr is fine there).
I discovered this while trying to push for a privacy first taproot compiler in bdk-cli: bitcoindevkit/bdk-cli#244
Both
compile_trandcompile_tr_private_experimentalfail forpk(A). Expected result in both cases istr(A),extract_keycorrectly promotesAto the taproot internal key, but the remainingPolicy::Unsatisfiableis not handled the same asPolicy::Trivial, causing it to fall through to leaf compilation with nothing to compile.compile_tr_private_experimentalalso panics forand(pk(A),pk(B))(compile_tris fine there).I discovered this while trying to push for a privacy first taproot compiler in bdk-cli: bitcoindevkit/bdk-cli#244