equal
deleted
inserted
replaced
601 |
601 |
602 (* typerep and term *) |
602 (* typerep and term *) |
603 |
603 |
604 val typerepT = Type ("Typerep.typerep", []); |
604 val typerepT = Type ("Typerep.typerep", []); |
605 |
605 |
606 fun mk_typerep T = Const ("Typerep.typerep_class.typerep", |
606 fun mk_typerep (Type (tyco, Ts)) = Const ("Typerep.typerep.Typerep", |
607 Term.itselfT T --> typerepT) $ Logic.mk_type T; |
607 literalT --> listT typerepT --> typerepT) $ mk_literal tyco |
|
608 $ mk_list typerepT (map mk_typerep Ts) |
|
609 | mk_typerep (T as TFree _) = Const ("Typerep.typerep_class.typerep", |
|
610 Term.itselfT T --> typerepT) $ Logic.mk_type T; |
608 |
611 |
609 val termT = Type ("Code_Eval.term", []); |
612 val termT = Type ("Code_Eval.term", []); |
610 |
613 |
611 fun mk_term_of T t = Const ("Code_Eval.term_of_class.term_of", T --> termT) $ t; |
614 fun mk_term_of T t = Const ("Code_Eval.term_of_class.term_of", T --> termT) $ t; |
612 |
615 |