File [ivy]<Satterthwaite>SML>SML.model!75

    -- SML.model
    -- Copyright (C) 1985 by Xerox Corporation.  All rights reserved.
    -- last edit by Satterthwaite, May 30, 1986 12:30:08 pm PDT

    LET @OSBasics.modelBcd!581021414 IN
    LET @CedarBasics.modelBcd!581021540 IN
    LET @ViewerBasics.modelBcd!581021721 IN
    LET @LoaderBasics.modelBcd!581021616 IN
    LET [
        CompilerOps: TYPE~@/Cedar/Cedar6.1/Compiler/CompilerOps.bcd!580778591,
        FileParms: TYPE~@/Cedar/Cedar6.1/Compiler/FileParms.bcd!580778586,
        FileSegment: TYPE~@/Cedar/Cedar6.1/BCDStuff/FileSegment.bcd!541573263,
        FileViewerOps: TYPE~
          @/Cedar/Cedar6.1/InterpreterTool/FileViewerOps.bcd!542083129,
        RuntimeError: TYPE~@/Cedar/Cedar6.1/MesaRuntime/RuntimeError.bcd!541570482,
        SafeStorageOps: TYPE~
          @/Cedar/Cedar6.1/SafeStorage/SafeStorageOps.bcd!541573495,
        TiogaMenuOps: TYPE~@/Cedar/Cedar6.1/Tioga/TiogaMenuOps.bcd!546419532,
        VersionMapDefaults: TYPE~
          @/Cedar/Cedar6.1/VersionMap/VersionMapDefaults.bcd!541592146,
        UnsafeStorage: TYPE~
          @/Cedar/Cedar6.1/SafeStorage/UnsafeStorage.bcd!541573222] IN

    LAMBDA [
        AsciiImpl: Ascii,
        AtomImpl: Atom,
        BasicsImpl: Basics,
        BasicTimeImpl: BasicTime,
        BcdOpsImpl: BcdOps,
        CommanderImpl: Commander,
        CompilerOpsImpl: CompilerOps,
        ContainersImpl: Containers,
        ConvertImpl: Convert,
        FileNamesImpl: FileNames,
        FileViewerOpsImpl: FileViewerOps,
        FSImpl: FS,
        IOImpl: IO,
        LabelsImpl: Labels,
        ListImpl: List,
        LoadStateImpl: LoadState,
        --LoaderImpl: Loader,
        --LoaderOpsImpl: LoaderOps,
        RuntimeErrorImpl: RuntimeError, -- for loader only
        SystemVersionImpl: SystemVersion, -- ditto
        MBQueueImpl: MBQueue,
        MenusImpl: Menus,
        PrincOpsUtilsImpl: PrincOpsUtils,
        ProcessImpl: Process,
        ProcessPropsImpl: ProcessProps,
        RefTextImpl: RefText,
        RopeImpl: Rope,
        RulesImpl: Rules,
        SafeStorageImpl: SafeStorage,
        SafeStorageOpsImpl: SafeStorageOps,
        TiogaMenuOpsImpl: TiogaMenuOps,
        TypeScriptImpl: TypeScript,
        UnsafeStorageImpl: UnsafeStorage,
        VersionMapDefaultsImpl: VersionMapDefaults,
        ViewerEventsImpl: ViewerEvents,
        ViewerOpsImpl: ViewerOps,
        ViewerIOImpl: ViewerIO,
        ViewerToolsImpl: ViewerTools,
        VMImpl: VM] IN

      LET REC [

          -- temporary, until loader in boot file is repaired
          LoaderOpsExtras: TYPE~@///Loader/LoaderOpsExtras.bcd!580685885;
          [
          LoaderImpl: Loader, LoaderOpsImpl: LoaderOps,
          LoaderOpsExtrasImpl: LoaderOpsExtras]~
            @///Loader/RuntimeLoader.bcd!580685921*[];

          &options: STRING~"j-s"; -- "js" ?
          CS: TYPE~@CS.mesa!579465845*[];
          CSImpl: CS~@CSImpl.mesa!579465872*[]*[];

          SMTree: TYPE Tree~@SMTree.mesa!579465895*[];
          SMTreeOps: TYPE TreeOps~@SMTreeOps.mesa!561939916*[Tree:~SMTree];
          SMTreeOpsImpl: SMTreeOps~
            @SMTreeImpl.mesa!561939915*[
              Tree:~SMTree,
              TreeOps:~SMTreeOps]*[];

          SMCommentTable: TYPE~@SMCommentTable.mesa!579465924*[];
          SMCommentTableOps: TYPE~@SMCommentTableOps.mesa!579465945*[];
          SMCommentTableOpsImpl: SMCommentTableOps~
            @SMCommentTableImpl.mesa!579465967*[]*[];

          SMOps: TYPE~@SMOps.mesa!579465994*[];
          SMUtil: TYPE~@SMUtil.mesa!579466023*[];
          SMEval: TYPE~@SMEval.mesa!579466039*[];

          ModelParser:~
            REC [
              SMParseTable: TYPE ParseTable~@SMParseTable.mesa!580331301*[];
              [SMParseData: TYPE, SMParseDataImpl: SMParseData]~
                @SMParseData.bcd!580331301[];
              SMP1: TYPE P1~@SMP1.mesa!577138121*[];
              SMP1Impl: SMP1~
                @SMScannerImpl.mesa!577671604*[]*[]
                  + @ParserImpl.mesa!577671557*[
                    ParseTable:~SMParseTable,
                    P1:~SMP1]*[P1Impl:~SMP1Impl]
                  + @SMTreeBuildImpl.mesa!580331296*[]*[];
              [SMUtilImpl: SMUtil, SMOpsImpl: SMOps]~
                @SMReaderImpl.mesa!579466090*[]*[]];
          SMOpsImpl: SMOps~ModelParser.SMOpsImpl;
          SMUtilImpl: SMUtil~
            ModelParser.SMUtilImpl + @SMPrettyImpl.mesa!580933333*[]*[];

          SMTypeCons: TYPE~@SMTypeCons.mesa!580847036*[];
          SMTypeConsImpl: SMTypeCons~@SMTypeConsImpl.mesa!580847236*[]*[];

          SMFI: TYPE~@SMFI.mesa!579466295*[];
          SMFIOps: TYPE~@SMFIOps.mesa!579466318*[];

          CedarParser:~
            REC [
              CtoSParseTable: TYPE ParseTable~@CtoSParseTable.mesa!581020894*[];
              [CtoSParseData: TYPE, CtoSParseDataImpl: CtoSParseData]~
                @CtoSParseData.bcd!581020894[];
              CtoSP1: TYPE P1~@CtoSP1.mesa!577138707*[];
              CtoSP1Impl: CtoSP1~
                @CtoSScannerImpl.mesa!568314458*[]*[]
                  + @ParserImpl.mesa!577671557*[
                    ParseTable:~CtoSParseTable,
                    P1:~CtoSP1]*[P1Impl:~CtoSP1Impl]
                  + @CtoSTreeBuildImpl.mesa!581020886*[]*[];
              SMFIOpsImpl: SMFIOps~
                LET REC [
                    SrcHashTable: TYPE HashTable~
                      @HashTable.mesa!579552122*[
                        ParticularTable:~@SMSrcFITable.mesa!579552753*[]];
                    SrcHashTableImpl: SrcHashTable~
                      @HashTableImpl.mesa!579552176*[HashTable:~SrcHashTable]*[];
                    BcdHashTable: TYPE HashTable~
                      @HashTable.mesa!579552122*[
                        ParticularTable:~@SMBcdFITable.mesa!579553155*[]];
                    BcdHashTableImpl: BcdHashTable~
                      @HashTableImpl.mesa!579552176*[HashTable:~BcdHashTable]*[]] IN
                @SMFIImpl.mesa!581018527*[&options:~"j-s-w"]*[]];
          SMFIOpsImpl: SMFIOps~CedarParser.SMFIOpsImpl;

          BcdStamps: TYPE~@BcdStamps.mesa!579466462*[];
          BcdStampsImpl: BcdStamps~@BcdStampsImpl.mesa!579466479*[]*[];

          SMProj: TYPE~@SMProj.mesa!579654434*[];
          SMProjImpl: SMProj~
            LET REC [
                HashTable: TYPE~
                  @HashTable.mesa!579552122*[
                    ParticularTable:~@SMProjTable.mesa!579652878*[]];
                HashTableImpl: HashTable~@HashTableImpl.mesa!579552176*[]*[]] IN
            @SMProjImpl.mesa!579654364*[]*[];

          SMEvalImpl: SMEval~@SMEvalImpl.mesa!581280216*[]*[];

          SMVal: TYPE~@SMVal.mesa!579466594*[];
          SMValImpl: SMVal~@SMValImpl.mesa!580583923*[]*[];

          SMComp: TYPE~@SMComp.mesa!580348133*[];
          SMCompImpl: SMComp~@SMCompImpl.mesa!580589830*[]*[];
          SMBcd: TYPE~@SMBcd.mesa!579466651*[];
          SMBcdImpl: SMBcd~@SMBcdImpl.mesa!579542327*[]*[];
          SMLDriver: TYPE~@SMLDriver.mesa!579466681*[];

          SMLDriverImpl: SMLDriver~
            REC [
              BcdLiterals: TYPE~@///binder/BcdLiterals.mesa!573518745*[];
              BcdLiteralsImpl: BcdLiterals~
                REC [
                  Symbols: TYPE Symbols~
                    @/Cedar/Cedar6.1/BcdStuff/Symbols.bcd!541573249;
                  SymbolTable: TYPE SymbolTable~
                    @/Cedar/Cedar6.1/BcdStuff/SymbolTable.bcd!541573286;
                  Bcd:~@///Compiler/InternalBcdStuff.modelBcd!581022104;
                  RCMap: TYPE~Bcd.RCMap*[];
                  RTBcd: TYPE~Bcd.RTBcd*[];
                  RCMapOps: TYPE~Bcd.RCMapOps*[];
                  RCMapOpsImpl: RCMapOps~Bcd.RCMapBuilderImpl*[]*[];
                  Impl: BcdLiterals~@///binder/BcdLiteralsImpl.mesa!577930999*[]*[]].
                Impl;
              SMModelBcd: TYPE~@SMModelBcd.mesa!579466710*[];
              SMModelBcdImpl: SMModelBcd~@SMModelBcdImpl.mesa!579466729*[]*[];

              SMLoader: SMLDriver~
                REC [
                  SMLoad: TYPE~@SMLoad.mesa!579466752*[];
                  SMLoadImpl: SMLoad~@SMLoadImpl.mesa!579466771*[]*[];
                  Impl: SMLDriver~@SMLDriverImpl.mesa!580682683*[]*[]].Impl;

              SMBinder: SMLDriver~
                REC [
                  SMBind: TYPE~@SMBind.mesa!579466814*[];
                  SMBindImpl: SMBind~@SMBindImpl.mesa!579466827*[]*[];
                  Impl: SMLDriver~@SMBDriverImpl.mesa!580682287*[]*[]].Impl;

              Impl: SMLDriver~SMLoader + SMBinder].Impl;

          SMDF: TYPE~@SMDF.mesa!577155794*[];
          SMDFImpl: SMDF~NIL;

          SML: CONTROL~@SMIntImpl.mesa!580935609*[]*[]] IN []