// Path: sane-dbc-core/src/main/java/com/novarto/sanedbc/core/interpreter/InterpreterUtils.java
// public static Try0<Connection, SQLException> lift(DataSource ds)
// {
//     return ds::getConnection;
// }
// 
// Path: sane-dbc-core/src/main/java/com/novarto/sanedbc/core/interpreter/InterpreterUtils.java
// public static <A> DB<A> transactional(DB<A> op)
// {
// 
//     return new DB<A>()
//     {
//         @Override public A run(Connection c) throws SQLException
//         {
//             final boolean wasAutocommit = c.getAutoCommit();
//             Throwable th = null;
//             if (wasAutocommit)
//             {
//                 c.setAutoCommit(false);
//             }
// 
//             try
//             {
//                 A result = op.run(c);
//                 c.commit();
//                 return result;
//             }
//             catch (Throwable e)
//             {
//                 th = e;
//                 c.rollback();
//                 throw e;
// 
//             }
//             finally
//             {
//                 try
//                 {
//                     if (wasAutocommit)
//                     {
//                         c.setAutoCommit(true);
//                     }
//                 }
//                 catch (SQLException e)
//                 {
//                     if (th != null)
//                     {
//                         th.addSuppressed(e);
//                     }
//                     else
//                     {
//                         throw e;
//                     }
//                 }
//             }
// 
//         }
//     };
// }


import fj.control.db.DB;
import fj.function.Try0;
import io.netty.util.concurrent.EventExecutorGroup;
import io.netty.util.concurrent.Future;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import static com.novarto.sanedbc.core.interpreter.InterpreterUtils.lift;
import static com.novarto.sanedbc.core.interpreter.InterpreterUtils.transactional;
package com.novarto.sanedbc.netty;




public class FutureInterpreter
{
    private final Try0<Connection, SQLException> ds;
    private final EventExecutorGroup ex;

    public FutureInterpreter(Try0<Connection, SQLException> ds, EventExecutorGroup ex)
    {
        this.ds = ds;
        this.ex = ex;
    }

    public FutureInterpreter(DataSource ds, EventExecutorGroup ex)
    {
// Path: sane-dbc-core/src/main/java/com/novarto/sanedbc/core/interpreter/InterpreterUtils.java
// public static Try0<Connection, SQLException> lift(DataSource ds)
// {
//     return ds::getConnection;
// }
// 
// Path: sane-dbc-core/src/main/java/com/novarto/sanedbc/core/interpreter/InterpreterUtils.java
// public static <A> DB<A> transactional(DB<A> op)
// {
// 
//     return new DB<A>()
//     {
//         @Override public A run(Connection c) throws SQLException
//         {
//             final boolean wasAutocommit = c.getAutoCommit();
//             Throwable th = null;
//             if (wasAutocommit)
//             {
//                 c.setAutoCommit(false);
//             }
// 
//             try
//             {
//                 A result = op.run(c);
//                 c.commit();
//                 return result;
//             }
//             catch (Throwable e)
//             {
//                 th = e;
//                 c.rollback();
//                 throw e;
// 
//             }
//             finally
//             {
//                 try
//                 {
//                     if (wasAutocommit)
//                     {
//                         c.setAutoCommit(true);
//                     }
//                 }
//                 catch (SQLException e)
//                 {
//                     if (th != null)
//                     {
//                         th.addSuppressed(e);
//                     }
//                     else
//                     {
//                         throw e;
//                     }
//                 }
//             }
// 
//         }
//     };
// }


// Path: sane-dbc-netty/src/main/java/com/novarto/sanedbc/netty/FutureInterpreter.java
import fj.control.db.DB;
import fj.function.Try0;
import io.netty.util.concurrent.EventExecutorGroup;
import io.netty.util.concurrent.Future;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import static com.novarto.sanedbc.core.interpreter.InterpreterUtils.lift;
import static com.novarto.sanedbc.core.interpreter.InterpreterUtils.transactional;

package com.novarto.sanedbc.netty;




public class FutureInterpreter
{
    private final Try0<Connection, SQLException> ds;
    private final EventExecutorGroup ex;

    public FutureInterpreter(Try0<Connection, SQLException> ds, EventExecutorGroup ex)
    {
        this.ds = ds;
        this.ex = ex;
    }

    public FutureInterpreter(DataSource ds, EventExecutorGroup ex)
    {
        this(lift(ds), ex);