Say, porting OpenSimplex to Scala:
def eval[N <: Nat](coords: Sized[N, Double])(implicit ev: OpenSimplex[N]): Double
What constants can't be calculated (i.e. they would have to be included in OpenSimplex)? Is it possible to generalize the algorithm over N?