From 573c91b36d5eb71f157b292d0782273878453728 Mon Sep 17 00:00:00 2001 From: sorki Date: Tue, 26 Dec 2023 18:53:55 +0100 Subject: [PATCH 1/4] Add cabal.project.local.ci --- cabal.project.local.ci | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 cabal.project.local.ci diff --git a/cabal.project.local.ci b/cabal.project.local.ci new file mode 100644 index 0000000..ee6e3be --- /dev/null +++ b/cabal.project.local.ci @@ -0,0 +1,2 @@ +package hocd + ghc-options: -Wunused-packages -Wall -Werror From 5f11b7a8aacae822e6d104f120ed9f52b40a4d05 Mon Sep 17 00:00:00 2001 From: sorki Date: Tue, 26 Dec 2023 18:54:36 +0100 Subject: [PATCH 2/4] Drop unused packages --- hocd.cabal | 2 -- 1 file changed, 2 deletions(-) diff --git a/hocd.cabal b/hocd.cabal index c1a88d9..ebe2f49 100644 --- a/hocd.cabal +++ b/hocd.cabal @@ -34,13 +34,11 @@ library , HOCD.Monad , HOCD.Types build-depends: base >= 4.7 && < 5 - , binary , bytestring , data-default-class , exceptions , mtl , network - , network-run , transformers , text default-language: Haskell2010 From 77ac833ef5cc666a4723259f9c66e796e94f75e5 Mon Sep 17 00:00:00 2001 From: sorki Date: Wed, 27 Dec 2023 09:45:54 +0100 Subject: [PATCH 3/4] Add transformers boilerplate --- CHANGELOG.md | 4 ++++ src/HOCD/Monad.hs | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd22c0e..14aed8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/src/HOCD/Monad.hs b/src/HOCD/Monad.hs index f7e6564..dcea2a0 100644 --- a/src/HOCD/Monad.hs +++ b/src/HOCD/Monad.hs @@ -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.Reader (MonadReader, ask) 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,11 +81,23 @@ runOCDT sock = 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 :: ( MonadOCD m From b6775969e263d7404c1de57d84b950aff16a6664 Mon Sep 17 00:00:00 2001 From: sorki Date: Wed, 27 Dec 2023 09:46:14 +0100 Subject: [PATCH 4/4] Version 0.1.1.0 --- hocd.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hocd.cabal b/hocd.cabal index ebe2f49..ff4fd49 100644 --- a/hocd.cabal +++ b/hocd.cabal @@ -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