ghc-devs
  Threads by month 
                
            - ----- 2025 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
June 2013
- 41 participants
- 48 discussions
                    
                        Hi all,
I was reading the GHC compiler commentary and the current GHC sources
and found that description here:
    http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/TypeType#There…	
did not match the code in Git.
I edited the wiki to the best of my ability but would appreciate it if
someone who understands this better could have a look over it hopefully
improve it.
Cheers,
Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Ian
Following yesterday's problem I deleted 
	/home/simonpj/.ghc/x86_64-linux-7.7/package.conf.d/package.cache
But now 'sh validate' gives this (below), complaining that the file I deleted doesn't exist!
But it wouldn't exist on a clean machine, would it.  I'm very confused.
Thanks
Simon
"inplace/bin/ghc-cabal" configure libraries/ghc-prim dist-install "" --with-ghc="/5playpen/simonpj/HEAD-1/inplace/bin/ghc-stage1" --with-ghc-pkg="/5playpen/simonpj/HEAD-1/inplace/bin/ghc-pkg" --flag=include-ghc-prim --disable-library-for-ghci --enable-library-vanilla --disable-library-profiling --enable-shared --with-hscolour="/home/simonmar/fp/bin/x86_64-unknown-linux/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector    -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" -Wl,--hash-size=31 -Wl,--reduce-memory-overheads  " --configure-option=CPPFLAGS="   " --with-gcc="/usr/bin/gcc" --with-ld="/usr/bin/ld" --configure-option=--with-cc="/usr/bin/gcc" --with-ar="/usr/bin/ar" --with-ranlib="true" --with-alex="/home/simonpj/.cabal/bin/alex" --with-happy="/home/simonmar/fp/bin/x86_64-unknown-linux/happy"
Configuring ghc-prim-0.3.1.0...
/home/simonpj/.ghc/x86_64-linux-7.7/package.conf.d/package.cache: openBinaryFile: does not exist (No such file or directory)
make[1]: *** [libraries/ghc-prim/dist-install/package-data.mk] Error 1
make: *** [all] Error 2
simonpj@cam-05-unx:~/5builds/HEAD-1$
Microsoft Research Limited (company number 03369488) is registered in England and Wales 
Registered office is at 21 Station Road, Cambridge, CB1 2FB
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            2
                            
                          
                          
                            
    
                          
                        
                    
                    
                        
Hello,
for some time now, my builder clients are not able to reach the builder 
server. If my sniffing is right then this should be on abbot.galois.com 
which web claims to be working but otherwise is not pingable. Also port 
4938 is open, I'm able to push some data there, but the server does not 
respond with anything...
Looking on http://darcs.haskell.org/ghcBuilder/builders/ reveals that 
few last builds are from May 25.
Could someone responsible for this server be so kind and restart the 
builder server?
Thanks a lot!
Karel
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        As you'll see I've just pushed a wave of commits, of which cardinality analysis is the big one.  Some of the others are performance tweaks that I discovered when benchmarking.  Before pushing the wave I did a full nofib run against today's HEAD; here are the results.
Pretty modest reductions, but zero big outliers in the wrong direction.
A couple of compiler perf tests are worse, which I should look into.
Thanks to Ilya for doing a lot of the cardinality work.
Simon
--------------------------------------------------------------------------------
        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
           anna          -1.3%     -0.5%      0.18      0.18     +0.0%
           ansi          -2.5%     -0.8%      0.00      0.00     +0.0%
           atom          -2.3%     -0.0%     -1.3%     -1.3%     +0.0%
         awards          -2.4%     -0.1%      0.00      0.00     +0.0%
         banner          -2.8%     -0.2%      0.00      0.00     +0.0%
     bernouilli          -2.5%     -0.0%     +0.0%     +0.0%     +0.0%
   binary-trees          -2.6%     -0.2%     -1.1%     -1.1%     +7.4%
          boyer          -2.4%     -0.0%      0.07      0.07     +0.0%
         boyer2          -2.6%     -0.4%      0.01      0.01     +0.0%
           bspt          -2.1%     -0.0%      0.02      0.02     +0.0%
      cacheprof          -2.0%     -0.4%     -3.6%     -2.7%     -5.7%
       calendar          -2.5%     +0.2%      0.00      0.00     +0.0%
       cichelli          -2.6%     -0.0%      0.16      0.16     +0.0%
        circsim          -2.3%     -0.0%     -2.0%     -1.9%    +11.5%
       clausify          -2.5%     -0.0%      0.06      0.06     +0.0%
  comp_lab_zift          -2.4%     -0.0%     -3.0%     -3.0%    +14.3%
       compress          -2.3%     -0.0%     +0.0%     +0.0%    -33.3%
      compress2          -2.7%     -0.0%     -8.1%     -8.1%    -14.3%
    constraints          -2.7%     -1.9%     -3.5%     -3.5%     +0.0%
   cryptarithm1          -2.9%     -0.0%     -8.8%     -8.8%    -50.0%
   cryptarithm2          -2.5%     -0.0%      0.01      0.01     +0.0%
            cse          -2.5%     -0.1%      0.00      0.00     +0.0%
          eliza          -2.7%     -0.1%      0.00      0.00     +0.0%
          event          -2.5%     -0.0%     +0.0%     +0.0%     +0.0%
         exp3_8          -2.5%     -0.0%     +0.0%     +0.0%     +0.0%
         expert          -2.7%     -0.2%      0.00      0.00     +0.0%
 fannkuch-redux          -2.5%     -0.0%     -0.9%     -0.9%     +0.0%
          fasta          -3.3%     -0.0%     -0.2%     -0.4%     +0.0%
            fem          -2.4%     -0.0%      0.03      0.03     +0.0%
            fft          -2.4%     -0.0%      0.06      0.06     +0.0%
           fft2          -2.2%     -0.0%      0.09      0.09     +0.0%
       fibheaps          -2.5%     -0.0%      0.05      0.05     +0.0%
           fish          -2.8%     -0.0%      0.02      0.02    -50.0%
          fluid          -1.7%     -0.0%      0.01      0.01     +0.0%
         fulsom          -2.0%     -0.0%     +0.4%     +0.4%    +33.3%
         gamteb          -2.3%     +0.5%      0.06      0.06     +0.0%
            gcd          -2.5%     -0.0%      0.05      0.05     +0.0%
    gen_regexps          -2.9%     -0.1%      0.00      0.00     +0.0%
         genfft          -2.5%     -0.0%      0.05      0.05     +0.0%
             gg          -2.3%     -0.0%      0.02      0.02     +0.0%
           grep          -2.6%     -0.4%      0.00      0.00     +0.0%
         hidden          -2.1%     -0.0%     -0.5%     -0.3%     +0.0%
            hpg          -2.2%     -1.0%     +1.7%     +1.7%     +0.0%
            ida          -2.4%     -0.0%      0.13      0.12     +0.0%
          infer          -2.2%     +0.0%      0.10      0.10     +0.0%
        integer          -2.4%     +0.0%     -2.7%     -2.7%     +0.0%
      integrate          -2.4%     -0.0%     +1.2%     +1.2%     +0.0%
   k-nucleotide          -6.3%     -0.0%     +1.1%     +1.1%     +0.0%
          kahan          -2.5%     -0.0%     +0.0%     +0.0%     +0.0%
        knights          -2.5%     -1.6%      0.01      0.01     +0.0%
           lcss          -2.5%     +0.0%     +0.0%     +0.0%     +0.0%
           life          -2.7%     -0.0%     -2.8%     -2.8%     +0.0%
           lift          -2.5%     -0.0%      0.00      0.00     +0.0%
      listcompr          -2.8%     -0.0%      0.14      0.14     +0.0%
       listcopy          -2.8%     -0.0%      0.14      0.14     +0.0%
       maillist          -2.9%     -0.2%      0.07      0.09    +11.2%
         mandel          -2.4%     -0.0%      0.11      0.11     +0.0%
        mandel2          -2.8%     -0.0%      0.00      0.00     +0.0%
        minimax          -2.7%     -0.0%      0.00      0.00     +0.0%
        mkhprog          -2.8%     +0.1%      0.00      0.00     +0.0%
     multiplier          -2.5%     -0.0%     -4.5%     -4.5%     +0.0%
         n-body          -3.7%     -0.0%     +1.2%     +1.1%     +0.0%
       nucleic2          -2.3%    -10.9%      0.10      0.10     +0.0%
           para          -2.6%     -0.0%     +0.0%     +0.0%     +0.0%
      paraffins          -2.5%     -0.0%      0.20      0.20     +0.0%
         parser          -1.9%     -0.2%      0.05      0.05    -20.0%
        parstof          -2.2%     -0.0%      0.00      0.00     +0.0%
            pic          -2.4%     -0.0%      0.00      0.00     +0.0%
       pidigits          -2.5%     -0.0%     -0.3%     -1.0%     +0.0%
          power          -2.2%     -0.0%     -1.4%     -1.4%     +0.0%
         pretty          -2.7%     -0.2%      0.00      0.00     +0.0%
         primes          -2.6%     -0.0%      0.11      0.11     +0.0%
      primetest          -2.5%     -0.0%      0.14      0.14     +0.0%
         prolog          -2.4%     -0.3%      0.00      0.00     +0.0%
         puzzle          -2.8%     -0.0%     -8.0%     -8.0%     +0.0%
         queens          -2.5%     -0.0%      0.02      0.02     +0.0%
        reptile          -2.2%     -0.0%      0.02      0.02     +0.0%
