src/Pure/library.ML
Mon, 26 Oct 2009 15:16:28 +0100 haftmann avoid upto if not needed
Fri, 23 Oct 2009 10:11:56 +0200 haftmann merged
Thu, 22 Oct 2009 16:58:22 +0200 haftmann restored accidentally deleted submultiset
Thu, 22 Oct 2009 16:52:06 +0200 haftmann multiset operations with canonical argument order
Thu, 22 Oct 2009 17:54:47 +0200 wenzelm made SML/NJ happy;
Thu, 22 Oct 2009 13:48:06 +0200 haftmann map_range (and map_index) combinator
Wed, 21 Oct 2009 12:12:21 +0200 haftmann merged
Wed, 21 Oct 2009 12:09:37 +0200 haftmann curried inter as canonical list operation (beware of argument order)
Wed, 21 Oct 2009 12:08:52 +0200 haftmann merged
Wed, 21 Oct 2009 12:02:56 +0200 haftmann curried union as canonical list operation
Wed, 21 Oct 2009 10:15:31 +0200 haftmann removed old-style \ and \\ infixes
Wed, 21 Oct 2009 08:14:38 +0200 haftmann dropped redundant gen_ prefix
Tue, 20 Oct 2009 16:13:01 +0200 haftmann replaced old_style infixes eq_set, subset, union, inter and variants by generic versions
Sat, 17 Oct 2009 22:34:19 +0200 wenzelm tuned/moved divide_and_conquer';
Sat, 17 Oct 2009 15:57:51 +0200 wenzelm indicate CRITICAL nature of various setmp combinators;
Tue, 29 Sep 2009 11:48:32 +0200 wenzelm Raw ML references as unsynchronized state variables.
Mon, 10 Aug 2009 12:24:47 +0200 haftmann added map_transpose
Sat, 25 Jul 2009 12:43:45 +0200 wenzelm eliminated redundant Library.multiply;
Fri, 10 Jul 2009 07:59:27 +0200 haftmann dropped find_index_eq
Sun, 24 May 2009 15:02:23 +0200 haftmann funpow_yield; tuned
Wed, 18 Mar 2009 20:03:01 +0100 wenzelm Library.merge/OrdList.union: optimize the important special case where the tables coincide -- NOTE: this changes both the operational behaviour and the result for non-standard eq/ord notion;
Wed, 18 Mar 2009 15:23:52 +0100 haftmann made SML/NJ happy
Tue, 17 Mar 2009 14:09:20 +0100 wenzelm renamed Tactic.taglist/untaglist/orderlist to tag_list/untag_list/order_list (in library.ML);
Sun, 01 Mar 2009 23:36:12 +0100 wenzelm use long names for old-style fold combinators;
Fri, 13 Feb 2009 07:53:38 +1100 kleing New command find_consts searching for constants by type (by Timothy Bourke).
Thu, 11 Dec 2008 17:55:51 +0100 ballarin Clarified comment.
Mon, 10 Nov 2008 19:42:20 +0100 haftmann clarified comment
Thu, 09 Oct 2008 08:47:28 +0200 haftmann removed legacy |>>>
Thu, 25 Sep 2008 09:28:05 +0200 haftmann burrow_fst
Sun, 07 Sep 2008 22:19:46 +0200 wenzelm added change_result;
Thu, 04 Sep 2008 16:03:44 +0200 wenzelm Thread.getLocal/setLocal;
Wed, 27 Aug 2008 20:36:23 +0200 wenzelm replaced find_substring by first_field;
Wed, 27 Aug 2008 16:32:18 +0200 wenzelm added find_substring;
Wed, 13 Aug 2008 20:57:20 +0200 wenzelm removed obsolete untabify (superceded by SymbolPos.tabify_content);
Thu, 27 Mar 2008 19:05:10 +0100 haftmann changed wrong assignement in signature sections
Thu, 27 Mar 2008 17:35:56 +0100 wenzelm tuned comments;
Sat, 16 Feb 2008 16:43:56 +0100 wenzelm setmp: uninterruptible;
Sat, 26 Jan 2008 17:08:39 +0100 wenzelm added surround;
Tue, 22 Jan 2008 23:07:24 +0100 haftmann added map_split
Thu, 03 Jan 2008 00:15:39 +0100 wenzelm added setmp_thread_data;
Tue, 01 Jan 2008 16:09:26 +0100 wenzelm removed separate exists/forall code;
Tue, 18 Dec 2007 22:21:40 +0100 wenzelm serial: now based on specific version in structure Multithreading;
Mon, 17 Dec 2007 18:39:18 +0100 berghofe Added foldl1.
Wed, 05 Dec 2007 20:56:42 +0100 wenzelm tuned signature;
Wed, 05 Dec 2007 14:16:05 +0100 haftmann map_product and fold_product
Mon, 29 Oct 2007 16:13:43 +0100 wenzelm added bool_ord;
Tue, 16 Oct 2007 23:12:38 +0200 haftmann added yield_singleton
Tue, 16 Oct 2007 19:45:54 +0200 wenzelm added perhaps_apply/loop;
Thu, 11 Oct 2007 19:10:21 +0200 wenzelm removed obsolete flip;
Fri, 05 Oct 2007 23:04:16 +0200 wenzelm added burrow_options;
Thu, 04 Oct 2007 19:54:47 +0200 haftmann added nth_drop
Tue, 18 Sep 2007 16:08:00 +0200 wenzelm simplified type int (eliminated IntInf.int, integer);
Sun, 16 Sep 2007 14:52:26 +0200 wenzelm added some int constraints (ML_Parse.fix_ints not active here);
Fri, 03 Aug 2007 22:33:03 +0200 wenzelm named some CRITICAL sections;
Sun, 29 Jul 2007 14:30:05 +0200 wenzelm added list update;
Sat, 28 Jul 2007 20:40:29 +0200 wenzelm setmp: NAMED_CRITICAL;
Tue, 24 Jul 2007 19:44:35 +0200 wenzelm moved exception capture/release to structure Exn;
Mon, 23 Jul 2007 19:45:44 +0200 wenzelm eliminated transform_failure (to avoid critical section for main transactions);
Mon, 23 Jul 2007 16:45:00 +0200 wenzelm added setmp_noncritical;
Mon, 23 Jul 2007 14:06:12 +0200 wenzelm marked some CRITICAL sections (for multithreading);
Thu, 19 Jul 2007 23:18:43 +0200 wenzelm added undefined: 'a -> 'b;
Tue, 17 Jul 2007 13:19:21 +0200 wenzelm moved cd/pwd to ML compatibility layer (simplifies bootstrapping with Alice);
Tue, 10 Jul 2007 23:29:41 +0200 wenzelm simplified funpow, untabify;
Tue, 19 Jun 2007 23:15:54 +0200 wenzelm moved balanced tree operations to General/balanced_tree.ML;
Tue, 05 Jun 2007 15:17:02 +0200 haftmann moved generic algebra modules
Sun, 03 Jun 2007 23:16:48 +0200 wenzelm added flip (from General/basics.ML);
Sat, 02 Jun 2007 15:26:32 +0200 krauss added "plural : 'a -> 'a -> 'b list -> 'a" for convenient error msg construction
Wed, 04 Apr 2007 18:05:05 +0200 paulson find_first is just an alias
Wed, 04 Apr 2007 00:11:13 +0200 wenzelm removed obsolete scanwords (see obsolete tactic.ML:rename_tac for its only use);
Tue, 03 Apr 2007 19:24:11 +0200 wenzelm removed assert/deny (avoid clash with Alice keywords and confusion due to strict evaluation);
Wed, 28 Feb 2007 00:22:26 +0100 wenzelm gensym: removed bits of dead code;
Tue, 27 Feb 2007 11:10:35 +0100 paulson gensym no longer includes ' or _ in names (trailing _ is bad)
Wed, 07 Feb 2007 12:05:54 +0100 berghofe Made untabify function tail recursive.
Sun, 21 Jan 2007 13:26:44 +0100 nipkow Added lists-as-multisets functions
Sat, 30 Dec 2006 16:08:00 +0100 wenzelm removed conditional combinator;
Fri, 29 Dec 2006 18:46:02 +0100 wenzelm added signed_string_of_int (pruduces proper - instead of SML's ~);
Thu, 28 Dec 2006 14:30:40 +0100 wenzelm removed nospaces (Char.isSpace does not conform to Isabelle conventions);
Fri, 22 Dec 2006 20:58:14 +0100 paulson string primtives
Fri, 15 Dec 2006 00:08:14 +0100 wenzelm tuned -- accomodate Alice;
Tue, 28 Nov 2006 00:35:18 +0100 wenzelm simplified '?' operator;
Thu, 23 Nov 2006 00:52:07 +0100 wenzelm moved string_of_pair/list/option to structure ML_Syntax;
Thu, 16 Nov 2006 01:07:25 +0100 wenzelm moved some fundamental concepts to General/basics.ML;
Mon, 13 Nov 2006 15:43:13 +0100 haftmann added higher-order combinators for structured results
Sun, 05 Nov 2006 21:44:35 +0100 wenzelm removed obsolete first_duplicate;
Tue, 31 Oct 2006 09:29:11 +0100 haftmann cleanup
Wed, 11 Oct 2006 10:49:36 +0200 haftmann abandoned findrep
Tue, 10 Oct 2006 13:59:13 +0200 haftmann gen_rem(s) abandoned in favour of remove / subtract
Sat, 07 Oct 2006 01:31:10 +0200 wenzelm added the_single;
Wed, 04 Oct 2006 14:17:38 +0200 haftmann insert replacing ins ins_int ins_string
Tue, 12 Sep 2006 12:12:53 +0200 wenzelm tuned eq_list;
Thu, 31 Aug 2006 10:17:19 +0200 paulson Empty is better than Match
Tue, 08 Aug 2006 08:18:59 +0200 haftmann abandoned equal_list in favor for eq_list
Mon, 17 Jul 2006 15:16:17 +0200 webertj butlast removed (use fst o split_last instead)
Sat, 15 Jul 2006 18:17:47 +0200 webertj function butlast added
Wed, 12 Jul 2006 17:00:32 +0200 haftmann added chop_prefix
Tue, 11 Jul 2006 14:21:07 +0200 wenzelm replaced read_radixint by read_intinf;
Tue, 04 Jul 2006 19:49:57 +0200 wenzelm removed parrot comment;
Mon, 03 Jul 2006 16:25:10 +0200 webertj comment added
Tue, 06 Jun 2006 20:42:30 +0200 wenzelm added zip_options;
Sat, 20 May 2006 23:37:02 +0200 wenzelm removed obsolete partition (cf. List.partition);
Tue, 16 May 2006 13:01:27 +0200 wenzelm added divide_and_conquer combinator (by Amine Chaieb);
Tue, 09 May 2006 10:07:38 +0200 haftmann removed superfluous eq_ord
Mon, 08 May 2006 12:23:57 +0200 webertj string_of_option tuned
Fri, 05 May 2006 18:21:58 +0200 webertj string_of_... functions added
Tue, 02 May 2006 20:42:37 +0200 wenzelm sys_error: exception SYS_ERROR;
Sun, 30 Apr 2006 22:50:06 +0200 wenzelm added serial_string;
Thu, 27 Apr 2006 15:06:39 +0200 wenzelm renamed mapfilter to map_filter, made pervasive (again);
Wed, 26 Apr 2006 22:38:11 +0200 wenzelm removed splitAt (superceded by chop);
Tue, 25 Apr 2006 22:23:04 +0200 wenzelm made 'flat' pervasive (again);
Mon, 24 Apr 2006 16:35:30 +0200 haftmann moved coalesce to AList, added equality predicates to library
Thu, 13 Apr 2006 12:01:02 +0200 wenzelm export unflat (again);
Sun, 09 Apr 2006 18:51:17 +0200 wenzelm added coalesce;
Tue, 21 Mar 2006 12:18:09 +0100 wenzelm added subtract;
Tue, 14 Mar 2006 22:07:33 +0100 wenzelm added singleton;
Fri, 10 Mar 2006 15:33:48 +0100 haftmann renamed HOL + - * etc. to HOL.plus HOL.minus HOL.times etc.
Wed, 22 Feb 2006 10:18:17 +0100 haftmann abandoned merge_alists' in favour of generic AList.merge
Wed, 15 Feb 2006 21:34:55 +0100 wenzelm removed distinct, renamed gen_distinct to distinct;
Sat, 11 Feb 2006 17:17:45 +0100 wenzelm added chop (sane version of splitAt);
Fri, 10 Feb 2006 02:22:19 +0100 wenzelm tuned;
Tue, 07 Feb 2006 19:56:48 +0100 wenzelm removed eq-polymorphic duplicates;
Fri, 03 Feb 2006 23:12:31 +0100 wenzelm removed obsolete gen_ins/mem;
Thu, 19 Jan 2006 21:22:17 +0100 wenzelm tuned setmp;
Sat, 14 Jan 2006 17:14:14 +0100 wenzelm added exception ERROR, error, cat_error, sys_error, assert, deny, assert_all;
Tue, 03 Jan 2006 11:31:15 +0100 haftmann rearranged burrow_split to fold_burrow to allow composition with fold_map
Tue, 27 Dec 2005 15:24:23 +0100 haftmann added map_index
Thu, 22 Dec 2005 00:28:44 +0100 wenzelm tuned;
Wed, 21 Dec 2005 15:18:36 +0100 haftmann added eq_ord
Wed, 21 Dec 2005 13:25:20 +0100 haftmann discontinued unflat in favour of burrow and burrow_split
Tue, 20 Dec 2005 08:38:10 +0100 haftmann removed infix prefix, introduces burrow
Sat, 17 Dec 2005 01:00:38 +0100 wenzelm added sort_distinct;
Thu, 08 Dec 2005 20:16:17 +0100 wenzelm tuned;
Tue, 06 Dec 2005 16:07:10 +0100 haftmann added 'dig' combinator
Fri, 02 Dec 2005 16:04:48 +0100 haftmann added perhaps option combinator
Fri, 02 Dec 2005 08:06:59 +0100 haftmann introduced new map2, fold
Tue, 29 Nov 2005 23:00:03 +0100 wenzelm added nth_list;
Mon, 28 Nov 2005 13:43:56 +0100 haftmann added (curried) fold2
Thu, 10 Nov 2005 20:57:18 +0100 wenzelm curried multiply;
Mon, 31 Oct 2005 16:00:15 +0100 haftmann fold_index replacing foldln
Fri, 28 Oct 2005 16:35:40 +0200 haftmann cleaned up nth, nth_update, nth_map and nth_string functions
Fri, 21 Oct 2005 14:49:49 +0200 haftmann abandoned rational number functions in favor of General/rat.ML
Tue, 11 Oct 2005 13:28:06 +0200 wenzelm moved string_of_pid to ML-Systems;
Mon, 10 Oct 2005 15:35:29 +0200 paulson small tidy-up of utility functions
Tue, 04 Oct 2005 19:01:37 +0200 wenzelm minor tweaks for Poplog/ML;
Wed, 21 Sep 2005 11:49:31 +0200 wenzelm tuned;
Wed, 21 Sep 2005 10:32:24 +0200 haftmann removed assoc, overwrite
Tue, 20 Sep 2005 08:24:18 +0200 haftmann improved eq_fst and eq_snd, removed some deprecated stuff
Mon, 19 Sep 2005 16:39:27 +0200 haftmann removed some deprecated assocation list functions
Tue, 13 Sep 2005 22:19:25 +0200 wenzelm added exception EXCEPTION of exn * string;
Thu, 08 Sep 2005 16:08:50 +0200 haftmann added the_list, the_default
Mon, 05 Sep 2005 08:14:35 +0200 haftmann introduced binding priority 1 for linear combinators etc.
Sun, 28 Aug 2005 09:18:22 +0200 haftmann added 'these', removed assoc2
Thu, 25 Aug 2005 09:23:40 +0200 haftmann added ? combinator for conditional transformations
Thu, 18 Aug 2005 11:17:36 +0200 wenzelm added tap;
Tue, 16 Aug 2005 13:42:32 +0200 wenzelm tuned unsuffix/unprefix;
Mon, 08 Aug 2005 12:15:03 +0200 nipkow fixed typo in ratadd
Sun, 07 Aug 2005 12:28:10 +0200 nipkow added more rat functions
Mon, 01 Aug 2005 19:20:38 +0200 wenzelm tuned dict_ord;
Tue, 19 Jul 2005 17:21:50 +0200 wenzelm added has_duplicates;
Mon, 18 Jul 2005 14:10:11 +0200 haftmann reverted from fold_yield to fold_map
Thu, 14 Jul 2005 19:28:24 +0200 wenzelm tuned;
Thu, 14 Jul 2005 10:48:19 +0200 haftmann added ` combinator
Tue, 12 Jul 2005 19:18:55 +0200 haftmann fold_map -> fold_yield, added transformator combinators, added selector combinator
Wed, 06 Jul 2005 20:00:27 +0200 wenzelm tuned;
Wed, 06 Jul 2005 10:41:38 +0200 wenzelm tuned;
Tue, 05 Jul 2005 18:11:59 +0200 wenzelm tuned K;
Tue, 05 Jul 2005 15:49:19 +0200 haftmann added combinatros '||>' and '||>>' and fold_map fitting nicely to ST combinator '|->'
Tue, 05 Jul 2005 13:57:23 +0200 haftmann added ST combinator '|->'
Mon, 04 Jul 2005 17:07:10 +0200 wenzelm added fast_string_ord;
Fri, 01 Jul 2005 14:41:58 +0200 wenzelm low-level tuning of fold, fold_rev, foldl_map;
Wed, 22 Jun 2005 19:41:20 +0200 wenzelm added structure Object (from Pure/General/object.ML);
Mon, 20 Jun 2005 22:14:06 +0200 wenzelm added member, option_ord;
Fri, 17 Jun 2005 18:33:24 +0200 wenzelm added serial numbers;
Thu, 02 Jun 2005 18:29:48 +0200 wenzelm replaced foldl_string by fold_string;
Tue, 31 May 2005 11:53:20 +0200 wenzelm export filter;
Tue, 17 May 2005 10:08:24 +0200 wenzelm removed rev_append;
Mon, 16 May 2005 10:29:15 +0200 paulson Use of IntInf.int instead of int in most numeric simprocs; avoids
Sun, 17 Apr 2005 19:39:39 +0200 wenzelm clarified insert/remove;
Sat, 16 Apr 2005 18:55:51 +0200 wenzelm added gen_remove, remove;
Mon, 11 Apr 2005 12:34:34 +0200 ballarin First release of interpretation commands.
Thu, 07 Apr 2005 09:27:33 +0200 wenzelm invalidated former constructors None/OPTION to prevent accidental use as match-all patterns!
Thu, 03 Mar 2005 12:43:01 +0100 skalberg Move towards standard functions.
Sun, 13 Feb 2005 17:15:14 +0100 skalberg Deleted Library.option type.
Tue, 26 Oct 2004 16:33:35 +0200 berghofe Added function merge_alists'.
Mon, 19 Jul 2004 18:12:49 +0200 berghofe Added function unprefix.
Fri, 16 Jul 2004 09:36:04 +0200 wenzelm int_ord = Int.compare, string_ord = String.compare;
Sun, 11 Jul 2004 20:35:23 +0200 wenzelm added fold_rev: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b;
Mon, 21 Jun 2004 10:25:57 +0200 kleing Merged in license change from Isabelle2004
Fri, 18 Jun 2004 20:07:42 +0200 wenzelm tuned exists_string;
Sat, 12 Jun 2004 22:46:21 +0200 wenzelm added translate_string;
Sat, 05 Jun 2004 13:06:04 +0200 wenzelm tuned exeption handling (capture/release);
Sat, 29 May 2004 15:02:13 +0200 wenzelm output channels and diagnostics moved to General/output.ML; added read_int etc. from term.ML; removed obsolete mtree; type rat uses exception RAT;
Fri, 21 May 2004 21:46:25 +0200 berghofe - exported result datatype
Fri, 21 May 2004 21:27:42 +0200 wenzelm added fold, product; removed transitive_closure;
Sat, 17 Apr 2004 17:08:53 +0200 berghofe Fixed bug in rmod that caused an overflow exception in SML/NJ.
Fri, 19 Mar 2004 10:42:38 +0100 paulson Removing the datatype declaration of "order" allows the standard General.order
Fri, 11 Jul 2003 14:59:50 +0200 berghofe Added several functions for producing random numbers.
Wed, 29 Jan 2003 17:32:19 +0100 berghofe Added function rev_append.
Mon, 07 Oct 2002 19:01:51 +0200 nipkow take/drop -> splitAt
Thu, 08 Aug 2002 23:53:22 +0200 wenzelm transform_error: pass through Interrupt;
Wed, 20 Feb 2002 00:54:54 +0100 wenzelm removed obscure functions bump_int_list, bump_list, bump_string;
Thu, 17 Jan 2002 20:59:31 +0100 wenzelm added timeap_msg;
Sat, 08 Dec 2001 14:42:03 +0100 wenzelm export writeln_default;
Mon, 03 Dec 2001 21:01:37 +0100 wenzelm removed questionable init_gensym;
Mon, 26 Nov 2001 17:48:22 +0100 wenzelm clarified order in gen_merge_lists';
Sat, 24 Nov 2001 16:55:56 +0100 wenzelm added gen_merge_lists(') and merge_lists(');
Wed, 21 Nov 2001 00:34:38 +0100 wenzelm added tracing, tracing_fn;
Tue, 20 Nov 2001 20:56:13 +0100 wenzelm added prefixes1, suffixes1;
Sun, 11 Nov 2001 21:30:31 +0100 wenzelm added unflat;
Sat, 20 Oct 2001 20:21:14 +0200 wenzelm conditional: bool -> (unit -> unit) -> unit;
Mon, 15 Oct 2001 20:31:18 +0200 wenzelm map_nth_elem;
Fri, 31 Aug 2001 16:09:25 +0200 berghofe Added function unique_strings.
Thu, 01 Feb 2001 20:45:11 +0100 wenzelm comment
Tue, 30 Jan 2001 18:53:46 +0100 oheimb added foldln
Sun, 21 Jan 2001 19:52:32 +0100 wenzelm added replicate_string;
Mon, 18 Dec 2000 14:57:58 +0100 nipkow added rational arithmetic
Mon, 04 Sep 2000 21:18:33 +0200 wenzelm tuned;
Fri, 01 Sep 2000 00:32:11 +0200 wenzelm added priority, priority_fn;
Tue, 29 Aug 2000 15:13:10 +0200 nipkow *** empty log message ***
Sun, 25 Jun 2000 23:45:26 +0200 wenzelm added change: 'a ref -> ('a -> 'a) -> unit;
Tue, 30 May 2000 16:03:09 +0200 wenzelm global timing flag;
Fri, 05 May 2000 22:02:46 +0200 wenzelm GPLed;
Mon, 13 Mar 2000 12:23:44 +0100 wenzelm added |>> and |>>>;
Wed, 01 Dec 1999 11:15:56 +0100 paulson fixed the discrepancy in the ordering of the constructors LESS EQUAL GREATER
Tue, 05 Oct 1999 15:25:35 +0200 wenzelm added untabify;
Sat, 04 Sep 1999 21:00:20 +0200 wenzelm equal_lists: ('a * 'b -> bool) -> 'a list * 'b list -> bool;
Tue, 27 Jul 1999 17:30:25 +0200 paulson added gen_inter
Sat, 10 Jul 1999 21:34:01 +0200 wenzelm try/can: pass Interrupt and ERROR;
Wed, 12 May 1999 17:26:56 +0200 wenzelm strip_quotes replaced by unenclose;
Tue, 27 Apr 1999 10:42:08 +0200 wenzelm added oooo;
Tue, 09 Mar 1999 12:07:16 +0100 wenzelm added nth_elem_string, exists_string;
Sat, 13 Feb 1999 22:08:54 +0100 wenzelm foldl_string;
Wed, 25 Nov 1998 14:11:24 +0100 wenzelm removed prs / prs_fn (broken, because it did not include \n in its
Tue, 24 Nov 1998 11:59:15 +0100 wenzelm fixed prefix_lines: *separate* by \n;
Sat, 21 Nov 1998 12:16:15 +0100 wenzelm std_output, prefix_lines;
Tue, 17 Nov 1998 14:06:32 +0100 wenzelm val apply: ('a -> 'a) list -> 'a -> 'a;
Mon, 16 Nov 1998 11:32:28 +0100 wenzelm added oo, ooo (*concatenation: 2 and 3 args*);
Mon, 10 Aug 1998 16:57:07 +0200 wenzelm val single: 'a -> 'a list;
Thu, 02 Jul 1998 17:26:47 +0200 wenzelm Symbol.beginning;
Mon, 15 Jun 1998 11:05:25 +0200 wenzelm handle_error: capture error msgs, even if no exception raised;
Fri, 05 Jun 1998 14:23:52 +0200 wenzelm removed type object (see object.ML);
less more (0) -240 tip