let get_value x =
    try H.find x
    with Not_found ->
      H.replace x Locked ;
      let value = try Data(C.compile x) with exn -> Error exn in
      H.replace x value ; value