anchor.diff:      runHook postHaddock
     '';
   
  -  # The scary sed expression handles two cases in v2.5 Cabal's package configs:
  -  # 1. 'id:    short-name-0.0.1-9yvw8HF06tiAXuxm5U8KjO'
  -  # 2. 'id:\n
  -  #         very-long-descriptive-useful-name-0.0.1-9yvw8HF06tiAXuxm5U8KjO'
     installPhase = ''
       runHook preInstall
   
  
positive.code:         rmdir "$packageConfFile"
        fi
        for packageConfFile in "$packageConfDir/"*; do
          local pkgId=$( ${gnused}/bin/sed -n -e ':a' -e '/^id:$/N; s/id:\n[ ]*\([^\n]*\).*$/\1/p; s/id:[ ]*\([^\n]*\)$/\1/p; ta' $packageConfFile )
          mv $packageConfFile $packageConfDir/$pkgId.conf
        done
  
        # delete confdir if there are no libraries
  
negative.code:                      main = defaultMain
                     '';
  
    # This awk expression transforms a package conf file like
    #
    #   author:               John Doe <john-doe@example.com>
    #   description:
    #       The purpose of this library is to do
    #       foo and bar among other things
    #
    # into a more easily processeable form:
    #
    #   author: John Doe <john-doe@example.com>
    #   description: The purpose of this library is to do foo and bar among other things
    unprettyConf = builtins.toFile "unpretty-cabal-conf.awk" ''
      /^[^ ]+:/ {
        # When the line starts with a new field, terminate the previous one with a newline
        if (started == 1) print ""
        # to strip leading spaces
        $1=$1
        printf "%s", $0
        started=1
      }
  
      /^ +/ {
        # to strip leading spaces
        $1=$1
        printf " %s", $0
      }
  
      # Terminate the final field with a newline
      END { print "" }
    '';
  
    crossCabalFlags = [
      "--with-ghc=${ghcCommand}"
      "--with-ghc-pkg=${ghc.targetPrefix}ghc-pkg"
  