rigid types and template aliases