[Verse 1]
When pattern matching calls your name
Each case must stand its ground
The compiler checks every lane
Makes sure no path's unfound
Exhaustive is the rule we play
Cover every single way
[Chorus]
By case, by case, we break it down
Transparent paths through code we've found
Every branch must have its place
By case, by case, embrace the space
Transparen shows what's hiding there
Match expressions everywhere
[Verse 2]
Enums and unions take the stage
Each variant gets its turn
The underscore wildcard saves the page
When patterns start to burn
But explicit beats the catch-all game
Name each case, don't hide in shame
[Chorus]
By case, by case, we break it down
Transparent paths through code we've found
Every branch must have its place
By case, by case, embrace the space
Transparen shows what's hiding there
Match expressions everywhere
[Bridge]
Guards can filter what gets through
When conditions must be true
Destructuring pulls apart
Complex types right from the start
Compiler errors guide the way
When cases go astray
[Verse 3]
Option types with Some and None
Result with Error, Ok done
Boolean true and false must show
Nested matches help control flow
Every possible outcome planned
Safety held in programmer's hand
[Chorus]
By case, by case, we break it down
Transparent paths through code we've found
Every branch must have its place
By case, by case, embrace the space
Transparen shows what's hiding there
Match expressions everywhere
[Outro]
When runtime comes there's no surprise
Every case before your eyes
By case we conquer, case by case
Transparent logic finds its place