[Haskell-cafe] namespaces for values, types, and classes
Duncan Coutts
duncan.coutts at googlemail.com
Sat Nov 28 15:42:25 EST 2009
On Fri, 2009-11-27 at 11:07 +0100, Sebastian Fischer wrote:
> We cannot write
>
> class Name a where ...
> instance Name Name where ...
Yes! Very annoying.
I want to be able to make a type that is the most general instance of a
single-parameter type class. This is a useful OOish thing to do.
For example:
class Compiler c where
getInstalledPackages :: c -> ...
compileModule :: c -> ...
instance Compiler GHC where ...
instance Compiler NHC where ...
and sometimes I want a list of compilers...
newtype Compiler where
Compiler :: Compiler c => c -> Compiler
deriving Compiler
compilers :: [Compiler]
compilers = [Compiler ghc, Compiler nhc]
> Does anyone know why types and values are in separate namespaces but
> classes and types are not?
I think it's because you cannot currently distinguish them in module
import/exports.
Duncan
More information about the Haskell-Cafe
mailing list