Library and Toolkit for Standard ML


  • Datastructures: Hashtable, Red Black Tree, etc.
  • HTTP server/client
  • CLI argument parser
  • Standard ML parser/lexer
  • JSON encoder/decoder
  • Enhanced build tool and top-level
  • Documentation generator

And much more on the roadmap! Keep tuned for news!

Hello world!

fun main () =
    Ponyo.Format.String.println ["Hello world!\n"]
$ ponyo make helloworld.sml -o helloworld
$ ./helloworld

For more examples, check out the Ponyo tool directory, the test directory, and the source for this site.


Ponyo is a Standard ML library. Ponyo requires Poly/ML to bootstrap but can use MLton to compile Ponyo programs. Ponyo programs should generally work on macOS and Linux.

After Poly/ML has been installed, add the following lines to your ~/.profile:

# Ponyo path settings.
export PONYO_ROOT="/path/to/ponyo/repo"

Then, build Ponyo from git:

$ git clone https://github.com/eatonphil/ponyo && cd ponyo
$ make
$ sudo make install

Standard ML

To follow the Standard ML community in general, check out /r/sml. The /r/sml wiki is a great source of information for getting started in Standard ML. Additionally, someone is always available on Freenode at #sml.