export namespace MapUtil { export const take = (dict: Map) => (key: Key) => (generator: () => T): T => { const oldbie: T | undefined = dict.get(key); if (oldbie) return oldbie; const value: T = generator(); dict.set(key, value); return value; }; }