/** @deprecated use `MapG` instead */ export type MapBase = { has(key: K): boolean get(key: K): V | undefined set(key: K, value: V): void } /** @deprecated use `MapG` instead */ export function maptool(map: MapBase) { return { guarantee: (key: K, make: () => V) => ( mapGuarantee(map, key, make) ), } } /** @deprecated use `MapG` instead */ export function mapGuarantee( map: MapBase, key: K, make: () => V, ) { if (map.has(key)) return map.get(key)! else { const value = make() map.set(key, value) return value } }