[Haskell-cafe] Lift data from IO to Validation

Debasish Ghosh ghosh.debasish at gmail.com
Sat Jan 4 20:26:55 UTC 2020

Thanks for the pointer .. the documentation


On Sun, Jan 5, 2020 at 1:00 AM Alexis King <lexi.lambda at gmail.com> wrote:

> You might want to check out
> https://hackage.haskell.org/package/monad-validate, which provides a
> monad transformer version of a Validation-like type. You can stack it on
> top of IO and do whatever you want there. Errors are collected from
> multiple branches as long as you use applicative operations where possible,
> so you probably want to use ApplicativeDo. The monad laws are satisfied via
> a relaxed notion of equality; see the documentation for more info.
> Disclaimer: I am the author of monad-validate.
> Alexis
> On Jan 4, 2020, at 08:58, Debasish Ghosh <ghosh.debasish at gmail.com> wrote:
> Hi -
> I am not an experienced Haskell programmer and would like to have some
> help with the following problem ..
> I am trying to validate a bunch of inputs and found the package
> Data.Validation. I am also using Data.Time for date and time. I have a
> function like this ..
> validateOpenDate :: ZonedTime -> Validation [String] ZonedTime
> It's supposed to validate a date for which I need to fetch the current
> date and time. I can do that with getZonedTime :: IO ZonedTime. I want to
> check if the current time is less than the date time I pass to the function
> and return an appropriate Validation.
> The question is how do I lift the result from IO into the Validation ? Or
> is there any alternative strategy that I should consider for this
> validation ? I have a number of other validations which follow the same
> strategy but don't have the IO. My final goal is to be able to compose all
> these validations applicatively to prepare a final ADT in a smart
> constructor.
> Any help will be appreciated ..
> regards.
> --
> Debasish Ghosh

Debasish Ghosh

Twttr: @debasishg
Blog: http://debasishg.blogspot.com
Code: http://github.com/debasishg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20200105/6a6cb1d9/attachment.html>

More information about the Haskell-Cafe mailing list