Initial working version of type matcher based on macro, which gives error when type parameter are given to a [Type] syntax.