[Haskell-cafe] Re: Keeping an indexed collection of values?

Sebastian Fischer sebf at informatik.uni-kiel.de
Fri Aug 21 12:24:54 EDT 2009

On Aug 21, 2009, at 5:11 PM, Job Vranish wrote:

> I also added an extra phantom type parameter to the collection (and  
> key) so that I can prevent keys from being used on different  
> collections even if they hold elements of the same type.

I have the impression that this requires explicit type annotations  
with your current solution which seems a bit tiresome. If not  
instantiated to specific different types, the additional phantom types  
of different collections can just be unified which does not lead to a  
type error.

As you seem to implement a monadic interface, you might be able to  
steal the idea of using higher-rank polymorphism (that is used in the  
ST monad implementation) to ensure that the phantom types of different  
collections cannot be unified. But that would probably mean to  
implement your own monad that carries this phantom type too..


Underestimating the novelty of the future is a time-honored tradition.

More information about the Haskell-Cafe mailing list