anchor.diff:  
   #[derive(Clone)]
   pub struct Shape {
  +    // TODO - replace with an appropriate enum
       shape_type: String,
       coordinates: Vec<(f64, f64)>
  +}
  +
  +impl Shape {
  +    pub fn new<A: Into<String>>(shape_type: A, coordinates: Vec<(f64, f64)>) -> Shape {
  +        Shape {
  +            shape_type:  shape_type.into(),
  +            coordinates: coordinates
  +        }
  +    }
   }
   
   impl ToJson for Shape {
  
positive.code:     MultipleCombination(Vec<CombinationMinimumShouldMatch>),
      LowHigh(i64, i64)
  }
  
  impl ToString for MinimumShouldMatch {
      fn to_string(&self) -> String {
  
negative.code:     All,
      Filter(Box<Filter>)
  }
  
  from_exp!(Filter, NoMatchFilter, from, NoMatchFilter::Filter(Box::new(from)));
  
  impl ToJson for NoMatchFilter {
      fn to_json(&self) -> Json {
  