{-# LANGUAGE FlexibleInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Validity.CaseInsensitive where
import Data.CaseInsensitive (CI)
import qualified Data.CaseInsensitive as CI
import Data.Validity
instance (Validity a, Eq a, CI.FoldCase a) => Validity (CI a) where
validate ci =
mconcat
[ delve "original" $ CI.original ci,
delve "foldedCase" $ CI.foldedCase ci,
-- The following could go wrong when using unsafeMk:
declare "The foldedCase is indeed folded correctly" $
CI.foldedCase ci == CI.foldCase (CI.original ci)
]