homotuple-0.1.0.0: src/Data/Tuple/Homotuple/Identity.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}
{-# OPTIONS_HADDOCK show-extensions #-}
-- |
-- Copyright : Kazuki Okamoto
-- License : see LICENSE
-- Maintainer : kazuki.okamoto@kakkun61.com
-- Stability : experimental
-- Portability : GHC
--
-- Single homotuples.
module Data.Tuple.Homotuple.Identity () where
import Data.Functor.Identity (Identity (Identity))
import Data.Tuple.Homotuple (Homotuple, errorLengthMismatch)
import GHC.Exts (IsList (Item, fromList, toList))
type instance Homotuple 1 a = Identity a
instance IsList (Identity a) where
type Item (Identity a) = a
fromList [a] = Identity a
fromList _ = errorLengthMismatch
toList (Identity a) = [a]