a simple Hindley-Milner type system in Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
Gopkg.lock
Gopkg.toml
LICENCE
README.md
const.go
constraint.go
constraint_test.go
debug.go
env.go
env_test.go
example_greenspun_test.go
expression.go
functionType.go
functionType_test.go
hm.go
hm_test.go
perf.go
perf_test.go
release.go
scheme.go
scheme_test.go
solver.go
solver_test.go
substitutables.go
substitutables_test.go
substitutions.go
substitutions_test.go
test_test.go
type.go
typeVarSet.go
typeVarSet_test.go
typeVariable.go
typeVariable_test.go

README.md

hm GoDoc Build Status Coverage Status

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 tool.

Here is a listing of the dependencies of hm:

Package Used For Vitality Notes Licence
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 (MIT/BSD-like)
testify/assert Testing Can do without but will be a massive pain in the ass to test testify licence (MIT/BSD-like)

Usage

TODO: Write this

Notes

This package is used by 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.