{-# LANGUAGE ScopedTypeVariables, PolymorphicComponents #-}
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
-- .$Header$
module Data.Flex.MonadState where

class FWMonadState (m :: * -> *) r | m -> r

data FWDefaultMonadState = FWDefaultMonadState

data FWGet t s (m :: * -> *) = FWGet

{-
newtype WrapGet s m = WrapGet {unwrapGet :: m s}
-}

data FWPut t s (m :: * -> *) = FWPut

{-
newtype WrapPut s m = WrapPut {unwrapPut :: s -> m ()}
-}

-- vim: expandtab:tabstop=4:shiftwidth=4