Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: Linking modules (Brent Yorgey)
----------------------------------------------------------------------
Message: 1
Date: Sat, 11 Dec 2010 15:37:23 -0500
From: Brent Yorgey <[email protected]>
Subject: Re: [Haskell-beginners] Linking modules
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=iso-8859-1
On Sat, Dec 11, 2010 at 08:56:23PM +0100, Chadda? Fouch? wrote:
> On Sat, Dec 11, 2010 at 7:37 PM, Russ Abbott <[email protected]> wrote:
> > 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.
> >
> > [snip]
> >
> > 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?
>
> GHC allows you to compile mutually recursive modules, see
> http://www.haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html#mutual-recursion
> for how to do it.
Yes, this is possible, but it has always seemed sort of fragile and
ugly to me. Another suggestion is to put the definitions of the
Structure and Component data types into a separate module called
Types, and then import Types into both the Structure module (which
defines functions over Structures) and the Component module (which
defines functions over Components). Then no circularity is needed.
-Brent
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 30, Issue 17
*****************************************