 withTrickC2HS = with
 
 {#fun pure unsafe sc_alloc_context_with_key as
-    ^ { withTrickC2HS* `ShonkyCryptKey' }
-    -> `ShonkyCryptContext' newShonkyCryptContextPointer* #}
+    ^ { withTrickC2HS *`ShonkyCryptKey' }
+    -> `ShonkyCryptContext' newShonkyCryptContextPointer * #}
 
 withByteStringLen :: ByteString -> ((CString, CULong) -> IO a) -> IO a
 withByteStringLen str f = BSU.unsafeUseAsCStringLen str (\(cstr, len) ->

    ^ { withByteStringLen *`ByteString'& } -> `Double' #}

{#fun pure unsafe sc_copy_context as
    ^ { 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 * #}
