Academic / theoretical basis of the PureScript type system


This post aggregates specific papers that the PureScript type system is based on, as well as papers that relate to PureScript features but may not have directly inspired them.

This is a wiki post: if you notice features or papers missing from this list, feel free to add them!

Proposed Feature Direct Sources Indirect Sources
Deriving Via Deriving Via
Thoughts on future additions of type-level features

I was also interested in this, so we can link to them in the PureScript documentation. I asked a similar question in the purescript/documentation project:


Excellent, thank you for the link @chexxor – I was thinking of going the other way, gathering and then adding these to PureScript documentation, but I should have expected you were already on this :stuck_out_tongue:


I think the way to go about answering this question is to start from the existing things in PureScript and then ask which paper(s) it is based on or referenced. Without this, the question is too ambiguous to answer. The easiest way to organize this would be a table with rows being PS features and columns being “Feature Name” and “Papers Referenced”. If like this, it’s easy to see the missing paper citations.

Organization for this could occur on this thread or in the GitHub project issue I referenced - it likely won’t matter much.


@chexxor I’ve added a few links I was able to discover to the table. I’ll keep an eye out for more.

1 Like

I haven’t taken the time to write down all the paper references in this meetup talk about the PureScript compiler, but I’ll link to it from here for now in case someone else gets to it before I do.

update: I added the papers referenced by Phil’s comment on that video. If someone watches the video and sees a paper referenced that isn’t in the comment, please add it to this list in Thomas’ wiki post.