# HG changeset patch # User wenzelm # Date 1631307827 -7200 # Node ID 1fc263b5aac1de9d33594623e31663d0816deb6f # Parent f79dfc7656ae18679b16f447c53b36a7c4d3dee1 NEWS; diff -r f79dfc7656ae -r 1fc263b5aac1 NEWS --- a/NEWS Fri Sep 10 22:46:41 2021 +0200 +++ b/NEWS Fri Sep 10 23:03:47 2021 +0200 @@ -248,6 +248,19 @@ adoption; better use TVars.add, TVars.add_tfrees etc. for scalable accumulation of items. +* The "build" combinators of various data structures help to build +content from bottom-up, by applying an "add" function the "empty" value. +For example: + + - type 'a Symtab.table etc.: build + - Type 'a Names.table etc.: build + - type 'a list: build and build_rev + - type Buffer.T: build and build_content + +For example, see src/Pure/PIDE/xml.ML: + + val content_of = Buffer.build_content o fold add_content; + * ML antiquotations \<^try>\expr\ and \<^can>\expr\ operate directly on the given ML expression, in contrast to functions "try" and "can" that modify application of a function.