support typedef and identity