/usr/lib/hugs/packages/base/Data/FunctorM.hs is in libhugs-base-bundled 98.200609.21-5.4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | -----------------------------------------------------------------------------
-- |
-- Module : Data.FunctorM
-- Copyright : (c) The University of Glasgow 2005
-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : libraries@haskell.org
-- Stability : provisional
-- Portability : portable
--
-- fmapM generalises fmap, just as mapM generalises map.
--
-- NOTE: This module is DEPRECATED.
-- The classes in "Data.Foldable" and "Data.Traversable" provide a
-- more general interface.
--
-----------------------------------------------------------------------------
module Data.FunctorM
{-# DEPRECATED "Use the more general Data.Foldable and Data.Traversable instead" #-}
(FunctorM(..)) where
import Prelude
import Data.Array
class FunctorM f where
fmapM :: Monad m => (a -> m b) -> f a -> m (f b)
fmapM_ :: Monad m => (a -> m b) -> f a -> m ()
fmapM_ f t = fmapM f t >> return ()
instance FunctorM [] where
fmapM = mapM
fmapM_ = mapM_
instance FunctorM Maybe where
fmapM _ Nothing = return Nothing
fmapM f (Just x) = f x >>= return . Just
fmapM_ _ Nothing = return ()
fmapM_ f (Just x) = f x >> return ()
instance Ix i => FunctorM (Array i) where
fmapM f a = do
a' <- sequence [ f e >>= return . (,) i | (i,e) <- assocs a]
return (array (bounds a) a')
|