On Tue, Feb 04, 2003 at 10:14:19AM +0000, Ross Paterson wrote:
> On Tue, Feb 04, 2003 at 11:00:16AM +0100, Johannes Waldmann wrote:
> > data Container a = 
> >      Container   { contents :: a
> >              , info :: String
> >              } 
> 
> Definitely a bug in typing of record updates:
> 
> Bug> :t Container { contents = True , info = "foo" } { info = "bar" }
> Container{contents = True, info = "foo"}{info = "bar"} :: Container a

This was introduced in the last release.  Here's a patch that reverses it,
but presumably something more refined is needed to achieve the original aim:

Index: src/type.c
===================================================================
RCS file: /home/cvs/root/hugs98/src/type.c,v
retrieving revision 1.62
diff -u -r1.62 type.c
--- src/type.c  23 Jan 2003 17:47:08 -0000      1.62
+++ src/type.c  4 Feb 2003 10:28:08 -0000
@@ -1814,11 +1814,8 @@
                instantiate(t);
                shouldBe(line,snd(f),e,update,arg(fun(tr)),or);
            }                                   /* Unmentioned component   */
-           /* this is just a sanity check, and avoiding it lets us
-              handle records with polymoprhic components
            else if (!unify(arg(fun(td)),od,arg(fun(tr)),or))
                internal("typeUpdFlds");
-           */
 
            tr = arg(tr);
            td = arg(td);
_______________________________________________
Hugs-Bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/hugs-bugs

Reply via email to