X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Futils%2FLazyUniqFM.lhs;h=97451b0eea6afdc265408acde125e6adb12bf17f;hb=9aad47f1162666431deee99884c523b1ff69cf98;hp=55b438f62d9a83684c1b269d99472d5c99e55123;hpb=0f5e104c36b1dc3d8deeec5fef3d65e7b3a1b5ad;p=ghc-hetmet.git diff --git a/compiler/utils/LazyUniqFM.lhs b/compiler/utils/LazyUniqFM.lhs index 55b438f..97451b0 100644 --- a/compiler/utils/LazyUniqFM.lhs +++ b/compiler/utils/LazyUniqFM.lhs @@ -11,11 +11,11 @@ Basically, the things need to be in class @Uniquable@, and we use the @getUnique@ method to grab their @Uniques@. \begin{code} -{-# OPTIONS -Wall -fno-warn-name-shadowing -Werror #-} -{-# LANGUAGE UndecidableInstances #-} module LazyUniqFM ( + -- * Lazy unique-keyed mappings UniqFM, -- abstract type + -- ** Manipulating those mappings emptyUFM, unitUFM, unitDirectlyUFM, @@ -178,9 +178,10 @@ ufmToList :: UniqFM elt -> [(Unique, elt)] \begin{code} data Lazy a = Lazy { fromLazy :: a } +-- | @UniqFM a@ is a mapping from Unique to @a@ where the element @a@ is evaluated lazily. newtype UniqFM ele = MkUniqFM (S.UniqFM (Lazy ele)) -instance Outputable (S.UniqFM (Lazy a)) => Outputable (UniqFM a) where +instance Outputable a => Outputable (UniqFM a) where ppr (MkUniqFM fm) = ppr fm instance Outputable a => Outputable (Lazy a) where