Allow referring to structs with type parameters

Fixes #164
Copy type arguments with withAdditionalArrayDimensions()

Fixes #165