X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Futils%2FOrdList.lhs;h=7f22b38e495a0af306f935f7b9aa8fa8a6696cfe;hb=423d477bfecd490de1449c59325c8776f91d7aac;hp=d093e43c7597b425357d69826be22c2f41553fc5;hpb=553e90d9a32ee1b1809430f260c401cc4169c6c7;p=ghc-hetmet.git diff --git a/ghc/compiler/utils/OrdList.lhs b/ghc/compiler/utils/OrdList.lhs index d093e43..7f22b38 100644 --- a/ghc/compiler/utils/OrdList.lhs +++ b/ghc/compiler/utils/OrdList.lhs @@ -48,6 +48,15 @@ appOL None bs = bs appOL as None = as appOL as bs = Two as bs +mapOL :: (a -> b) -> OrdList a -> OrdList b +mapOL f None = None +mapOL f (One x) = One (f x) +mapOL f (Two x y) = Two (mapOL f x) (mapOL f y) +mapOL f (Many xs) = Many (map f xs) + +instance Functor OrdList where + fmap = mapOL + foldrOL :: (a->b->b) -> b -> OrdList a -> b foldrOL k z None = z foldrOL k z (One x) = k x z