morpheus-graphql-core-0.16.0: src/Data/Morpheus/Ext/Elems.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Data.Morpheus.Ext.Elems
( Elems (..),
size,
)
where
import qualified Data.HashMap.Lazy as HM
import Instances.TH.Lift ()
import Relude
class Elems a coll | coll -> a where
elems :: coll -> [a]
instance Elems a (HashMap k a) where
elems = HM.elems
instance Elems a [a] where
elems = id
size :: Elems a coll => coll -> Int
size = length . elems