 
 import Foreign
 import Foreign.C.Types
-import Foreign.C.String (CString, peekCString, withCString)
+import Foreign.C.String (CString, peekCString, newCString)
 import Foreign.Marshal.Array (peekArray, pokeArray)
 import Foreign.Ptr
 

           else pokeArray (plusPtr p {#offsetof cs_insn.bytes#}) b
        if length m >= 32
           then error "mnemonic overflew 32 bytes"
           else withCString m ({#set cs_insn->mnemonic#} p)
        if length o >= 160
           then error "op_str overflew 160 bytes"
           else withCString o ({#set cs_insn->op_str#} p)
        csDetailPtr <- castPtr <$> ({#get cs_insn->detail#} p)
        poke csDetailPtr d


    , CsOptionState(..)
    , CsOperand(..)
    , CsGroup(..)
    , CsSkipdataCallback
    , CsSkipdataStruct(..)
    , CsDetail(..)
    , peekDetail
    , CsInsn(..)
