Bidi
bidirectional type checking algorithms for higher-ranked polymorphism
Install / Use
/learn @kwanghoon/BidiREADME
The bidirectional type checking algorithms for higher-ranked polymorphism
-
Two bidirectional type checking algorithms for higer-ranked polymorphism.
-
One is proposed by Jana Dunfield and Neelakantan R. Krishnaswami's ICFP 2013 paper, Complete and easy bidirectional typechecking for higer-order rank polymorphism.
-
The other algorithm based on so called work list proposed by Jinxu Zhao, Bruno C. d. S. Oliveira1 , and Tom Schrijvers's ICFP 2019 paper, A Mechanical Formalization of Higher-Ranked Polymorphic Type Inference where the original algorithm is simplified and so mechanically proved using Abella.
-
-
Haskell Implementation of the two algorithms
-
One is Olle Fredriksson's implementation of Dunfield and Krishnaswami's algorithm, which I have slightly revised just to correct some version mismatch error.
-
I myself have implemented Zhao et al's algorithm.
-
How to build and run
$ git clone https://github.com/kwanghoon/bidi
$ cd bidi
$ stack build
- To run the original DK's algorithm,
$ stack exec -- bidi-exe
- To run the new Zhao et al's algorithm,
$ stack exec -- bidi-exe worklist
A polymorphic location inference algorithm for higher-ranked polymorphism
- In PolyRPC, I have implemented a location inference algorithm for the predicative System F with locations. The algorithms is closely related with the two algorithms.
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
