id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
81	Bug in core type checker	benl		"With this program
{{{
class Copy2 a where
  copy2 :: forall b. a -(!e1)> b
	:- !e1 = !ReadT a
	,  Shape2 a b

instance Copy2 Int where
  copy2 x = x

main ()
 = do	i :: Int %r1 :- Const %r1
	i	= 5
	i'	= copy2 i
        i' := 27
	()
}}}

Have this in dump-core-dict
{{{
i' = /\ (+xC9             :: Mutable %rTS21) ->
     [** (Base.Int32 %rTS21) ]
     do {
        instance_Copy2_Int32_copy2 %r1 (i +wCB4);
     };
}}}

return type of copy2 is {{{(Int32 %r1)}}}, not {{{(Int %rTS21)}}}

This problem originally originally arises because the instance for copy2
didn't copy the int like it should have. 

Is really 2 bugs: core type checker, and and not checking instances against class defs

"	defect	new	blocker	0.1.3	Build System	0.1.2			
