Rename IsConstrainedTuple to isProduct and use Data.Proxy for generating proxy values.