<p dir="ltr">On 27 May 2014 22:51, "James Noble" <<a href="mailto:kjx@ecs.vuw.ac.nz">kjx@ecs.vuw.ac.nz</a>> wrote:<br>
><br>
> On 27/05/2014, at 12:14 pm, Michael Homer <<a href="mailto:Michael.Homer@ecs.vuw.ac.nz">Michael.Homer@ecs.vuw.ac.nz</a>> wrote:<br>
><br>
> > Any other file:<br>
> >    import "mysetofmodules" as platform<br>
> >    // Congratulations, you now have a platform object to do with as you will!<br>
> >    platform.fred.etc.etc<br>
><br>
> I was just about to say "hey this is (yet another) neat trick that I didn't think of before"<br>
> (and then repeat the line about basic mechanisms being used in many ways)<br>
><br>
> and then I though - doesn't this require a circular import?<br>
> platform inherits everything else, and everything else inherits platform?<br>
This only works when you have separated client code and library code, which I think is the goal here. So you can swap out one list implementation for another across all your client code at once, but not swap out one piece of client code for for another. You can have internal dependencies on either side as well, but platform is an isthmus.<br>

-Michael</p>