-- Binder.model
-- Copyright (c) 1985 by Xerox Corporation.  All rights reserved.
-- last edit by Satterthwaite, May 20, 1986 3:44:41 pm PDT

LET @///SML/OSBasics.modelBcd!580170624 IN 
LET @///SML/CedarBasics.modelBcd!580170569 IN 
LET @///SML/LoaderBasics.modelBcd!580170599 IN 
LET [
    ConvertUnsafe: TYPE ConvertUnsafe~
      @/Cedar/Cedar6.1/Rope/ConvertUnsafe.bcd!541570785, 
    DebuggerSwap: TYPE DebuggerSwap~
      @/Cedar/Cedar6.1/Tentacles/DebuggerSwap.bcd!541571989, 
    FileViewerOps: TYPE FileViewerOps~
      @/Cedar/Cedar6.1/InterpreterTool/FileViewerOps.bcd!542083129, 
    ProcessorFace: TYPE ProcessorFace~
      @/Cedar/Cedar6.1/Heads/ProcessorFace.bcd!541571125, 
    SymbolTable: TYPE SymbolTable~
      @/Cedar/Cedar6.1/BcdStuff/SymbolTable.bcd!541573286, 
    UnsafeStorage: TYPE UnsafeStorage~
      @/Cedar/Cedar6.1/SafeStorage/UnsafeStorage.bcd!541573222, 
    UserProfile: TYPE UserProfile~
      @/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!579724000; 
      

      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 ParseTable~@BcdParseTable.mesa!580070668*[]; 
      P1: TYPE P1~@ProtoP1.mesa!571097911*[]; 
      
      Pass1:~
        REC [
          [BcdParseData: TYPE, BcdParseDataImpl: BcdParseData]~
            @BcdParseData.bcd!580070668*[]; 
          P1Impl: P1~
            @ProtoScanner.mesa!571098197*[]*[] 
              + @///Compiler/ProtoParser.mesa!577672398*[]*[] 
              + @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!580173275*[BcdParseData:~Pass1.BcdParseData]*[
          BcdParseDataImpl:~Pass1.BcdParseDataImpl, P1Impl:~Pass1.P1Impl]] IN 
  []
