From adacad134f05371f04f65049e37ad541695db314 Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Tue, 1 Apr 2025 23:28:05 +0000 Subject: [PATCH] Update Item Specifications --- Item-Specifications.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Item-Specifications.md b/Item-Specifications.md index a538a3f..c727381 100644 --- a/Item-Specifications.md +++ b/Item-Specifications.md @@ -2,7 +2,7 @@ This page is devoted to concepts and designs for the structure of items in the T ## Map-like object indexed by identifier and types -In this concept, we think of the TypeDispatcher object `math` simply as a big map indexed by a string identifier and a list of types. Since those are complex non-string indices, which JavaScript doesn't really handle gracefully, we provide the basic indexing method `math.resolve('foo', [T1, T2, ..., Tn])`, with a handful of special properties: +In this concept, we think of the TypeDispatcher object `math` simply as a big map indexed by a string identifier and a list of types. Since those are complicated non-string and non-number "indices", which JavaScript doesn't really handle gracefully, we provide the basic indexing method `math.resolve('foo', [T1, T2, ..., Tn])`, with a handful of special properties: * The `math` object is set up so that you can write `math.foo(a, b, c)` rather than `math.resolve('foo', [math.typeOf(a), math.typeOf(b), math.typeOf(c)])(a, b, c)`. For values that are functions, we should also be able to write `math.foo.resolve(T1, T2, T3)`. * The stored entities are "dependent objects" -- they record at their creation time what other entries of the TypeDispatcher object they depend on, and if any of those change, they are regenerated as needed.