gleam-lang/gleam

Emphasize mismatching part of complex type mismatches

Open

#4,578 opened on May 9, 2025

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Rust (960 forks)batch import
discussionhelp wanted

Repository metrics

Stars
 (21,417 stars)
PR merge metrics
 (Avg merge 10d 19h) (69 merged PRs in 30d)

Description

When a type mismatch is complex, and some types are unbound (is this the correct term?), it can be hard to see where the error actually is. Here is a concrete example I actually wasted quite a bit of time on:

Expected type:

    drift.Step(List(String), Input, Output, Nil)

Found type:

    drift.Step(List(string), Input, a, b)

It could be made clearer by emphasizing where the type mismatch was exactly:

Expected type:

    drift.Step(List(String), Input, Output, Nil)
                    ^^^^^^

Found type:

    drift.Step(List(string), Input, a, b)
                    ^^^^^^

Contributor guide