numerate :: (Monoid str, IsString str)
         => (a -> str) -> Int -> [a] -> [str]
numerate f start xs = let addBrace = (`mappend` ") ") . fromString . show
                          numbers  = fmap addBrace [start..]
                          list     = fmap f xs
                      in  zipWith mappend numbers list
numerate :: (Monoid str, IsString str)
         => (a -> str) -> Int -> [a] -> [str]
numerate f start xs = let addBrace = (`mappend` ") ") . fromString . show
                          numbers  = fmap addBrace [start..]
                          list     = fmap f xs
                      in  zipWith mappend numbers list
numerate f start xs = let addBrace = (`mappend` ") ") . fromString . show
                          numbers  = fmap addBrace [start..]
                          list     = fmap f xs
                      in  zipWith mappend numbers list