summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/indexed-types/should_compile/T2639.hs
blob: 43e6c98a1dd0bd850e81e96e500a9adfb9a9c80e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{-# LANGUAGE TypeFamilies, EmptyDataDecls #-}

module T2639 where

data Eps

data family Work a v
data instance Work Eps v = Eps v

type family Dual a
type instance Dual Eps = Eps

class Connect s where
    connect :: (Dual s ~ c, Dual c ~ s) => Work s a -> Work c b -> (a,b)

instance Connect Eps where
    connect (Eps a) (Eps b) = (a,b)