let fold_bases f m acc =
    match m with
      Top(Top_Param.Set t, _) ->
        let acc = if Null_Behavior.zone then acc else f K.null acc in
        (Top_Param.O.fold f t acc)
    | Top(Top_Param.Top, _) ->
        raise Error_Top
    | Map m ->
        M.fold (fun k _ acc -> f k acc) m acc