Bikeshedding request for GHCi's :type

Manuel Gómez targen at gmail.com
Wed Apr 27 15:16:31 UTC 2016


On Wed, Apr 27, 2016 at 10:15 AM, John Leo <leo at halfaya.org> wrote:
> Speaking as someone teaching his coworkers Haskell now, Eric's is the best
> suggestion I've seen so far.
>
> What I like about it:
> * The original meaning of :type is unchanged.
> * No new command is added (I prefer adding a flag to adding another
> command).
> * With the flag on, the full type is shown along with the possible
> specializations (and good to note the list might not be exhaustive).  This
> way, beginners can still see what the type should look like even if they
> want to ignore it for now.  This is similar to learning to read Japanese by
> using furigana.  It may be a bit confusing for beginners at first, but I
> expect they'll quickly learn to ignore it until they need it, and I agree it
> will be useful for experienced Haskellers.

Perhaps a pleasant solution would be to borrow a convention from the
PostgreSQL community's interactive console psql and its meta-commands:
http://www.postgresql.org/docs/current/static/app-psql.html#APP-PSQL-META-COMMANDS

For example:

> \d[S+] [ pattern ]
>
> For each [object] matching the pattern, show all columns, their types, the tablespace (if not the default) and any special attributes such as NOT NULL or defaults. […]  The command form \d+ is identical, except that more information is displayed: any comments associated with the columns of the table are shown, as is the presence of OIDs in the table, the view definition if the relation is a view, a non-default replica identitysetting.

Many psql commands use this convention: add a + to the end of the
command, and you get extra information.  It’s quite nmemonic.


More information about the ghc-devs mailing list