{"id":16315609,"url":"https://github.com/andreasabel/constraint-based-type-inference","last_synced_at":"2026-03-18T18:57:27.437Z","repository":{"id":221232456,"uuid":"753797509","full_name":"andreasabel/constraint-based-type-inference","owner":"andreasabel","description":"Agda formalization of constraint-based type inference for the simply-typed lambda-calculus","archived":false,"fork":false,"pushed_at":"2024-02-06T20:37:00.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-10T19:20:38.202Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Agda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreasabel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-06T20:10:07.000Z","updated_at":"2024-02-07T06:42:26.000Z","dependencies_parsed_at":"2024-02-06T21:59:54.541Z","dependency_job_id":null,"html_url":"https://github.com/andreasabel/constraint-based-type-inference","commit_stats":null,"previous_names":["andreasabel/constraint-based-type-inference"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreasabel/constraint-based-type-inference","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasabel%2Fconstraint-based-type-inference","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasabel%2Fconstraint-based-type-inference/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasabel%2Fconstraint-based-type-inference/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasabel%2Fconstraint-based-type-inference/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreasabel","download_url":"https://codeload.github.com/andreasabel/constraint-based-type-inference/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasabel%2Fconstraint-based-type-inference/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29545295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T13:00:00.370Z","status":"ssl_error","status_checked_at":"2026-02-17T12:57:14.072Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T21:57:59.572Z","updated_at":"2026-02-17T13:01:49.142Z","avatar_url":"https://github.com/andreasabel.png","language":"Agda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# constraint-based-type-inference\n\nAn Agda formalization of constraint-based type inference for the simply-typed lambda-calculus.\n\nUses a de Bruijn representation of type variables.\nThe implementation of the occurs-check follows:\n\n\u003e Conor McBride, First-Order Unification by Structural Recursion, Journal of Functional Programming, 2003.\n\nType inference is split into a first pass extracting constraints between types,\nand a second pass solving the constraints by first-order unification.\n\nConstraint-based type inference has been systematically described by:\n\n\u003e Francois Pottier and Didier Rémy, The Essence of ML Type Inference.\n\u003e In B. C. Pierce, Advanced Topics in Types and Programming Languages, The MIT Press, 2004.\n\nSo do not expect any new ideas here.  Just enjoy the Agda code!\n\nLimitations (as of 2024-02-06):\n- Just specification (judgements), no algorithm (functions).\n- Only soundness, no completeness.\n- No `let`-generalization / ML-polymorphism.\n\nTested with:\n- Agda 2.6.4.1 and agda-stdlib 2.0\n\nRelated work:\n- https://github.com/wenkokke/FirstOrderUnificationInAgda\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasabel%2Fconstraint-based-type-inference","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreasabel%2Fconstraint-based-type-inference","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasabel%2Fconstraint-based-type-inference/lists"}