Moscow ML, a lightweight implementation of Standard ML