{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Data.Constrained.Instances () where
import qualified Data.Array as A
import qualified Data.Array.IArray as AIA
import qualified Data.Array.Unboxed as AU
import Data.IntMap (IntMap)
import Data.Map (Map)
import Data.Set (Set)
import qualified Data.Vector as V
import qualified Data.Vector.Primitive as VP
import qualified Data.Vector.Storable as VS
import qualified Data.Vector.Unboxed as VU
import Data.Constrained
instance Constrained (A.Array i) where
type Constraints (A.Array i) = NoConstraints
instance Constrained (AU.UArray i) where
type Constraints (AU.UArray i) = AIA.IArray AU.UArray
instance Constrained IntMap where
type Constraints IntMap = NoConstraints
instance Constrained (Map k) where
type Constraints (Map k) = NoConstraints
instance Constrained Set where
type Constraints Set = Ord
instance Constrained V.Vector where
type Constraints V.Vector = NoConstraints
instance Constrained VP.Vector where
type Constraints VP.Vector = VP.Prim
instance Constrained VS.Vector where
type Constraints VS.Vector = VS.Storable
instance Constrained VU.Vector where
type Constraints VU.Vector = VU.Unbox