NEWS
changeset 74288 1fc263b5aac1
parent 74283 019fe8238656
child 74289 7492cd35782e
equal deleted inserted replaced
74287:f79dfc7656ae 74288:1fc263b5aac1
   245 * Thm.instantiate, Thm.generalize and related operations require
   245 * Thm.instantiate, Thm.generalize and related operations require
   246 scalable datastructures from structure TVars, Vars, Names etc.
   246 scalable datastructures from structure TVars, Vars, Names etc.
   247 INCOMPATIBILITY: e.g. use TVars.empty and TVars.make for immediate
   247 INCOMPATIBILITY: e.g. use TVars.empty and TVars.make for immediate
   248 adoption; better use TVars.add, TVars.add_tfrees etc. for scalable
   248 adoption; better use TVars.add, TVars.add_tfrees etc. for scalable
   249 accumulation of items.
   249 accumulation of items.
       
   250 
       
   251 * The "build" combinators of various data structures help to build
       
   252 content from bottom-up, by applying an "add" function the "empty" value.
       
   253 For example:
       
   254 
       
   255   - type 'a Symtab.table etc.: build
       
   256   - Type 'a Names.table etc.: build
       
   257   - type 'a list: build and build_rev
       
   258   - type Buffer.T: build and build_content
       
   259 
       
   260 For example, see src/Pure/PIDE/xml.ML:
       
   261 
       
   262   val content_of = Buffer.build_content o fold add_content;
   250 
   263 
   251 * ML antiquotations \<^try>\<open>expr\<close> and \<^can>\<open>expr\<close> operate directly on
   264 * ML antiquotations \<^try>\<open>expr\<close> and \<^can>\<open>expr\<close> operate directly on
   252 the given ML expression, in contrast to functions "try" and "can" that
   265 the given ML expression, in contrast to functions "try" and "can" that
   253 modify application of a function.
   266 modify application of a function.
   254 
   267