 { $heading "Object identity" }
 "This feature changes the semantics of literal object identity. An ordinary word containing a literal pushes the same literal on the stack every time it is invoked:"
 { $example
+    "USING: kernel ;"
     "IN: scratchpad"
     "TUPLE: person first-name last-name ;"
     ": ordinary-word-test ( -- tuple )"
     "    T{ person { first-name \"Alan\" } { last-name \"Kay\" } } ;"
-    "ordinary-word-test ordinary-word-test eq? ."
-    "t"
+    "ordinary-word-test ordinary-word-test eq?"
+    "\n--- Data stack:\nt"
 }
 "Inside a lexical scope, literals which do not contain lexical variables still behave in the same way:"
 { $example
-    "USE: locals"
+    "USING: kernel locals ;"
     "IN: scratchpad"
     "TUPLE: person first-name last-name ;"
     ":: locals-word-test ( -- tuple )"
     "    T{ person { first-name \"Alan\" } { last-name \"Kay\" } } ;"
-    "locals-word-test locals-word-test eq? ."
-    "t"
+    "locals-word-test locals-word-test eq?"
+    "\n--- Data stack:\nt"
 }
 "However, literals with lexical variables in them actually construct a new object:"
 { $example
-    "USING: locals splitting ;"
+    "USING: locals kernel splitting ;"
     "IN: scratchpad"
     "TUPLE: person first-name last-name ;"
     ":: constructor-test ( -- tuple )"
     "    \"Jane Smith\" \" \" split1 :> last :> first"
     "    T{ person { first-name first } { last-name last } } ;"
-    "constructor-test constructor-test eq? ."
-    "f"
+    "constructor-test constructor-test eq?"
+    "\n--- Data stack:\nf"
 }
 "One exception to the above rule is that array instances containing free lexical variables (that is, immutable lexical variables not referenced in a closure) do retain identity. This allows macros such as " { $link cond } " to expand at compile time even when their arguments reference variables." ;
 

:: quadratic-roots ( a b c -- x y )
    b sq 4 a c * * - sqrt :> disc
    b neg disc [ + ] [ - ] 2bi [ 2 a * / ] bi@ ;
1.0 1.0 -6.0 quadratic-roots [ . ] bi@"
"2.0
-3.0"
}
"If you wanted to perform the quadratic formula interactively from the listener, you could use " { $link POSTPONE: [let } " to provide a scope for the variables:"
{ $example "USING: locals math math.functions kernel ;

[let 1.0 :> a 1.0 :> b -6.0 :> c
    b sq 4 a c * * - sqrt :> disc
    b neg disc [ + ] [ - ] 2bi [ 2 a * / ] bi@
]"
"\n--- Data stack:\n2.0\n-3.0"
}

$nl
