threepenny-editors-0.5.2: src/Graphics/UI/Threepenny/Editors/Validation.hs
module Graphics.UI.Threepenny.Editors.Validation
( ValidationResult(..)
, Validable(..)
, isValid
, updateIfValid
) where
data ValidationResult = Ok | Invalid String
instance Show ValidationResult where
show Ok = ""
show (Invalid msg) = msg
class Validable a where
validate :: a -> ValidationResult
isValid :: Validable a => a -> Bool
isValid x
| Ok <- validate x = True
| otherwise = False
updateIfValid :: Validable a => a -> a -> a
updateIfValid new old
| isValid new = new
| otherwise = old