code: public static PyroSerializer getFor(Config.SerializerType type)
  	{
  		switch(type)
  		{
  			case pickle:
  				return pickleSerializer;
  			case serpent:
  			{
  				synchronized(PyroSerializer.class)
  				{
  					if(serpentSerializer==null)
  					{
  						// try loading it
  						try {
  							serpentSerializer = new SerpentSerializer();
  							final String requiredSerpentVersion = "1.23";
  							if(compareLibraryVersions(net.razorvine.serpent.LibraryVersion.VERSION, requiredSerpentVersion) < 0)
  							{
  								throw new java.lang.RuntimeException("serpent version "+requiredSerpentVersion+" (or newer) is required");
  							}
  							return serpentSerializer;
  						} catch (LinkageError x) {
  							throw new PyroException("serpent serializer unavailable", x);
  						}
  					}
  				}
  				return serpentSerializer;
  			}
  			default:
  				throw new IllegalArgumentException("unrecognised serializer type: "+type);
  		}
  	}
docs: loaded if serpent.jar is available