A javascript Hindley-Milner parser.
const HMP = require('hindley-milner-parser-js');
HMP.parse('hello :: Foo a => a -> String');
{
name: 'hello',
constraints: [
{typeclass: 'Foo', typevar: 'a'}],
type:
{type: 'function', text: '', children: [
{type: 'typevar', text: 'a', children: []},
{type: 'typeConstructor', text: 'String', children: []}]};