> I know people are always a threat to pull out the "oh, but my
> REAL code does this..." but I could swear he had to be talking about
> java.lang.String and Predef.String, literally. Weren't he/you? And none
> of these complications apply to that to my knowledge. So I'm kind of
> curious what you meant.
I'd be content with something that works most of the time. The difference between Predef.String and java.lang.String is something that comes up often enough to be included in 'most of the time'; higher-kinded type aliases and annotated types, at least for my particular use case, are sufficiently esoteric that I don't care if they end up with multiple entries. If normalize/deepNormalize worked as advertised, I'd walk away happy.
Unfortunately, I can't reproduce Jason's success with normalize:
Welcome to Scala version 2.10.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_30).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import reflect.runtime.universe._
import reflect.runtime.universe._
scala> (typeOf[String].normalize.##, typeOf[java.lang.String].normalize.##)
res0: (Int, Int) = (-1483520547,-590014646)
Any ideas as to why?