This kind of rule should fail on type-level, right?

```Scala
rule { nTimes(3, capture("a") ~> ((x: String) ⇒ push(7 :: "x" :: HNil))) }
```