Skip to content

Instantly share code, notes, and snippets.

@chshersh
Last active May 3, 2022 06:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chshersh/94760018796e27ba062a7e4643129996 to your computer and use it in GitHub Desktop.
Save chshersh/94760018796e27ba062a7e4643129996 to your computer and use it in GitHub Desktop.
Chords to the "Welcome to the Haskell-land (a Bo Burnham parody)" song
Performance:
* https://youtu.be/Uy08hw1ZyCM
Chords are taken from the original song:
* https://tabs.ultimate-guitar.com/tab/bo-burnham/welcome-to-the-internet-chords-3732602
Strumming:
* First half: Up - Muted (^ - x - ^ - x - ^ - x)
* Second half: Up - Down - Down (^ - V - V - ^ - V - V - ^ - V - V)
[Verse 1]
Dm
Welcome to the Haskell-land! Have a look around
Gm
Any abstract nonsense you can think of can be found
F
We've got Monads and Monoids — some better, some worse
A7
If none of it's of interest to you, you'd be the first
[Verse 2]
Dm
Welcome to the Haskell-land! Are you ready to sweat?
Gm
Would you like to use a library designed by Edward Kmett?
F
It's just GHC panic; not a failed test, haha
A7
Just show us Haskell Core, and we'll do the rest
[Verse 3]
Dm
Welcome to thе Haskell-land! What would you prefеr?
Gm
Would you like to bump dependencies or whine about the churn?
F
Build quickly! Build slowly! Build all on CI!
A7
We've got a million different ways to compile
[Verse 4]
Dm
Welcome to the Haskell-land! Put your cares aside
Gm
Here's a tip for static linking; here's worker thread that died
F
We've got Functors, Adjunctions and Tardis monad
A7
And a bunch of recursion schemes with bananas, lenses, envelopes, prepromorphisms calling each other
[Verse 5]
Dm
Welcome to the Haskell-land! Hold on to your socks
Gm
'Cause a random guy just kindly sent you proof written in Coq
F
It is grainy and off-putting; he just sent you more
A7
Don't act surprised—you know you like it, you nerd
[Verse 6]
Dm
Your lib is deprecated and rejected by admin
Gm
Show us pictures of your errors, tell us every log you see
F
Make a good deed, get offended, ask for pity on your Twitter
A7
Or create new Haskell commmitee to make a sloth new mascot in your—
[Verse 7]
Dm
Here's a new effects framework, you should force your thunk
Gm
Here's why you don't hear from women; here's how you can see segfault
F
Which Haskell Typeclass are you? Take this quirky quiz
A7 A7 Gm F E Dm
Maintainer used Generics to slow down all your builds
[Chorus]
Dm
Could I interest you in error-handling at compile-time?
Gm
A little bit of error-handling at compile-time?
F
Boilerplate is tragedy, dynamic types are crime
A7
Error-handling and exceptions at compile-time
Dm
Could I interest you in error-handling at compile-time?
Gm
A little bit of error-handling at compile-time?
F
Boilerplate is tragedy, dynamic types are crime
A7
Error-handling and exceptions at compile-time
Dm C Bb A7
[Spoken Interlude]
Dm C Bb A7
You know, it wasn't always like this
[Bridge]
Dm C Bb A7
Not very long ago, just before you came
Dm C Bb A7
Right before Ivory Tower fell, circa '98
Gm Dm A7 Dm
This was mailing lists, RSS feeds, an IRC room or two
Gm Dm A7 C7
We set our sights and spent our nights building!
Fmaj7
With you
Dm7
You
Gm7 C7
Insatiable you
Fmaj7 Dm7 Gm7 C7
Simon let us use compiler; it was barely 6.2
Dm Dmaj7/C# Dm7/C Bb
And it did all the things we designed it to do
Bb
Now, look at you!
C
Oh, look at you!
D
You
Gma7 Em7
you!
Am7 D7
Researchable, watchable
Gmaj7 Em7 Am7 D7
With LinearTypes and proper records, honey, how you grew
Em7 Emmaj7/D# Em7/D A
And if we stick together, who knows what we'll do?
C D B7 C
It was always the plan to build the world with your help
[Break]
(*Laughs*)
Em Em/B Em Em/B Em Em/B Em Em/B
[Chorus]
Em
Could I interest you in error-handling at compile-time?
Am
A little bit of error-handling at compile-time?
G
Boilerplate is tragedy, dynamic types are crime
B7
Error-handling and exceptions at compile-time
Em
Could I interest you in error-handling at compile-time?
Am
A little bit of error-handling at compile-time?
G
Boilerplate is tragedy, dynamic types are crime
B7
Error-handling and exceptions
Error-handling and exceptions
Error-handling and exceptions
Em
At compile-time
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment