functor NaiveDict(type Item) = struct local open Array in type Key = int datatype Entry = None | Some of Item type Dict = Entry array exception Lookup fun empty n = array(n, None) fun lookup d n = (case d sub n of None => raise Lookup | Some item => item) handle Subscript => raise Lookup fun enter((k,e),d) = update(d, k, Some e) fun remove(k,d) = update(d, k, None) end end;