-- SaffronAG3Def.mesa
 -- Copyright س 1987 by Xerox Corporation.  All rights reserved.
 -- Generated by Rauen.pa at September 1, 1988 7:24:32 pm PDT
 --  using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT

DIRECTORY
	SaffronTreeDeclsDef,
	SaffronGenericDef,
	SaffronATDef;

SaffronAG3Def: CEDAR DEFINITIONS = 
BEGIN
OPEN SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef;

-- QualifierprefixopProd

QualifierprefixopProdData:	TYPE = REF QualifierprefixopProdDataBody;
QualifierprefixopProdDataBody:	TYPE = RECORD[
PrefixOp: PrefixOpNode];

QualifierprefixopProdProcs:	QualifierNodeProcs;

BuildQualifierprefixopProdNode:	PROC[position: INT, length: INT, PrefixOp: PrefixOpNode]
	RETURNS[QualifierNode];

QualifierprefixopProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifiertypeopProd

QualifiertypeopProdData:	TYPE = REF QualifiertypeopProdDataBody;
QualifiertypeopProdDataBody:	TYPE = RECORD[
TypeOp: TypeOpNode];

QualifiertypeopProdProcs:	QualifierNodeProcs;

BuildQualifiertypeopProdNode:	PROC[position: INT, length: INT, TypeOp: TypeOpNode]
	RETURNS[QualifierNode];

QualifiertypeopProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifiersizeProd

QualifiersizeProdData:	TYPE = REF QualifiersizeProdDataBody;
QualifiersizeProdDataBody:	TYPE = RECORD[
];

QualifiersizeProdProcs:	QualifierNodeProcs;

BuildQualifiersizeProdNode:	PROC[position: INT, length: INT]
	RETURNS[QualifierNode];

QualifiersizeProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierbitsProd

QualifierbitsProdData:	TYPE = REF QualifierbitsProdDataBody;
QualifierbitsProdDataBody:	TYPE = RECORD[
];

QualifierbitsProdProcs:	QualifierNodeProcs;

BuildQualifierbitsProdNode:	PROC[position: INT, length: INT]
	RETURNS[QualifierNode];

QualifierbitsProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierbytesProd

QualifierbytesProdData:	TYPE = REF QualifierbytesProdDataBody;
QualifierbytesProdDataBody:	TYPE = RECORD[
];

QualifierbytesProdProcs:	QualifierNodeProcs;

BuildQualifierbytesProdNode:	PROC[position: INT, length: INT]
	RETURNS[QualifierNode];

QualifierbytesProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierunitsProd

QualifierunitsProdData:	TYPE = REF QualifierunitsProdDataBody;
QualifierunitsProdDataBody:	TYPE = RECORD[
];

QualifierunitsProdProcs:	QualifierNodeProcs;

BuildQualifierunitsProdNode:	PROC[position: INT, length: INT]
	RETURNS[QualifierNode];

QualifierunitsProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierwordsProd

QualifierwordsProdData:	TYPE = REF QualifierwordsProdDataBody;
QualifierwordsProdDataBody:	TYPE = RECORD[
];

QualifierwordsProdProcs:	QualifierNodeProcs;

BuildQualifierwordsProdNode:	PROC[position: INT, length: INT]
	RETURNS[QualifierNode];

QualifierwordsProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierapplyProd

QualifierapplyProdData:	TYPE = REF QualifierapplyProdDataBody;
QualifierapplyProdDataBody:	TYPE = RECORD[
ExpList: ExpListNode, Catch: CatchNode];

QualifierapplyProdProcs:	QualifierNodeProcs;

BuildQualifierapplyProdNode:	PROC[position: INT, length: INT, ExpList: ExpListNode, Catch: CatchNode]
	RETURNS[QualifierNode];

QualifierapplyProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierselectProd

QualifierselectProdData:	TYPE = REF QualifierselectProdDataBody;
QualifierselectProdDataBody:	TYPE = RECORD[
Id: IdNode];

QualifierselectProdProcs:	QualifierNodeProcs;

BuildQualifierselectProdNode:	PROC[position: INT, length: INT, Id: IdNode]
	RETURNS[QualifierNode];

QualifierselectProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- QualifierindirectProd

