test(A(explode("a")),
['a', []]);
test(A(explode("a+b")),
[['+', 'a', 'b'], []]);
test(A(explode("a+b+c")),
[['+', 'a', ['+', 'b', 'c']], []]);
test(A(explode("a+b+c+a")),
[['+', 'a', ['+', 'b', ['+', 'c', 'a']]], []]);
test(A(explode("")),
[FAILURE, []]);
test(A(explode("+")),
[FAILURE, ['+']]);
test(A(explode("ab")),
['a', ['b']]);
test(A(explode("a+b+")),
[['+', 'a', 'b'], ['+']]);
test(A(explode("a+b+c+")),
[['+', 'a', ['+', 'b', 'c']], ['+']]);
test(A(explode("ab+c")),
['a', ['b', '+', 'c']]);
test(A(explode("a+b+")),
[['+', 'a', 'b'], ['+']]);