{-# LANGUAGE NoImplicitPrelude #-} module DSV.TextReaderView ( textReaderView , textReaderView_ ) where import DSV.Prelude import DSV.Text import DSV.Validation import DSV.ViewType textReaderView :: e -> TextReader a -> View e Text a textReaderView e r = View $ \txt -> case (textReadMaybe r txt) of Nothing -> Failure e Just x -> Success x textReaderView_ :: TextReader a -> View () Text a textReaderView_ r = View $ \txt -> case (textReadMaybe r txt) of Nothing -> Failure () Just x -> Success x