Rust does not support view pattern (called in Haskell) or app pattern (called in Racket). And that has been implemented in this library.