src/Tools/code/code_thingol.ML
changeset 30970 3fe2e418a071
parent 30947 dd551284a300
child 31036 64ff53fc0c0c
equal deleted inserted replaced
30969:fd9c89419358 30970:3fe2e418a071
    84   val consts_program: theory -> string list -> string list * (naming * program)
    84   val consts_program: theory -> string list -> string list * (naming * program)
    85   val cached_program: theory -> naming * program
    85   val cached_program: theory -> naming * program
    86   val eval_conv: theory -> (sort -> sort)
    86   val eval_conv: theory -> (sort -> sort)
    87     -> (naming -> program -> (((string * sort) list * typscheme) * (string * itype) list) * iterm -> string list -> cterm -> thm)
    87     -> (naming -> program -> (((string * sort) list * typscheme) * (string * itype) list) * iterm -> string list -> cterm -> thm)
    88     -> cterm -> thm
    88     -> cterm -> thm
    89   val eval_term: theory -> (sort -> sort)
    89   val eval: theory -> (sort -> sort) -> ((term -> term) -> 'a -> 'a)
    90     -> (naming -> program -> (((string * sort) list * typscheme) * (string * itype) list) * iterm -> string list -> term)
       
    91     -> term -> term
       
    92   val eval: theory -> (sort -> sort)
       
    93     -> (naming -> program -> (((string * sort) list * typscheme) * (string * itype) list) * iterm -> string list -> 'a)
    90     -> (naming -> program -> (((string * sort) list * typscheme) * (string * itype) list) * iterm -> string list -> 'a)
    94     -> term -> 'a
    91     -> term -> 'a
    95 end;
    92 end;
    96 
    93 
    97 structure Code_Thingol: CODE_THINGOL =
    94 structure Code_Thingol: CODE_THINGOL =
   778       invoke_generation thy (algebra, funcgr) ensure_value (fs, t);
   775       invoke_generation thy (algebra, funcgr) ensure_value (fs, t);
   779     val vs'' = map (fn (v, _) => (v, (the o AList.lookup (op =) vs o prefix "'") v)) vs';
   776     val vs'' = map (fn (v, _) => (v, (the o AList.lookup (op =) vs o prefix "'") v)) vs';
   780   in evaluator naming program (((vs'', (vs', ty')), fs'), t') deps end;
   777   in evaluator naming program (((vs'', (vs', ty')), fs'), t') deps end;
   781 
   778 
   782 fun eval_conv thy prep_sort = Code_Wellsorted.eval_conv thy prep_sort o base_evaluator thy;
   779 fun eval_conv thy prep_sort = Code_Wellsorted.eval_conv thy prep_sort o base_evaluator thy;
   783 fun eval_term thy prep_sort = Code_Wellsorted.eval_term thy prep_sort o base_evaluator thy;
   780 fun eval thy prep_sort postproc = Code_Wellsorted.eval thy prep_sort postproc o base_evaluator thy;
   784 fun eval thy prep_sort = Code_Wellsorted.eval thy prep_sort o base_evaluator thy;
       
   785 
   781 
   786 
   782 
   787 (** diagnostic commands **)
   783 (** diagnostic commands **)
   788 
   784 
   789 fun code_depgr thy consts =
   785 fun code_depgr thy consts =