[Haskell-cafe] Deconstruction

haskell at kudling.de haskell at kudling.de
Sat Dec 26 12:48:31 EST 2009


Oh, you're right, thanks.
I got lost in types and GHC error messages. :/
Miguel Mitrofanov <miguelimo38 at yandex.ru> hat am 26. Dezember 2009 um 18:09
geschrieben:

> Your code is equivalent to this:
> 
> adjustToBox (ObjectWrapper object) box = adjustToBox object box
> 
> but what you've probably intended to write was
> 
> adjustToBox (ObjectWrapper object) box = ObjectWrapper (adjustToBox  
> object box)
> 
> It has nothing to do with existentials - it's a simple type mismatch.
> 
> On 26 Dec 2009, at 19:53, haskell at kudling.de wrote:
> 
> > Hi all,
> >
> > thanks for the insight.
> >
> > > But you can deconstruct the enclosed value temporarily:
> > >
> > > getSomething :: Bar -> Double
> > > getSomething b =
> > >      case b of
> > >          Bar a -> doSomething a
> >
> > Somehow i fail to apply this.
> >
> > If you look at
> > http://chlor.svn.sourceforge.net/viewvc/chlor/trunk/haskell/Chlor/Object.hs?revision=603&view=markup
> >
> > in line 26 i used this for function "adjustToBox", but i still get:
> >
> > Chlor/Object.hs:33:36:
> >     Couldn't match expected type `ObjectWrapper'
> >            against inferred type `a'
> >       `a' is a rigid type variable bound by
> >           the constructor `ObjectWrapper' at Chlor/Object.hs:33:12
> >     In the expression: adjustToBox object
> >     In a case alternative: ObjectWrapper object -> adjustToBox object
> >     In the expression:
> >         case wrapper of { ObjectWrapper object -> adjustToBox object }
> >
> > :(
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091226/8973f4db/attachment-0001.html


More information about the Haskell-Cafe mailing list