Brandon S Allbery KF8NH <allbery <at> ece.cmu.edu> writes:

> 
> > type Tensor u v =
> >     (u ~ Vect k a, v ~ Vect k b) => Vect k (TensorBasis a b) -- **
> 
> IIRC this actually substitutes as
> 
>   (forall k a b. (u ~ Vect k a, v ~ Vect k b) => Vect k (TensorBasis a b))
> 
> and the implicit forall will generally mess things up because it won't be
> floated out to the top level.  (Or in other words, constraints in type
> declarations don't generally do what you intend.)
> 

Thanks. Is it possible to elaborate a bit - I still don't really understand
what goes wrong. And is there any way to fix it?


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to