id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
5236,Circular functional dependencies cause loop in typechecker,dimitris,,"In the attached file, a dictionary (Id A B) is rewritten with two 
functional dependencies (A -> B, B -> A) and two errors are added in our constraint bag (rightfully so), but the new workitem is symmetric (Id B A), goes back in the worklist and in the new iteration of the solver we have exactly the same process repeated.

This is a solveInteractWithDepth loop, not a solve_wanteds loop.
I think the right thing to do is in doTopReact: (1) first try to apply functional dependencies, (2) then check if an instance matches, and (3) do a ContinueWith or a Stop but never throw the workitem back in the worklist as happens now. I have to discuss 
this with Simon.
",bug,closed,normal,,Compiler (Type checker),7.0.3,fixed,,simonpj@… stevez@…,Unknown/Multiple,Unknown/Multiple,None/Unknown,,typecheck/should_fail/T5236.hs,,,
