Haskell Type System: A Comprehensive Guide to Data Constructors, Type