QualifierindirectProdData:	TYPE = REF QualifierindirectProdDataBody;
QualifierindirectProdDataBody:	TYPE = RECORD[
];

QualifierindirectProdProcs:	QualifierNodeProcs;

BuildQualifierindirectProdNode:	PROC[position: INT, length: INT]
	RETURNS[QualifierNode];

QualifierindirectProdCompileQualifiedExpression:	CompileQualifiedExpressionProcType;

-- PrefixOplongProd

PrefixOplongProdData:	TYPE = REF PrefixOplongProdDataBody;
PrefixOplongProdDataBody:	TYPE = RECORD[
];

PrefixOplongProdProcs:	PrefixOpNodeProcs;

BuildPrefixOplongProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOplongProdfoo:	fooProcType;

-- PrefixOpabsProd

PrefixOpabsProdData:	TYPE = REF PrefixOpabsProdDataBody;
PrefixOpabsProdDataBody:	TYPE = RECORD[
];

PrefixOpabsProdProcs:	PrefixOpNodeProcs;

BuildPrefixOpabsProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOpabsProdfoo:	fooProcType;

-- PrefixOppredProd

PrefixOppredProdData:	TYPE = REF PrefixOppredProdDataBody;
PrefixOppredProdDataBody:	TYPE = RECORD[
];

PrefixOppredProdProcs:	PrefixOpNodeProcs;

BuildPrefixOppredProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOppredProdfoo:	fooProcType;

-- PrefixOpsuccProd

PrefixOpsuccProdData:	TYPE = REF PrefixOpsuccProdDataBody;
PrefixOpsuccProdDataBody:	TYPE = RECORD[
];

PrefixOpsuccProdProcs:	PrefixOpNodeProcs;

BuildPrefixOpsuccProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOpsuccProdfoo:	fooProcType;

-- PrefixOpordProd

PrefixOpordProdData:	TYPE = REF PrefixOpordProdDataBody;
PrefixOpordProdDataBody:	TYPE = RECORD[
];

PrefixOpordProdProcs:	PrefixOpNodeProcs;

BuildPrefixOpordProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOpordProdfoo:	fooProcType;

-- PrefixOpminProd

PrefixOpminProdData:	TYPE = REF PrefixOpminProdDataBody;
PrefixOpminProdDataBody:	TYPE = RECORD[
];

PrefixOpminProdProcs:	PrefixOpNodeProcs;

BuildPrefixOpminProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOpminProdfoo:	fooProcType;

-- PrefixOpmaxProd

PrefixOpmaxProdData:	TYPE = REF PrefixOpmaxProdDataBody;
PrefixOpmaxProdDataBody:	TYPE = RECORD[
];

PrefixOpmaxProdProcs:	PrefixOpNodeProcs;

BuildPrefixOpmaxProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOpmaxProdfoo:	fooProcType;

-- PrefixOpbaseProd

PrefixOpbaseProdData:	TYPE = REF PrefixOpbaseProdDataBody;
PrefixOpbaseProdDataBody:	TYPE = RECORD[
];

PrefixOpbaseProdProcs:	PrefixOpNodeProcs;

BuildPrefixOpbaseProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOpbaseProdfoo:	fooProcType;

-- PrefixOplengthProd

PrefixOplengthProdData:	TYPE = REF PrefixOplengthProdDataBody;
PrefixOplengthProdDataBody:	TYPE = RECORD[
];

PrefixOplengthProdProcs:	PrefixOpNodeProcs;

BuildPrefixOplengthProdNode:	PROC[position: INT, length: INT]
	RETURNS[PrefixOpNode];

PrefixOplengthProdfoo:	fooProcType;

-- TypeOpcodeProd

TypeOpcodeProdData:	TYPE = REF TypeOpcodeProdDataBody;
TypeOpcodeProdDataBody:	TYPE = RECORD[
];

TypeOpcodeProdProcs:	TypeOpNodeProcs;

BuildTypeOpcodeProdNode:	PROC[position: INT, length: INT]
	RETURNS[TypeOpNode];

TypeOpcodeProdTypeOpIsCode:	TypeOpIsCodeProcType;
TypeOpcodeProdTypeOpIsFirst:	TypeOpIsFirstProcType;
TypeOpcodeProdTypeOpIsLast:	TypeOpIsLastProcType;
TypeOpcodeProdTypeOpIsNil:	TypeOpIsNilProcType;

