higher rank types can be given as applications of type aliases in constructors
check for correct kind operator *
various tests with higher ranked and kinded types.