JEP 3: Functions

Opening a new PR because GitHub stopped syncing the old one for some reason.