Add pure, implement deducer for vector

TODO
 * rename pure
 * applicative?
 * what does fmap look like with more args; what does that even mean?
 * Finish ad-hoc deducer, and write some tests for it
 * Rename Deducer protocol, and AdHocDeducer -> Deducer
 * Better way than dynamically bound var to do pure?