id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
2696	forall not recognized in RULES	conal		"{{{
{-# LANGUAGE GADTs, TypeFamilies, TypeOperators
  -- , ScopedTypeVariables
   #-}
{-# OPTIONS_GHC -Wall -frewrite-rules #-}

-- ScopedTypeVariables works around a 6.10 bug.  The forall keyword is
-- supposed to be recognized in a RULES pragma, but it's not.
-- 
-- This bug was introduced between ghc 6.9.20080622 and 6.10.0.20081007.

-- | Mapping from all elements of @a@ to the results of some function
class HasTrie a where
    -- | Representation of trie with domain type @a@
    data (:->:) a :: * -> *
    -- Create the trie for the entire domain of a function
    trie   :: (a  ->  b) -> (a :->: b)
    -- | Convert a trie to a function, i.e., access a field of the trie
    untrie :: (a :->: b) -> (a  ->  b)

{-# RULES
""trie/untrie""   forall t. trie (untrie t) = t
""untrie/trie""   forall f. untrie (trie f) = f
 #-}
}}}"	bug	closed	normal		Compiler	6.11	fixed		conal	Unknown/Multiple	Unknown/Multiple		Unknown				