reverse-complem          -3.3%     -0.1%     +4.5%     +4.5%     +0.0%
        rewrite          -2.6%     -0.1%      0.02      0.02     +0.0%
           rfib          -2.4%     -0.1%      0.03      0.03     +0.0%
            rsa          -2.6%     -0.0%      0.03      0.03     +0.0%
            scc          -2.8%     -0.4%      0.00      0.00     +0.0%
          sched          -2.5%     -0.0%      0.03      0.03     +0.0%
            scs          -1.9%     +0.0%     +0.2%     +0.2%     +0.0%
         simple          -1.9%     -0.0%     -2.1%     -2.1%     +0.0%
          solid          -2.3%     -0.0%     +0.0%     +0.0%     +0.0%
        sorting          -2.8%     -0.0%      0.00      0.00     +0.0%
  spectral-norm          -2.6%     -0.1%     +0.0%     +0.0%     +0.0%
         sphere          -2.3%     -1.5%      0.08      0.08     +0.0%
         symalg          -1.7%     -0.0%      0.01      0.01     +0.0%
            tak          -2.5%     -0.0%      0.02      0.02     +0.0%
      transform          -2.2%     -0.0%     -1.8%     -1.8%     +0.0%
       treejoin          -2.9%     -0.0%     +0.0%     +0.0%     +0.0%
      typecheck          -2.4%     -0.0%     -4.4%     -4.4%     +0.0%
        veritas          -1.1%     -0.0%      0.00      0.00     +0.0%
           wang          -2.4%     -0.0%     +0.0%     +0.0%     +0.0%
      wave4main          -2.4%     +0.5%     +0.0%     +0.0%     +0.0%
   wheel-sieve1          -2.5%     -0.0%     +0.0%     +0.0%     +0.0%
   wheel-sieve2          -2.5%     -0.0%     +0.0%     +0.0%     +0.0%
           x2n1          -2.5%     -0.0%      0.00      0.00     +0.0%
