{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE LambdaCase #-}
module DSV.Validation
( Validation (Success, Failure)
, overFailure
) where
import Data.Validation
overFailure :: (e1 -> e2) -> Validation e1 a -> Validation e2 a
overFailure :: (e1 -> e2) -> Validation e1 a -> Validation e2 a
overFailure e1 -> e2
f =
\case
Failure e1
e -> e2 -> Validation e2 a
forall err a. err -> Validation err a
Failure (e1 -> e2
f e1
e)
Success a
x -> a -> Validation e2 a
forall err a. a -> Validation err a
Success a
x