clash-lib-1.2.1: src/Data/Semigroup/Monad/Extra.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Data.Semigroup.Monad.Extra
(module Data.Semigroup.Monad
)
where
import Control.Monad.Fix
import Control.Monad.State
import Data.Semigroup.Monad
instance MonadFix f => MonadFix (Mon f) where
mfix f = Mon (mfix (getMon . f))
instance MonadState s m => MonadState s (Mon m) where
get = Mon get
put = Mon . put
state = Mon . state