[plt-scheme] cannot serialize classes with private methods
Jon Rafkind wrote:
>
>> When you leave out `public', you don't get a private method. Instead,
>> you get a procedure-valued field.
>>
>>
>>
> Sorry I misspoke, I tend to use private and, as you call them,
> procedure-valued fields interchangeably since I didn't see any real
> differences in them from the manual. Are there any other subtle
> differences between them?
>
>
While reading the class.ss manual I realized why I had thought (define
(foo) 2) was "private". In section 4.1 is an example:
(define stack%
(class* |object%| (stack<%>)
; Declare public methods that can be overridden:
(public push! pop! none?)
; Declare a public method that can be augmented, only:
(pubment print-name)
(define stack |null|) ; A private field
(init-field (name 'stack)) ; A public field
...))
So I took (define name value) to be the way you define a private anything, be it field or method.
Could the documentation be clarified a little bit?