packages feed

hocd 0.1.0.0 → 0.1.1.0

raw patch · 3 files changed

+21/−1 lines, 3 files

Files

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