[Haskell-cafe] another FFI question
vigalchin at gmail.com
Fri Jun 20 23:52:06 EDT 2008
I am still reading the web pages. Here is what I tried:
data SigNotify = Signal | None | Thread | ThreadId
instance Storable SigNotify where
sizeOf _ = (#const sizeof (int))
alignment _ = 1
poke Signal = (#const SIGEV_SIGNAL)
poke None = poke (#const SIGEV_NONE)
poke Thread = poke (#const SIGEV_THREAD)
poke ThreadId = poke (#const SIGEV_THREAD_ID)
but I got ...
Couldn't match expected type `Ptr SigNotify'
against inferred type `SigNotify'
In the pattern: Signal
In the definition of `poke': poke Signal = poke (0)
In the definition for method `poke'
Basically I want to marshall SigInfo constructors to CInt values. ??
On Fri, Jun 20, 2008 at 3:20 PM, Bulat Ziganshin <bulat.ziganshin at gmail.com>
> Hello Vasili,
> Friday, June 20, 2008, 11:51:11 PM, you wrote:
> > data Bonzo = A | B |C
> > How do I write the poke functions and call them?
> instance Storable Bonzo
> poke A = poke 0
> poke B = poke 1
> poke C = poke 4
> call as "poke x"
> probably, you don't understand differences between OOP classes and
> type classes. look at http://haskell.org/haskellwiki/OOP_vs_type_classes
> and papers mentioned there
> Best regards,
> Bulat mailto:Bulat.Ziganshin at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe