1 -- An example of RelaxedPolyRec in action which came up

2 -- on Haskell Cafe June 2010 (Job Vranish)

8 -- The fixed point datatype

11 -- Silly dummy function

15 ---------------------------

16 -- f and g are mutually recursive

17 -- Even though f has a totally monomorphic

18 -- signature, g has a very polymorphic one

23 -- With RelaxedPolyRec we can infer this type

24 -- g :: Functor f => (f Int -> b) -> f (Y Maybe) -> b

27 -- 'test' checks that g's type is polymorphic enough

29 test = g