turn c++ exceptions into haskell errors
rename symbolic -> core