(Program (Case (Identifier) (When (Args (Identifier)) {-(Identifier)-} {-(When (Args (Identifier)) (Args (Identifier)) (Else (Identifier)))-})) {+(Case (When (Args (Boolean)) (StringLiteral)))+})