MonoHaskell

Why use a programming language from the 90s when you can use one from the 80s?


Theme by mattgraham

Welcome to MonoHaskell!

MonoHaskell is the future of UX-aware, pragmatic FP. By defenestrating unsound, unsafe Haskell '98 typeclasses and sticking to simple, easy to understand monomorphic values & functions MonoHaskell can be used to write code that type-checks in a jiffy!

$ cd your_work_dir
$ git clone git@github.com:monohaskell/MonoHaskell.git
$ git checkout MonoGHCi
$ cabal sandbox init && cabal update && cabal install

After you've built the MonoREPL you're off to the races, get hacking!

Monocode is our craft

We've crafted some handsome, monomorphically uniform code that is pleasing to the eye and unchallenging to the intellect. We guarantee you will not be forced to learn anything new or your money back!

Rather Drive Stick?

If you prefer to not have code generated for you, worry not! With no ad-hoc (which sounds mighty dangerous, doesn't it?) polymorphism or implicit parameters you'll be "driving stick" in all of your MonoHaskell ™ code! Also, no macros! Just artisanally, lovingly crafted datatypes and functions in MonoHaskell.

The Monocode slow-and-thoughtful Philosophy & Promise

Our promise is that code will never be unpredictable. Because your types cannot change based on how data is used, you'll never be surprised! We take inspiration here from the Ruby community on the "Principle of Least Surprise". The Ruby community has done a great job demonstrating & vanguarding this PLT aesthetic of never surprising programmers. We believe PL technology has gone too far and has exceeded the faculties of the everyday programmer who cannot be expected to understand abstract math with no applications for web development like "Professional Functors" or "Cochoice Yoder Lemmings". In MonoHaskell ™, it's only the tried & true techniques of programmers long-dead that are considered idiomatic. The MonoHaskell compiler will have a "leveller" flag which will administer electric shocks to programmers that write code too advanced for their coworkers to understand. This will improve FP team cohesion and codebase uniformity greatly!

No FTP!

Since MonoHaskell ™ has removed typeclasses, which were never a good idea to begin with, the possibility of a debate over how practical extremely abstract typeclasses like "Foldableish" and "Traversableish" is impossible, MonoHaskell ™ will stay FTP-free, forever! We promise! Don't want to write the same code twice but share our passion for explicit, easy to understand monomorphic code? Consider using m4 macros!

Mono-ism is fair and authentic

Since it takes no time at all for everybody to learn & use MonoHaskell ™, all MonoHaskell ™ users are on an even playing field. Everybody's vote in design decisions counts equally because nobody ferrets away secret telescope incantations & operators. Also, no operators! All alphabetical letters for declaration names only! You liked Speak & Spell as a kid right? Why not as an adult in your programming language? By-elections are run to decide whether we should recycle more PL design ideas from the 1960s or not.

Support or Contact

Having trouble installing MonoHaskell? Check out the OCaml at https://ocaml.org/.