Prints something before and after another printer.
Printer<T> around(Object first, [Object? second]) => SequencePrinter<T>( [Printer<T>.wrap(first), this, Printer<T>.wrap(second ?? first)]);