Hi all,

My issue is generic Haskell use, but I should provide the specific background. I have some Snap code:

    eres <- eitherWithDB $ DB.findOne (DB.select [] "someCollection")
    let maybeVal = either (error "Mongoed") (maybe Nothing fromBson) eres

and this works so that "maybeVal" will be of type Maybe MyType. "eres" is either a MongoDB Failure, or a Maybe Document (I find one document, or not).

I'd like to convert this Maybe Document to a Maybe MyType without unpacking and repacking the Maybe. Is this possible?

The fromBson function, that converts from a Document to an end user type, confuses me due to it's type:

    fromBson :: Monad m => Document -> m a


Thanks,
Si