Give an error if sub-pattern that expects expression gets statement matcher.
For example, (+ a b) expects both a and b to be expressions.
Pattern like (+ (if ...) (for ...)) will never match.
Error should be given at compile-time and read like:
compile pattern: "(+ (block 1) 2)"
error: "arg 0: (block 1) is not an expression in (+ (block 1) 2)"
The exact error message may differ.