{-# OPTIONS_GHC -fno-warn-orphans #-}

module Data.Validity.Scientific where

import Data.Validity

import Data.Scientific

-- | A 'Scientific' is valid according to the validity of its coefficient and exponent.
instance Validity Scientific where
    validate :: Scientific -> Validation
validate Scientific
s =
        [Validation] -> Validation
forall a. Monoid a => [a] -> a
mconcat
            [ Integer -> String -> Validation
forall a. Validity a => a -> String -> Validation
annotate (Scientific -> Integer
coefficient Scientific
s) String
"coefficient"
            , Int -> String -> Validation
forall a. Validity a => a -> String -> Validation
annotate (Scientific -> Int
base10Exponent Scientific
s) String
"base10Exponent"
            ]