A big writeup on polymorphic functions
What if we emulate datatypes via lambda-calculus