validated-types-0.1.1: src/Refined/OnlyDigits.hs
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeFamilies #-}
module Refined.OnlyDigits where
import Refined (Predicate(..))
import Data.Char (isDigit)
import Data.Monoid ((<>))
import Data.Text (Text)
import qualified Data.Text as Text
data OnlyDigits
instance Predicate OnlyDigits Text where
validate _ x =
if Text.all isDigit x
then Nothing
else Just ("Value contains non-digits " <> show x)
instance Predicate OnlyDigits String where
validate _ x =
if all isDigit x
then Nothing
else Just ("Value contains non-digits " <> show x)