File [ivy]<Satterthwaite>Models>Binder.model!1

    -- Binder.model
    -- Copyright (c) 1985 by Xerox Corporation.  All rights reserved.
    -- last edit by Satterthwaite, May 30, 1986 12:25:29 pm PDT

    LET @///SML/OSBasics.modelBcd!581021414 IN
    LET @///SML/CedarBasics.modelBcd!581021540 IN
    LET @///SML/LoaderBasics.modelBcd!581021616 IN
    LET [
        ConvertUnsafe: TYPE~@/Cedar/Cedar6.1/Rope/ConvertUnsafe.bcd!541570785,
        DebuggerSwap: TYPE~@/Cedar/Cedar6.1/Tentacles/DebuggerSwap.bcd!541571989,
        FileViewerOps: TYPE~
          @/Cedar/Cedar6.1/InterpreterTool/FileViewerOps.bcd!542083129,
        ProcessorFace: TYPE~@/Cedar/Cedar6.1/Heads/ProcessorFace.bcd!541571125,
        SymbolTable: TYPE~@/Cedar/Cedar6.1/BcdStuff/SymbolTable.bcd!541573286,
        UnsafeStorage: TYPE~
          @/Cedar/Cedar6.1/SafeStorage/UnsafeStorage.bcd!541573222,
        UserProfile: TYPE~@/Cedar/Cedar6.1/UserProfile/UserProfile.bcd!541590367] IN

    LAMBDA [
        AsciiImpl: Ascii,
        BasicsImpl: Basics,
        BasicTimeImpl: BasicTime,
        CommanderImpl: Commander,
        ConvertUnsafeImpl: ConvertUnsafe,
        DebuggerSwapImpl: DebuggerSwap,
        FileViewerOpsImpl: FileViewerOps,
        FSImpl: FS,
        IOImpl: IO,
        LoaderImpl: Loader,
        PrincOpsUtilsImpl: PrincOpsUtils,
        ProcessImpl: Process,
        ProcessorFaceImpl: ProcessorFace,
        RefTextImpl: RefText,
        RopeImpl: Rope,
        SymbolTableImpl: SymbolTable,
        UnsafeStorageImpl: UnsafeStorage,
        UserProfileImpl: UserProfile,
        VMImpl: VM] IN

      LET REC [

          &options: STRING~"j-b-ns";

          -- these come from BasicLoadState.df
          Table: TYPE~@/Cedar/Cedar6.1/BasicLoadState/Table.bcd!541573140;
          BcdDefs: TYPE~@///Compiler/InternalBcdDefs.mesa!564432582*["s-z"];
          Bcd:~@///Compiler/InternalBcdStuff.modelBcd!581022104;

          FileSegment: TYPE~@/Cedar/Cedar6.1/BcdStuff/FileSegment.bcd!541573263;
          CompilerSymbols: TYPE Symbols~
            @/Cedar/Cedar6.1/BcdStuff/Symbols.bcd!541573249;

          Alloc: TYPE~Bcd.Alloc*["s-z"];
          AllocImpl: Alloc~Bcd.AllocImpl*[]*[];

          OSMiscOps: TYPE~@///compiler/OSMiscOps.mesa!563132423*[];
          OSMiscOpsImpl: OSMiscOps~@///compiler/OSMiscOpsImpl.mesa!577672349*[]*[];
          CommandUtil: TYPE~@///compiler/CommandUtil.mesa!542181810*[];
          CommandUtilImpl: CommandUtil~
            @///compiler/CommandPack.mesa!542204761*[]*[];

          HashTypes: TYPE~@ProtoHashTypes.mesa!542188828*[];
          [Symbols: TYPE Symbols, Literals: TYPE Literals]~
            @BcdSymbols.mesa!542188854*[];
          Tree: TYPE Tree~@BcdTree.mesa!542191899*[];

          HashOps: TYPE~@ProtoHashOps.mesa!542188875*[];
          HashOpsImpl: HashOps~@ProtoHashTab.mesa!542189338*[]*[];

          TreeOps: TYPE~@///compiler/ProtoTreeOps.mesa!561064916*[];
          TreeOpsImpl: TreeOps~@ProtoTreePack.mesa!577315008*[]*[];

          BcdBindDefs: TYPE~@BcdBindDefs.mesa!563237377*[];
          BcdControlDefs: TYPE~@BcdControlDefs.mesa!573076460*[];

          BcdUtilDefs: TYPE~@BcdUtilDefs.mesa!563236690*[];
          BcdUtilDefsImpl: BcdUtilDefs~@BcdUtilities.mesa!577313005*[]*[];

          [BcdComData: TYPE, data: BcdComData]~@BcdComData.mesa!577313087*[]*[];

          BcdFileDefs: TYPE~@BcdFileDefs.mesa!573077245*[];
          BcdFileDefsImpl: BcdFileDefs~@BcdFileLookup.mesa!577396520*[]*[];

          BcdLiterals: TYPE~@BcdLiterals.mesa!573518745*[];
          BcdLiteralsImpl: BcdLiterals~
            REC [
              Symbols: TYPE Symbols~CompilerSymbols;
              RCMap: TYPE~Bcd.RCMap*[];
              RTBcd: TYPE~Bcd.RTBcd*[];
              RCMapOps: TYPE~Bcd.RCMapOps*[];
              RCMapOpsImpl: RCMapOps~Bcd.RCMapBuilderImpl*[]*[];
              Impl: BcdLiterals~@BcdLiteralsImpl.mesa!577930999*[]*[]].Impl;

          BcdErrorDefs: TYPE~@BcdErrorDefs.mesa!573077613*[];
          BcdErrorDefsImpl: BcdErrorDefs~
            REC [
              ErrorDefsImpl: BcdErrorDefs~
                @BindErrors.mesa!580173573*[]*[]
                  + @BcdSymbolPack.mesa!574373072*[Symbols:~CompilerSymbols]*[]].ErrorDefsImpl;

          ParseTable: TYPE~@BcdParseTable.mesa!580070668*[];
          P1: TYPE~@ProtoP1.mesa!571097911*[];

          Pass1:~
            REC [
              [BcdParseData: TYPE, BcdParseDataImpl: BcdParseData]~
                @BcdParseData.bcd!580782583*[];
              P1Impl: P1~
                @ProtoScanner.mesa!571098197*[]*[]
                  + @///Compiler/ProtoParser.mesa!580755205*[]*[]
                  + @BcdTreeBuild.mesa!580070664*[]*[];
              BcdControlDefsImpl: BcdControlDefs~@BcdSEBuild.mesa!574372401*[]*[]];

          Pass2: BcdControlDefs~@BcdLoad.mesa!577315479*[]*[];

          Pass3: BcdControlDefs~@BcdBind.mesa!573078529*[]*[];

          Pass4: BcdControlDefs~@BcdWrite.mesa!577396647*[]*[];

          Debug: BcdControlDefs~@BcdDebug.mesa!573075806*[]*[];

          BcdControlDefsImpl: BcdControlDefs~
            Pass1.BcdControlDefsImpl + Pass2 + Pass3 + Pass4 + Debug;

          Binder: CONTROL~
            @BcdControl.mesa!580322179*[BcdParseData:~Pass1.BcdParseData]*[
              BcdParseDataImpl:~Pass1.BcdParseDataImpl, P1Impl:~Pass1.P1Impl]] IN
      []