@mora `static[int]` itself is a type, but the generic type `M` in `Modulo[M]` is a _particular_ static int which is known at compile time, say 3.
Hence one could instantiate a concrete type `Modulo[3]` which is a specialization of the generic type `Modulo[M]`. The type `static[int]` would appear as a constraint, but anywhere `M` appears - say in the body of a concept - one would have `M = 3`
