Skip to content

Type System Task Force Meeting Notes 2021

David Broman edited this page Sep 24, 2021 · 2 revisions

Meeting Notes 2021-09-23

Note-taker: Anders Ågren Thuné

Participants: David Broman, Lars Hummelgren, Oscar Eriksson, Viktor Palmkvist, Linnea Ingmar, Daniel Lunden, Anders Ågren Thuné, Gizem Caylak

First meeting! Yay!

We have created a project board at https://github.com/orgs/miking-lang/projects/2, to collect references, requirements and todos for the type system.

Discussion

We discussed the general goals of the type system in Miking.

  • Viktor gave a short introduction to FreezeML. This is a conservative extension to ML-style types which provides annotation-based support for System F along with type inference, in a simple way. We agreed that this should be the base for the type system.

  • We talked about row polymorphism for records and sum types, which is something we will also likely want. Row polymorphism for recursive sum types is likely a research problem.

  • We shortly mentioned unified collection types, ad-hoc overloading, dependent types and higher-order types (System F Omega).

    • Work on UCs has started but is reliant on a type system.
    • One candidate for ad-hoc overloading is canonical structures. But we need to decide whether this should be a feature in the core language or not.
    • Dependent types would be useful for representing e.g. ranks in the types of tensors. Perhaps we could offer a limited form of dependent types specifically for this purpose?
    • Higher-order types is something we likely want, but currently it has low priority.

Conclusions

There are three main parts which require active work going forward.

  • Implementing FreezeML-style polymorphism in Miking. Primarily Viktor, Lars, Anders, and David will work on this.
  • Formalizing / researching row polymorphism for recursive sum types and records in combination with FreezeML. Primarily Viktor, Lars and David will work on this.
  • Investigating how to include dependent types (or some limited variant focusing on indexed in tensors) to support our use cases. Primarily Oscar, Lars, and David will work on this.
Clone this wiki locally