src/Pure/library.ML
changeset 43793 9c9a9b13c5da
parent 43652 dcd0b667f73d
child 44617 5db68864a967
equal deleted inserted replaced
43792:d5803c3d537a 43793:9c9a9b13c5da
   906 
   906 
   907 val int_ord = Int.compare;
   907 val int_ord = Int.compare;
   908 val string_ord = String.compare;
   908 val string_ord = String.compare;
   909 
   909 
   910 fun fast_string_ord (s1, s2) =
   910 fun fast_string_ord (s1, s2) =
   911   (case int_ord (size s1, size s2) of EQUAL => string_ord (s1, s2) | ord => ord);
   911   if pointer_eq (s1, s2) then EQUAL
       
   912   else (case int_ord (size s1, size s2) of EQUAL => string_ord (s1, s2) | ord => ord);
   912 
   913 
   913 fun option_ord ord (SOME x, SOME y) = ord (x, y)
   914 fun option_ord ord (SOME x, SOME y) = ord (x, y)
   914   | option_ord _ (NONE, NONE) = EQUAL
   915   | option_ord _ (NONE, NONE) = EQUAL
   915   | option_ord _ (NONE, SOME _) = LESS
   916   | option_ord _ (NONE, SOME _) = LESS
   916   | option_ord _ (SOME _, NONE) = GREATER;
   917   | option_ord _ (SOME _, NONE) = GREATER;