GeckoGraph: A visual language for polymorphic types

Polymorphic type is an important feature in most strongly typed programming languages. They allow functions to be written in a way that can be used with different data types, while still enforcing the relationship and constraints between the values. However, programmers often find polymorphic types difficult to use and understand, and tend to reason in terms of concrete types. We propose GeckoGraph, a graphical notation for types. GeckoGraph aims to complement traditional text-based type notation by making reading, understanding, and comparing types easier. We conducted a large-scale user study comparing GeckoGraph to text-based type notation. To our knowledge, this is the largest controlled user study on functional programming ever conducted. The results show no overall significant differences in task completion time or success rate. However, we observed a modest improvement in success rate among beginner participants. For the most challenging task, GeckoGraph improved success rates by 14.5% for beginners and 11.2% for less experienced users. These findings suggest that GeckoGraph has potential as a teaching and learning aid for polymorphic type systems.

Authors

Institutions

Publication Details

Journal
Journal of Computer Languages
Published
2025-12-04
DOI
https://doi.org/10.1016/j.cola.2025.101381
Primary Topic
Teaching and Learning Programming
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

GeckoGraph: A visual language for polymorphic types

Tim Dwyer, Peter J. Stuckey, John Grundy, Shuai Fu
Journal of Computer Languages
Teaching and Learning Programming
article

GeckoGraph: A visual language for polymorphic types

Tim Dwyer, Peter J. Stuckey, John Grundy, Shuai Fu
article en

Abstract

Polymorphic type is an important feature in most strongly typed programming languages. They allow functions to be written in a way that can be used with different data types, while still enforcing the relationship and constraints between the values. However, programmers often find polymorphic types difficult to use and understand, and tend to reason in terms of concrete types. We propose GeckoGraph, a graphical notation for types. GeckoGraph aims to complement traditional text-based type notation by making reading, understanding, and comparing types easier. We conducted a large-scale user study comparing GeckoGraph to text-based type notation. To our knowledge, this is the largest controlled user study on functional programming ever conducted. The results show no overall significant differences in task completion time or success rate. However, we observed a modest improvement in success rate among beginner participants. For the most challenging task, GeckoGraph improved success rates by 14.5% for beginners and 11.2% for less experienced users. These findings suggest that GeckoGraph has potential as a teaching and learning aid for polymorphic type systems.

Journal of Computer LanguagesVol. 86
Monash University (AU)
Openalex Percentile: Top 60%
Teaching and Learning Programming
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.