[Haskell-cafe] circular imports

Edward Z. Yang ezyang at MIT.EDU
Mon Sep 6 13:44:08 EDT 2010


Excerpts from Evan Laforge's message of Mon Sep 06 13:30:43 -0400 2010:
> I feel like the circular imports problem is worse in haskell than
> other languages.  Maybe because there is a tendency to centralize all
> state, since you need to define it along with your state monad.  But
> the state monad module must be one of the lower level ones, since all
> modules that use it must import it.  However, the tendency for bits of
> typed data to migrate into the state means it's easy for it to
> eventually want to import one of its importers.  And the state monad
> module gets larger and larger (the largest modules in my system are
> those that define state monads: 1186 lines, 706 lines, 1156
> lines---the rest tend to be 100--300 lines).

I have used hs-boot files to this effect.  I separated data and functionality,
and typeclasses, which must be in the same module as data or are considered
orphaned, get definitions via a circular import.

Edward


More information about the Haskell-Cafe mailing list