1 2 3 4 5 6 7 8 9 10 11 12 13 14
{-# LANGUAGE TypeFamilies #-} module Main where data A a type T a = A a f :: (A a ~ T Int) => a -> Int f x = x main :: IO () main = return ()