dherman/esprit

Tracked is a user-hostile abstraction

Closed this issue · 0 comments

The Tracked type requires all clients to constantly select the .value out of any node that has source location information, which adds up to a ton of boilerplate in the world of client code. To save clients, the Tracked type's location field should just be open-coded into all types that implement Track. This means less abstraction in the implementation, but more abstraction in client code.

If and when fields in traits becomes a thing, the implementation can be abstracted better.