diff options
Diffstat (limited to 'stdlib/source/library/lux/data/collection/dictionary/plist.lux')
-rw-r--r-- | stdlib/source/library/lux/data/collection/dictionary/plist.lux | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/stdlib/source/library/lux/data/collection/dictionary/plist.lux b/stdlib/source/library/lux/data/collection/dictionary/plist.lux index d646287c8..7eb2f4001 100644 --- a/stdlib/source/library/lux/data/collection/dictionary/plist.lux +++ b/stdlib/source/library/lux/data/collection/dictionary/plist.lux @@ -1,16 +1,17 @@ (.using - [library - [lux "*" - [abstract - [equivalence {"+" Equivalence}]] - [data - ["[0]" product] - ["[0]" text ("[1]#[0]" equivalence)] - [collection - ["[0]" list ("[1]#[0]" functor)]]] - [math - [number - ["n" nat]]]]]) + [library + [lux "*" + [abstract + [equivalence {"+" Equivalence}] + [monoid {"+" Monoid}]] + [data + ["[0]" product] + ["[0]" text ("[1]#[0]" equivalence)] + [collection + ["[0]" list ("[1]#[0]" functor mix)]]] + [math + [number + ["n" nat]]]]]) ... https://en.wikipedia.org/wiki/Property_list (type: .public (PList a) @@ -97,3 +98,15 @@ (All (_ a) (-> (Equivalence a) (Equivalence (PList a)))) (|>> (product.equivalence text.equivalence) list.equivalence)) + +(implementation: .public monoid + (All (_ a) (Monoid (PList a))) + + (def: identity + ..empty) + + (def: (composite left right) + (list#mix (function (_ [key val] it) + (..has key val it)) + right + left))) |