Please log in to watch this conference skillscast.
In this talk, Peter and Tim will explain structural typing and compare it to the more usual nominal typing. They will present some code examples from an in-house external DSL, Lucid, for describing exotic equity trades and strategies. Lucid features a type-system that makes significant use of row polymorphism, specifically extensible records and their dual, polymorphic sums with extensible cases.
The pair will demonstrate the use of records and extensible cases through example code written in such a way that it can be re-used in other unanticipated contexts. And compare and contrast with other more mainstream approaches, such as object-oriented programming. Lastly, the duo will explore how row-polymorphism can be used to implement a simple effects tracking system for external DSLs.
YOU MAY ALSO LIKE:
- Lightning Talk: Generating Castles for Minecraft™ using Haskell (SkillsCast recorded in October 2019)
- F# eXchange 2023: Conference Livestream (Online Conference on 7th - 8th March 2023)
- Hack & Hang Night (in Chicago on 21st February 2023)
- Think Functionally (Online Meetup on 23rd February 2023)
- Teaching Haskell...To High Schoolers! (SkillsCast recorded in December 2022)
- Teaching Haskell...To High Schoolers! (SkillsCast recorded in December 2022)
Structural Typing for Structured Products
Tim Williams
Tim Williams has worked as a software developer in the finance industry for over 15 years. He has been using Haskell professionally for over 7 years, building contract languages at Barclays and trading systems at Standard Chartered. He holds a PhD in Physics from the University of Bristol.
Peter Marks
Peter has been developing software for over 30 years. As an active member of the OO community, he was a regular speaker at the OT and SPA conferences. In 1999, he co-founded Connextra, pioneering many of today's main-stream Agile practices. For ten years, Peter's primary interest has been functional programming, and he now leads the FPF team at Barclays, developing languages for modelling Structured Products, and tools for pricing and managing trades, in Haskell.