packages feed

fourmolu-0.0.6.0: data/examples/declaration/class/dependency-super-classes.hs

module Main where

{-# LANGUAGE FunctionalDependencies #-}

-- | Something.
class ( MonadReader r s,MonadWriter w m ) => MonadState s m| m -> s where
    get :: m s
    put :: s -> m ()

-- | 'MonadParsec'

class (
        Stream s, -- Token streams
        MonadPlus m -- Potential for failure
    ) => MonadParsec e s m | m -> e s
  where
    -- | 'getState' returns state
    getState
        ::
            m s
    -- | 'putState' sets state
    putState ::
            s
         -> m ()