defcommon[U[_], N, M, I, V](similarity: (N, N) ⇒ V, gapPenalty: V)(implicit arg0: Eq[N], arg1: Ring[I], arg2: Order[I], arg3: AdditiveMonoid[V], arg4: Order[V], la: LinearAlgebra[M, I, I, V], indexed: Indexed[U[N], I, N], finite: Finite[U[N], I], module: Module[V, I]): NeedlemanWunschMetricSpace[U[N], N, M, I, V]