imported->local_only = 1;
if ( localize ) imported->module = target_module; imported->exported = 0;
builtin_import(    PARSE *parse,    FRAME *frame ){    LIST *source_module_list = lol_get( frame->args, 0 );    LIST *source_rules = lol_get( frame->args, 1 );    LIST *target_module_list = lol_get( frame->args, 2 );    LIST *target_rules = lol_get( frame->args, 3 );    module* target_module = bindmodule( target_module_list ? target_module_list->string : 0 );    module* source_module = bindmodule( source_module_list ? source_module_list->string : 0 );        LIST *source_name, *target_name;                for ( source_name = source_rules, target_name = target_rules;          source_name && target_name;          source_name = list_next( source_name )          , target_name = list_next( target_name ) )    {        RULE r_, *r = &r_, *imported;        r_.name = source_name->string;                        if ( !hashcheck( source_module->rules, (HASHDATA**)&r ) )            unknown_rule( frame, "IMPORT", source_module->name, r_.name );                imported = import_rule( r, target_module, target_name->string );        imported->local_only = 1;    }        if ( source_name || target_name )    {        backtrace_line( frame->prev );        printf( "import error: length of source and target rule name lists don't match" );        backtrace( frame->prev );        exit(1);    }    return L0;}