Using implicit parameter constraints in data decl

Benjamin Franksen benjamin.franksen at bessy.de
Fri Nov 5 06:30:32 EST 2004


This is the message from the compiler

/usr/bin/ghc -cpp  -package network -package posix -package lang 
-i../../runtime_loader -fimplicit-params     -c PluginAPI.hs -o PluginAPI.o
ghc-6.2.2: panic! (the `impossible' happened, GHC version 6.2.2):
        simplCore/Simplify.lhs:1473: Non-exhaustive patterns in function 
cat_evals


Please report it as a compiler bug to glasgow-haskell-bugs at haskell.org,
or http://sourceforge.net/projects/ghc/.

make: *** [PluginAPI.o] Error 1

and this is the offending part of the code:

data HWSPlugin = (?access_log_chan:: Control.Concurrent.Chan.Chan
  AccessLogger.LogRequest) => HWSPlugin
    { pName               :: String
    , pVersion            :: String
    , pInit               :: Maybe InitFunc
    , pURITransHandler    :: Maybe HandlerFunc                  --   one
    , pAccessHandler      :: Maybe HandlerFunc                  --   all
    , pAuthHandler        :: Maybe HandlerFunc                  --   one
    , pMimeHandler        :: Maybe HandlerFunc                  --   one
    , pFixupHandler       :: Maybe HandlerFunc                  --   all
    , pContentHandlers    :: [(String,HandlerFunc)]             --   one
    -- the line below requires the additional constraint
    , pLogHandler         :: Maybe HandlerFunc                  --   all
    }

I stumbled over this while experimenting with HWS-WP. More specifically while 
trying to replace unsafePerformIO-style global variables with implicit 
parameters. The sources are fresh from CVS, the changes I made were minimal 
(most of them to make everything compile with ghc-6.2.2). I can send a tar 
file if that helps reproducing the problem.

Cheers,
Ben



More information about the Glasgow-haskell-bugs mailing list