gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml Meeting 2011 http://bit.ly/eaZi1C | OCaml 3.12.0 http://bit.ly/aNZBUp
avsm has quit [Quit: Leaving.]
Fullma has quit [Ping timeout: 246 seconds]
alexyk has quit [Quit: alexyk]
Fullma has joined #ocaml
alexyk has joined #ocaml
jonafan_ has joined #ocaml
enthymeme has joined #ocaml
Tobu has quit [Quit: No Ping reply in 180 seconds.]
jonafan has quit [Ping timeout: 248 seconds]
Tobu has joined #ocaml
gildor has quit [Ping timeout: 248 seconds]
Associat0r has joined #ocaml
gildor has joined #ocaml
arubin has joined #ocaml
lopex has quit []
Rickasaurus has joined #ocaml
smerz has quit [Quit: Ex-Chat]
ecooper has quit [Ping timeout: 276 seconds]
pantsd has quit [Ping timeout: 276 seconds]
ecooper has joined #ocaml
pantsd has joined #ocaml
bzzbzz_ has joined #ocaml
mehdid_ has joined #ocaml
bitbckt_ has joined #ocaml
schmx has joined #ocaml
schmx has quit [Changing host]
schmx has joined #ocaml
chewbran1a has joined #ocaml
willb1 has joined #ocaml
gildor_ has joined #ocaml
wtetzner_ has joined #ocaml
patronus has joined #ocaml
mehdid has quit [Ping timeout: 240 seconds]
bitbckt has quit [Ping timeout: 240 seconds]
philed has quit [Ping timeout: 240 seconds]
patronus_ has quit [Ping timeout: 240 seconds]
schme has quit [Ping timeout: 240 seconds]
chewbranca has quit [Ping timeout: 240 seconds]
willb has quit [Ping timeout: 240 seconds]
bzzbzz has quit [Ping timeout: 240 seconds]
gildor has quit [Ping timeout: 240 seconds]
Fullma has quit [Ping timeout: 240 seconds]
wtetzner__ has quit [Ping timeout: 240 seconds]
alexyk has quit [Quit: alexyk]
bitbckt_ is now known as bitbckt
bitbckt has quit [Changing host]
bitbckt has joined #ocaml
ymasory has quit [Quit: Leaving]
wtetzner_ is now known as wtetzner
alexyk has joined #ocaml
emmanuelux has quit [Quit: =>[]]
emmanuelux has joined #ocaml
sgnb` has joined #ocaml
arubin has quit [Ping timeout: 260 seconds]
sgnb has quit [Ping timeout: 260 seconds]
schmx has quit [Ping timeout: 260 seconds]
arubin has joined #ocaml
alexyk has quit [Read error: Connection reset by peer]
schme has joined #ocaml
myu2 has quit [Ping timeout: 264 seconds]
myu2 has joined #ocaml
alexyk has joined #ocaml
Associat0r has quit [Quit: Associat0r]
alexyk has quit [Read error: Connection reset by peer]
Asmadeus_ is now known as Asmadeus
ymasory has joined #ocaml
dgfitch has quit [Ping timeout: 246 seconds]
dgfitch has joined #ocaml
astory has left #ocaml []
emmanuelux has quit [Remote host closed the connection]
caligula__ has quit [Remote host closed the connection]
myu2 has quit [Ping timeout: 246 seconds]
caligula has joined #ocaml
myu2 has joined #ocaml
ulfdoz has joined #ocaml
hyperboreean has quit [Ping timeout: 276 seconds]
hyperboreean has joined #ocaml
ymasory has quit [Quit: Leaving]
ulfdoz has quit [Ping timeout: 260 seconds]
larhat has joined #ocaml
rrenaud has quit [Read error: Operation timed out]
Yoric has joined #ocaml
rrenaud has joined #ocaml
ttamttam has joined #ocaml
ikaros has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
yezariaely has joined #ocaml
thomasga has joined #ocaml
enthymeme has quit [Quit: rcirc on GNU Emacs 23.1.1]
arubin has quit [Quit: arubin]
edwin has joined #ocaml
Yoric has quit [Quit: Yoric]
thomasga has quit [Quit: Leaving.]
ftrvxmtrx has joined #ocaml
philtor has quit [Ping timeout: 276 seconds]
thomasga has joined #ocaml
Fullma has joined #ocaml
vivanov has joined #ocaml
ikaros has quit [Remote host closed the connection]
Yoric has joined #ocaml
<vivanov> to make a function tail-recursive, i put computation of type unit into argument: let rec loop computation = function ... .i never use the computation argument and the program compiles even if i put it () or _ instead of "computation", like that: let rec loop () = function ... .is it ok to use () as an argument of loop function?
Cyanure has joined #ocaml
<rproust> vivanov: not sure of what you're trying to do, but, from what I undeerstand, it's ok
<rproust> I don't see why you would need the "computation" argument though
<vivanov> rproust: let rec loop () = function h::t -> loop ( output_string h ch ) t | [] -> ()
<vivanov> instead of -- let rec loop comp = function h::t -> loop ( output_string h ch ) t | [] -> ()
yezariaely has left #ocaml []
<rproust> and why not let rec loop = function h::t -> output_string h ch; loop t | [] -> () ?
ttblrs_ has joined #ocaml
<rproust> I think it's also tail rec
<rproust> anyway, it's ok to put () as an argument to loop in the function declaration
<vivanov> :)
<vivanov> ok -- thanks
caligula has quit [Read error: Connection reset by peer]
ttamttam has quit [Read error: Connection reset by peer]
sgnb` is now known as sgnb
caligula has joined #ocaml
jamii has joined #ocaml
jamii has quit [Read error: Connection reset by peer]
jamii has joined #ocaml
adlsaks has joined #ocaml
ttamttam has joined #ocaml
lopex has joined #ocaml
Associat0r has joined #ocaml
rindolf has joined #ocaml
<rindolf> Hi all.
<rindolf> How do I determine if a list is empty?
<gildor_> rindolf: lst = []
<adrien> if l = [] then ...
<rindolf> gildor_: thanks.
<rindolf> What's wrong with this «let lines = Str.split ((regexp "\n") str)»?
<rindolf> Error: This function is applied to too many arguments;
<rindolf> That's what I'm getting.
<flux> check your parens..
<Associat0r> does anyone here use OcaIDE?
<flux> you're basically doing this: Str.split (regexp "\n" str)
<flux> because a b c d is the same as ((((a) b) c) d)
<rindolf> flux: ah.
<rindolf> flux: so what should I do?
thomasga has quit [Ping timeout: 260 seconds]
<flux> rindolf, Str.split (regexp "\n") str
koszal has joined #ocaml
koszal has left #ocaml []
thomasga has joined #ocaml
<rindolf> Error: No implementations provided for the following modules:
<rindolf> Str referenced from find_quotes.cmx
<flux> put str.cmxa into the compliation line, before find_quotes.cmx (or .ml)
<rindolf> flux: thanks.
<rindolf> working now.
<rindolf> http://paste.debian.net/113151/ - here is the code, but I feel there are too many nested "let" statements.
<flux> rindolf, btw, be warned, Str-module is not thread safe
<rindolf> flux: OK.
Associat0r has quit [Quit: Associat0r]
<flux> rindolf, I indent consecutive let bindings with the same scope into the same level
<flux> rindolf, just as you have indented the two first lets in the find_quotes function
<rindolf> flux: OK.
Associat0r has joined #ocaml
<rindolf> Oh, I forgot to iterate over the rest of the lines.
<flux> rindolf, I might (well, my emacs might..) indent the code like this: http://paste.debian.net/113153/
<rindolf> How do I make a let with a recursive function?
<rindolf> flux: that's OK, I already indented it.
<flux> let rec to_the_infinity () = to_the_infinity ()
<rindolf> flux: thanks
<rindolf> OK. now I'm getting Fatal error: exception Xmlm.Make(String)(Buffer).Error(_, _)
<vivanov> when using String.length, List.length, Array.length (and the like) several times in a row, is there any use preevaluating the values?
myzt has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
myzt has quit [Client Quit]
myzt has joined #ocaml
myzt has quit [Client Quit]
<kaustuv> vivanov: By "preevaluating" do you mean memoizing the results? If so, no, OCaml has no implicit memoization. However, note that String.length and Array.length are constant time operations
<vivanov> kaustuv: exactly, my question is about the time the operations take -- thanks
_andre has joined #ocaml
notk0 has joined #ocaml
<notk0> hello, is it possible in lexbuf to make rule that takes any character except some ?
<notk0> like _ without 'a' for example
<rproust> notk0: are you generating your lexer through ocamllex?
<notk0> rproust, yes
<kaustuv> From the ocamllex manual:
<kaustuv> [ ^ character-set ] Match any single character not belonging to the given character set.
<notk0> kaustuv, I'll try that, thank you
<notk0> _* denotes any string in ocamllex correct?
philed has joined #ocaml
<rproust> notk0: I think so
ftrvxmtrx has quit [Quit: Leaving]
nicolas__ has joined #ocaml
<nicolas__> Hey everyone :)
<rindolf> Hi noc
<rindolf> Hi nicolas__
<nicolas__> i've to use caml in a school project but i feel really stupid in front of this error : "Error: This expression has type cellule
<nicolas__> but an expression was expected of type cellule"
<nicolas__> ("cellule" is a type i've made for my project)
<nicolas__> do you have any idea how to fixe this weird problem ?!
edwin has quit [Disconnected by services]
edwin1 has joined #ocaml
edwin1 is now known as edwin
<larhat> check out entire faq, btw, it can be really helpful
<nicolas__> ha !
<nicolas__> i tried it but it didn't work
<nicolas__> i'm gonna try it again !
<rindolf> http://paste.debian.net/113171/ - can anyone tell me why it yields the wrong line numbers?
<kaustuv> rindolf: the first line is line number 0 or 1?
<rindolf> kaustuv: 1.
<kaustuv> then there is an obvious bug in line 15
<rindolf> kaustuv: no, I'm adding idx to the row index.
<rindolf> The row index is already starting-from-1.
<kaustuv> how wrong are the line numbers? are they off by a constant?
<rproust> rindolf: you should use pattern matching rather than "if rest != []…".
adlsaks has quit [Ping timeout: 264 seconds]
<rindolf> rproust: OK.
<rproust> rindolf: is ~data supposed to be a constant in input_doc_tree?
<nicolas__> (thx larhat, it works now ;) )
nicolas__ has quit [Quit: Quitte]
<rindolf> rproust: don't know, I started from that code.
<rproust> where's the doc for Xmlm?
<rindolf> kaustuv: well, I have a 3-lines offset here.
<rindolf> And here it's 1.
<kaustuv> Does Xmlm.input always return 1 perchance?
<rindolf> kaustuv, rproust : http://www.shlomifish.org/art/better-scm/index.html - that's the input file.
<kaustuv> err, Xmlm.pos
<rindolf> Darcs... %-)
<notk0> anyone here familiar with ocamllex?
<kaustuv> notk0: just ask your question
<rproust> rindolf: can you paste the error output too?
<notk0> on the example page '{' [^ '\n']* '}'{ toy_lang lexbuf }(* eat up one-line comments *)
<notk0> but when I do '{' (_*) '}' for multiline comments I get an error
<rindolf> rproust: there is no error output.
notk0 has quit [Quit: bye bye]
<rproust> rindolf: then what do you mean by "it yields the wrong line numbers"?
jamii has quit [Ping timeout: 248 seconds]
<rindolf> rproust: I'm getting dest/t2-homepage/art/better-scm/index.html|517| and still maintain. Now "SCM" stands for "Source Configuration Management"
<rindolf> rproust: while it's line 514
ftrvxmtrx has joined #ocaml
<rproust> rindolf: maybe it has to do with comments handling
<rproust> try removing them from the file and see if it changes anything
<rproust> (especially multiline comments)
<rindolf> rproust: :-S
<rproust> :%s/<!--.*-->//g or something like it in vim
<rindolf> rproust: didn't help.
ikaros has joined #ocaml
pdhborges has joined #ocaml
rindolf has quit [Ping timeout: 240 seconds]
ymasory has joined #ocaml
pdhborges has quit [Ping timeout: 252 seconds]
<vivanov> in oasis, when running make doc i get: Error: Unbound module Mutex, but the library compiles just fine. how to fix it?
<vivanov> make && make test work ok
<gildor_> vivanov: this is related to ocamldoc and the fact that it doesn't find external doc for Mutex
<gildor_> vivanov: you can safely ignore this
<gildor_> vivanov: you'll just end up with a e.g. val foo: Mutex.t -> unit Mutex.t not being a ling
<gildor_> link
<vivanov> gildor_: but i dont end up with a built documentation
<vivanov> gildor_: http://pastebin.com/HeLf7P7D
<vivanov> end up with this http://pastebin.com/Aa162eET
pdhborges has joined #ocaml
emmanuelux has joined #ocaml
adr1en has joined #ocaml
<adr1en> is anyone aware of libraries for L-systems?
emmanuelux has quit [Remote host closed the connection]
emmanuelux has joined #ocaml
<mrvn> adr1en: those things to grow trees?
<gildor_> vivanov: I can reproduce your bug outside oasis
<gildor_> vivanov: with just lock.ml and ocamlfind ocamldoc
<gildor_> vivanov: did you have a working example before ?
<mrvn> adr1en: that seems like something you write in 10 lines or less.
<adr1en> mrvn: famous last words :P
<adr1en> mrvn: depends on the features: if you want to display, if you want to parse, ... ;-)
<gildor_> vivanov: humm, I correct myself, I fix the bug
<gildor_> vivanov: can I see the lock.ml code ?
StepanKuzmin has joined #ocaml
<mrvn> Well, you have a type t for your varibles, an initial element start : t and rules is a map of t -> t list and then a method to iterate
<mrvn> adr1en: parsing and displaying is another matter
<mrvn> adr1en: I was thinking a functor you apply to some hardoded L-system
<adr1en> ah, I was thinking about something more complicated than it actually is =)
<adr1en> even though I see a potential issue
ymasory_ has joined #ocaml
ymasory_ has quit [Read error: Connection reset by peer]
<adr1en> the systems can "turn" 50°, which means that you might not (and usually won't) land on a pixel
<adr1en> bah, room is too noisy to do anything
lopex has quit []
Rickasaurus has quit [Ping timeout: 246 seconds]
Cyanure has quit [Quit: Quitte]
larhat has quit [Quit: Leaving.]
dnolen has joined #ocaml
ymasory has quit [Ping timeout: 246 seconds]
vivanov has quit [Read error: Connection reset by peer]
lopex has joined #ocaml
<mrvn> adr1en: "turn" 50° is already an interpretation of the data related to turtle graphics. Nobody says your L system represents a command sequence for a turtle.
<mrvn> You also need to do this with some autoscaling so that larger results use smaller steps.
<adr1en> yeah, I was actually worried about precision but it's not an issue actually
<mrvn> It looks better if you use aliasing
vivanov has joined #ocaml
<adr1en> yeah, but first: go home, and eat :P
adr1en has left #ocaml []
<vivanov> gildor_ : sorry -- been out -- here it is http://pastebin.com/UVQ4Xviy
dnolen has quit [Quit: dnolen]
jonafan_ is now known as jonafan
<gildor_> vivanov: the issue seems related to ocamlfind not setting -I +threads
<vivanov> gildor_: ok , i see
<vivanov> looking at it ...
<vivanov> thelema: how to use that?
thelema_ has joined #ocaml
<thelema_> vivanov: it gets put in myocamlbuild.ml by oasis
<gildor_> vivanov, you can replace at the end of the generated by this http://pastebin.com/AmkQz3uu
<gildor_> vivanov: and submit a bug to either oasis (to implement the fix) or the Gerd (ocamlfind maintainer)
<vivanov> gildor_: ok -- will do -- but where should i put it? into myocamlbuild.ml ?
thelema has quit [Ping timeout: 258 seconds]
<gildor_> at the end of the generated myocamlbuild.ml (there is already a piece of dispatch function, you can replace it)
<gildor_> vivanov: ^^^, my sentence get truncated
StepanKuzmin has quit [Remote host closed the connection]
<vivanov> gildor_: did like you said -- http://pastebin.com/5ityHQnc -- still same error
StepanKuzmin has joined #ocaml
Yoric has quit [Quit: Yoric]
<gildor_> vivanov: is the command line causing the error exactly the same
<gildor_> vivanov: you should have -I +threads in it
<gildor_> vivanov: ah wait a minute, this is not ["ocaml"; "doc"; "threads"] but ["ocaml"; "doc"; "pkg_threads"]
<vivanov> ok -- amending
<vivanov> gildor_: working now -- thanks very much :)
philtor has joined #ocaml
<gildor_> vivanov: no pb
<vivanov> :):)
ftrvxmtrx has quit [Quit: Leaving]
ttamttam has quit [Remote host closed the connection]
flux has quit [Read error: Operation timed out]
flux has joined #ocaml
thomasga has quit [Quit: Leaving.]
Snark has joined #ocaml
marchdown has joined #ocaml
Associ8or has joined #ocaml
Associat0r has quit [Ping timeout: 246 seconds]
ftrvxmtrx has joined #ocaml
jamii has joined #ocaml
Associ8or has quit [Ping timeout: 246 seconds]
Associat0r has joined #ocaml
avsm has joined #ocaml
ulfdoz has joined #ocaml
pdhborges has quit [Ping timeout: 252 seconds]
sepp2k has joined #ocaml
[1]Rickasaurus has joined #ocaml
Snark has quit [Quit: Ex-Chat]
Associat0r has quit [Read error: Connection reset by peer]
Associat0r has joined #ocaml
ymasory has joined #ocaml
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
avsm has quit [Quit: Leaving.]
Cyanure has joined #ocaml
ymasory has quit [Quit: Leaving]
ygrek has joined #ocaml
npouillard has quit [Ping timeout: 248 seconds]
myst has joined #ocaml
myst has quit [Client Quit]
__marius__ has quit [Ping timeout: 246 seconds]
StepanKuzmin has quit [Remote host closed the connection]
StepanKuzmin has joined #ocaml
rien has quit [Ping timeout: 240 seconds]
rien has joined #ocaml
Yoric has joined #ocaml
npouillard has joined #ocaml
npouillard has quit [Read error: Connection reset by peer]
npouillard has joined #ocaml
__marius__ has joined #ocaml
Fullma has quit [Ping timeout: 246 seconds]
__marius__ has quit [Ping timeout: 248 seconds]
mfp has quit [Ping timeout: 246 seconds]
__marius__ has joined #ocaml
Fullma has joined #ocaml
mfp has joined #ocaml
yezariaely has joined #ocaml
__marius__ has quit [Read error: Connection reset by peer]
philtor has quit [Ping timeout: 246 seconds]
yezariaely has quit [Quit: Leaving.]
chewbran1a has left #ocaml []
Cyanure has quit [Remote host closed the connection]
ulfdoz has quit [Ping timeout: 276 seconds]
Poet_ has joined #ocaml
jamii has quit [Ping timeout: 246 seconds]
_andre has quit [Quit: *puff*]
myu2 has quit [Remote host closed the connection]
<adrien> for a library, if I'm install .cmx/.cmo files along with .cmxa/.cma files, I have to install absolutely all of them, right?
<adrien> (most probably, but yacfe has 208 of them so it's worth asking)
<thelema_> adrien: depends on how you expect people to use the .cm* files
<thelema_> if I were you, I'd just install the .cm?a files and the .mli files
<adrien> why not others?
<thelema_> they already exist in the .cm?a file as if that file were a directory
<thelema_> although batteries installs everything, so I guess you can if you want. why would you want to hold back any .cm[xo] files?
edwin has quit [Remote host closed the connection]
<adrien> iirc you need the .cmx files for inlining (does that also apply to .cmo files?)
<thelema_> I don't think so - batteries doesn't install those.
<gildor_> adrien: the bytecode doesn't apply the same optimi, so the .cma is enough
<adrien> ok, so .cm* except .cmo?
* adrien has started to make serious godi packages and tarballs of libraries
<thelema_> *.cm[ix], *.mli, *.cmxa, *.cma
<thelema_> and .cmxs if you can make it
<adrien> right, mli too
<adrien> not my library so I'm not going to make big changes yet
<adrien> when using "ocamlfind install", is there an "easy" way to list the files to install or do I have to list them all?
dnolen has joined #ocaml
<thelema_> adrien: just have to list them all
<adrien> ok, thanks, I might skip the .cmx files for now then :P
<thelema_> also, don't exclude people on platforms with no ocamlopt
<thelema_> if you can, allow compilation/installation of bytecode only
<adrien> or I just use a wildcard
<adrien> that's an open issue, I don't know how to do it without resorting to "test -e foo/bar.cmxa"
scooty-puff has joined #ocaml
<adrien> I seriously need sleep: good night
<scooty-puff> is there a good source for documentation on the newest camlp4?
<scooty-puff> in particular, converting patt to expr - fun x -> x, i want to convert the pattern x to the expr x
<scooty-puff> or at least see if they have the same captured identifier
<thelema_> scooty-puff: this is the best I can google up: http://brion.inria.fr/gallium/index.php/Category:Camlp4
<scooty-puff> ok
ygrek has quit [Ping timeout: 246 seconds]
<scooty-puff> thats the same site i had been looking around - its weird there isn't more extensive documentation (template haskell seemed to have plenty, i'm just saying...)
<thelema_> my guess is that not enough people learn camlp4, and those that do are so busy building the future to have much time for helping others learn camlp4
<gildor_> oasis released in GODI ;-)
<adrien> \o/
<scooty-puff> i wonder if they'd be less busy if they had more help from those who learned
<thelema_> scooty-puff: unlikely
<adrien> I guess, the mirrors need to catch up
<gildor_> I just refreshed http://godi.camlcity.org/godi/toc/toc-3.11.html and it already appears there
<thelema_> gildor_: any chance I can get some cleaning-up options on oasis-db -- delete a package, edit package name
<gildor_> (for ocaml 3.11 release line)
<gildor_> thelema_: just for odb admin panel or in general ?
<thelema_> admin panel, and maybe also for files uploaded by me
<gildor_> to remove a package in the admin panel, just set it to version none in testing
<thelema_> yes, got that part
<gildor_> oasis-db won't allow easy removal of packages uploaded (except for admin)
<thelema_> I uploaded pcre as pcre-ocaml, and had to re-upload to fix the name
<gildor_> I suppose, you are talking about pcre-ocaml
<thelema_> yup
<gildor_> well, you don't have to fix the name this way
<gildor_> its real name is pcre-ocaml, after all
<gildor_> but the findlib name is pcre
<thelema_> I do have to have a package named pcre
<gildor_> that is something that you can change once the online edit of _oasis will be made possible
<thelema_> ok
* gildor_ still busy working on various aspect of oasis-db
adlsaks has joined #ocaml
lopexx has joined #ocaml
lopex has quit [Ping timeout: 260 seconds]
thelema_ has quit [Remote host closed the connection]
<scooty-puff> what is the difference between IdLid, IdUid, and IdAnt? my guess is first is a standard literal, second is a unicode (does ocaml support unicode in source?) literal, and i have no clue what IdAnt is
<scooty-puff> here:
<scooty-puff> is what i was referencing
<rproust> gildor_: the oasis in GODI thing is a really good news
dnolen has quit [Quit: dnolen]
<rproust> thanks
<scooty-puff> ok, nevermind
<gildor_> rproust: was quite easy in fact to do
<gildor_> rproust: I almost copy the deps from the debian packages and that was ok
<rproust> gildor_: when 3.12 mirrors are updated, I'll play with it
<rproust> there are a few simple libraries I plan to port to OASIS
adlsaks has quit [Ping timeout: 260 seconds]
Yoric has quit [Quit: Yoric]
ikaros has quit [Quit: Leave the magic to Houdini]
dnolen has joined #ocaml
adlsaks has joined #ocaml
scooty-puff has quit [Quit: Leaving]
* gildor_ is uploading oasis to debian
<gildor_> rproust: 3.12 will be update when debian will switch to 3.12 I think
<gildor_> rproust: pretty busy with oasis-db now
[1]Rickasaurus is now known as Rickasaurus
dnolen has quit [Quit: dnolen]
Poet_ has quit [Ping timeout: 264 seconds]
adlsaks has quit [Ping timeout: 246 seconds]
Amorphous has quit [Ping timeout: 246 seconds]
thelema has joined #ocaml
Amorphous has joined #ocaml
dnolen has joined #ocaml
philtor has joined #ocaml
astory has joined #ocaml
<astory> if I have a type I want to define and export, do I put it in just the .mli, or both the .mli and the .ml?
<thelema> astory: you have to put it in both
<astory> that's unfortunate, I hate repeating myself
sepp2k has quit [Quit: Leaving.]
ymasory has joined #ocaml