     ^ { withByteStringLen *`ByteString'& } -> `Double' #}
 
 {#fun pure unsafe sc_copy_context as
-    ^ { withShonkyCryptContext* `ShonkyCryptContext' }
-    -> `ShonkyCryptContext' newShonkyCryptContextPointer* #}
+    ^ { withShonkyCryptContext *`ShonkyCryptContext' }
+    -> `ShonkyCryptContext' newShonkyCryptContextPointer * #}
 
 type InPlaceEnDeCryptFun =
      Ptr ShonkyCryptContext -> Ptr CChar -> Ptr CChar -> CULong -> IO ()

decrypt = scEnDecryptNew {#call unsafe sc_decrypt_new #}

{#fun pure unsafe sc_new_crypt_key_with as
    ^ { `Word8', `Word8', `Bool' } -> `ShonkyCryptKey' fromMallocedStorable* #}

newShonkyCryptContextPointer :: Ptr ShonkyCryptContext -> IO ShonkyCryptContext
newShonkyCryptContextPointer p =
    do fp <- newForeignPtr scReleaseContextPtr p
       return $! ShonkyCryptContext fp

unsafePackMallocCStringLen :: CStringLen -> IO ByteString
unsafePackMallocCStringLen (cstr, len) = do
