Using LLVM would bring a lot to the table from what I know. It would save us from having to deal with generating assembly on multiple archetectures. And there is already support for JIT compilation too. It also makes interop with C painless.
There is also two extensive tutorials on how to build a language using LLVM with a JIT, one in C++ and the same tutorial in Haskell.
> It is currently unknown/partially known how funtional programming/dependent types relate to imperative, object oriented programming
This is a pretty broad point you're bringing up here. Something like Scala's DOT calculus is probably the most relevant thing I can think of.
> Can we build an object oriented core and build dependent type constructors that compile to polymorphic families of objects?
I have a hard time understanding what you're suggesting here. I'm anything but a type theory expert.
You're going to have to explain how "dependent type constructors" is going to allow us to compile to "polymorphic families of objects" and what benefit this would provide.
A quick explanation, psuedocode, a link to an article/video/etc would help at least.
> It would also solve the conflict between paradigms that this community is facing.
You'd have to explain how this would actually solve our dilemma here.
On one side, you have people who want Proton to be purely functional: stateless functions, isolated or managed side-effects, keep everything immutable (and use the compiler or the native runtime to deal with state).
On another side, you have people who want Proton to be imperative: allow for functions to have state, allow for side-effects as usual, allow for mutability.
And somewhere, you have people who want some sort of middle ground between all of this. I just seriously doubt we can get the benefits of both here. We're going to lose the guarantees of one or the other paradigms in the process.
"There is no such thing as a free lunch." Something has to give if we want both.
> Perhaps Proton can be the first PFP language to take the monad and make implementing monads the easiest and most natural part of programming in it? Perhaps through copious syntactical sugar as the simplest solution?
A dialect of Haskell with lots of syntactic sugar for monads would be the Haskell that already exists ¬_¬
> Scheme was designed as a simplified Lisp, and specifically for teaching the Structure and Interpretation of Computer Programs course at MIT.
AFAICT, the original motivation for Scheme was to understand the actor model, not to write SICP in it.