Adam: thank you for your prompt reply.
To define defaultSettings properly, is there some way to constraint the
type union (keep ++ change) to an existing type (e.g. {A:int, B:int})?
The following also do not work:
fun defaultSetting
[keep] [change] [keep ~ change]
(args : $change)
One can capture subset constraints using a type class, as the following
module does:
https://github.com/vizziv/UrLib/blob/master/UrLib/subset.urs
https://github.com/vizziv/UrLib/blob/master/UrLib/subset.ur
(It relies on another module, Eq, from the same project.)
Ziv
On Tue, Oct 29, 2019 at