packages feed

Fungi-1.0: Data/Labeled.hs

module Data.Labeled (
    Labeled (getLabel, unlabel)
  , label
  ) where

-----------------------------------------------------------

data Labeled l a = Labeled {
    getLabel :: l
  , unlabel :: a
  }
  deriving (Show)

label :: l -> a -> Labeled l a
label = Labeled

instance Functor (Labeled l) where
  fmap f l = l { unlabel = f $ unlabel l }