diff --git a/spago.lock b/spago.lock index 527e705..c636903 100644 --- a/spago.lock +++ b/spago.lock @@ -36,6 +36,7 @@ workspace: - transformers: ">=6.0.0 <7.0.0" - tuples: ">=7.0.0 <8.0.0" - typelevel-prelude: ">=7.0.0 <8.0.0" + - unlift: ">=1.0.1 <2.0.0" - unsafe-coerce: ">=6.0.0 <7.0.0" test_dependencies: - filterable @@ -74,6 +75,7 @@ workspace: - fork - formatters - free + - freet - functions - functors - gen @@ -87,6 +89,7 @@ workspace: - lists - maybe - mmorph + - monad-control - newtype - node-buffer - node-child-process @@ -127,6 +130,7 @@ workspace: - typelevel-prelude - unfoldable - unicode + - unlift - unsafe-coerce - variant package_set: @@ -924,6 +928,21 @@ packages: - transformers - tuples - unsafe-coerce + freet: + type: registry + version: 7.0.0 + integrity: sha256-zkL6wU4ZPq8xz1kGFxoliWqyhBksepMJTyA68VEBaJo= + dependencies: + - aff + - bifunctors + - effect + - either + - exists + - free + - prelude + - tailrec + - transformers + - tuples functions: type: registry version: 6.0.0 @@ -1060,6 +1079,15 @@ packages: - free - functors - transformers + monad-control: + type: registry + version: 5.0.0 + integrity: sha256-bgfDW30wbIm70NR1Tvvh9P+VFQMDh1wK2sSJXCj/dZc= + dependencies: + - aff + - freet + - identity + - lists newtype: type: registry version: 5.0.0 @@ -1567,6 +1595,23 @@ packages: - foldable-traversable - maybe - strings + unlift: + type: registry + version: 1.0.1 + integrity: sha256-nbBCVV0fZz/3UHKoW11dcTwBYmQOIgK31ht2BN47RPw= + dependencies: + - aff + - effect + - either + - freet + - identity + - lists + - maybe + - monad-control + - prelude + - st + - transformers + - tuples unsafe-coerce: type: registry version: 6.0.0 diff --git a/spago.yaml b/spago.yaml index eeefb6b..b6d8e68 100644 --- a/spago.yaml +++ b/spago.yaml @@ -46,6 +46,7 @@ package: - transformers: ">=6.0.0 <7.0.0" - tuples: ">=7.0.0 <8.0.0" - typelevel-prelude: ">=7.0.0 <8.0.0" + - unlift: ">=1.0.1 <2.0.0" - unsafe-coerce: ">=6.0.0 <7.0.0" test: main: Test.Main diff --git a/src/Control.Monad.Postgres.Base.purs b/src/Control.Monad.Postgres.Base.purs index 7bb03ce..c4e2ef8 100644 --- a/src/Control.Monad.Postgres.Base.purs +++ b/src/Control.Monad.Postgres.Base.purs @@ -17,8 +17,10 @@ import Effect.Aff (Fiber) import Effect.Aff.Class (class MonadAff, liftAff) import Effect.Aff.Postgres.Pool (Pool) import Effect.Aff.Postgres.Pool as Pool +import Effect.Aff.Unlift (class MonadUnliftAff) import Effect.Class (class MonadEffect, liftEffect) import Effect.Exception (Error) +import Effect.Unlift (class MonadUnliftEffect) import Prim.Row (class Union) -- | Monad handling pool resource acquisition & release @@ -58,6 +60,8 @@ derive newtype instance (Bind m) => Bind (PostgresT m) derive newtype instance (Monad m) => Monad (PostgresT m) derive newtype instance (MonadEffect m) => MonadEffect (PostgresT m) derive newtype instance (MonadAff m) => MonadAff (PostgresT m) +derive newtype instance (MonadUnliftEffect m) => MonadUnliftEffect (PostgresT m) +derive newtype instance (MonadUnliftAff m) => MonadUnliftAff (PostgresT m) derive newtype instance MonadRec m => MonadRec (PostgresT m) derive newtype instance MonadTrans (PostgresT) derive newtype instance (MonadThrow e m) => MonadThrow e (PostgresT m) diff --git a/src/Control.Monad.Postgres.Cursor.purs b/src/Control.Monad.Postgres.Cursor.purs index 12dcc50..0611764 100644 --- a/src/Control.Monad.Postgres.Cursor.purs +++ b/src/Control.Monad.Postgres.Cursor.purs @@ -23,8 +23,10 @@ import Data.Traversable (traverse) import Data.Tuple.Nested (type (/\), (/\)) import Effect.Aff (Fiber) import Effect.Aff.Class (class MonadAff) +import Effect.Aff.Unlift (class MonadUnliftAff) import Effect.Class (class MonadEffect, liftEffect) import Effect.Exception (Error) +import Effect.Unlift (class MonadUnliftEffect) newtype CursorT :: forall k. Type -> (k -> Type) -> k -> Type newtype CursorT t m a = CursorT (ReaderT (String /\ (Array Raw -> RepT t)) m a) @@ -40,6 +42,8 @@ derive newtype instance (Monad m) => Monad (CursorT t m) derive newtype instance (MonadEffect m) => MonadEffect (CursorT t m) derive newtype instance (MonadAff m) => MonadAff (CursorT t m) derive newtype instance MonadRec m => MonadRec (CursorT t m) +derive newtype instance (MonadUnliftEffect m) => MonadUnliftEffect (CursorT t m) +derive newtype instance (MonadUnliftAff m) => MonadUnliftAff (CursorT t m) derive newtype instance MonadTrans (CursorT t) derive newtype instance (MonadThrow e m) => MonadThrow e (CursorT t m) derive newtype instance (MonadError e m) => MonadError e (CursorT t m)