convert-1.4.2: src/Data/Convert/Instances/List.hs
module Data.Convert.Instances.List where
import Prelude
import Data.Convert.Class
import Data.List.NonEmpty
import Data.Default
instance {-# OVERLAPPABLE #-} Convertible a [a] where convert = pure ; {-# INLINE convert #-}
instance Convertible' a b => Convertible (NonEmpty a) [b] where
convert (a:|as) = convert' a : fmap convert' as
instance Convertible' a b => PartialConvertible [a] (NonEmpty b) where
type ConversionError [a] (NonEmpty b) = SimpleConversionError
convertAssert = \case
[] -> Just SimpleConversionError
_ -> Nothing
unsafeConvert (a:as) = convert' a :| fmap convert' as ; {-# INLINE unsafeConvert #-}