In this section we’ll study and understand type signature, functions, types, data constructors, etc. We’ll also study the possible implementations (many of them simplified), together with their usage and evaluation steps.
For brevity, we’ll colloquially say things like “this function takes two parameters”, but that will always mean (unless explicitly noted) that it is a function that takes one parameter, and return a function that takes another parameter, that then returns the final result.
Also, sometimes we will use a short name like
fn, etc. instead of longer names like
The goal is to make evaluation steps shorter in the text.