please won't you tell me who is she?

The Strathclyde Haskell Enhancement is an experimental preprocessor for the Glasgow Haskell Compiler, concocted hastily by Conor McBride at the University of Strathclyde. Its current functionality includes

Its main function is to support its author's foibles in the process of implementing Epigram, but it's also a test bed for experimental Haskell features. At this stage in its life cycle, it's unlikely to be particularly robust. You'll find that its error support is fantastic, if you need help making errors.

getting it and doing it

If you try (possibly after a cabal update)

cabal install she

you may find you're in business. The intrepid among you may prefer
darcs get
cd she
cabal install

Once she's installed, you should find that she's executable. Your best bet is to let ghc do the talking. The incantation for the top of your file is

{-# OPTIONS_GHC -F -pgmF she #-}

which means she gets called as a Haskell preprocessor, after your bird tracks have been stripped, but before much else happens. Works fine in ghci too.

If you want to inspect the mess she makes of your lovely program, you could do worse than

ghc -E Lovely.lhs
more Lovely.hspp

and compare it to a summer's day. Meanwhile, you might also look at the funny extra file she's made
more Lovely.hers

which is probably empty, because you haven't done anything yet.

getting on with it

If you want to play, don't wait for me to WTFM. Look in the examples directory and get cracking.

Here's the manual, so far.

watch this space

Features to fix and bugs to add!

  • a translator from simple first-order programs to type families
  • monadic case and if
  • constructing free monads from signatures
  • making newtypes instances of class Newtype