These are chat archives for unisonweb/unison
I’m not the first person to observe that it’s rather unfortunate that for one monad (the Identity monad), we get very nice syntax, whereas if we select a different monad (say Remote), we pay a heavier syntactic burden.
I always thought that the conventional syntax can be generalized to any cartesian-closed category, not to any monad.
let a = b in xis simply
(\a -> x) b, modulo laziness caveats