-- TODO: uncertain if we need to free the returned string or what
learnAndReply :: MegaHal -> BS.ByteString -> Bool -> IO BS.ByteString
learnAndReply (MegaHal cxt _) str log = BS.useAsCString str (flip (m_do_reply cxt) (boolToCInt log)) >>= BS.packCString
learnAndReply :: MegaHal -> BS.ByteString -> Bool -> IO BS.ByteString
learnAndReply (MegaHal cxt _) str log = BS.useAsCString str (flip (m_do_reply cxt) (boolToCInt log)) >>= BS.packCString
learnAndReply (MegaHal cxt _) str log = BS.useAsCString str (flip (m_do_reply cxt) (boolToCInt log)) >>= BS.packCString