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

module Data.Validity.DList () where

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

-- | A 'DList' of things is valid if list of the same things is valid
instance (Validity v) => Validity (DList v) where
  validate :: DList v -> Validation
validate = [v] -> Validation
forall a. Validity a => a -> Validation
validate ([v] -> Validation) -> (DList v -> [v]) -> DList v -> Validation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DList v -> [v]
forall a. DList a -> [a]
DList.toList