foundation-0.0.1: Foundation/Internal/IsList.hs
-- |
-- Module : Foundation.Internal.IsList
-- License : BSD-style
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
-- Stability : experimental
-- Portability : portable
--
-- compat friendly version of IsList
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE CPP #-}
module Foundation.Internal.IsList
( IsList(..)
) where
#if MIN_VERSION_base(4,7,0)
import GHC.Exts
#else
import qualified Prelude
class IsList l where
type Item l
fromList :: [Item l] -> l
toList :: l -> [Item l]
fromListN :: Prelude.Int -> [Item l] -> l
fromListN _ = fromList
instance IsList [a] where
type Item [a] = a
fromList = Prelude.id
toList = Prelude.id
#endif