-- Last edited by Mitchell, April 23, 1980 12:03 PMBEGINErrorCode: TYPE = {damagedSample, callingError, programError};SampleRec: TYPE = RECORD[val: Value, next: Sample];Sample:  TYPE =  REF SampleRec;RETURNS [inSet: BOOLEAN, setMinus: SampleSet];-- ERRORs: Problem[damagedSample]END.This is where a global description of the module goesCHANGE LOGChanged by: YourName:  DateTimeDescriptionOfChangeRemoveSample: PROCEDURE[toBeRemoved: Sample, from: SampleSet]NewSampleSet: PROCEDURE RETURNS[nilSet: SampleSet];JGM-- FILE: CedarSampleImpl.mesa-- Last edited by Mitchell, April 23, 1980 3:19 PMDIRECTORYEXPORTS CedarSample  =Problem: ERROR[reason: ErrorCode]  =  CODE;. . .END;BEGINEND;-- ERRORs: Problem[damagedSample]RETURNS [inSet: BOOLEAN, setMinus: SampleSet]  =IF . . . THEN ERROR Problem[damagedSample];. . .END;RETURN [sample];ENDCASE  => ERROR Bug;Bug: ERROR = CODE;BEGIN. . .END;NewSample: PUBLIC PROCEDURE [val: Value]  RETURNS [Sample]  =NewSampleSet: PUBLIC  PROCEDURE  RETURNS [nilSet: SampleSet]  =RemoveSample: PUBLIC  PROCEDURE [toBeRemoved: Sample, from: SampleSet]DescriptionOfChangeChanged by: YourName:  DateTimeCHANGE LOGEND.Capitalize the first letter of module,procedure, signal, or type namesCapitalize the first letter of eachimbedded word of a multi-word nameBEGIN  sample: Sample;NO names in same scope differingonly by letter case distinctions excepta value with same name as its type butwith lowercase first letterOK to OPEN interface that moduleimplementsKeyword constructors, argument lists,and extractors preferred for multiple-component constructorsCalls on single-argument proceduresUse a small set of ERRORs with anerror code parameter.OK to have locally defined ERRORs Only raise SIGNALs using SIGNAL,ResumableCondition: PUBLIC SIGNAL = CODE;SomeSignal: PUBLIC SIGNAL = CODE;-- SIGNALs: ResumableCondition, SomeSignalattach stylized comments to proce-dures that generate ERRORs orSIGNALs.Only let signals that are part of theabstraction escape out of it.if DIRECTORY entry has a USING listCedar Style SheetAllocateSampleSet : PROCEDURE RETURNS [uninitedSet: SampleSet]  =scope where it is heavily usedOK to OPEN an interface in a localOK to use unnamed OPEN of interfacePrint on color printer if you can.-- FILE: CedarSample:  DEFINITIONS  =IntervalType: Problem: ERROR [reason: ErrorCode];NewSample:  PROCEDURE [val: Value]  RETURNS  [Sample];emptySet:  SampleSet  =  NIL;USING [SomeProc, SomeType],CedarSampleImplBEGIN  OPEN  CedarSample;x: =  0;IF  val = 0  THEN  val _ [x];nilSet _ AllocateSampleSet[ ! AllocFault =>  ERROR  Problem[programError] ];nilSet  _  [head: NIL,  count: 0];BEGIN  SomeProc[y];SIGNAL  ResumableCondition;AllocFault: ERROR=  CODE;         --  error for local use in this moduleCedarSampleTYPE  =  [0 .. upperLimit);   -- preferred form for intervalsNaming a type is better than using ananonymous type constructor.don't have to use keyword notationand SIGNALsand ERROR using ERRORNO using ENDCASE to handle a singleremaining case: use as "OTHERWISE"or to generate an ERROR.mesaStandard postlude for a module upperLimit:  INTEGER  =  32;    -- name the upper limit of an interval typeincludes a history log of (non-trivial)changes to the modulePROGRAM module name is normalyformed by suffixing interface namewith "Impl".  Alternatively, name maybe totally different than interface'sSomeInterfaceCedarSample;No common suffix on the namesof DEFINITIONS modulesQualify  identifiers from interfacesWITH refAnyVar SELECT FROMFiled on [Indigo]<CedarDocs>Language>StyleSheet.sil, .pressr: REF REAL => r^ _ r^ + 1.0;i: REF INT => { . . .. . .  };b: REF  BOOLEAN => Standard prelude for a moduleUse REF ANY instead of variantrecords and discriminateSampleSetRec: TYPE = RECORD[head: Sample, count: Value];SampleSet: TYPE = REF SampleSetRec;:  PROGRAM  IMPORTS  SI: SomeInterfaceSI.SomeProcSI.SomeTypeOPEN  SI;16 AUG 82��ùxúÿøÿîuïc™ð3îÈïc¼þ�$9ù�ú�ø�îtï_Jðî²ïS|ð>ùxúÿøÿîÈïdµþŽ�$ù�ú�ø�îïY¼ð3îïZØðî!åïM‚ð.ùxúÿøÿî«ïLfð!ù�ú�ø�îïH‚ðùxúÿøÿîuïFØð5îïE-ð
îïCÉðî«ïBfðù�ú�ø�îtïNŸð=ùúÿøZîrïf`þ&å�$îrïA´þ'�$ù�ú�ø�îïPJð3úÿøÿî��ï@ðùøZîrï@—þ&å�$î:WïUþ�$=fîrï2þ'�$îrï2þ�$=‰ù�ú�ø�îuï?4ðîï>ð2îtï<mð	îäï7lðîï4¥ð+î«ï*ìðî«ï(lðî«ï%^ðî«ï!3ðî«ïìð!î!åïð0îòï$ð+î«ï]ðî«ïùðî«ï)Ððùxúÿøÿîï2ðù�ú�ø�îïAðî«ïðî«ï@ðî«ï
$ðîï03ð=îï&zð?îï%ðFî«uïÀðîï$ðîï‡ð
îtïyðîÎïYuð&îÎïXXð î�GïIÂð#î�GïH¦ð"ùxúÿøÿîï`Cþ�$îï\<þŽ�$î²ïTQþä�$îïQ­þŽ�$ù�ú�ø�î«ï/ðùxúÿøÿî :ï+zþŽ�$î«ï.ðù�ú�ø�î�Žï1Þð î�Žï0Âð'î�Žï/¥ð&î�Žï.‰ðùxúÿøÿî«ï-×þ9�$ù�ú�ø�î<ï6	ð î<ï4ìð
ùxúÿøÿî+ï5Âþ	+�$îï8Bþ�$ù�ú�ø�î�Žï"Þð%î�Žï!Áð&î�Žï ¥ðî�GïÝð#ùxúÿøÿîïëþ9�$ù�ú�ø�î<´ïT¼ð!î<´ïSŸðî<ïOð"î<ïð îï2ûð)îï1Þð!ùxúÿøÿî«ïKJð*ù�ú�ø�î<ïL­ð"î<ïK‘ðî<ïJtðùxúÿøÿî!ÁïOþ
V�$ù�ú�ø�î<ï#úð%î<ï"Þðî<ï:4ð#ùxúÿøÿî<ï"ºþ�$9î<ï4‚þ�$9î<ï:þ�$9î#Öïëþ+�$î<ïdþ�$UîïþV�$îsïþ�$î<ï
þ�$9î<ïþ�$€î;-ïÏþ�ù�$îïÝþ�$î+žïÝþ�$î;-ïOþ�$²î+ïJßþ�$9î<ïJ	þ�$Uî$ïTQþ#�$î<%ïS4þ�$€î¬ï\<þ!V�$î<ï[þ�$€îï\<þ‡�$îÁïTQþ‡�$îïQ­þ‡�$îïQÑþ�$–îÈïX5þ�$9îïIŸþr�$ùøZîrïA×þ�$$¬î:WïA×þ�$$¬ùxøÿîÈïIŸþ]�$îÈïH¦þ�$9îÈï8Bþ]�$îÈï+žþ�$îÈï.eþ�$rîï"þ
��$îÈï"þ]�$îÈï!þ�$ÇîÈïzþy�$îÈïþ�$9îÈïþ�$9ù�îszïh.ðú�ø�îtï
2ðAùxúÿøÿî<ï<´þÈ�$îMÊï9‚þ�$Uî<ï9^þë�$î<ï9^þ�$yî<ï%þÈ�$îMÊï"sþ�$Çî<ï"Oþë�$î<ï"Oþ�$ëî<ï7%þÈ�$îMÊï4‚þ�$Çî<ï4^þë�$î<ï4^þ�$ëî<ïMÊþÈ�$îMÊïJ	þ�$äî<ïIæþë�$î<ïIæþ�$î<%ïUØþÈ�$îMíïS4þ�$Çî<%ïSþë�$î<%ïSþ�$ëî<ï]ÃþÈ�$îMÊï[þ�$Çî<ïZüþë�$î<ïZüþ�$ëî��ïKþÈ�$îÈïH_þ�$Çî��ïH;þë�$î��ïH;þ�$ëî��ïZ‘þÈ�$îÈïWíþ�$Çî��ïWÊþë�$î��ïWÊþ�$ëî��ïfþÈ�$îÈïcuþ�$Çî��ïcQþë�$î��ïcQþ�$ëî��ï:ÂþÈ�$îÈï6	þ�$Ýî��ï5åþë�$î��ï5åþ�$�î��ï,ÞþÈ�$îÈï+Wþ�$«î��ï+3þë�$î��ï+3þ�$Îî��ï2ûþÈ�$îÈï.Aþ�$Ýî��ï.þë�$î��ï.þ�$�î��ï#úþÈ�$îÈï :þ�$äî��ï þë�$î��ï þ�$î��ïÝþÈ�$îÈï:þ�$Çî��ïþë�$î��ïþ�$ëî��ïúþÈ�$îÈïVþ�$Çî��ï2þë�$î��ï2þ�$ëî<ï3þÈ�$îMÊïþ�$Çî<ïkþë�$î<ïkþ�$ëî<ïÝþÈ�$îMÊïþ�$äî<ïùþë�$î<ïùþ�$î<ïkþÈ�$îMÊïÈþ�$Çî<ï¤þë�$î<ï¤þ�$ëî!Vï²þŽ�$îï²þO�$îïºþ�$îÈï–þ�ù�$î+ïKØþ�Õ�$îï;	þ+�$îHïˆþ+�$îïˆþ�$ù�ú�ø�î<ïÖðùxúÿøÿî<ïþÈ�$îMÊïkþ�$Çî<ïHþë�$î<ïHþ�$ëîÈïY.þ�Õ�$îï`Cþ«�$ù�ú�ø�î<ïóð"î<ï;Pð#ùxúÿøÿî,,ïKØþÖ�$ù�î	+ï@ð"ùxîuïdüð	îäïdµþd�$îtï`Šðù�ú�ø�î¬ï`Šðùxúÿøÿîï\ƒðî²ïT˜ð	ù�ú�ø�îkïT˜ðùxúÿøÿîïQôð	ù�ú�ø�îïQôð-ùxúÿøÿîïIæðù�ú�ø�îïIæðùxúÿøÿîäï;Pðîï8‰ðù�ú�ø�îï6	ðùxúÿøÿî+ï6	ðù�ú�ø�î«ï,ÞðîOï,Þðùxúÿøÿî¤ï,—þ�$ù�ú�ø�î«ï+Áðî&Wï+Áðùxúÿøÿîï-×þ¤�$îÈï0žþ�Õ�$îï-úþ�$Çîï,—þ�$îï+zþ
2�$îï+žþ�$îÈï,	þ�Õ�$ù�ú�ø�î«ï#úðùxúÿøÿî"ºï#úð.ù�ú�ø�î8¬ï#úðùxúÿøÿî"ºï#³þÏ�$î8ôï#³þ�$ù�ú�ø�î«ï"–ðùxúÿøÿîÖï"–ðù�ú�ø�îòïÏðùxúÿøÿî!Vïúðî!žï–ðîïOðù�ú�ø�îïOð7ùxúÿøÿî+uïdüðù�ú�ø�îótï\ƒð=î<ï\§ð%î<ï[Šðî�GïÁð"î<ï
2ðî<ïúðî<ïÁð#î<ï¤ð"î<ïˆðùxúÿøÿîHuïdüðî.¬ïbþ�$äî.¬ïcàþ�Õ�$î/Éïcàþ9�$î<ïd‘þÈ�$îMÊïc
þ�$«î<ïbçþë�$î<ïbçþ�$Îî.¬ïBþ�$î.¬ïE	þ�Õ�$î/ÉïE	þ9�$ù�ú�ø�î<tïEPðùxúÿøÿî<ïFmþÈ�$îMÊïB­þ�$äî<ïB‰þë�$î<ïB‰þ�$ù�ú�ø�îï^
ðKî<ïD4ð'î<ïCðî�Žï9¥ðî�Žï8‰ð"î�Žï7lð%î�Žï6Pð%ùxúÿøÿî!åï5Âþ�$ù�ú�ø�î«ï;Pð
î«ï:4ðùxúÿøÿî+Wï;	þÏ�$ù�ú�ø�î�Gïdüðî�Gïcàðî�Žï+Áð$ùxúÿøÿîòïÁðî«ïzþ¹�$ù�î3ï@ð;ú�ø�îï]ðîïúðî(ïúð	îï–ðùxúÿøÿî/ÉïOþd�$ù�ú�ø�î<ïcuðî�GïÁðî�Gï¤ðîïVŠð8îïXðùxúÿøÿî :ïXð
î :ïWÊþ�$î'—ïWÊþ
Ö�$î2lïWÊþ�$•ù�ú�ø�îï8‰ð&ùxúÿøÿî ]ï+Áðîëï,ÞðîHïÏð	ù�îUï@ð	ÿ��������ä�����ùNÃhà���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	Helvetica������������������	Helvetica����������������
�	HELVETICA����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������i���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������j/����ÿÿ™ˆ .��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿstylesheet.sil¡#3 �������������€����������€������MitchellN����������������������16-Aug-82 14:46:22���������������������������������������������������������������������������������������������������������������������������������������������������������