#7642: Nullary type classes
-----------------------------+----------------------------------------------
Reporter: shachaf | Owner:
Type: feature request | Status: new
Priority: normal | Component: Compiler (Type checker)
Version: 7.6.1 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Blockedby:
Blocking: | Related:
-----------------------------+----------------------------------------------
GHC supports `MultiParamTypeClasses` with two or more parameters, but it
explicitly rejects classes with no parameters. There doesn't seem to be a
good reason for that.
Some example uses that came up in IRC:
{{{
isPrime :: RiemannHypothesis => Integer -> Bool
unsafePerformIO :: Unsafe => IO a -> a
}}}
The main reason to allow it is probably that it's a pointless restriction,
like EmptyDataDecls. In fact, the simplest implementation for this patch
consists of deleting one line of code. The attached patch is slightly
bigger because it also fixes error messages (I also included a detabbing
patch).
If necessary this can be made a separate `LANGUAGE` flag -- this patch
just folds it into `MultiParamTypeClasses`.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7642>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
ghc-tickets mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-tickets