Implement error handling for compiler using Either data type
Pass errors on to the abstract machine by returning
Either String State
with main function.
Pass errors on to the abstract machine by returning
Either String State
with main function.