Hello all,I have the following code:{-# LANGUAGE NoImplicitPrelude #-}{-# LANGUAGE TypeFamilies #-}{-# LANGUAGE KindSignatures #-}{-# LANGUAGE DataKinds #-}{-# LANGUAGE PolyKinds #-}data Branch = Left | Righttype family Product (v :: Branch) (a :: k) (b :: k) :: k whereProduct Left l r = lProduct Right l r = rHe is doing what I expect it to do and Product has the right Kind:*Main> :kind ProductProduct :: Branch -> k -> k -> kBut when I change the Kind signature syntax, its Kind changes:type family Product v a b :: Branch -> k -> k -> k whereIts Kind become:*Main> :kind ProductProduct :: Branch-> (Branch -> k -> k -> k)-> (Branch -> k1 -> k1 -> k1)-> Branch-> k2-> k2-> k2