runI :: I a -> IO (Either Err a)
runI m = getRepoRoot >>= runResourceT . runExceptT . runReaderT m' . emptyEnv
  where
    m' = view envRobinRoot >>= ensureDir >> m
runI :: I a -> IO (Either Err a)
runI m = getRepoRoot >>= runResourceT . runExceptT . runReaderT m' . emptyEnv
  where
    m' = view envRobinRoot >>= ensureDir >> m
runI m = getRepoRoot >>= runResourceT . runExceptT . runReaderT m' . emptyEnv
  where
    m' = view envRobinRoot >>= ensureDir >> m