this commit introduces many of the most common functions you will want to use with the Option type. Not all of them are used immediately in this PR.