
On Mar 21, 2018, at 2:25 PM, Joachim Breitner
wrote: How about we special case the syntax
:type _ :: Foo
I really liked this for a moment, but then I realized it doesn't work if you want to reduce a type that isn't of kind Type. But maybe you're onto something here. What about having the following set of options for :type: 1. +v means to print the type of the thing exactly as-is, without any funny business 2. +d means to default the type 3. +t means that you're asking for the type of a type, instead of the type of an expression 4. +f means to evaluate any type families 5. +s means to expand any type synonyms +v is incompatible with +d, +f, and +s. Otherwise, I think these mix nicely. :kind becomes a synonym for :type +t and :kind! becomes a synonym for :type +t +f. Note that users can define their own synonyms through :def. Richard