[racket] inherit, inherit/super, and inherit/inner in class syntax
So I have been trying to learn the ins and outs of Racket's class system. I've a little puzzled when it comes to the "inherit"-forms. I've poured over the Racket Reference and fiddled with some experimental classes, but I'm still not clear.
My questions specifically are, What is the difference between inherit and inherit/super, and how does inherit/inner work?
Below is a link to the page with the documentation in the Racket reference that I'm trying to understand, along with the pertinent paragraphs.
Any help would be appreciated. Thanks!
--Christopher
http://docs.racket-lang.org/reference/createclass.html?q=class&q=arg-list-expr&q=define-values&q=contract-out&q=hash/c&q=match&q=cond&q=match&q=set-hash%21&q=let-values&q=list/c&q=is-a&q=listof&q=subclass&q=class/c&q=make-string&q=hash%3F&q=init-field&q=class/c&q=-%3E&q=chaperone&q=pos&q=positive&q=goto-line
> 5.2.3.2 Inherited and Superclass Methods
>
> Each inherit, inherit/super, inherit/inner, rename-super, and rename-innerclause declares one or more methods that are defined in the class, but must be present in the superclass. The rename-super and rename-inner declarations are rarely used, since inherit/super and inherit/inner provide the same access. Also, superclass and augmenting methods are typically accessed through super and inner in a class that also declares the methods, instead of through inherit/super, inherit/inner,rename-super, or rename-inner.
>
> Method names declared with inherit, inherit/super, or inherit/inner access overriding declarations, if any, at run time. Method names declared withinherit/super can also be used with the super form to access the superclass implementation, and method names declared with inherit/inner can also be used with the inner form to access an augmenting method, if any.