let new_frame kf ?m_here ?m_pre ?m_post ?x_result ?x_status () =
    let bind l x s = match x with None -> s | Some m -> Lmap.add l m s in
    let states =
      bind Clabels.Here m_here
        (bind Clabels.Pre m_pre
           (bind Clabels.Post m_post
              Lmap.empty))
    in {
      states = states ;
      result = x_result ;
      status = x_status ;
      return = Some(Kernel_function.get_return_type kf) ;
    }