https://github.com/chewxy/hm
a simple Hindley-Milner type system in Go
https://github.com/chewxy/hm
Last synced: 26 days ago
JSON representation
a simple Hindley-Milner type system in Go
- Host: GitHub
- URL: https://github.com/chewxy/hm
- Owner: chewxy
- License: mit
- Created: 2016-11-08T10:34:32.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-08T01:03:28.000Z (about 7 years ago)
- Last Synced: 2025-03-27T22:04:44.190Z (about 1 month ago)
- Language: Go
- Size: 106 KB
- Stars: 63
- Watchers: 5
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hm [](https://godoc.org/github.com/chewxy/hm) [](https://travis-ci.org/chewxy/hm) [](https://coveralls.io/github/chewxy/hm)
Package hm is a simple Hindley-Milner type inference system in Go. It provides the necessary data structures and functions for creating such a system.
# Installation #
This package is go-gettable: `go get -u github.com/chewxy/hm`
There are very few dependencies that this package uses. Therefore there isn't a need for vendoring tools. However, package hm DOES provide a `Gopkg.toml` and `Gopkg.lock` for any potential users of the [dep](https://github.com/golang/dep) tool.
Here is a listing of the dependencies of `hm`:
|Package|Used For|Vitality|Notes|Licence|
|-------|--------|--------|-----|-------|
|[errors](https://github.com/pkg/errors)|Error wrapping|Can do without, but this is by far the superior error solution out there|Stable API for the past 6 months|[errors licence](https://github.com/pkg/errors/blob/master/LICENSE) (MIT/BSD-like)|
|[testify/assert](https://github.com/stretchr/testify)|Testing|Can do without but will be a massive pain in the ass to test||[testify licence](https://github.com/stretchr/testify/blob/master/LICENSE) (MIT/BSD-like)|# Usage
TODO: Write this
# Notes
This package is used by [Gorgonia](https://github.com/chewxy/gorgonia) as part of the graph building process. It is also used by several other internal projects of this author, all sharing a similar theme of requiring a type system, which is why this was abstracted out.
# Contributing
This library is developed using Github. Therefore the workflow is very github-centric.
# Licence
Package `hm` is licenced under the MIT licence.