let reference_parameter_usage e = 
   debug "[reference_parameter_usage]" ;
  match by_pointer_reference_usage e with 
    | Ok(x,n) -> 
        debug "   %a used as ptr reference param of arity %d"
          !Ast_printer.d_var x n ;
        add_ptr_reference_param (Cv x) n; true 
    | Ko(x,_) -> 
        debug "   %a BADLY used as ptr reference param"
          !Ast_printer.d_var x  ;
        remove_ptr_reference_param (Cv x); true 
    | Any -> 
        (match by_array_reference_usage e with
           | Ok(x,n) -> 
               debug "   %a used as array reference param of arity %d"
                 !Ast_printer.d_var x n ;
               add_array_reference_param (Cv x) n ; true
           | Ko(x,_) -> 
               debug "   %a BADLY used as array reference param"
                 !Ast_printer.d_var x  ;
               remove_array_reference_param (Cv x);true
           | Any -> (); false)