static  boost::python::tuple
    getstate(const rule_type& r)
    {
        boost::python::list syms;
        
	rule_type::symbolizers::const_iterator begin = r.get_symbolizers().begin();
	rule_type::symbolizers::const_iterator end = r.get_symbolizers().end();        
        pickle_symbolizer serializer( syms );
        std::for_each( begin, end , boost::apply_visitor( serializer ));
        
	// We serialize filter expressions AST as strings
        std::string filter_expr = to_expression_string(*r.get_filter());
	
        return boost::python::make_tuple(r.get_abstract(),filter_expr,r.has_else_filter(),syms);
    }