plt/racket — pull request #629 by takikawa (2014-04-28 19:03:20+00:00)
Title: Add a syntax for some asymmetric predicate filters

This PR adds a simpler syntax for writing filters for asymmetric predicate filters like on the `filter` function.

Here are two examples:

```racket
Welcome to Racket v6.0.1.6.
-> filter
- : (All (a b)
(case->
(-> (-> a Any : #:+ b) (Listof a) (Listof b))
(-> (-> a Any) (Listof a) (Listof a))))
#
-> takef
- : (All (a b)
(case->
(-> (Listof a) (-> a Any : #:+ b) (Listof b))
(-> (Listof a) (-> a Any) (Listof a))))
#
```

Note that the `#:+` syntax used here is similar to the old one, but allows leaving off the `@ 0` part.

More generally, I think we should also just use the currently implemented but not printed or documented syntax for complex filters. We would also need to think about how multiple `Values` with filters should be printed.