<div dir="ltr">Hi,<div><br></div><div>  I am reading the document of spock-0.11, and found two strange definitions in the Web.Spock.</div><div><br></div><div><div>````</div><div>type Var a = Path ((:) * a ([] *)) Open</div><div><br></div><div>var :: (Typeable * a, PathPiece a) => Path ((:) * a ([] *)) Open</div></div><div><br></div><div>````<br></div><div><br></div><div>What's the meaning of the star between Typeable and a ? </div><div><br></div><div>The kind of Typeable is * -> *. I cannot understand why the Typeable in the var prototype takes two kinds.</div><div><br></div><div>In the Web.Routing.Combinators of reroute-0.4, those are defined as following:</div><div><br></div><div>````</div><div><div>type Var a = Path (a ': '[]) Open</div><div><br></div><div>var :: (Typeable a, PathPiece a) => Path (a ': '[]) Open</div></div><div><br></div><div>```` </div><div><br></div><div>Why there are two difference definition about the same thing?</div><div><br></div><div>Thanks,</div><div>Haiwei</div></div>