Hi

If I remember correctly, the syntax extension will use the module called PGOCaml which is "in scope", so you need to hide the "preemtive threads" one with yours:

module PGOCaml = PGOCaml_generic.Make(Thread)


Cheers
Seb


On Sun, Sep 30, 2012 at 6:04 PM, Pierre Chopin <pierre.chopin@u-psud.fr> wrote:
Hi,
I am trying to use pgocaml and lwt, but I have some error I can't understand:

(**********************************************)
(**********************************************)


module Thread =
struct
open Lwt
open Lwt_io
type 'a t = 'a Lwt.t
let (>>=) = (>>=)
let return = return
let fail = fail
type in_channel = input_channel
type out_channel = output_channel
let open_connection addr = open_connection ~buffer_size:2097152 addr
let output_char = write_char
let  output_binary_int =  write_int
let output_string  = write
let flush = flush
let input_char = read_char
let input_binary_int = read_int
let really_input =read_into_exactly
let close_in = close
end


module Lwt_db = PGOCaml_generic.Make(Thread)
open Lwt_db

open Lwt

let query_user dbh id =
PGSQL(dbh) "SELECT id,name,visited FROM user_db WHERE id=$id"

let _ =
    Lwt_main.run
        (connect ~database:"schat" ()>|=
            function dbh -> query_user dbh 1L)

(**********************************************)
(**********************************************)

when I try to compile :


$ ocamlfind ocamlc -thread -c -package lwt,pgocaml,pgocaml.syntax -syntax
camlp4o test.ml

File "test.ml", line 34, characters 30-33:
Error: This expression has type
         'a Lwt_db.t = 'a PGOCaml_generic.Make(Thread).t
       but an expression was expected of type
         (string, bool) Hashtbl.t PGOCaml.t




--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs