hey @wenkokke, from your experience with writing queries, is there a clear favorite between flat and nested repeating structures? In particular, these two:
fun :: ∀ a . C1 => a -> C2 => ∀ b . b -> a
fun = f a b c d
where the first one has these nested and flat trees:
(forall (binders)
(context (class)
(fun (variable)
(context (class)
(forall (binders)
(fun (variable) (variable)))))))
vs
(sigtype
(forall (binders))
(context (class))
(fun (variable))
(context (class))
(forall (binders))
(fun (variable))
(variable))
and the second one:
(apply
(apply
(apply
(apply
(variable) -- f
(variable))
(variable))
(variable))
(variable))
(apply
(variable) -- f
(variable)
(variable)
(variable)
(variable))
My intuition is that the flat structure is easier, e.g. I saw that plugins that do argument swapping rely on it; but since the nested structure is “correct” in terms of reduction semantics and associativity there might be other aspects that I have no insight into.
Is this relevant/significant for your cursorless efforts?