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
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to