Type Patterns: Pattern Matching on Shape-Carrying Array Types (The 35th Symposium on Implementation and Application of Functional Languages)