Signal exceptions instead of returning an option type

ML hackers weep.