{-# 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 ----