Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-# LANGUAGE DataKinds, FlexibleContexts, TemplateHaskell, TypeFamilies, TypeOperators #-}
- import Data.Extensible
- import Data.Monoid
- import Control.Monad.Identity
- mkField "a b"
- -- hsequence
- type FS = ["a" :> Integer, "b" :> String]
- r1, r2 :: Comp First (Field Identity) :* FS
- r1 = a <@=> First (Just 1)
- <: b <@=> mempty
- <: Nil
- r2 = a <@=> First (Just 5)
- <: b <@=> First (Just "x")
- <: Nil
- {-
- >>> r1r2
- Just (a @= 1 <: b @= "x" <: Nil)
- -}
- r1r2 = getFirst
- $ hsequence
- $ hzipWith (\ (Comp x) (Comp y) -> Comp (x <> y))
- r1 r2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement