Rlang-QQ-0.1.0.0: src/RlangQQ/FN.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
-- | 'hMap' 'FN' drops the inner LVPair, which was
-- just used to keep track of the variable name on the
-- R side.
--
-- it could be replaced by unsafeCoerce with the
-- right type signature
module RlangQQ.FN where
import Data.HList.CommonMain
import GHC.TypeLits
data FN = FN
instance (a ~ (LVPair (t :: k) (LVPair (t2::k) x)), b ~LVPair t x) => ApplyAB FN a b where
applyAB _ (LVPair (LVPair x)) = LVPair x
data NoLabel = NoLabel
instance (la ~ LVPair "" a) => ApplyAB NoLabel a la where
applyAB _ x = LVPair x