1 2 3 4 5 6 7 8 9 10 11 12 13
{-# LANGUAGE TypeFamilies #-} module GivenCheckTop where type family S x type instance S [e] = e f :: a -> S a f = undefined g :: S [a] ~ Char => a -> Char g y = y