Trees That Grow • Tony Morris • YOW! 2019

Discover how Tony Morris, YOW! 2019 speaker, tackles the challenge of adding constructors or fields to a data type, exploring solutions like classy lenses, Trees That Grow, and Agda's dependent types to resolve the issue.

Key takeaways
  • There is a problem with adding constructors or fields to a data type, especially when the type has many variables.
  • The speaker has been using classy lenses and classy prisms to solve this problem, but it’s not perfect.
  • The speaker tried to use Trees That Grow to solve this problem, but it didn’t quite work out.
  • The problem is particularly difficult when dealing with complex object graphs of products and sums.
  • The speaker is looking for a better solution to this problem.
  • Agda has full dependent types, which might be able to help describe the problem better.
  • The speaker wants to be able to add fields to a data type without having to rewrite all the code that uses that data type.
  • The speaker has hit some problems and is not sure what they are doing wrong.
  • Trees That Grow promises to resolve this issue by inserting a type family field.
  • The speaker is still exploring the Backpack solution to this problem.
  • The speaker’s goal is to be able to write a single variable that ranges over products and sums.
  • The speaker’s problem is similar to the expression problem, but in this case they are dealing with complex object graphs.