method apply =
      let new_value = !value in
      if new_value <> param.hk_value then
        let _ = param.hk_f_apply new_value in
        param.hk_value <- new_value
      else
        ()