Only pull and erase names from Plain types if they're being requested.
Elide these checks into boolean ||s.
Cache via hash element ref.
Unary operators (typeof/sizeof/etc) that are actually words should get spaces.
CHAR->pointer happens so much that it makes sense to have $Syntel::Type::CSTRING
Use Syntel::Lib::C in syntel.pl.
Move String into Syntel::ConstantValue, add ::CharSequence, and make ConstantValue export some convenience functions: syn{String,CharSequence,Constant}
Test the syn* functions.