typename <>::type snippet