code: private static List<String> toConfigurationStringList(final Configuration c) {
      final ConfigurationImpl conf = (ConfigurationImpl) c;
      final List<String> l = new ArrayList<>();
      for (final ClassNode<?> opt : conf.getBoundImplementations()) {
        l.add(opt.getFullName()
            + '='
            + escape(conf.getBoundImplementation(opt).getFullName()));
      }
      for (final ClassNode<?> opt : conf.getBoundConstructors()) {
        l.add(opt.getFullName()
            + '='
            + escape(conf.getBoundConstructor(opt).getFullName()));
      }
      for (final NamedParameterNode<?> opt : conf.getNamedParameters()) {
        l.add(opt.getFullName()
            + '='
            + escape(conf.getNamedParameter(opt)));
      }
      for (final ClassNode<?> cn : conf.getLegacyConstructors()) {
        final StringBuilder sb = new StringBuilder();
        join(sb, "-", conf.getLegacyConstructor(cn).getArgs());
        l.add(cn.getFullName()
            + escape('='
                + ConfigurationBuilderImpl.INIT
                + '('
                + sb.toString()
                + ')'
        ));
      }
      for (final NamedParameterNode<Set<?>> key : conf.getBoundSets()) {
        for (final Object value : conf.getBoundSet(key)) {
          final String val;
          if (value instanceof String) {
            val = (String) value;
          } else if (value instanceof Node) {
            val = ((Node) value).getFullName();
          } else {
            throw new IllegalStateException("The value bound to a given NamedParameterNode "
                    + key + " is neither the set of class hierarchy nodes nor strings.");
          }
          l.add(key.getFullName() + '=' + escape(val));
        }
      }
      return l;
    }
docs: Convert Configuration to a list of strings formatted as "param=value".
  
  @param c
  @return