On Wednesday 29 September 2010 23:15:14, DavidA wrote: > Ryan Ingram <ryani.spam <at> gmail.com> writes: > > Haskell doesn't have true type functions; what you are really saying > > is > > > > instance Monad (\v -> Vect k (Monomial v)) > > Yes, that is exactly what I am trying to say. And since I'm not allowed > to say it like that, I was trying to say it using a type synonym > parameterised over v instead. It appears that GHC won't let you use > partially applied type synonyms as type constructors for instance > declarations. Is this simply because the GHC developers didn't think > anyone would want to, or is there some theoretical reason why it's hard, > or a bad idea? >
I think there was a theoretical reason why that isn't allowed (making type inference undecidable? I don't remember, I don't recall ...). For your problem, maybe data Vect k m b = Vect [(k, m b)] instance Monad (Vect k Monomial) where ... is an option? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe