fix syntax types

the type is (Syntaxof the-type-of-the-result-of-syntax-e), not
(Syntaxof the-type-of-the-result-of-syntax->datum)
Fixes PR 14561 (http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&pr=14561)

and here about generalize