-- TypeOpfirstProd

TypeOpfirstProdData:	TYPE = REF TypeOpfirstProdDataBody;
TypeOpfirstProdDataBody:	TYPE = RECORD[
];

TypeOpfirstProdProcs:	TypeOpNodeProcs;

BuildTypeOpfirstProdNode:	PROC[position: INT, length: INT]
	RETURNS[TypeOpNode];

TypeOpfirstProdTypeOpIsCode:	TypeOpIsCodeProcType;
TypeOpfirstProdTypeOpIsFirst:	TypeOpIsFirstProcType;
TypeOpfirstProdTypeOpIsLast:	TypeOpIsLastProcType;
TypeOpfirstProdTypeOpIsNil:	TypeOpIsNilProcType;

-- TypeOplastProd

TypeOplastProdData:	TYPE = REF TypeOplastProdDataBody;
TypeOplastProdDataBody:	TYPE = RECORD[
];

TypeOplastProdProcs:	TypeOpNodeProcs;

BuildTypeOplastProdNode:	PROC[position: INT, length: INT]
	RETURNS[TypeOpNode];

TypeOplastProdTypeOpIsCode:	TypeOpIsCodeProcType;
TypeOplastProdTypeOpIsFirst:	TypeOpIsFirstProcType;
TypeOplastProdTypeOpIsLast:	TypeOpIsLastProcType;
TypeOplastProdTypeOpIsNil:	TypeOpIsNilProcType;

-- TypeOpnilProd

TypeOpnilProdData:	TYPE = REF TypeOpnilProdDataBody;
TypeOpnilProdDataBody:	TYPE = RECORD[
];

TypeOpnilProdProcs:	TypeOpNodeProcs;

BuildTypeOpnilProdNode:	PROC[position: INT, length: INT]
	RETURNS[TypeOpNode];

TypeOpnilProdTypeOpIsCode:	TypeOpIsCodeProcType;
TypeOpnilProdTypeOpIsFirst:	TypeOpIsFirstProcType;
TypeOpnilProdTypeOpIsLast:	TypeOpIsLastProcType;
TypeOpnilProdTypeOpIsNil:	TypeOpIsNilProcType;

-- NewplainProd

NewplainProdData:	TYPE = REF NewplainProdDataBody;
NewplainProdDataBody:	TYPE = RECORD[
];

NewplainProdProcs:	NewNodeProcs;

BuildNewplainProdNode:	PROC[position: INT, length: INT]
	RETURNS[NewNode];

NewplainProdfoo:	fooProcType;

-- NewzonedProd

NewzonedProdData:	TYPE = REF NewzonedProdDataBody;
NewzonedProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

NewzonedProdProcs:	NewNodeProcs;

BuildNewzonedProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[NewNode];

NewzonedProdfoo:	fooProcType;

-- ConsplainProd

ConsplainProdData:	TYPE = REF ConsplainProdDataBody;
ConsplainProdDataBody:	TYPE = RECORD[
];

ConsplainProdProcs:	ConsNodeProcs;

BuildConsplainProdNode:	PROC[position: INT, length: INT]
	RETURNS[ConsNode];

ConsplainProdfoo:	fooProcType;

-- ConszonedProd

ConszonedProdData:	TYPE = REF ConszonedProdDataBody;
ConszonedProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

ConszonedProdProcs:	ConsNodeProcs;

BuildConszonedProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[ConsNode];

ConszonedProdfoo:	fooProcType;

-- ListConsplainProd

ListConsplainProdData:	TYPE = REF ListConsplainProdDataBody;
ListConsplainProdDataBody:	TYPE = RECORD[
];

ListConsplainProdProcs:	ListConsNodeProcs;

BuildListConsplainProdNode:	PROC[position: INT, length: INT]
	RETURNS[ListConsNode];

ListConsplainProdfoo:	fooProcType;

-- ListConszonedProd

ListConszonedProdData:	TYPE = REF ListConszonedProdDataBody;
ListConszonedProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

ListConszonedProdProcs:	ListConsNodeProcs;

BuildListConszonedProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[ListConsNode];

ListConszonedProdfoo:	fooProcType;

-- DescListexplicitlengthProd

