caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jacques Garrigue <garrigue@math.nagoya-u.ac.jp>
To: Jacques Carette <carette@mcmaster.ca>
Cc: OCaML List Mailing <caml-list@inria.fr>
Subject: Re: [Caml-list] Option to fully expand types in error messages?
Date: Fri, 3 Jun 2016 08:59:20 +0900	[thread overview]
Message-ID: <AD235CA6-F7A5-4CD0-AC81-161921DC51E3@math.nagoya-u.ac.jp> (raw)
In-Reply-To: <F7B18907EEED5244A3608C61DF32A4E410D58989@FHSDB2D11-2.csu.mcmaster.ca>

On 2016/06/03 04:18, "Carette, Jacques" wrote:
> 
> In writing some code which uses a lot of monads with underlying types which use constraints, even simple errors can lead to extremely hard to read error messages.  The main reason is that the two types given in errors are partially expanded, to different levels.  This frequently means that the part where the type checker detects a mismatch is (extremely) opaque to human eyes.
> 
> In that case, it would actually be preferable to fully expand the types.  Yes, that will produce wallpaper.  But at least the mismatch should be considerably easier to catch.
> 
> Does this already exist, or should I submit a feature request?
> 
> Jacques

In the error message, types are expanded just enough to get down to the conflict.
If the conflict is not visible at that point, this is probably a scoping error (and there should be an extra line stating that);
otherwise this should be seen as a bug.
As Yaron pointed, -short-paths can help by at least giving a normal form for paths (which may not be the expansion, but should be unique in the error context). But it will not expand a type if the expansion is not a type constructor, or if the parameters are different.

Jacques

  parent reply	other threads:[~2016-06-02 23:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-02 19:18 Carette, Jacques
2016-06-02 19:44 ` Gabriel Scherer
2016-06-02 19:50   ` Yaron Minsky
2016-06-02 21:59     ` Carette, Jacques
2016-06-02 23:59 ` Jacques Garrigue [this message]
2016-06-03 15:42   ` Carette, Jacques
2016-06-03 15:50     ` Yaron Minsky
2016-06-04  6:27     ` Jacques Garrigue

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AD235CA6-F7A5-4CD0-AC81-161921DC51E3@math.nagoya-u.ac.jp \
    --to=garrigue@math.nagoya-u.ac.jp \
    --cc=caml-list@inria.fr \
    --cc=carette@mcmaster.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).