girving/duck — Issue #36: fix overload fixpoint resolution
Author: dylex
Created: 2011-11-10 18:16:39+00:00
State: open

As of commit af25439650f05f0dd0aade5a996fa53d9d9d63ea, overload fixpoint resolution does not properly deal with mutually recursive functions. The following fails:

```
f () = h (Type (f ()))

h :: Type Void -> Int
h Void = g ()

h :: Type Int -> Int
h Int = 0

g () = f ()

_ = Type (f ()) :: Type Int
_ = Type (g ()) :: Type Int
```