
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 } :(