Type checker loops with type families, overlapping and undecidable instances

Tom Schrijvers Tom.Schrijvers at cs.kuleuven.be
Thu Dec 4 09:19:02 EST 2008


>> -- Uncommenting the line below causes the typechecker to loop (GHC 6.10.1,
>> Windows)
>> --test = f Zero
>
> Is this expected behavior or a bug?

The call f Zero requires a co-inductive proof of the type class 
constraint (F Nat):

 	F Nat <=> Vieweable Nat /\ F' (View Nat)
 	      <=> True /\ F' (Unit :+: Nat)
 	      <=> True /\ F Unit /\ F Nat
 	      <=> True /\ True /\ F Nat

The type checker does have functionality for such co-inductive proof 
(generating co-inductive dictionaries), but apparently it's not kicking in 
here. Probably because of the separate fixedpoint loops for type classes 
and type families in the checker.

--
Tom Schrijvers

Department of Computer Science
K.U. Leuven
Celestijnenlaan 200A
B-3001 Heverlee
Belgium

tel: +32 16 327544
e-mail: tom.schrijvers at cs.kuleuven.be
url: http://www.cs.kuleuven.be/~toms/


More information about the Glasgow-haskell-users mailing list