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!)
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.
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…
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
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)
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.)
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.
o…kay… not sure I really follow that, but I think it’s talking about the relationship between a universal quantifier and the variables added to the context when working under it? (I have less experience with existentials from the typechecking end of things.)
oh actually yes I think that makes sense—I am planning on adding type variable patterns to Facet so that you can bring type variables into scope. which for an existential means extending the context again.
I don’t grok the significance of this being an adjunction yet tho.