getVal :: Env -> String -> IOThrowsError AtomoVal
getVal e n = do m <- maybeRef e (Define n)
                case m of
                     Just v -> (liftIO . readIORef) v
                     Nothing -> do c <- maybeRef e (Class (Name n))
                                   case c of
                                        Just v -> (liftIO . readIORef) v
                                        Nothing -> error $ "Could not find definition `" ++ n ++ "'"
getVal :: Env -> String -> IOThrowsError AtomoVal
getVal e n = do m <- maybeRef e (Define n)
                case m of
                     Just v -> (liftIO . readIORef) v
                     Nothing -> do c <- maybeRef e (Class (Name n))
                                   case c of
                                        Just v -> (liftIO . readIORef) v
                                        Nothing -> error $ "Could not find definition `" ++ n ++ "'"
getVal e n = do m <- maybeRef e (Define n)
                case m of
                     Just v -> (liftIO . readIORef) v
                     Nothing -> do c <- maybeRef e (Class (Name n))
                                   case c of
                                        Just v -> (liftIO . readIORef) v
                                        Nothing -> error $ "Could not find definition `" ++ n ++ "'"