[Haskell-beginners] Linking modules

Russ Abbott russ.abbott at gmail.com
Sat Dec 11 19:37:01 CET 2010


I have two modules Structure and Component.  Module Structure defines
     data Structure = Component ...

Module Component defines
    data Component = ...

I would like Structure to import Component.  But Component
includes functions that take a Structure as an argument. So I have (or would
like) something like this organization.

Module Structure where
import Component
data Structure = Component ...

Module Component where
data Component = ...

f ::  Structure -> Component ->Structure


The functions in Component are really very Component related and should not
be moved to Structure. So how can I set up this circular relationship?


I thought that one approach would be to do something like the following. But
when I try I get all fouled up.  Help would be appreciated.

Module Structure where

 class Comp
data Structure = Comp ...

Module Component where
import Structure
data Component = ...

instance Comp Component


If I do this I get a complaint that class Comp needs a type parameter.  If I
give it an artificial one, that leads to all sorts of other problems. Is
there a better way?

Thanks.
*
-- Russ *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20101211/24a1e5d7/attachment.htm>


More information about the Beginners mailing list