DescListexplicitlengthProdData:	TYPE = REF DescListexplicitlengthProdDataBody;
DescListexplicitlengthProdDataBody:	TYPE = RECORD[
Expbase: ExpNode, Explength: ExpNode, OptType: OptTypeNode];

DescListexplicitlengthProdProcs:	DescListNodeProcs;

BuildDescListexplicitlengthProdNode:	PROC[position: INT, length: INT, Expbase: ExpNode, Explength: ExpNode, OptType: OptTypeNode]
	RETURNS[DescListNode];

DescListexplicitlengthProdfoo:	fooProcType;

-- DescListdefaultlengthProd

DescListdefaultlengthProdData:	TYPE = REF DescListdefaultlengthProdDataBody;
DescListdefaultlengthProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

DescListdefaultlengthProdProcs:	DescListNodeProcs;

BuildDescListdefaultlengthProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[DescListNode];

DescListdefaultlengthProdfoo:	fooProcType;

-- InitializationemptyProd

InitializationemptyProdData:	TYPE = REF InitializationemptyProdDataBody;
InitializationemptyProdDataBody:	TYPE = RECORD[
];

InitializationemptyProdProcs:	InitializationNodeProcs;

BuildInitializationemptyProdNode:	PROC[position: INT, length: INT]
	RETURNS[InitializationNode];

InitializationemptyProdGetInitialValue:	GetInitialValueProcType;
InitializationemptyProdInitializationIsEmpty:	InitializationIsEmptyProcType;
InitializationemptyProdInitializationIsBinding:	InitializationIsBindingProcType;
InitializationemptyProdInitializationIsAssignment:	InitializationIsAssignmentProcType;
InitializationemptyProdCompileInitialization:	CompileInitializationProcType;
InitializationemptyProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitializationbindingProd

InitializationbindingProdData:	TYPE = REF InitializationbindingProdDataBody;
InitializationbindingProdDataBody:	TYPE = RECORD[
InitialValue: InitialValueNode];

InitializationbindingProdProcs:	InitializationNodeProcs;

BuildInitializationbindingProdNode:	PROC[position: INT, length: INT, InitialValue: InitialValueNode]
	RETURNS[InitializationNode];

InitializationbindingProdGetInitialValue:	GetInitialValueProcType;
InitializationbindingProdInitializationIsEmpty:	InitializationIsEmptyProcType;
InitializationbindingProdInitializationIsBinding:	InitializationIsBindingProcType;
InitializationbindingProdInitializationIsAssignment:	InitializationIsAssignmentProcType;
InitializationbindingProdCompileInitialization:	CompileInitializationProcType;
InitializationbindingProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitializationassignmentProd

InitializationassignmentProdData:	TYPE = REF InitializationassignmentProdDataBody;
InitializationassignmentProdDataBody:	TYPE = RECORD[
InitialValue: InitialValueNode];

InitializationassignmentProdProcs:	InitializationNodeProcs;

BuildInitializationassignmentProdNode:	PROC[position: INT, length: INT, InitialValue: InitialValueNode]
	RETURNS[InitializationNode];

InitializationassignmentProdGetInitialValue:	GetInitialValueProcType;
InitializationassignmentProdInitializationIsEmpty:	InitializationIsEmptyProcType;
InitializationassignmentProdInitializationIsBinding:	InitializationIsBindingProcType;
InitializationassignmentProdInitializationIsAssignment:	InitializationIsAssignmentProcType;
InitializationassignmentProdCompileInitialization:	CompileInitializationProcType;
InitializationassignmentProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitialValuetrashProd

InitialValuetrashProdData:	TYPE = REF InitialValuetrashProdDataBody;
InitialValuetrashProdDataBody:	TYPE = RECORD[
];

InitialValuetrashProdProcs:	InitialValueNodeProcs;

BuildInitialValuetrashProdNode:	PROC[position: INT, length: INT]
	RETURNS[InitialValueNode];

InitialValuetrashProdGetInitialValue:	GetInitialValueProcType;
InitialValuetrashProdCompileInitialization:	CompileInitializationProcType;
InitialValuetrashProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitialValuecodeProd

InitialValuecodeProdData:	TYPE = REF InitialValuecodeProdDataBody;
InitialValuecodeProdDataBody:	TYPE = RECORD[
];

InitialValuecodeProdProcs:	InitialValueNodeProcs;

BuildInitialValuecodeProdNode:	PROC[position: INT, length: INT]
	RETURNS[InitialValueNode];

InitialValuecodeProdGetInitialValue:	GetInitialValueProcType;
InitialValuecodeProdCompileInitialization:	CompileInitializationProcType;
InitialValuecodeProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitialValueexpProd

InitialValueexpProdData:	TYPE = REF InitialValueexpProdDataBody;
InitialValueexpProdDataBody:	TYPE = RECORD[
Exp: ExpNode];

InitialValueexpProdProcs:	InitialValueNodeProcs;

BuildInitialValueexpProdNode:	PROC[position: INT, length: INT, Exp: ExpNode]
	RETURNS[InitialValueNode];

InitialValueexpProdGetInitialValue:	GetInitialValueProcType;
InitialValueexpProdCompileInitialization:	CompileInitializationProcType;
InitialValueexpProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitialValueblockProd

InitialValueblockProdData:	TYPE = REF InitialValueblockProdDataBody;
InitialValueblockProdDataBody:	TYPE = RECORD[
Checked: CheckedNode, Inline: InlineNode, Block: BlockNode];

InitialValueblockProdProcs:	InitialValueNodeProcs;

BuildInitialValueblockProdNode:	PROC[position: INT, length: INT, Checked: CheckedNode, Inline: InlineNode, Block: BlockNode]
	RETURNS[InitialValueNode];

InitialValueblockProdGetInitialValue:	GetInitialValueProcType;
InitialValueblockProdCompileInitialization:	CompileInitializationProcType;
InitialValueblockProdAddValueDependencies:	AddValueDependenciesProcType;

-- InitialValuemachinecodeProd

InitialValuemachinecodeProdData:	TYPE = REF InitialValuemachinecodeProdDataBody;
InitialValuemachinecodeProdDataBody:	TYPE = RECORD[
Checked: CheckedNode, CodeList: CodeListNode];

InitialValuemachinecodeProdProcs:	InitialValueNodeProcs;

BuildInitialValuemachinecodeProdNode:	PROC[position: INT, length: INT, Checked: CheckedNode, CodeList: CodeListNode]
	RETURNS[InitialValueNode];

InitialValuemachinecodeProdGetInitialValue:	GetInitialValueProcType;
InitialValuemachinecodeProdCompileInitialization:	CompileInitializationProcType;
InitialValuemachinecodeProdAddValueDependencies:	AddValueDependenciesProcType;

-- CheckedemptyProd

CheckedemptyProdData:	TYPE = REF CheckedemptyProdDataBody;
CheckedemptyProdDataBody:	TYPE = RECORD[
];

CheckedemptyProdProcs:	CheckedNodeProcs;

BuildCheckedemptyProdNode:	PROC[position: INT, length: INT]
	RETURNS[CheckedNode];

CheckedemptyProdfoo:	fooProcType;

-- CheckedcheckedProd

CheckedcheckedProdData:	TYPE = REF CheckedcheckedProdDataBody;
CheckedcheckedProdDataBody:	TYPE = RECORD[
];

CheckedcheckedProdProcs:	CheckedNodeProcs;

BuildCheckedcheckedProdNode:	PROC[position: INT, length: INT]
	RETURNS[CheckedNode];

CheckedcheckedProdfoo:	fooProcType;

-- CheckedtrustedProd

CheckedtrustedProdData:	TYPE = REF CheckedtrustedProdDataBody;
CheckedtrustedProdDataBody:	TYPE = RECORD[
];

CheckedtrustedProdProcs:	CheckedNodeProcs;

BuildCheckedtrustedProdNode:	PROC[position: INT, length: INT]
	RETURNS[CheckedNode];

CheckedtrustedProdfoo:	fooProcType;

-- CheckeduncheckedProd

CheckeduncheckedProdData:	TYPE = REF CheckeduncheckedProdDataBody;
CheckeduncheckedProdDataBody:	TYPE = RECORD[
];

CheckeduncheckedProdProcs:	CheckedNodeProcs;

BuildCheckeduncheckedProdNode:	PROC[position: INT, length: INT]
	RETURNS[CheckedNode];

CheckeduncheckedProdfoo:	fooProcType;

-- InlineyesProd

InlineyesProdData:	TYPE = REF InlineyesProdDataBody;
InlineyesProdDataBody:	TYPE = RECORD[
];

