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

module Data.Validity.DNonEmpty () where

import Data.DList.DNonEmpty (DNonEmpty)
import qualified Data.DList.DNonEmpty as DNonEmpty
import Data.Validity (Validity (..))

-- | A 'DNonEmpty' of things is valid if a 'NonEmpty' of the same things is valid
instance (Validity v) => Validity (DNonEmpty v) where
  validate :: DNonEmpty v -> Validation
validate = NonEmpty v -> Validation
forall a. Validity a => a -> Validation
validate (NonEmpty v -> Validation)
-> (DNonEmpty v -> NonEmpty v) -> DNonEmpty v -> Validation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DNonEmpty v -> NonEmpty v
forall a. DNonEmpty a -> NonEmpty a
DNonEmpty.toNonEmpty