A friend of mine showed me the following code:
calculateAge :: (Int, Int, Int) -> Int
calculateAge (d2, m2, y2)
| 11 > m2 = 2021 - y2
| 11 == m2 && 10 >= d2 = 2021 - y2
| otherwise = 2021 - y2 - 1
What does the | operator stand for? Is it just if the pattern are matching that the rest will get executed? Or is it like a Constructor?