1 2 3 4 5 6 7 8 9 10 11 12
{-# LANGUAGE TypeFamilies #-} module GivenCheck where type family S x f :: a -> S a f = undefined g :: S a ~ Char => a -> Char g y | False = f y | otherwise = 'a'