Modeling Data with Functional Programming