HATEBIN
>
proc hasExactlyNFields(obj: typedesc[object or tuple], N: static int): bool = var count = 0 for field in default(obj).fields: inc count count == N type Fields[T: static int] = concept type Fielder hasExactlyNFields(Fielder, T) proc doThing(f: Fields[3]) = discard doThing (0, 0, 0) doThing (0, 1)