summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/T21289.hs
blob: e7536eaaaaa7ca40415701f5c5c874818f6f9d34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{-# LANGUAGE DataKinds, KindSignatures, TypeFamilies #-}
module T21289 where

type family F (a :: Bool)
type instance F True = Int
type instance F False = Int

type family G (a :: Bool)
type instance G True = Int
type instance G False = Bool

data Rec a = MkR { konst :: F a
                 , change :: G a }

ch :: Rec True -> Rec False
ch r = r { change = False }