[Haskell-cafe] Haskell spec vs FlexibleInstances
AntC
anthony_clayden at clear.net.nz
Tue Feb 18 20:53:31 UTC 2014
> Doug McIlroy <doug <at> cs.dartmouth.edu> writes:
>
> What potential evil motivates the prohibition of repeated type
> parameters in an instance declaration?
Hi Doug,
I guess the first reason would be to catch accidental duplicate names of
typevars.
But as to "potential evils", the only point of such an instance:
instance C a a where ...
would be to have another instance:
instance C a b where ...
So we're into overlapping instances. (And discriminating on type equality -
- which only works if the types are grounded. See the HList paper, section
9 'By chance or design?')
Overlapping instances like that will probably need FunDeps. So the more
recent (and probably more blessed) approach is to use the Closed type
families/branched instances doo-hicky upcoming with GHC 7.8.
http://www.haskell.org/haskellwiki/GHC/Indexed_types#Type_instance_declarat
ions
AntC
More information about the Haskell-Cafe
mailing list