<dminuoso>
I mean perhaps my desire is more driven by "why cant nix a bit more like Haskell"
<dminuoso>
But at some point you get to the point where you want to structure code into modules, so you end up making attrsets where attributes mimic module exports. And suddenly the business of bindings becomes annoying.
<infinisil>
It sure is rather far away from haskell
<infinisil>
dminuoso: How do bindings become annoying in that case?
<dminuoso>
infinisil: Well let's take the case of, you have a couple of bindings, and each binding requires local supplementary bindings.
<dminuoso>
{ foo = let ...; in someBinding; bar = let ...; in anotherBinding; }
* infinisil
nods
<dminuoso>
If you require some 10 supplementary binding, it becomes incredibly hard to follow the code. "Where is the actual definition of foo?"
<dminuoso>
Which is sort of how haskell-style where wins
<dminuoso>
Since you can just write `foo = someBinding where ....` you get to decide how deep you want to follow the rabbit hole of bindings
<infinisil>
Hm yeah kind of agree
<infinisil>
Hehe, there is this fancy syntax you might not know about which gets us closer to what you want:
<infinisil>
> :p { foo = let { body = bar; bar = 10; }; }
<{^_^}>
{ foo = 10; }
<dminuoso>
What the magic?
<dminuoso>
> :p { foo = let { f = bar; bar = 10; }; }
<{^_^}>
attribute 'body' missing, at undefined position