[ create a new paste ] login | about

Link: http://codepad.org/JEdSikMn    [ raw code | fork ]

Plain Text, pasted on Sep 4:
{-# OPTIONS_GHC   -Wall #-}
{-# LANGUAGE      ForeignFunctionInterface
                  , ScopedTypeVariables
                  , TypeFamilies
                  , FlexibleContexts   #-}

module Test1 where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

class (Storable (CType a)) => Gettable a where
   type CType a      :: *
   type ReturnType a :: *
   get :: a -> IO (ReturnType a)

data Trnif = Trnif
instance Gettable Trnif where
   type CType Trnif      = CUShort
   type ReturnType Trnif = Bool
   get _ = return True

class Flags a where
   type RetType a :: *

newtype F a = F a
instance (Flags a) => Gettable (F a) where
   type CType (F a)      = CUShort
   type ReturnType (F a) = Bool
   get _ = return True

data Rstif = Rstif
instance Flags Rstif where
   type RetType Rstif = Bool




Create a new paste based on this one


Comments: