-- SMLD.model
-- last edited by Satterthwaite, August 5, 1983 10:26 am
LET @OSBasics.model!2606162530 IN
LET @CedarBasics.model!2606162699 IN
LET @ViewersBasics.model!2606162906 IN 
LET [
    BcdDefs: TYPE~@BcdDefs.bcd!d2f897b3ab9e[],
    BcdOps: TYPE~@BcdOps.bcd!99c46fb8f9fd[],
    --CedarExporterImpl: TYPE~@CedarExporterImpl.bcd[NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL],
    CedarLinkerOps: TYPE~@CedarLinkerOps.bcd[],
    CompilerOps: TYPE~@CompilerOps.bcd[],
    FileSegment: TYPE~@FileSegment.bcd[],
    FileParms: TYPE~@FileParms.bcd[],
    Frame: TYPE~@Frame.bcd[],
    Loader: TYPE~@Loader.bcd[],
    LoaderPrivate: TYPE~@LoaderPrivate.bcd[],
    MiscAlpha: TYPE~@MiscAlpha.bcd[],
    Mopcodes: TYPE~@Mopcodes.bcd[],
    PilotLoaderOps: TYPE~@PilotLoaderOps.bcd[],
    PilotLoadStateFormat: TYPE~@PilotLoadStateFormat.bcd[],
    PilotLoadStateOps: TYPE~@PilotLoadStateOps.bcd[],
    PrincOpsRuntime: TYPE~@PrincOpsRuntime.bcd[],
    RTLoader: TYPE~@RTLoader.bcd[],
    RTOS: TYPE~@RTOS.bcd[],
    RuntimeInternal: TYPE~@RuntimeInternal.bcd[],
    SDDefs: TYPE~@SDDefs.bcd[],
    Trap: TYPE~@Trap.bcd[],
    UECP: TYPE~@UECP.bcd[]
    ] IN 
  LAMBDA [
	AtomImpl: Atom,
	BcdOpsImpl: BcdOps,
	--CedarExporterImplImpl: CedarExporterImpl,
	CedarLinkerOpsImpl: CedarLinkerOps,
	CompilerOpsImpl: CompilerOps,
	ContainersImpl: Containers,
	DirectoryImpl: Directory,
	FileImpl: File,
	FileIOImpl: FileIO,
	FileStreamImpl: FileStream,
	FrameImpl: Frame,
	HeapImpl: Heap,
	IOImpl: IO,
	InlineImpl: Inline,
	LabelsImpl: Labels,
	ListImpl: List,
	LoaderImpl: Loader,
	LoaderPrivateImpl: LoaderPrivate,
	MBQueueImpl: MBQueue,
	MenusImpl: Menus,
	PilotLoaderOpsImpl: PilotLoaderOps,
	PilotLoadStateOpsImpl: PilotLoadStateOps,
	PrincOpsRuntimeImpl: PrincOpsRuntime,
	ProcessImpl: Process,
	RopeImpl: Rope,
	RopeInlineImpl: RopeInline,
	RTLoaderImpl: RTLoader,
	RTOSImpl: RTOS,
	RulesImpl: Rules,
	RuntimeImpl: Runtime,
	RuntimeInternalImpl: RuntimeInternal,
	SafeStorageImpl: SafeStorage,
	SpaceImpl: Space,
	StreamImpl: Stream,
	TimeImpl: Time,
	TrapImpl: Trap,
	TypeScriptImpl: TypeScript,
	UECPImpl: UECP,
	UserExecImpl: UserExec,
	ViewerEventsImpl: ViewerEvents,
	ViewerIOImpl: ViewerIO,
	ViewerOpsImpl: ViewerOps,
	ViewerToolsImpl: ViewerTools,
	WindowManagerImpl: WindowManager
	] => [] IN
    REC [
      &options: STRING~"js";
      CS: TYPE~@CS.mesa!2605449547*[]*[];
      CSImpl: CS~@CSImpl.mesa!2605890644*[]*[];
      SMTree: TYPE Tree~@SMTree.mesa!2604931446*[]*[];
      SMTreeOps: TYPE~@SMTreeOps.mesa!2603033237*[]*[];
      SMTreeOpsImpl: SMTreeOps~@SMTreeImpl.mesa!2603033256*[]*[];
      SMLDriver: TYPE~@SMLDriver.mesa!2604941280*[]*[];
      SMCommentTable: TYPE~@SMCommentTable.mesa!2597874636*[]*[];
      SMCommentTableOps: TYPE~@SMCommentTableOps.mesa!2597937680*[]*[];
      SMCommentTableOpsImpl: SMCommentTableOps~
        @SMCommentTableImpl.mesa!2597937602*[]*[];
      SMOps: TYPE~@SMOps.mesa!2605460850*[]*[];
      SMUtil: TYPE~@SMUtil.mesa!2602164972*[]*[];
      SMFI: TYPE~@SMFI.mesa!2605552186*[]*[];
      ModelParser ~ REC [
	SMParseTable: TYPE ParseTable~@SMParseTable.mesa!2604931491*[]*[];
	[SMParseData: TYPE, SMParseDataImpl: SMParseData]~@SMParseData.bcd[];
	SMP1: TYPE~@SMP1.mesa!2605797168*[]*[];
	SMP1Impl: SMP1~
	  @SMScannerImpl.mesa!2603993346*[]*[Atoms~AtomImpl] +
	  @SMParserImpl.mesa!2605798045*[]*[] +
	  @SMTreeBuildImpl.mesa!2604931478*[]*[];
	[SMUtilImpl: SMUtil, SMOpsImpl: SMOps]~@SMReaderImpl.mesa!2605456800*[]*[]
        ];
      SMOpsImpl: SMOps ~ ModelParser.SMOpsImpl;
      SMUtilImpl: SMUtil~ModelParser.SMUtilImpl + @SMPrettyImpl.mesa!2604959146*[]*[];
      SMTypeCons: TYPE~@SMTypeCons.mesa!2604854211*[]*[];
      SMTypeConsImpl: SMTypeCons~@SMTypeConsImpl.mesa!2604854389*[]*[];
      SMFIOps: TYPE~@SMFIOps.mesa!2605456938*[]*[];
      SMEval: TYPE~@SMEval.mesa!2602777539*[]*[];
      SMBcd: TYPE~@SMBcd.mesa!2601933974*[]*[];
      FileParser ~ REC [
	CtoSParseTable: TYPE ParseTable~@CtoSParseTable.mesa!2603735838*[]*[];
	[CtoSParseData: TYPE, CtoSParseDataImpl: CtoSParseData]~@CtoSParseData.bcd[];
	CtoSP1: TYPE~@CtoSP1.mesa!2605797159*[]*[];
	CtoSP1Impl: CtoSP1~
	  @CtoSScannerImpl.mesa!2605797134*[]*[] +
	  @CtoSParserImpl.mesa!2605798035*[]*[] +
	  @CtoSTreeBuildImpl.mesa!2604854510*[]*[];
	SMFIOpsImpl: SMFIOps~@SMFIImpl.mesa!2606057411*[]*[]];
      SMFIOpsImpl: SMFIOps~FileParser.SMFIOpsImpl;
      BcdStamps: TYPE~@BcdStamps.mesa!2605456626*[]*[];
      BcdStampsImpl: BcdStamps~@BcdStampsImpl.mesa!2605890442*[]*[];
      SMEvalImpl: SMEval~@SMEvalImpl.mesa!2606058828*[]*[];
      SMProj: TYPE~@SMProj.mesa!2605458043*[]*[];
      SMLoad: TYPE~@SMLoad.mesa!2605460046*[]*[];
      SMVal: TYPE~@SMVal.mesa!2606058523*[]*[];
      SMValImpl: SMVal~@SMValImpl.mesa!2606058723*[]*[];
      ParticularTable: TYPE~@SMParticularTable.mesa!2606225801*[]*[];
      ParticularTableImpl: ParticularTable~NIL;
      OrderedSymbolTable: TYPE~@OrderedSymbolTable.mesa!2583283111*[]*[];
      OrderedSymbolTableImpl: OrderedSymbolTable~
        @RedBlackTreeImpl.mesa!2583283170*[]*[];
      SMProjImpl: SMProj~@SMProjImpl.mesa!2606225814*[]*[];
      SMComp: TYPE~@SMComp.mesa!2605102706*[]*[];
      SMCompImpl: SMComp~@SMCompImpl.mesa!2605888394*[]*[];
      SMLDriverImpl: SMLDriver ~ REC [
	SMLoadImpl: SMLoad~@SMLoadImpl.mesa!2605479509*[]*[];
	SMFakeBcd: TYPE~@SMFakeBcd.mesa!2600630636*[]*[];
	SMFakeBcdImpl: SMFakeBcd~@SMFakeBcdImpl.mesa!2605456023*[]*[];
	SMLDriverImpl: SMLDriver~@SMLDriverImpl.mesa!2606229864*[]*[]
	].SMLDriverImpl;
      SMBcdImpl: SMBcd~@SMBcdImpl.mesa!2605549306*[]*[];
      SMDF: TYPE~@SMDF.mesa!2600697937*[]*[];
      SMDFImpl: SMDF~@DummySMDFImpl.mesa!2600701844*[]*[];
      SML: CONTROL~@SMIntImpl.mesa!2606057368*[]*[]
      ]