I did something similar but ultimately removed it; I have a DSL with case class Definition(numParams: Int, body: List[A] => P) and I used Sized but my use-site was right next to it anyway, so I took it out; and shapeless Nat doesn't allow you to do it nicely

@SethTisue I managed to fix that bug (https://issues.scala-lang.org/browse/SI-7809) on the flight home. Here's my PR - scala/scala#5807. I signed the CLA first thing. Let me know what else I can do to get the fix looked at! Really appreciate your help, I woudlnt' have managed it otherwise.

(also called by some dependent product, because the graph of such a function is the product of a copy of T2 for each possible value for x: T1)

while Sigma(x: T1) T2 is the dependent pair (x: T1, y: T2) (where x can appear in T2), also called either dependent product (because it's a pair) or dependent sum (because it's a sum of a copy of T2 for each possible value in T1)