My development environment is a Screen with Bash, Vim and GHCi
running.
If I can just load the files in GHCi or compile them with GHC
without specifying many options or extensions, then I just do
it that way. As soon as I feel a need to write a Makefile or a
little build script, I write a Cabal file instead and switch
to using `cabal-install'.
When I say "many" options or extensions, I nearly mean "any".
Most projects of mine get a Cabal file at the point where I
feel the need for the first `LANGUAGE' pragma. (I usually omit
`LANGUAGE' pragmas, delegating to Cabal for that. I'm not sure
whether this is good or bad practice.)
--
Jason Dusek