let rec not_filter p func = function 
  | t::l -> 
      if func t then 
        not_filter p func l 
      else 
        not_filter (t::p) func l 
  | _ -> p