''This problem has already been fixed but I'm creating a ticket here to attach an example that demonstrates the problem, following a suggestion here: http://www.haskell.org/pipermail/glasgow-haskell-users/2013-August/022716.html''

The following is accepted by GHC 7.6.

type family F a type instance F (a -> a) = Int type instance F (a -> a -> a) = IO String

However these definitions allows an Int to be coerced to IO String under !UndecidableInstances, breaking type safety. The problem is that you can define an infinite type LA = LA -> LA using type families, then F LA can be reduced to both Int and to IO String .

I'll attach a program that demonstrates how this problem can cause a segfault.