PreviousUpNext

15.4.583  src/lib/compiler/front/semantic/modules/package-property-lists.pkg

## package-property-lists.pkg
## (C) 2001 Lucent Technologies, Bell Labs

# Compiled by:
#     src/lib/compiler/core.sublib



stipulate
    package di  =  debruijn_index;                                              # debruijn_index                is from   src/lib/compiler/front/typer/basics/debruijn-index.pkg
    package hcf =  highcode_form;                                               # highcode_form                 is from   src/lib/compiler/back/top/highcode/highcode-form.pkg
    package hut =  highcode_uniq_types;                                         # highcode_uniq_types           is from   src/lib/compiler/back/top/highcode/highcode-uniq-types.pkg
    package mld =  module_level_declarations;                                   # module_level_declarations     is from   src/lib/compiler/front/typer-stuff/modules/module-level-declarations.pkg
    package pl  =  property_list;                                               # property_list                 is from   src/lib/src/property-list.pkg
    package sap =  stamppath;                                                   # stamppath                     is from   src/lib/compiler/front/typer-stuff/modules/stamppath.pkg
    package ty  =  types;                                                       # types                         is from   src/lib/compiler/front/typer-stuff/types/types.pkg
herein

    package package_property_lists {

        my  { get_fn =>  generics_expansion_lambdatype,
              set_fn =>  set_generics_expansion_lty,
              ...
            }
            =
            {   fun holder (e: mld::Typechecked_Package)
                    =
                    e.property_list;

                fun init _
                    =
                    NULL: Null_Or( (hut::Uniqtype, di::Debruijn_Depth) );

                pl::make_property (holder, init);
            };

        my  { get_fn =>  typechecked_generic_lty,
              set_fn =>  set_typechecked_generic_lty,
              ...
            }
            =
            {   fun holder (e: mld::Typechecked_Generic)
                    =
                    e.property_list;

                fun init _
                    =
                    NULL: Null_Or( (hut::Uniqtype, di::Debruijn_Depth) );

                pl::make_property (holder, init);
            };

        my  { get_fn =>  sig_lty,
              set_fn =>  set_sig_lty,
              ...
            }
            =
            {   fun holder (e: mld::Api_Record)
                    =
                    e.property_list;

                fun init _
                    =
                    NULL: Null_Or( (hut::Uniqtype, di::Debruijn_Depth) );

                pl::make_property (holder, init);
            };

        my  { get_fn =>  api_bound_generic_evaluation_paths,
              set_fn =>  set_api_bound_generic_evaluation_paths,
              ...
            }
            =
            {   fun holder (e: mld::Api_Record)
                    =
                    e.property_list;

                fun init _
                    =
                    NULL:  Null_Or( List( (sap::Stamppath, hut::Uniqkind) ) );

                pl::make_property (holder, init);
            };

        my { get_fn =>  dtf_ltyc,
             set_fn =>  set_dtf_ltyc,
             ...
            }
            =
            {   fun holder (f: ty::Datatype_Family)
                    =
                    f.property_list;

                fun init _
                    =
                    NULL:   Null_Or( (hut::Uniqtyp, di::Debruijn_Depth) );

                pl::make_property (holder, init);
            };
    };

end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext