sealed abstract class Put[A](val typeStack: NonEmptyList[Option[String]], val jdbcTargets: NonEmptyList[JdbcType], val put: ContravariantCoyoneda[[_] =>> (PreparedStatement, Int, _$1) => Unit, A], val update: ContravariantCoyoneda[[_] =>> (ResultSet, Int, _$2) => Unit, A])