JEP 3: Functions

Opening a new PR because GitHub stopped syncing the old one (not sure why).