Monadified everything for better error messages.