package ixee.cryptopals.utils object TupleUtils { implicit class Tuple2[A, B](t: (A, B)) { def mapAll[C, D](_1: A => C = ident, _2: B => D = ident): (C, D) = (_1(t._1), _2(t._2)) def <-:(f: A => C } }