[plt-scheme] class initialization

From: Tom Sgouros (tomfool at as220.org)
Date: Wed Feb 6 10:11:13 EST 2008

Hello all:

I'm sure I'm being slow about this, but I'm still puzzling over this
passage in the mzlib manual:

  An inherit-field declaration makes a public field defined by a
  superclass directly accessible in the class expression... Every field
  in a superclass is present in a derived class, even if it is not
  declared with inherit-field in the derived class. The inherit-field
  clause does not control inheritance, but merely controls lexical scope
  within a class expression.

I don't understand what it means to be present, but not accessible.  How
can a field be inherited if I can't use it?  Can someone help clarify
that for me?  What do I do if I want to inherit a private field from the

The problem has arisen while puzzling over how to feed the parent class
its initialization parameters.  The documentation refers to the parent's
"initialization procedure".  But I'm not seeing anything that answers
that description in the same way as the well-defined super-init
procedure in the old class system.  Does this refer to the whole set of
operations invoked by a make-object call?

What I'm trying to do is only port some code I wrote in 1999 with the
class system in use then.  I didn't realize the class system had changed
so much.  Is there a class-vintage-1999.ss somewhere?

Many thanks,


 tomfool at as220 dot org

Posted on the users mailing list.