[email protected]
[Top] [All Lists]

Re: [Haskell-cafe] Deconstruction

Subject: Re: [Haskell-cafe] Deconstruction
From: Miguel Mitrofanov
Date: Sat, 26 Dec 2009 12:30:40 +0300
On 26 Dec 2009, at 11:58, [email protected] wrote:

class BarLike a where
    doSomething :: a -> Double

data Bar = forall a. BarLike a => Bar a

unwrapBar :: Bar -> a
unwrapBar (Bar x) = x

How can i deconstruct the enclosed value of type a?
You can't write a function with a type that mentions existentially
quantified "a". Period.
But you can deconstruct the enclosed value temporarily:

getSomething :: Bar -> Double
getSomething b =
    case b of
        Bar a -> doSomething a
Haskell-Cafe mailing list
[email protected]

<Prev in Thread] Current Thread [Next in Thread>