Я довольно новичок в Хаскеле, но я чувствую, что у меня есть приличное понимание по всем вопросам.
Я сейчас пытаюсь поиграть с неофициальными привязками mongoDB для haskell.
Если вы посмотрите код здесь: http://github.com/srp/mongoDB/blob/master/Database/MongoDB.hs
connect :: HostName -> [ConnectOpt] -> IO Connection
connect = flip connectOnPort (Network.PortNumber 27017)
Как видите, этот метод возвращает / разрешает соединение IO .
Однако все методы, которые фактически взаимодействуют с базой данных, принимают просто Connection в качестве аргумента. Пример:
disconnect :: Connection -> IO ()
disconnect = conClose
Я думаю, что здесь есть что-то фундаментальное, чего я не понимаю, может быть, IO связано с тем, что оно является частью IO Monad? Я действительно довольно невежественен и хотел знать, есть ли у кого-нибудь хоть какой-то свет, чтобы пролить на меня это.
Как я могу подключить соединение ввода-вывода к соединению в привязках mongoDB?
Спасибо за любой вклад, который вы можете иметь.