improve Haskell environments

factor out duplicated code,
improve naming

This is still for a cabal-install / cabal-sandbox centric workflow
named environments for including  related programs