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-projeto

Isso 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-exe

4. Adicionar dependências

Edite o arquivo .cabal (ex.: meu-projeto.cabal) na seção build-depends:

$ build-depends: base >= 4.7 && < 5, text

O 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.

Referências


https://docs.haskellstack.org/en/stable/