From 8d855be27a3a5f1aa58cb773a9745151592b5160 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sat, 9 Aug 2025 08:15:11 +0100 Subject: [PATCH] add layer field to app type, as preparation for switching to layer tree --- dotscape | Bin 1051816 -> 1051816 bytes fcore/app-init.sml | 1 + fcore/app-type.sml | 1 + fcore/app-with.sml | 100 +++++++++++++++++++++++++++++++++++++++++++ fcore/layer-tree.sml | 9 ++-- 5 files changed, 108 insertions(+), 3 deletions(-) diff --git a/dotscape b/dotscape index 036a86206742de22faa4bd00530ab00a8daf020e..f8ca62f4c9bc860a1613a52c7a5e7593c809b93a 100755 GIT binary patch delta 11798 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 NODE {key = newKey, value = newValue, left = LEAF, right = LEAF}