InlineyesProdProcs:	InlineNodeProcs;

BuildInlineyesProdNode:	PROC[position: INT, length: INT]
	RETURNS[InlineNode];

InlineyesProdIsKeywordPresent:	IsKeywordPresentProcType;

-- InlinenoProd

InlinenoProdData:	TYPE = REF InlinenoProdDataBody;
InlinenoProdDataBody:	TYPE = RECORD[
];

InlinenoProdProcs:	InlineNodeProcs;

BuildInlinenoProdNode:	PROC[position: INT, length: INT]
	RETURNS[InlineNode];

InlinenoProdIsKeywordPresent:	IsKeywordPresentProcType;

-- CodeListoneProd

CodeListoneProdData:	TYPE = REF CodeListoneProdDataBody;
CodeListoneProdDataBody:	TYPE = RECORD[
OrderList: OrderListNode];

CodeListoneProdProcs:	CodeListNodeProcs;

BuildCodeListoneProdNode:	PROC[position: INT, length: INT, OrderList: OrderListNode]
	RETURNS[CodeListNode];

CodeListoneProdfoo:	fooProcType;

-- CodeListmoreProd

CodeListmoreProdData:	TYPE = REF CodeListmoreProdDataBody;
CodeListmoreProdDataBody:	TYPE = RECORD[
CodeList: CodeListNode, OrderList: OrderListNode];

CodeListmoreProdProcs:	CodeListNodeProcs;

BuildCodeListmoreProdNode:	PROC[position: INT, length: INT, CodeList: CodeListNode, OrderList: OrderListNode]
	RETURNS[CodeListNode];

CodeListmoreProdfoo:	fooProcType;

-- TransferOpsignalProd

TransferOpsignalProdData:	TYPE = REF TransferOpsignalProdDataBody;
TransferOpsignalProdDataBody:	TYPE = RECORD[
];

TransferOpsignalProdProcs:	TransferOpNodeProcs;

BuildTransferOpsignalProdNode:	PROC[position: INT, length: INT]
	RETURNS[TransferOpNode];

TransferOpsignalProdfoo:	fooProcType;

-- TransferOperrorProd

TransferOperrorProdData:	TYPE = REF TransferOperrorProdDataBody;
TransferOperrorProdDataBody:	TYPE = RECORD[
];

TransferOperrorProdProcs:	TransferOpNodeProcs;

BuildTransferOperrorProdNode:	PROC[position: INT, length: INT]
	RETURNS[TransferOpNode];

TransferOperrorProdfoo:	fooProcType;

-- TransferOpstartProd

TransferOpstartProdData:	TYPE = REF TransferOpstartProdDataBody;
TransferOpstartProdDataBody:	TYPE = RECORD[
];

TransferOpstartProdProcs:	TransferOpNodeProcs;

BuildTransferOpstartProdNode:	PROC[position: INT, length: INT]
	RETURNS[TransferOpNode];

TransferOpstartProdfoo:	fooProcType;

-- TransferOpjoinProd

TransferOpjoinProdData:	TYPE = REF TransferOpjoinProdDataBody;
TransferOpjoinProdDataBody:	TYPE = RECORD[
];

TransferOpjoinProdProcs:	TransferOpNodeProcs;

BuildTransferOpjoinProdNode:	PROC[position: INT, length: INT]
	RETURNS[TransferOpNode];

TransferOpjoinProdfoo:	fooProcType;

-- TransferOpnewProd

TransferOpnewProdData:	TYPE = REF TransferOpnewProdDataBody;
TransferOpnewProdDataBody:	TYPE = RECORD[
];

TransferOpnewProdProcs:	TransferOpNodeProcs;

BuildTransferOpnewProdNode:	PROC[position: INT, length: INT]
	RETURNS[TransferOpNode];

TransferOpnewProdfoo:	fooProcType;

-- TransferOpforkProd

TransferOpforkProdData:	TYPE = REF TransferOpforkProdDataBody;
TransferOpforkProdDataBody:	TYPE = RECORD[
];

TransferOpforkProdProcs:	TransferOpNodeProcs;

BuildTransferOpforkProdNode:	PROC[position: INT, length: INT]
	RETURNS[TransferOpNode];

TransferOpforkProdfoo:	fooProcType;
END..