src/Tools/nbe.ML
changeset 44789 5a062c23c7db
parent 44788 8b935f1b3cf8
child 47572 1e18bbfb40cb
equal deleted inserted replaced
44788:8b935f1b3cf8 44789:5a062c23c7db
   423       let
   423       let
   424         val names = map snd super_classes @ map fst classparams;
   424         val names = map snd super_classes @ map fst classparams;
   425         val params = Name.invent Name.context "d" (length names);
   425         val params = Name.invent Name.context "d" (length names);
   426         fun mk (k, name) =
   426         fun mk (k, name) =
   427           (name, ([(v, [])],
   427           (name, ([(v, [])],
   428             [([IConst (class, ((([], []), []), false)) `$$ map (IVar o SOME) params],
   428             [([IConst (class, ((([], []), ([], ITyVar "")), false)) `$$ map (IVar o SOME) params],
   429               IVar (SOME (nth params k)))]));
   429               IVar (SOME (nth params k)))]));
   430       in map_index mk names end
   430       in map_index mk names end
   431   | eqns_of_stmt (_, Code_Thingol.Classrel _) =
   431   | eqns_of_stmt (_, Code_Thingol.Classrel _) =
   432       []
   432       []
   433   | eqns_of_stmt (_, Code_Thingol.Classparam _) =
   433   | eqns_of_stmt (_, Code_Thingol.Classparam _) =
   434       []
   434       []
   435   | eqns_of_stmt (inst, Code_Thingol.Classinst ((class, (_, arity_args)), (super_instances, (classparam_instances, _)))) =
   435   | eqns_of_stmt (inst, Code_Thingol.Classinst ((class, (_, arity_args)), (super_instances, (classparam_instances, _)))) =
   436       [(inst, (arity_args, [([], IConst (class, ((([], []), []), false)) `$$
   436       [(inst, (arity_args, [([], IConst (class, ((([], []), ([], ITyVar "")), false)) `$$
   437         map (fn (_, (_, (inst, dss))) => IConst (inst, ((([], dss), []), false))) super_instances
   437         map (fn (_, (_, (inst, dss))) => IConst (inst, ((([], dss), ([], ITyVar "")), false))) super_instances
   438         @ map (IConst o snd o fst) classparam_instances)]))];
   438         @ map (IConst o snd o fst) classparam_instances)]))];
   439 
   439 
   440 
   440 
   441 (* compile whole programs *)
   441 (* compile whole programs *)
   442 
   442