blob: d4521221099af1327967b91c24addcaf423c1902 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{-# LANGUAGE FlexibleContexts, TypeFamilies #-}
module T10156 where
import Data.Coerce
data Iso a b = Iso (a -> b) (b -> a)
coerceIso :: Coercible a b => Iso a b
coerceIso = Iso coerce coerce
type family F x
f :: (Coercible a (F b), Coercible c (F b)) => a -> b -> c
f x _ = coerce x
|