id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
4160	Panic! at the HEAD	LouisWasserman	simonpj	"HEAD panics, but 6.12.1 doesn't, at the following module:

{{{
{-# LANGUAGE FlexibleContexts, MultiParamTypeClasses, TypeFamilies #-}
module Foo where

data P f g r = f r :*: g r
type family TrieMapT (f :: * -> *) :: * -> (* -> *) -> * -> *
newtype PMap m1 (m2 :: * -> (* -> *) -> * -> *) k (a :: * -> *) ix = PMap (m1 k (m2 k a) ix)
type instance TrieMapT (P f g) = PMap (TrieMapT f) (TrieMapT g)

class TrieKeyT f m where
	unionT :: (TrieMapT f ~ m) => (f k -> a ix -> a ix -> a ix) ->
		m k a ix -> m k a ix -> m k a ix
	sizeT :: (TrieMapT f ~ m) => m k a ix -> Int

instance (TrieKeyT f m1, TrieKeyT g m2) => TrieKeyT (P f g) (PMap m1 m2) where
	unionT f (PMap m1) (PMap m2) = PMap (uT  (\ a -> unionT (\ b -> f (a :*: b))) m1 m2)
		where uT = unionT
}}}

"	bug	closed	high	7.0.1	Compiler	6.13	fixed			Linux	x86	Compile-time crash		indexed-types/should_compile/T4160			
