tuple-hlist-0.2.0.0: Tools/IncompleteHList.hs
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{- |
This module contains overloaded functions for creating an HList from a tuple or
a tuple from an HList.
-}
module Data.Tuple.HList (HLst(toHList, fromHList)) where
import Data.Tuple.OneTuple (OneTuple(OneTuple))
import Data.HList (HList(HNil, HCons), hEnd, hBuild)
class HLst a b | a -> b, b -> a where
-- |Creates an HList from a tuple.
toHList :: a -> b
-- |Creates a tuple from an HList.
fromHList :: b -> a
instance HLst (OneTuple a1) (HList '[a1]) where
toHList (OneTuple a1) = hEnd $ hBuild a1
fromHList (HCons a1 HNil) = OneTuple a1
---- The code below is automatically generated by Tools/generateInstances.hs ----