hocd 0.1.0.0 → 0.1.1.0
raw patch · 3 files changed
+21/−1 lines, 3 files
Files
- CHANGELOG.md +4/−0
- hocd.cabal +1/−1
- src/HOCD/Monad.hs +16/−0
CHANGELOG.md view
@@ -1,3 +1,7 @@+# Version [0.1.1.0](https://github.com/DistRap/hocd/compare/0.1.0.0...0.1.1.0) (2023-12-27)++* Transformers boilerplate+ # Version [0.1.0.0](https://github.com/DistRap/hocd/compare/6a16c2d...0.1.0.0) (2023-12-26) * Initial release
hocd.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: hocd-version: 0.1.0.0+version: 0.1.1.0 synopsis: OpenOCD Haskell interface description: Support for OpenOCDs TCL interface homepage: https://github.com/DistRap/hocd
src/HOCD/Monad.hs view
@@ -1,8 +1,11 @@+{-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE Rank2Types #-} {-# LANGUAGE TypeApplications #-}+{-# LANGUAGE TypeOperators #-} module HOCD.Monad ( OCDT@@ -24,6 +27,7 @@ import Control.Monad.Trans (MonadTrans, lift) import Control.Monad.Trans.Except (ExceptT, runExceptT) import Control.Monad.Trans.Reader (ReaderT, runReaderT)+import Control.Monad.Trans.State (StateT) import Data.Bits (FiniteBits(..)) import Data.ByteString (ByteString) import Data.Word (Word32)@@ -77,10 +81,22 @@ class ( MonadIO m , MonadError OCDError m ) => MonadOCD m where+ getSocket :: m Socket+ default getSocket+ :: ( MonadTrans t+ , MonadOCD m'+ , m ~ t m'+ )+ => m Socket+ getSocket = lift getSocket instance MonadIO m => MonadOCD (OCDT m) where getSocket = ask++instance MonadOCD m => MonadOCD (StateT s m)+instance MonadOCD m => MonadOCD (ReaderT r m)+instance MonadOCD m => MonadOCD (ExceptT OCDError m) -- | Perform RPC call rpc