code: public static String printString(final Protocol<Printer.Fn<?>> fns,
              Object ednValue) {
          StringBuilder sb = new StringBuilder();
          newPrinter(fns, sb).printValue(ednValue);
          return sb.toString();
      }
docs: Print {@code ednValue} to a new String using the printing
  protocol given as {@code fns}.
  
  @param fns a Protocol which knows how to print all the classes
  of objects that we'll be asking our Printer to print.
  Never null. Never null.
  
  @param ednValue the value to be returned as a String in edn syntax.
  
  @return A string in edn syntax. Not null, not empty.