11 import U_literal ( U_literal ) -- ditto
12 import U_ttype ( U_ttype ) -- interface only
17 idata_pragma: < gprag_data_constrs : list; /*of con decls*/
18 gprag_data_specs : list; /*specialisations*/ >;
22 iclas_pragma: < gprag_clas : list; /*of gen pragmas*/ >;
24 iclasop_pragma: < gprag_dsel : hpragma; /* gen pragma: dict selector */
25 gprag_defm : hpragma; /* gen pragma: default method */ >;
27 iinst_simpl_pragma: < gprag_imod_simpl : stringId;
28 gprag_dfun_simpl : hpragma; /* gen pragma: of dfun */ >;
30 iinst_const_pragma: < gprag_imod_const : stringId;
31 gprag_dfun_const : hpragma; /* gen pragma: of dfun */
32 gprag_constms : list; /* (name, gen pragma) pairs */ >;
34 igen_pragma: < gprag_arity : hpragma; /* arity */
35 gprag_update : hpragma; /* update info */
36 gprag_deforest : hpragma; /* deforest info */
37 gprag_strictness : hpragma; /* strictness info */
38 gprag_unfolding : hpragma; /* unfolding */
39 gprag_specs : list; /* (type, gen pragma) pairs */ >;
41 iarity_pragma: < gprag_arity_val : numId; >;
42 iupdate_pragma: < gprag_update_val : stringId; >;
43 ideforest_pragma: < >;
44 istrictness_pragma: < gprag_strict_spec : hstring;
45 gprag_strict_wrkr : hpragma; /*about worker*/ >;
46 imagic_unfolding_pragma: < gprag_magic_str : stringId; >;
48 iunfolding_pragma: < gprag_unfold_guide : hpragma; /* guidance */
49 gprag_unfold_core : coresyn; >;
52 iunfold_if_args: < gprag_unfold_if_t_args : numId;
53 gprag_unfold_if_v_args : numId;
54 gprag_unfold_if_con_args : stringId;
55 gprag_unfold_if_size : numId; >;
57 iname_pragma_pr: < gprag_name_pr1 : unkId;
58 gprag_name_pr2 : hpragma; >;
59 itype_pragma_pr: < gprag_type_pr1 : list; /* of maybe types */
60 gprag_type_pr2 : numId; /* # dicts to ignore */
61 gprag_type_pr3 : hpragma; >;
63 idata_pragma_4s: < gprag_data_spec : list; /* of maybe types */ >;