Conversation

to be clear, that’s just the formalism I’m designing. Facet itself uses nominally-typed interfaces, and the closest that will approach structural interfaces is if I allow local or inline definitions of them.
2
1
yeah. the formalism is a sequent calculus, i.e. not a software engineering system :) so I’m much less concerned about that kind of modularity because it doesn’t even acknowledge the existence of modules (or anything outside expressions, in fact!)
1
1
that said, extending it to integrate modules into the effect language is a pretty major goal, because I want to use that for parameterized modules, cross-compilation targets, metaprogramming, inline tests, and a bunch of other stuff.
1
1
Yeah I’ve been wondering about this for Pikelet, where I’m hoping to use records as modules. I love the idea of smooshing together structures, but don’t like the idea that I might then run into issues with fields clashing…
1
1
yeah, if field names are actually named entities, that problem goes away, altho I suppose it raises the question of where those are defined… who namespaces the namespaces themselves? quis namespa… you know what, never mind the mock-latin
1
1
Yeah! It gets a bit weird! Clojure lets you have ‘namespaced symbols’ but that requires a top level namespace thingy. Where as I would love to be able to get rid of the top level ‘command’ language (like in Dhall and Nix)
1
2
Similar problem in my formalism: lambdas are scope + readerish effect. But definitions of ops are functions. Where do you tie the knot? (Currently thinking about jumps instead of functions.)
1
You’re unable to view this Tweet because this account owner limits who can view their Tweets. Learn more
like, what are records, telescopes, and functions actually doing? 😳 - somehow a record field is 'stronger' than a function parameter - ie. a function can be constructed even if there is no way of providing a parameter, where as a record kind of *insists* that a field is present.
2
1
Show replies