I was playing with ScaledDecimal when doing experiments with numbers in Pharo. Now, ScaledDecimal says in its comment: "Note that a ScaledDecimal does not printOn: exactly, however it will storeOn: exactly because the full precision fraction is kept in memory." This happens to be right when inspecting the expressions. Now, I tried to do the following: x := 2 asScaledDecimal. y := 1 asScaledDecimal. z := (y / x). z storeOn: Transcript. And z storeOn: Transcript fails miserably. This is due to storeOn: doing: storeOn: aStream "ScaledDecimal sometimes have more digits than they print (potentially an infinity). In this case, do not use printOn: because it would loose some extra digits" self shouldBePrintedAsLiteral ifTrue: [self printOn: aStream] ifFalse: [aStream nextPut: $(; store: numerator; nextPut: $/; store: denominator; nextPut: $s; store: scale; nextPut: $)] And store: doesn't exists in the ThreadSafeTranscript which happens to be no stream at all. Try this out: x := 2 asScaledDecimal. y := 1 asScaledDecimal. z := (y / x). "works" 5.0 storeOn: Transcript. Transcript flush. "works" (1/2) storeOn: Transcript. Transcript flush. "fails" z storeOn: Transcript. Transcript flush. "works" s := (String new: 30). st := s writeStream. z storeOn: st. Transcript show: 'storeOn: ', st contents; cr; show: z. Kind of annoying to do while explaining to kids. The ThreadSafe transcript looks like to be subclassed from Object and being no real stream at all. Why is it so? Phil