Using GHC core to Normalise Student Programs
Paper in proceeding, 2026

Ask-Elle is an online tutor for solving small programming exercises in Haskell. It provides feedback by first determining whether a student’s submission matches one of the teacher-provided model solutions. However, Haskell’s rich syntax allows for semantically equivalent but syntactically different programs, making direct comparison challenging. To address this, Ask-Elle applies normalizing program transformations to reduce such syntactic differences. Despite this, some correct programs remain unrecognised. We have developed a new approach to feedback generation that leverages GHC’s internal transformations and warning messages. This method improves the recognition of correct programs while also being much faster. Additionally, we share our experiences using GHC as a library.

Functional programming

Haskell

GHC

Program normalisation

Programming tutor

Author

Matilda Blomqvist

Uppsala University

Alex Gerdes

Chalmers, Computer Science and Engineering (Chalmers), Functional Programming

University of Gothenburg

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 15652 LNCS 511-532
9783031997501 (ISBN)

26th International Symposium on Trends in Functional Programming, TFP 2025
Oxford, United Kingdom,

Subject Categories (SSIF 2025)

Software Engineering

DOI

10.1007/978-3-031-99751-8_22

More information

Latest update

10/31/2025