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

    -- file RuntimeLoader.model
    -- Copyright (c) 1985 by Xerox Corporation.  All rights reserved.
    -- last edit by Satterthwaite, May 20, 1986 3:37:04 pm PDT

    LET @///sml/OSBasics.modelBcd!581021414 IN
    LET @///sml/CedarBasics.modelBcd!581021540 IN
    LET [
        BcdDefs: TYPE~@/Cedar/Cedar6.1/BasicLoadState/BcdDefs.bcd!541573150,
        BcdOps: TYPE~@/Cedar/Cedar6.1/BasicLoadState/BcdOps.bcd!541573152,
        LoadState: TYPE~@/Cedar/Cedar6.1/LoadState/LoadState.bcd!541577045,
        RuntimeError: TYPE~@/Cedar/Cedar6.1/MesaRuntime/RuntimeError.bcd!541570482,
        SafeStorageOps: TYPE~
          @/Cedar/Cedar6.1/SafeStorage/SafeStorageOps.bcd!541573495,
        SystemVersion: TYPE~@/Cedar/Cedar6.1/Tentacles/SystemVersion.bcd!541571979,
        Table: TYPE~@/Cedar/Cedar6.1/BasicLoadState/Table.bcd!541573140] IN

    LAMBDA [
        AtomImpl: Atom,
        BasicsImpl: Basics,
        BasicTimeImpl: BasicTime,
        BcdOpsImpl: BcdOps,
        FSImpl: FS,
        IOImpl: IO,
        LoadStateImpl: LoadState,
        PrincOpsUtilsImpl: PrincOpsUtils,
        RopeImpl: Rope,
        RuntimeErrorImpl: RuntimeError,
        SafeStorageImpl: SafeStorage,
        SafeStorageOpsImpl: SafeStorageOps,
        SystemVersionImpl: SystemVersion,
        VMImpl: VM] IN

      LET REC [
          &options: STRING~"";

          Loader: TYPE~@Loader.mesa!539570608*[&options:~"s-z"];
          LoaderOps: TYPE~@LoaderOps.mesa!539567253*[&options:~"s-z"];
          LoaderOpsExtras: TYPE~@LoaderOpsExtras.mesa!570661519*[&options:~"s-z"];

          [
          LoaderImpl: Loader, LoaderOpsImpl1: LoaderOps,
          LoaderOpsExtrasImpl1: LoaderOpsExtras]~
            @CedarLoaderImpl.mesa!579550486*[]*[];

          [LoaderOpsImpl2: LoaderOps, LoaderOpsExtrasImpl2: LoaderOpsExtras]~
            @CedarExporterImpl.mesa!570662071*[]*[];

          LoaderOpsImpl: LoaderOps~
            LoaderOpsImpl1 + @CedarLinkerImpl.mesa!571608344*[]*[] + LoaderOpsImpl2;
          LoaderOpsExtraImpl: LoaderOpsExtras~
            LoaderOpsExtrasImpl1 + LoaderOpsExtrasImpl2] IN

      [Loader: TYPE~Loader,
       LoaderOps: TYPE~LoaderOps,
       LoaderOpsExtras: TYPE~LoaderOpsExtras,
       LoaderImpl: Loader~LoaderImpl,
       LoaderOpsImpl: LoaderOps~LoaderOpsImpl,
       LoaderOpsExtrasImpl: LoaderOpsExtras~LoaderOpsExtraImpl]