src/HOLCF/domain/library.ML
changeset 2238 c72a23bbe762
parent 1834 c780a4f39454
child 2276 3eb9a113029e
equal deleted inserted replaced
2237:f01ac387e82b 2238:c72a23bbe762
    87 	    list);			(* argument list      *)
    87 	    list);			(* argument list      *)
    88 type eq = (string *		(* name      of abstracted type *)
    88 type eq = (string *		(* name      of abstracted type *)
    89 	   typ list) *		(* arguments of abstracted type *)
    89 	   typ list) *		(* arguments of abstracted type *)
    90 	  cons list;		(* represented type, as a constructor list *)
    90 	  cons list;		(* represented type, as a constructor list *)
    91 
    91 
    92 val rec_of    = snd o first;
    92 fun rec_of arg  = snd (first arg);
    93 val is_lazy   = fst o first;
    93 fun is_lazy arg = fst (first arg);
    94 val sel_of    =       second;
    94 val sel_of    =       second;
    95 val     vname =       third;
    95 val     vname =       third;
    96 val upd_vname =   upd_third;
    96 val upd_vname =   upd_third;
    97 fun is_rec         arg = rec_of arg >=0;
    97 fun is_rec         arg = rec_of arg >=0;
    98 fun is_nonlazy_rec arg = is_rec arg andalso not (is_lazy arg);
    98 fun is_nonlazy_rec arg = is_rec arg andalso not (is_lazy arg);