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.

    • Aarkon@discuss.tchncs.de
      link
      fedilink
      arrow-up
      7
      ·
      3 days ago

      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.

    • pikl@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      3 days ago

      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.

  • DNEAVES@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    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.

    • anton@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      I think it’s because of Lazy evaluation. It’s essential to Haskell, but hard to graft onto another platform while having good performance.

  • thingsiplay@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    3 days ago

    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.