[Haskell-cafe] Cyclic Inclusions

ajb at spamcop.net ajb at spamcop.net
Mon Aug 11 20:53:44 EDT 2008


G'day all.

Quoting "C.M.Brown" <cmb21 at kent.ac.uk>:

> Yes, I saw that, thanks! I guess this is because it's hard to compile a
> mutually recursive module...

It's because you don't need to declare the types of exported definitions.

Consider, this highly artificial example:

     module A where

     import B

     f (x,y) = g (x,'A')


     module B where

     import A

     g (x,y) = f (True,y)

To infer the types of f and g, you need to analyse both modules together.

And yes, some people think that this is a bug in the specification.

Cheers,
Andrew Bromage


More information about the Haskell-Cafe mailing list