let userdef_signature frame _tused _pused =
    let add (acc_vmem, acc_lab) (label, m) =
      let acc_lab = match label with
        | Clabels.LabelParam l -> Alloc l :: Mem l :: acc_lab
        | _ -> Wp_parameters.fatal
                 "Unexpected statement label in user-defined symbol"
      in 
      let vma = valloc_of_mem m in
      let vmb = vbits_of_mem m in
      vma::vmb::acc_vmem, acc_lab
    in List.fold_left add ([], []) frame.memories