--------------------------------------------------------------------------------
            Min          -6.3%    -10.9%     -8.8%     -8.8%    -50.0%
            Max          -1.1%     +0.5%     +4.5%     +4.5%    +33.3%
 Geometric Mean          -2.5%     -0.2%     -1.3%     -1.3%     -1.5%
| -----Original Message-----
| From: ghc-commits-bounces(a)haskell.org [mailto:ghc-commits-
| bounces(a)haskell.org] On Behalf Of Simon Peyton Jones
| Sent: 06 June 2013 14:30
| To: ghc-commits(a)haskell.org
| Subject: [commit: ghc] master: Implement cardinality analysis (99d4e5b)
| 
| Repository : http://darcs.haskell.org/ghc.git/
| 
| On branch  : master
| 
| https://github.com/ghc/ghc/commit/99d4e5b4a0bd32813ff8c74e91d2dcf6b355
| 5176
| 
| >---------------------------------------------------------------
| 
| commit 99d4e5b4a0bd32813ff8c74e91d2dcf6b3555176
| Author: Simon Peyton Jones <simonpj(a)microsoft.com>
| Date:   Fri May 3 14:50:58 2013 +0100
| 
|     Implement cardinality analysis
| 
|     This major patch implements the cardinality analysis described
|     in our paper "Higher order cardinality analysis". It is joint
|     work with Ilya Sergey and Dimitrios Vytiniotis.
| 
|     The basic is augment the absence-analysis part of the demand
|     analyser so that it can tell when something is used
|     	 never
|     	 at most once
|      	 some other way
| 
|     The "at most once" information is used
|         a) to enable transformations, and
|            in particular to identify one-shot lambdas
|         b) to allow updates on thunks to be omitted.
| 
|     There are two new flags, mainly there so you can do performance
|     comparisons:
|         -fkill-absence   stops GHC doing absence analysis at all
|         -fkill-one-shot  stops GHC spotting one-shot lambdas
|                          and single-entry thunks
| 
|     The big changes are:
| 
|     * The Demand type is substantially refactored.  In particular
|       the UseDmd is factored as follows
|           data UseDmd
|             = UCall Count UseDmd
|             | UProd [MaybeUsed]
|             | UHead
|             | Used
| 
|           data MaybeUsed = Abs | Use Count UseDmd
| 
|           data Count = One | Many
| 
|       Notice that UCall recurses straight to UseDmd, whereas
|       UProd goes via MaybeUsed.
| 
|       The "Count" embodies the "at most once" or "many" idea.
| 
|     * The demand analyser itself was refactored a lot
| 
|     * The previously ad-hoc stuff in the occurrence analyser for foldr and
|       build goes away entirely.  Before if we had build (\cn -> ...x... )
|       then the "\cn" was hackily made one-shot (by spotting 'build' as
|       special.  That's essential to allow x to be inlined.  Now the
|       occurrence analyser propagates info gotten from 'build's stricness
|       signature (so build isn't special); and that strictness sig is
|       in turn derived entirely automatically.  Much nicer!
| 
|     * The ticky stuff is improved to count single-entry thunks separately.
| 
|     One shortcoming is that there is no DEBUG way to spot if an
|     allegedly-single-entry thunk is acually entered more than once.  It
|     would not be hard to generate a bit of code to check for this, and it
|     would be reassuring.  But it's fiddly and I have not done it.
| 
|     Despite all this fuss, the performance numbers are rather under-whelming.
|     See the paper for more discussion.
| 
|            nucleic2          -0.8%    -10.9%      0.10      0.10     +0.0%
|              sphere          -0.7%     -1.5%      0.08      0.08     +0.0%
|     --------------------------------------------------------------------------------
|                 Min          -4.7%    -10.9%     -9.3%     -9.3%    -50.0%
|                 Max          -0.4%     +0.5%     +2.2%     +2.3%     +7.4%
|      Geometric Mean          -0.8%     -0.2%     -1.3%     -1.3%     -1.8%
| 
|     I don't quite know how much credence to place in the runtime changes,
|     but movement seems generally in the right direction.
| 
|  compiler/basicTypes/Demand.lhs   | 1034 ++++++++++++++++++++++++++------
| ------
|  compiler/basicTypes/MkId.lhs     |    4 +-
|  compiler/basicTypes/OccName.lhs  |    7 +-
|  compiler/cmm/CmmParse.y          |    3 +-
|  compiler/codeGen/StgCmmBind.hs   |   44 +-
|  compiler/codeGen/StgCmmTicky.hs  |   25 +-
|  compiler/coreSyn/CorePrep.lhs    |   57 ++-
|  compiler/main/DynFlags.hs        |    6 +-
|  compiler/simplCore/OccurAnal.lhs |  208 ++++----
|  compiler/stgSyn/CoreToStg.lhs    |   30 +-
|  compiler/stranal/DmdAnal.lhs     |  582 ++++++++++++---------
|  docs/storage-mgt/ldv.tex         |    6 +-
|  includes/stg/Ticky.h             |    7 +-
|  rts/Linker.c                     |    8 +-
|  rts/Ticky.c                      |   15 +-
|  15 files changed, 1302 insertions(+), 734 deletions(-)
| 
| 
| Diff suppressed because of size. To see it, use:
| 
|     git show 99d4e5b4a0bd32813ff8c74e91d2dcf6b3555176
| 
| _______________________________________________
| ghc-commits mailing list
| ghc-commits(a)haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-commits
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        
Hi all,
The validate build is failing for me with the below. Does anyone know
what's up please?
Thanks
Ian
===--- building phase 0
make -r --no-print-directory -f ghc.mk phase=0 phase_0_builds
make[1]: Nothing to be done for `phase_0_builds'.
===--- building phase 1
make -r --no-print-directory -f ghc.mk phase=1 phase_1_builds
===--- building final phase
make -r --no-print-directory -f ghc.mk phase=final all
"inplace/bin/ghc-stage2" -hisuf hi -osuf  o -hcsuf hc -static  -H32m -O -Werror -Wall -H64m -O0    -package-name dph-prim-par-0.8.0.1 -hide-all-packages -i -ilibraries/dph/dph-prim-par/. -ilibraries/dph/dph-prim-par/dist-install/build -ilibraries/dph/dph-prim-par/dist-install/build/autogen -Ilibraries/dph/dph-prim-par/dist-install/build -Ilibraries/dph/dph-prim-par/dist-install/build/autogen -Ilibraries/dph/dph-prim-par/.    -optP-include -optPlibraries/dph/dph-prim-par/dist-install/build/autogen/cabal_macros.h -package base-4.7.0.0 -package dph-base-0.8.0.1 -package dph-prim-interface-0.8.0.1 -package dph-prim-seq-0.8.0.1 -package old-time-1.1.0.1 -package random-1.0.1.1 -package vector-0.9.1 -Odph -funbox-strict-fields -fcpr-off -Wall -XHaskell98 -XTypeFamilies -XGADTs -XRankNTypes -XBangPatterns -XMagicHash -XUnboxedTuples -XTypeOperators -XFlexibleInstances -XFlexibleContexts -O2 -O -dcore-lint -fno-warn-deprecated-flags  -no-user-package-db -rtsopts -Wwarn     -odir libraries/dph/dph-prim-par/dist-install/build -hidir libraries/dph/dph-prim-par/dist-install/build -stubdir libraries/dph/dph-prim-par/dist-install/build  -dynamic-too -c libraries/dph/dph-prim-par/./Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.hs -o libraries/dph/dph-prim-par/dist-install/build/Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.o -dyno libraries/dph/dph-prim-par/dist-install/build/Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.dyn_o
Var/Type length mismatch: 
    []
    [s{tv a15I} [tv]]
ghc-stage2: panic! (the 'impossible' happened)
  (GHC version 7.7.20130530 for x86_64-unknown-linux):
	Iface Lint failure
    In interface for dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector
    Unfolding of dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$fDTVector_$cnewMD{v rS}
      <no location info>: Warning:
          In the expression: base:Control.Monad.liftM2{v rC} [gid]
                               @ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                    ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv])
                               @ (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
                                    s3{tv a1Zk} [tv]
                                    (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                       a4{tv a1Zi} [tv]))
                               @ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                    (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                       a4{tv a1Zi} [tv])
                                    s3{tv a1Zk} [tv])
                               @ (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv])
                               (base:GHC.ST.$fMonadST{v rA} [gid[DFunId]] @ s3{tv a1Zk} [tv])
                               (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz} [gid[DataConWrapper]]
                                  @ a4{tv a1Zi} [tv] @ s3{tv a1Zk} [tv])
                               ((dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Scalar.Base.$fDTInt8{v ry} [gid]
                                   @ s3{tv a1Zk} [tv] g{v a1Zl} [lid])
                                `cast` (Sym
                                          (base:GHC.ST.NTCo:ST{tc rx}[0]
                                             <s3{tv a1Zk} [tv]>
                                             <dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv]>)
                                        :: base:GHC.ST.STRep{tc r1j3}
                                             s3{tv a1Zk} [tv]
                                             (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv])
                                             ~#
                                           base:GHC.ST.ST{tc rE}
                                             s3{tv a1Zk} [tv]
                                             (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                s3{tv a1Zk} [tv])))
                               ((\ (s4{v a21s} [lid]
                                      :: ghc-prim:GHC.Prim.State#{(w) tc 32q} s3{tv a1Zk} [tv]) ->
                                   case vector-0.9.1:Data.Vector.Fusion.Util.delay_inline{v rw} [gid]
                                          @ ghc-prim:GHC.Types.Int{(w) tc 3J}
                                          @ (ghc-prim:GHC.Types.Int{(w) tc 3J}
                                             -> ghc-prim:GHC.Types.Int{(w) tc 3J})
                                          ghc-prim:GHC.Classes.$fOrdInt_$cmax{v rv} [gid]
                                          (ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]] 0)
                                          (case g{v a1Zl} [lid]
                                           {ghc-prim:GHC.Types.Int{(w) tc 3J}}
                                           of (wild{v a27g} [lid]
                                                 :: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF})
                                           { dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{d ru} (dt{v a27R} [lid]
                                                                                                                                        :: ghc-prim:GHC.Prim.Int#{(w) tc 3G})
                                                                                                                                     (ds1{v a27S} [lid]
                                                                                                                                        :: [base:GHC.MVar.MVar{tc r1Q2}
                                                                                                                                              dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Req{tc r1Q1}])
                                                                                                                                     (ds2{v a27T} [lid]
                                                                                                                                        :: base:GHC.MVar.MVar{tc r1Q2}
                                                                                                                                             ghc-prim:GHC.Types.Bool{(w) tc 3c}) ->
                                           ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
                                             dt{v a27R} [lid]
                                           })
                                   {(# ghc-prim:GHC.Prim.State#{(w) tc 32q} s3{tv a1Zk} [tv],
                                       vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                         (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                            (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                         (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                            a4{tv a1Zi} [tv]) #)}
                                   of (wild{v a27V} [lid] :: ghc-prim:GHC.Types.Int{(w) tc 3J})
                                   { ghc-prim:GHC.Types.I#{(w) d 6c} (n#{v a280} [lid]
                                                                        :: ghc-prim:GHC.Prim.Int#{(w) tc 3G}) ->
                                   case ghc-prim:GHC.Prim.newArray#{(w) v 920} [gid[PrimOp]]
                                          @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                               a4{tv a1Zi} [tv])
                                          @ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                               (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                          n#{v a280} [lid]
                                          (base:GHC.Err.error{(w) v 05} [gid]
                                             @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                  a4{tv a1Zi} [tv])
                                             (ghc-prim:GHC.CString.unpackCString#{v 0k} [gid]
                                                "MDist (Vector a) - uninitalised"#))
                                          (s4{v a21s} [lid]
                                           `cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                     (Sym
                                                        (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                                           <s3{tv a1Zk} [tv]>))
                                                   :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                        s3{tv a1Zk} [tv]
                                                        ~#
                                                      ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                        (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                           (base:GHC.ST.ST{tc rE}
                                                              s3{tv a1Zk} [tv]))))
                                   {(# ghc-prim:GHC.Prim.State#{(w) tc 32q} s3{tv a1Zk} [tv],
                                       vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                         (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                            (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                         (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                            a4{tv a1Zi} [tv]) #)}
                                   of (ds1{v a282} [lid]
                                         :: (# ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                 (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                    (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv])),
                                               ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
                                                 (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                    (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                                 (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                    a4{tv a1Zi} [tv]) #))
                                   { (# (ipv{v a284} [lid]
                                           :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                   (base:GHC.ST.ST{tc rE}
                                                      s3{tv a1Zk} [tv]))), (ipv1{v a285} [lid]
                                                                              :: ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
                                                                                   (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                      (base:GHC.ST.ST{tc rE}
                                                                                         s3{tv a1Zk} [tv]))
                                                                                   (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                      a4{tv a1Zi} [tv])) #) ->
                                   (# ipv{v a284} [lid]
                                      `cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                                   <s3{tv a1Zk} [tv]>)
                                              :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                   (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                      (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                                   ~#
                                                 ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                   s3{tv a1Zk} [tv]),
                                      vector-0.9.1:Data.Vector.Mutable.MVector{v rr} [gid[DataCon]]
                                        @ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                             (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                        @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                             a4{tv a1Zi} [tv])
                                        0
                                        n#{v a280} [lid]
                                        ipv1{v a285} [lid] #)
                                   }
                                   })
                                `cast` (Sym
                                          (base:GHC.ST.NTCo:ST{tc rx}[0]
                                             <s3{tv a1Zk} [tv]>
                                             (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                (Sym
                                                   (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                                      <s3{tv a1Zk} [tv]>))
                                                <vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                   a4{tv a1Zi} [tv]>))
                                        :: base:GHC.ST.STRep{tc r1j3}
                                             s3{tv a1Zk} [tv]
                                             (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                   (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
                                                (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                   a4{tv a1Zi} [tv]))
                                             ~#
                                           base:GHC.ST.ST{tc rE}
                                             s3{tv a1Zk} [tv]
                                             (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                s3{tv a1Zk} [tv]
                                                (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                   a4{tv a1Zi} [tv]))))
          Argument value doesn't match argument type:
          Fun type:
              (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                 ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv]
               -> vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
                    s3{tv a1Zk} [tv]
                    (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                       a4{tv a1Zi} [tv])
               -> dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                    (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                       a4{tv a1Zi} [tv])
                    s3{tv a1Zk} [tv])
              -> base:GHC.ST.ST{tc rE}
                   s3{tv a1Zk} [tv]
                   (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                      ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv])
              -> base:GHC.ST.ST{tc rE}
                   s3{tv a1Zk} [tv]
                   (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
                      s3{tv a1Zk} [tv]
                      (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                         a4{tv a1Zi} [tv]))
              -> base:GHC.ST.ST{tc rE}
                   s3{tv a1Zk} [tv]
                   (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                      (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                         a4{tv a1Zi} [tv])
                      s3{tv a1Zk} [tv])
          Arg type:
              dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv]
              -> vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
                   s3{tv a1Zk} [tv]
                   (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                      a4{tv a1Zi} [tv])
              -> dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                   (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                      a4{tv a1Zi} [tv])
          Arg:
              dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz} [gid[DataConWrapper]]
                @ a4{tv a1Zi} [tv] @ s3{tv a1Zk} [tv]
    dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$fDTVector_$cnewMD{v rS} = \ (@ a4{tv a1Zi} [tv])
                                                                                                           ($dUnbox{v a1Zj} [lid]
                                                                                                              :: vector-0.9.1:Data.Vector.Unboxed.Base.Unbox{tc rW}
                                                                                                                   a4{tv a1Zi} [tv])
                                                                                                           (@ s3{tv a1Zk} [tv])
                                                                                                           (g{v a1Zl} [lid]
                                                                                                              :: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF}) ->
                                                                                                           base:Control.Monad.liftM2{v rC} [gid]
                                                                                                             @ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                                                                                  ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                                                                                  s3{tv a1Zk} [tv])
                                                                                                             @ (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
                                                                                                                  s3{tv a1Zk} [tv]
                                                                                                                  (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                     a4{tv a1Zi} [tv]))
                                                                                                             @ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                                                                                  (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                     a4{tv a1Zi} [tv])
                                                                                                                  s3{tv a1Zk} [tv])
                                                                                                             @ (base:GHC.ST.ST{tc rE}
                                                                                                                  s3{tv a1Zk} [tv])
                                                                                                             (base:GHC.ST.$fMonadST{v rA} [gid[DFunId]]
                                                                                                                @ s3{tv a1Zk} [tv])
                                                                                                             (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz} [gid[DataConWrapper]]
                                                                                                                @ a4{tv a1Zi} [tv]
                                                                                                                @ s3{tv a1Zk} [tv])
                                                                                                             ((dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Scalar.Base.$fDTInt8{v ry} [gid]
                                                                                                                 @ s3{tv a1Zk} [tv]
                                                                                                                 g{v a1Zl} [lid])
                                                                                                              `cast` (Sym
                                                                                                                        (base:GHC.ST.NTCo:ST{tc rx}[0]
                                                                                                                           <s3{tv a1Zk} [tv]>
                                                                                                                           <dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                                                                                              ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                                                                                              s3{tv a1Zk} [tv]>)
                                                                                                                      :: base:GHC.ST.STRep{tc r1j3}
                                                                                                                           s3{tv a1Zk} [tv]
                                                                                                                           (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                                                                                              ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                                                                                              s3{tv a1Zk} [tv])
                                                                                                                           ~#
                                                                                                                         base:GHC.ST.ST{tc rE}
                                                                                                                           s3{tv a1Zk} [tv]
                                                                                                                           (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                                                                                                              ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                                                                                              s3{tv a1Zk} [tv])))
                                                                                                             ((\ (s4{v a21s} [lid]
                                                                                                                    :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                         s3{tv a1Zk} [tv]) ->
                                                                                                                 case vector-0.9.1:Data.Vector.Fusion.Util.delay_inline{v rw} [gid]
                                                                                                                        @ ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                                                                                        @ (ghc-prim:GHC.Types.Int{(w) tc 3J}
                                                                                                                           -> ghc-prim:GHC.Types.Int{(w) tc 3J})
                                                                                                                        ghc-prim:GHC.Classes.$fOrdInt_$cmax{v rv} [gid]
                                                                                                                        (ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
                                                                                                                           0)
                                                                                                                        (case g{v a1Zl} [lid]
                                                                                                                         {ghc-prim:GHC.Types.Int{(w) tc 3J}}
                                                                                                                         of (wild{v a27g} [lid]
                                                                                                                               :: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF})
                                                                                                                         { dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{d ru} (dt{v a27R} [lid]
                                                                                                                                                                                                                      :: ghc-prim:GHC.Prim.Int#{(w) tc 3G})
                                                                                                                                                                                                                   (ds1{v a27S} [lid]
                                                                                                                                                                                                                      :: [base:GHC.MVar.MVar{tc r1Q2}
                                                                                                                                                                                                                            dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Req{tc r1Q1}])
                                                                                                                                                                                                                   (ds2{v a27T} [lid]
                                                                                                                                                                                                                      :: base:GHC.MVar.MVar{tc r1Q2}
                                                                                                                                                                                                                           ghc-prim:GHC.Types.Bool{(w) tc 3c}) ->
                                                                                                                         ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
                                                                                                                           dt{v a27R} [lid]
                                                                                                                         })
                                                                                                                 {(# ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                       s3{tv a1Zk} [tv],
                                                                                                                     vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                                                                                       (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                          (base:GHC.ST.ST{tc rE}
                                                                                                                             s3{tv a1Zk} [tv]))
                                                                                                                       (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                          a4{tv a1Zi} [tv]) #)}
                                                                                                                 of (wild{v a27V} [lid]
                                                                                                                       :: ghc-prim:GHC.Types.Int{(w) tc 3J})
                                                                                                                 { ghc-prim:GHC.Types.I#{(w) d 6c} (n#{v a280} [lid]
                                                                                                                                                      :: ghc-prim:GHC.Prim.Int#{(w) tc 3G}) ->
                                                                                                                 case ghc-prim:GHC.Prim.newArray#{(w) v 920} [gid[PrimOp]]
                                                                                                                        @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                             a4{tv a1Zi} [tv])
                                                                                                                        @ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                             (base:GHC.ST.ST{tc rE}
                                                                                                                                s3{tv a1Zk} [tv]))
                                                                                                                        n#{v a280} [lid]
                                                                                                                        (base:GHC.Err.error{(w) v 05} [gid]
                                                                                                                           @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                                a4{tv a1Zi} [tv])
                                                                                                                           (ghc-prim:GHC.CString.unpackCString#{v 0k} [gid]
                                                                                                                              "MDist (Vector a) - uninitalised"#))
                                                                                                                        (s4{v a21s} [lid]
                                                                                                                         `cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                                   (Sym
                                                                                                                                      (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                                                                                                                         <s3{tv a1Zk} [tv]>))
                                                                                                                                 :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                                      s3{tv a1Zk} [tv]
                                                                                                                                      ~#
                                                                                                                                    ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                                      (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                         (base:GHC.ST.ST{tc rE}
                                                                                                                                            s3{tv a1Zk} [tv]))))
                                                                                                                 {(# ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                       s3{tv a1Zk} [tv],
                                                                                                                     vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                                                                                       (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                          (base:GHC.ST.ST{tc rE}
                                                                                                                             s3{tv a1Zk} [tv]))
                                                                                                                       (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                          a4{tv a1Zi} [tv]) #)}
                                                                                                                 of (ds1{v a282} [lid]
                                                                                                                       :: (# ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                               (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                  (base:GHC.ST.ST{tc rE}
                                                                                                                                     s3{tv a1Zk} [tv])),
                                                                                                                             ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
                                                                                                                               (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                  (base:GHC.ST.ST{tc rE}
                                                                                                                                     s3{tv a1Zk} [tv]))
                                                                                                                               (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                                  a4{tv a1Zi} [tv]) #))
                                                                                                                 { (# (ipv{v a284} [lid]
                                                                                                                         :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                              (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                 (base:GHC.ST.ST{tc rE}
                                                                                                                                    s3{tv a1Zk} [tv]))), (ipv1{v a285} [lid]
                                                                                                                                                            :: ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
                                                                                                                                                                 (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                                                    (base:GHC.ST.ST{tc rE}
                                                                                                                                                                       s3{tv a1Zk} [tv]))
                                                                                                                                                                 (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                                                                    a4{tv a1Zi} [tv])) #) ->
                                                                                                                 (# ipv{v a284} [lid]
                                                                                                                    `cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                              (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                                                                                                                 <s3{tv a1Zk} [tv]>)
                                                                                                                            :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                                 (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                    (base:GHC.ST.ST{tc rE}
                                                                                                                                       s3{tv a1Zk} [tv]))
                                                                                                                                 ~#
                                                                                                                               ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                                                                                                                 s3{tv a1Zk} [tv]),
                                                                                                                    vector-0.9.1:Data.Vector.Mutable.MVector{v rr} [gid[DataCon]]
                                                                                                                      @ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                           (base:GHC.ST.ST{tc rE}
                                                                                                                              s3{tv a1Zk} [tv]))
                                                                                                                      @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                           a4{tv a1Zi} [tv])
                                                                                                                      0
                                                                                                                      n#{v a280} [lid]
                                                                                                                      ipv1{v a285} [lid] #)
                                                                                                                 }
                                                                                                                 })
                                                                                                              `cast` (Sym
                                                                                                                        (base:GHC.ST.NTCo:ST{tc rx}[0]
                                                                                                                           <s3{tv a1Zk} [tv]>
                                                                                                                           (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                                                                                              (Sym
                                                                                                                                 (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                                                                                                                    <s3{tv a1Zk} [tv]>))
                                                                                                                              <vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                                 a4{tv a1Zi} [tv]>))
                                                                                                                      :: base:GHC.ST.STRep{tc r1j3}
                                                                                                                           s3{tv a1Zk} [tv]
                                                                                                                           (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                                                                                              (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                                                                                                                 (base:GHC.ST.ST{tc rE}
                                                                                                                                    s3{tv a1Zk} [tv]))
                                                                                                                              (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                                 a4{tv a1Zi} [tv]))
                                                                                                                           ~#
                                                                                                                         base:GHC.ST.ST{tc rE}
                                                                                                                           s3{tv a1Zk} [tv]
                                                                                                                           (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                                                                                                              s3{tv a1Zk} [tv]
                                                                                                                              (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
                                                                                                                                 a4{tv a1Zi} [tv]))))
    Iface expr = \ @ a4
                   $dUnbox :: vector-0.9.1:Data.Vector.Unboxed.Base.Unbox{tc rW} a4
                   @ s3
                   g :: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF} ->
                 base:Control.Monad.liftM2{v rC}
                   @ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                          ghc-prim:GHC.Types.Int{(w) tc 3J} s3)
                   @ (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
                          s3 (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4))
                   @ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                          (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4) s3)
                   @ (base:GHC.ST.ST{tc rE} s3)
                   (base:GHC.ST.$fMonadST{v rA} @ s3)
                   (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz}
                      @ a4
                      @ s3)
                   (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Scalar.Base.$fDTInt8{v ry}
                      @ s3
                      g)
                     `cast`
                   (Sym (base:GHC.ST.NTCo:ST{tc rx}[0]
                             (Refl s3)
                             (Refl
                                  (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
                                       ghc-prim:GHC.Types.Int{(w) tc 3J} s3))))
                   (\ s4 :: ghc-prim:GHC.Prim.State#{(w) tc 32q} s3 ->
                    case vector-0.9.1:Data.Vector.Fusion.Util.delay_inline{v rw}
                           @ ghc-prim:GHC.Types.Int{(w) tc 3J}
                           @ (ghc-prim:GHC.Types.Int{(w) tc 3J}
                              -> ghc-prim:GHC.Types.Int{(w) tc 3J})
                           ghc-prim:GHC.Classes.$fOrdInt_$cmax{v rv}
                           (ghc-prim:GHC.Types.I#{(w) v 6d} 0)
                           (case g of wild { dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{d ru} dt ds1 ds2 ->
                            ghc-prim:GHC.Types.I#{(w) v 6d}
                              dt }) of wild { ghc-prim:GHC.Types.I#{(w) d 6c} n# ->
                    case ghc-prim:GHC.Prim.newArray#{(w) v 920}
                           @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)
                           @ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                  (base:GHC.ST.ST{tc rE} s3))
                           n#
                           (base:GHC.Err.error{(w) v 05}
                              @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)
                              (ghc-prim:GHC.CString.unpackCString#{v 0k}
                                 "MDist (Vector a) - uninitalised"#))
                           s4
                             `cast`
                           (ghc-prim:GHC.Prim.State#{(w) tc 32q}
                                (Sym (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                          (Refl
                                               s3)))) of ds1 { ghc-prim:GHC.Prim.(#,#){(w) d 84} ipv ipv1 ->
                    (# ipv
                         `cast`
                       (ghc-prim:GHC.Prim.State#{(w) tc 32q}
                            (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                 (Refl s3))),
                       vector-0.9.1:Data.Vector.Mutable.MVector{v rr}
                         @ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
                                (base:GHC.ST.ST{tc rE} s3))
                         @ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)
                         0
                         n#
                         ipv1 #) } })
                     `cast`
                   (Sym (base:GHC.ST.NTCo:ST{tc rx}[0]
                             (Refl s3)
                             (vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
                                  (Sym (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
                                            (Refl s3)))
                                  (Refl (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)))))
Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
make[1]: *** [libraries/dph/dph-prim-par/dist-install/build/Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.o] Error 1
make: *** [all] Error 2
                    
                  
                  
                          
                            
                            5
                            
                          
                          
                            
                            15
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Dom Silvério  ANA CAROLINA PINTO COSTA, LISLY KATELLY DE PAULA MARTINS, FRANCISCO HELSON DE LIMA NERES, PAULO RAFAEL PEREIRA SOARES, JOÃO CARLOS MOREIRA DE CARVALHO, DAMIÃO JOVENAL DOS SANTOS, MARIA GORETTI LIMA FREIRE, JANIMERY BARBOSA DE ABREU MELO. SHYSLAINE ARAÚJO BEZERRA, ARIANE SOARES SILVA, LUCAS MOREIRA DIAS, GILSON POLICARPO DE SÁ, REBECA DE FREITAS BARROS.  Cachoeira Dourada.
Altaneira AMANDA SILVA DE MELO, LEONEL LOPES FERNANDES, FRANCISCO ALBERTO DA SILVA, PÂMELA VIRGÍNIA DE SOUZA, JOÃO CARLOS MOREIRA DE CARVALHO, DAISY CHRISTINE MELO NOGUEIRA, MARIA DENISE FEITOSA, JACQUELINE RAQUEL MENDES PATRIOTA. SAULO DEMIAN FERREIRA MAIA, ÉRICA BEZERRA DA SILVA, MAYRA FIGUEIRÊDO PEREIRA, JUAN JACKSON HOLANDA PONTE RIBEIRO, WESLEY ROGERIO ALVES. Castanheira.
Antônio Carlos ANA CAROLINA PINTO COSTA, LISLY KATELLY DE PAULA MARTINS, FRANCISCO HELSON DE LIMA NERES, PAULO RAFAEL PEREIRA SOARES, JOÃO CARLOS MOREIRA DE CARVALHO, DAMIÃO JOVENAL DOS SANTOS, MARIA GORETTI LIMA FREIRE, JANIMERY BARBOSA DE ABREU MELO. SHYSLAINE ARAÚJO BEZERRA, ARIANE SOARES SILVA, LUCAS MOREIRA DIAS, GILSON POLICARPO DE SÁ, REBECA DE FREITAS BARROS. Castanheira.
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Hi all,
The plugin mechanism gives access to the program in Core; this suffices for
many but not quite all purposes. Tools that need access to the original AST
can call typecheckModule directly, but of course this requires using the
GHC API directly. Moreover, even when using the GHC API directly anyway (as
in my case), it means that tools cannot take advantage of ghc's
infrastructure for dependency tracking, recompiling only changed modules,
etc.
Hence it would be useful to have "source plugins", which can be used both
externally and when using ghc API (in the latter case I guess "hooks" would
be the more appropriate terminology). Currently "core plugins" are recorded
as part of DynFlags as
    pluginModNames        :: [ModuleName],
    pluginModNameOpts     :: [(ModuleName,String)],
This makes sense when thinking of plugins only as an external mechanism,
but is less convenient when using them as internal hooks, too. In my draft
patch I introduce a new type "HscPlugin" (described shortly) and added
    sourcePlugins         :: [HscPlugin],
to DynFlags. HscPlugin is a record of a pair of functions; having the
actual record here rather than  a module name means that these functions
can have a non-empty closure, which is obviously convenient when using this
as a hook rather than an external plugin.
In my current version HscPlugin looks like
    data HscPlugin = HscPlugin {
        runHscPlugin :: forall m. MonadIO m
                     => DynFlags
                     -> TcGblEnv
                     -> m TcGblEnv
      , runHscQQ     :: forall m. MonadIO m
                     => Env TcGblEnv TcLclEnv
                     -> HsQuasiQuote Name
                     -> m (HsQuasiQuote Name)
      }
runHscPlugin is the main function; it gets passed the TcGblEnv (which
contains the type checked AST as its tcd_binds field).
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                    
                        When I run nofib the fft2 benchmark fails with an error (see below). This happens both with HEAD 
and 7.6.3. I'm setting the path to benchmarked GHC in mk/build.mk using option WithNofibHc. 
Anyone else is having the same problem?
Janek
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7        2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest10927.1 2013-06-04 18:06:08.401977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real    0m0.055s
user    0m0.049s
sys     0m0.005s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7        2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest10963.1 2013-06-04 18:06:08.507977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real    0m0.054s
user    0m0.047s
sys     0m0.005s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7        2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest10999.1 2013-06-04 18:06:08.602977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real    0m0.052s
user    0m0.044s
sys     0m0.007s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7        2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest11035.1 2013-06-04 18:06:08.712977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real    0m0.052s
user    0m0.046s
sys     0m0.006s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7        2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest11071.1 2013-06-04 18:06:08.816977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
make[2]: *** [runtests] Błąd 1
Failed making all in fft2: 1
make[1]: *** [all] Błąd 1
Failed making all in spectral: 1
make: *** [all] Błąd 1
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                     
                        
                     
                        
                     
                        
                     
                        
                     
                        
                    