1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
unit i where module I where data I = I unit p where dependency i signature A(module A, I) where import I f :: I -> I g :: I unit q where dependency p[A=<A>] signature A where data I f :: I -> I module B where import A x = f g