Featherweight go
Robert Griesemer, Raymond Hu, Wen Kokke, Julien Lange, Ian Lance Taylor, Bernardo Toninho, Philip Wadler, Nobuko Yoshida
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.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 95ec2f6a-acdd-484f-8416-8f64bc796896Cited by top-tier papers5
- Scalable, Validated Code Translation of Entire Projects using Large Language ModelsHanliang Zhang, Cristina David, Meng Wang, Brandon Paulsen et al.PLDI 2025 · 15 citations
- Generic go to go: dictionary-passing, monomorphisation, and hybridStephen Ellis, Shuofei Zhu, Nobuko Yoshida, Linhai SongOOPSLA 2022 · 4 citations
- The Simple Essence of MonomorphizationMatthew Lutze, Philipp Schuster, Jonathan Immanuel BrachthäuserOOPSLA 2025 · 2 citations
- Extending Isabelle/HOL's Code Generator with Support for the Go Programming LanguageTerru Stübinger, Lars HupelFM 2024 · 1 citation
- Welterweight Go: Boxing, Structural Subtyping, and GenericsRaymond Hu, Julien Lange, Bernardo Toninho, Philip Wadler et al.POPL 2026
Related papers
- Decomposition diversity with symmetric data and codataDavid Binder, Julian Jabs, Ingo Skupin, Klaus OstermannPOPL 2020 · 2 citations
- Structural Subtyping as Parametric PolymorphismWenhao Tang, Daniel Hillerström, James McKinna, Michel Steuwer et al.OOPSLA 2023 · 3 citations
- Type-level programming with match typesOlivier Blanvillain, Jonathan Immanuel Brachthäuser, Maxime Kjaer, Martin OderskyPOPL 2022 · 10 citations
- Quotient PolymorphismBrandon Hewer, Graham HuttonPOPL 2026
- TASTyTruffle: Just-in-Time Specialization of Parametric PolymorphismMatt D'Souza, James You, Ondrej Lhoták, Aleksandar ProkopecOOPSLA 2023
