Prismatic/schema — pull request #146 by w01fe (2014-09-16 06:09:19+00:00)
Title: Deprecate old ^{:s } syntax

The `^{:s ...}` syntax predates the introduction of `:-` syntax (and the public release), and introduces complexity and style variation without buying anything. A subsequent release will most likely remove this syntax, while retaining just the ability to use `^Class` syntax to provide type hint overrides (for avoiding reflection) to Clojure.

For example, in
```clojure
(s/defn foo :- String
...)

(s/defn ^String bar :- (s/pred #(and (string? %) (< 10 (count %))) 'short-string?)
...)
```

`foo` has both output schema and Clojure type-hint `String`, whereas `bar` has a more complex output schema but still the `String` type hint.

This seems like it should be uncontroversial, but if it will cause issues for anyone please comment here.