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