Free monad over a free functor of DatabaseMetaDataOp; abstractly, a computation that consumes
a java.sql.DatabaseMetaData
and produces a value of type A
.
Syntax for DatabaseMetaDataIO
.
Sum type of primitive operations over a java.sql.DatabaseMetaData
.
Capture instance for DatabaseMetaDataIO.
Catchable instance for DatabaseMetaDataIO.
Module of constructors for DatabaseMetaDataOp
.
Module of constructors for DatabaseMetaDataOp
. These are rarely useful outside of the implementation;
prefer the smart constructors provided by the databasemetadata
module.
Monad instance for DatabaseMetaDataIO (can't be inferred).
Lift a DatabaseMetaDataIO[A] into an exception-capturing DatabaseMetaDataIO[Throwable \/ A].
Non-strict unit for capturing effects.
Natural transformation from DatabaseMetaDataOp
to Kleisli
for the given M
, consuming a java.sql.DatabaseMetaData
.
Lift a different type of program that has a default Kleisli interpreter.
Backdoor for arbitrary computations on the underlying DatabaseMetaData.
Natural transformation from DatabaseMetaDataIO
to M
, given a java.sql.DatabaseMetaData
.
Natural transformation from DatabaseMetaDataIO
to Kleisli
for the given M
, consuming a java.sql.DatabaseMetaData
.
Algebra and free monad for primitive operations over a
java.sql.DatabaseMetaData
. This is a low-level API that exposes lifecycle-managed JDBC objects directly and is intended mainly for library developers. End users will prefer a safer, higher-level API such as that provided in thedoobie.hi
package.DatabaseMetaDataIO
is a free monad that must be run via an interpreter, most commonly via natural transformation of its underlying algebraDatabaseMetaDataOp
to another monad viaFree.runFC
.The library provides a natural transformation to
Kleisli[M, DatabaseMetaData, A]
for any exception-trapping (Catchable
) and effect-capturing (Capture
) monadM
. Such evidence is provided forTask
,IO
, and stdlibFuture
; andtransK[M]
is provided as syntax.