static KDLNode node(string ident, List <object> args, Dictionary <string, object> props) => new KDLNode( ident, args: args.Select(a => KDLValue.From(a)).ToList(), props: props.ToDictionary( keySelector: (kv) => kv.Key, elementSelector: (kv) => KDLValue.From(kv.Value)), child: null);
static KDLNode node(string ident, List <object> args, params KDLNode[] nodes) => new KDLNode(ident, args: args.Select(a => KDLValue.From(a)).ToList(), child: nodes.Length > 0 ? doc(nodes) : null);