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