{-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | -- Module: $HEADER$ -- Description: Default instance for CI type from case-insensitive package. -- Copyright: (c) 2015, Peter Trško -- License: BSD3 -- -- Maintainer: peter.trsko@gmail.com -- Stability: stable -- Portability: CPP, DataKinds (for base >=4.7.0.0), FlexibleInstances, -- NoImplicitPrelude -- -- 'Default' instance for 'CI' type from -- -- package. module Data.Default.Instances.CaseInsensitive ( -- $providedInstances ) where import Data.CaseInsensitive (CI, FoldCase) import qualified Data.CaseInsensitive as CI (mk) import Data.Default.Class (Default(def)) -- Another option would be to use: -- -- instance (IsString s, FoldCase s) => Default (CI s) where -- def = CI.mk (fromString "") -- -- Problem with the above definition is if someone defines his/her -- newtype with IsString instance that should have different default -- value then "". In example hostname for connecting to, etc. instance (Default s, FoldCase s) => Default (CI s) where def = CI.mk def {-# INLINE def #-} -- $providedInstances -- -- @ -- instance ('Default' s, 'FoldCase' s) => 'Default' ('CI' s) where -- 'def' = 'CI.mk' 'def' -- @