class Persist2Imp[A1, A2, R](val typeStr: String, val name1: String, val fArg1: R => A1, val name2: String, val fArg2: R => A2, val newT: (A1, A2) => R, val opt2: Option[A2], opt1In: Option[A1])(implicit val ev1: Persist[A1], val ev2: Persist[A2]) extends Persist2[A1, A2, R]