1{-# LANGUAGE DataKinds      #-}
2{-# LANGUAGE GADTs          #-}
3{-# LANGUAGE KindSignatures #-}
4{-# LANGUAGE TypeOperators  #-}
5
6data A = A
7data B = B
8data X = X
9data Y = Y
10
11
12data Pairrow ax by  where
13  Pairrow :: (a -> b) -> (x -> y) -> Pairrow '(a, x) '(b, y)
14
15test2 :: (A -> B) -> (X -> Y) -> Pairrow '(A, X) '(B, Y)
16test2 = _
17
18