Comments (4)
Consider the following.
trait Monitor {
def gosub[F[_]: Monad: Capture: Catchable, A](fa: F[A])(target: Any): F[A]
def call[F[_]: Monad: Capture: Catchable, A](fa: F[A])(method: String, args: Array[Any]): F[A]
}
and then primitive combinator
case class WithMonitor[A](fa: WoozleIO[A], m: Monitor) extends WoozleOp[A]
and syntax
prog.withMonitor(m)
This will require a second interpreter that handles monitoring, or a default no-op monitor, or an optional one. Fiddly.
from doobie.
@tpolecat I'm surprised you need a Capture
constrain if you already have Monad
?
I suppose you don't want to capture effect using return
/pure
?
from doobie.
Right, that's the only reason Capture
exists. We need a way to capture effects in any potential monad. A logger might want to know what time it is, or write to a file, etc.
from doobie.
LogHandler should support this already
from doobie.
Related Issues (20)
- doobie with weaver, which package? HOT 1
- "incompatible type in overriding" when overriding ConnectionInterpreter HOT 3
- Multitenant Application in Doobie HOT 2
- Make instances automatically available for Tuples
- Scalafix rule to help migrate to 1.0
- Change code package to `org.typelevel.doobie`
- Transfer to typelevel github org (make sure docs work)
- Remove TimeMeta (was deprecated)
- Enable MiMa
- Optimize compile time by removing anonymous subclass
- Allow running additional PreparedStatement methods before executing
- Bug: prepared statement parameter is not produced for any class or object, "incompatible interpolation" is not thrown HOT 1
- [question] - Meta[Optional[MyType]] not being used HOT 2
- Doobie is not reusing connections, and the documentation doesn't have a single example of how to do it HOT 5
- [CVE-2024-1597] PostgresSQL version is shown as having a vulnerability to SQL Injection via line comment generation HOT 2
- How do i set Snapshot isolation level for transaction? HOT 5
- Where is With ZIO Integration? HOT 2
- Transaction Isolation Levels HOT 3
- build.sbt in introduction broken for Scala 3 HOT 2
- Fragment - expose write.set as a PreparedStatementIO
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from doobie.