Marcus Denker draw attention to 'gradual typing'(http://ecee.colorado.edu/~siek/gradualtyping.html). If I do understand it fully, Pegon is actually supporting the concept of gradual typing. E.g. all types are initially unknown when they are not annotated. The Pegon inferencer tries to complement those type. Unknown types are the subtypes and supertypes of all types. So the following code is type valid by the Pegon type system. The 'appointment' parameter of #addAppointment: will be inferred to be AgendaItem.... read more
The source is currently managed and published in the Cincom Public Repository (store.cincomsmalltalk.com:5432_store_public). Feel free to try it and send me feedback. To load the source, just load the 'Pegon Config' package. This package will load all prerequisites.