env :: Monad m => Typechecker.Env m Symbol ()
env = Typechecker.Env () [] typeOf dd ed where
  typeOf r = maybe (error $ "no type for: " ++ show r) pure $ Map.lookup r B.builtins
  dd r = error $ "no data declaration for: " ++ show r
  ed r = error $ "no effect declaration for: " ++ show r
env :: Monad m => Typechecker.Env m Symbol ()
env = Typechecker.Env () [] typeOf dd ed where
  typeOf r = maybe (error $ "no type for: " ++ show r) pure $ Map.lookup r B.builtins
  dd r = error $ "no data declaration for: " ++ show r
  ed r = error $ "no effect declaration for: " ++ show r
env = Typechecker.Env () [] typeOf dd ed where
  typeOf r = maybe (error $ "no type for: " ++ show r) pure $ Map.lookup r B.builtins
  dd r = error $ "no data declaration for: " ++ show r
  ed r = error $ "no effect declaration for: " ++ show r