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)
- FP in Kotlin with Arrow with Jorge Castillo (Online Course on 20th - 23rd September 2021)
- F# eXchange 2021 (Online Conference on 20th October 2021)
- ScalaCon 2021: November Edition (Online Conference on 2nd - 5th November 2021)
- Abstract Fun-sense: a functional perspective on life (SkillsCast recorded in May 2021)
- Journey to the Centre of the JVM (SkillsCast recorded in May 2021)
Structural Typing for Structured Products
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 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.