#1
solvable(1) => 1; // 1 is solvable solvable(["+" | L]) => some(solvable, L); // + rooted solvable if some subtree is solvable(["*" | L]) => all(solvable, L); // * rooted solvable if each subtree is solvable(_) => 0; // nothing else is solvable