CodeWorld as a Haskell Playground: Call for Package Requests
Lately, I’ve been thinking more about beefing up CodeWorld as an easy playground for sharing running Haskell code examples. The platform makes it easy to write Haskell code in any web browser without setting up anything on your machine, and to share this code by a unique URL through any medium such as Twitter, IRC, etc. and make it easy for others to tinker with them in turn.
To further this goal, I am formalizing the list of Haskell packages that I can guarantee to be available in the environment. The current list is available here.
My question: What else do you want? I’m specifically interested in any missing packages that are either (a) part of your standard toolkit that you don’t want to be without, or (b) showcase particularly cool or interesting uses of Haskell that you’d want to easily share with others.
The hard requirements are:
- Packages should compile and work reasonably with GHCJS 8.6 in a web browser. This excludes libraries that depend on native code, such as hmatrix. (For example, this excludes the hamilton package, which was definitely on my wish list.) It also means most I/O libraries don’t work; there are no files or directories, network ports, window systems, etc.
- Packages should not require Template Haskell in client code, since CodeWorld doesn’t allow it. Use of Template Haskell to build the package itself is fine, but a package like th-abstraction (which exists only to make Template Haskell easier), or shakespeare (which implements quasi-quoted templating DSLs) would be useless.
Please share your suggestions! Comments here would be appreciated. If you want to send a pull request against the list in GitHub, that’s even better.
P.S.: I’m also interested in more involved integrations with existing libraries. For example, I’ve talked recently about the integration between CodeWorld and Reflex. I would love to see integrations with things like Diagrams, Gloss, Euterpea… you name it. But these are more involved projects. Definitely talk to me if you’re interested in working on something like this, but it’s a lot more work than just adding a line to a cabal file.