destruct: better behavior when refining sub patterns
destruct: more informative error message
destruct: use [failwith "TODO"] as placeholder instead of [assert false]