https://github.com/moggi-lang/moggi/
Moggi is a statically typed, purely functional programming language with strict evaluation. It has algebraic data types, GADTs, pattern matching, type classes, type inference, Generic Deriving, and an IO monad. It targets the JVM, .NET, and PHP, with typed FFI for existing Java, .NET, and PHP libraries.
The first release also includes a REPL, LSP, VS Code extension, moogle (code search), mogdoc (documentation generation), and a growing standard library.
This is an alpha release: the language and APIs are still evolving, and the standard library is still a work in progress.
I’d particularly like feedback from people interested in functional languages, type systems, compilers, and language/runtime interoperability.
Why target 3 different runtimes?
Why would I use this rather than, say, Clojure?
Not OP, and I have no context on this, but it does say statically typed.
Dude you commited 167,147 lines of code in 1529 files in a single initial commit, then have not made any coding changes…
Is this slop?
Not saying it isn’t, but it’d hardly be the first project I see where the git history was truncated before its release to the public.
Says so at the bottom of the page. Definitely put your trust in the future of this project though when things go wrong or security holes get exploited.
Well it looks 99% like Haskell, but compiles to JVM, .NET, and PHP. And otherwise seems very “Haskell at home”, with moogle (instead of hoogle), and mogdoc (instead of haddock).
Not to diminish any work you did do, but I do think a Haskell -> JVM/.NET/PHP compiler might have done what you aimed for and easier.
I think it’s because of Lazy evaluation. It’s essential to Haskell, but hard to graft onto another platform while having good performance.
This is all done in PHP. Actually impressive. It’s a bit of an unusual choice for this kind of thing. Also with help of an Ai, because everything is nowadays. The README didn’t answer my question, why someone would want to learn and use Moggi. It just explains what it is (which is fine I guess), but not its purpose or why this was created. Don’t get me wrong, I’m not against this project, just want to understand the motivation.
That’s a featurelist
deleted by creator




