Nick Smith
09/08/2021, 11:12 PMDon Abrams
09/11/2021, 1:02 PMNick Smith
09/11/2021, 11:59 PMIāve been learning what I can about generating code from laymen-defined models+propertiesIt sounds like you're interested in compilers for high-level languages? Your description reminds me of MLIR, which aims to be a good framework for compiling programs from (vastly different) high-level domains, such as neural networks and hardware circuits. It definitely does all those static optimizations you describe. As for whether Poly can help with this: my hunch is no, not right now. (Disclaimer though: I'm not a category theorist, I'm just a software engineer who's been in contact with the book authors.) Poly is being investigated as a modelling language, but not as a compiler. The main challenge right now is connecting Poly back to everyday programming constructs. We've got an understanding of how it connects to type systems, I/O, and databases, but other important stuff like recursion is missing. It's unclear how deep the Poly rabbit hole goes; it's still very early days. That's why there's a hackathon being planned: to support further exploration!
I donāt know if it can model more complex optics like monadic lensesNor do I. I don't even know what a monadic lens is š
I also really donāt understand the implications of things like āpreserving op-cartesian arrows.āThe book is mainly targeted at category theorists right now, and so its style is to list out a bunch of theorems on every aspect of Poly. Some of them have clear implications, some of them don't. My personal strategy has been to focus on the theorems that seem interesting to me as a software engineer š.
Don Abrams
09/12/2021, 10:47 AMNick Smith
09/12/2021, 11:51 PMDon Abrams
09/13/2021, 8:14 AMNick Smith
09/13/2021, 8:48 AMMinecraft operations/views are built around certain guarantees of the āmodelāRight, I'd describe that as "the state obeys a schema" and "the interactions obey a protocol". The aforementioned Poly aspires to be a language for schemas and protocols š (but it's not well-developed yet)