From 9d4873628a889f02b7a4124505dbe18307ecb6e8 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Mon, 9 Feb 2009 17:18:40 +0100 Subject: [PATCH] Make HsValueMap an instance of Functor. --- Flatten.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Flatten.hs b/Flatten.hs index 7ce63a5..42ce020 100644 --- a/Flatten.hs +++ b/Flatten.hs @@ -17,7 +17,9 @@ data HsValueMap mapto = | Single mapto deriving (Show, Eq) - +instance Functor HsValueMap where + fmap f (Single s) = Single (f s) + fmap f (Tuple maps) = Tuple (fmap (fmap f) maps) -- | Creates a HsValueMap with the same structure as the given type, using the -- given function for mapping the single types. @@ -57,8 +59,7 @@ type SignalUseMap = HsValueMap SignalUse type SignalDefMap = HsValueMap SignalDef useMapToDefMap :: SignalUseMap -> SignalDefMap -useMapToDefMap (Single (SignalUse u)) = Single (SignalDef u) -useMapToDefMap (Tuple uses) = Tuple (map useMapToDefMap uses) +useMapToDefMap = fmap (\(SignalUse u) -> SignalDef u) type SignalId = Int data SignalUse = SignalUse { -- 2.30.2