Stack - Haskell Build Tool
O Stack é uma ferramenta de construção (build tool) para Haskell que simplifica o gerenciamento de projetos, dependências e versões do compilador GHC. Ele resolve problemas comuns como compatibilidade entre bibliotecas e versões do GHC.
Principais Características
Gerenciamento de Dependências
Permite adicionar bibliotecas externas (ex.: text, http-client) de forma fácil e reproduzível.
Isolamento de Ambientes
Cada projeto pode usar uma versão específica do GHC e das bibliotecas, evitando conflitos (“dependency hell”).
Facilidade de Configuração
Cria uma estrutura padrão para projetos Haskell e automatiza a compilação.
Como Usar o Stack
1. Instalação
Instale o Stack (disponível em haskellstack.org).
2. Criar um projeto
$ stack new meu-projetoIsso cria uma pasta meu-projeto com uma estrutura pronta:
app/Main.hs: Arquivo principal.src/: Para módulos adicionais.stack.yaml: Configuração do projeto.meu-projeto.cabal: Arquivo de build com dependências.
3. Compilar e executar
$ cd meu-projeto
$ stack build
$ stack exec meu-projeto-exe4. Adicionar dependências
Edite o arquivo .cabal (ex.: meu-projeto.cabal) na seção build-depends:
$ build-depends: base >= 4.7 && < 5, textO Stack instala a biblioteca text automaticamente ao rodar stack build.
Vantagens
Reproduzibilidade
Outros desenvolvedores podem clonar seu projeto e usar stack build para obter o mesmo ambiente.
Integração com o GHC
O Stack baixa a versão correta do GHC para o projeto, definida no stack.yaml.