Abstract:We describe a design for generics in Go inspired by previous work on Featherweight Java by Igarashi, Pierce, and Wadler. Whereas subtyping in Java is nominal, in Go it is structural, and whereas generics in Java are defined via erasure, in Go we use monomorphisation. Although monomorphisation is widely used, we are one of the first to formalise it. Our design also supports a solution to The Expression Problem.
Submission history
From: Julien Lange [view email]
[v1]
Sun, 24 May 2020 10:31:39 UTC (111 KB)
[v2]
Fri, 12 Jun 2020 18:34:23 UTC (113 KB)
[v3]
Wed, 17 Jun 2020 12:49:29 UTC (114 KB)
[v4]
Mon, 19 Oct 2020 17:04:10 UTC (107 KB)