MaskRay has quit [Read error: Connection reset by peer]
Tobu has joined #ocaml
foocraft has quit [*.net *.split]
wagle has quit [*.net *.split]
pheredhel has quit [*.net *.split]
Derander_ has quit [*.net *.split]
Ptival has quit [*.net *.split]
jonafan has quit [*.net *.split]
larsrh has quit [*.net *.split]
Qrntzz has quit [*.net *.split]
pango has quit [*.net *.split]
milosn has quit [*.net *.split]
ousado has quit [*.net *.split]
srcerer has quit [*.net *.split]
emias has quit [*.net *.split]
noj has quit [*.net *.split]
r126f has quit [*.net *.split]
flux has quit [*.net *.split]
explodus has quit [*.net *.split]
mcclurmc_ has quit [*.net *.split]
xorAxAx has quit [*.net *.split]
lopex has quit [*.net *.split]
nimred has quit [*.net *.split]
Asmadeus has quit [*.net *.split]
chambart has quit [*.net *.split]
mfp has quit [*.net *.split]
_habnabit has quit [*.net *.split]
lusory has quit [*.net *.split]
Obfuscate has quit [*.net *.split]
malouin_ has quit [*.net *.split]
deavid has quit [*.net *.split]
pou has quit [*.net *.split]
everyonemines has quit [*.net *.split]
rossberg_ has quit [*.net *.split]
olasd has quit [*.net *.split]
ankit9 has quit [*.net *.split]
tomprince has quit [*.net *.split]
othiym231 has quit [*.net *.split]
wut__ has quit [*.net *.split]
haelix_ has quit [*.net *.split]
brendan has quit [*.net *.split]
tlockney has quit [*.net *.split]
svenl has quit [*.net *.split]
snarkyboojum has quit [*.net *.split]
othiym23 has quit [*.net *.split]
lamawithonel has quit [*.net *.split]
fraggle_ has quit [*.net *.split]
braibant has quit [*.net *.split]
willb has quit [*.net *.split]
ftrvxmtrx_ has quit [*.net *.split]
bobry has quit [*.net *.split]
sgnb has quit [*.net *.split]
Nass has quit [*.net *.split]
hcarty has quit [*.net *.split]
zzz_ has quit [*.net *.split]
daimrod has quit [*.net *.split]
metasyntax|work has quit [*.net *.split]
f[x] has quit [*.net *.split]
NaCl has quit [*.net *.split]
testcocoon has quit [*.net *.split]
yroeht has quit [*.net *.split]
in10t has quit [*.net *.split]
ski has quit [*.net *.split]
ivan\ has quit [*.net *.split]
dsheets has quit [*.net *.split]
rby has quit [*.net *.split]
thizanne has quit [*.net *.split]
MaskRay_ has quit [*.net *.split]
cdidd has quit [*.net *.split]
otk has quit [*.net *.split]
zmoazeni has quit [*.net *.split]
Tobu has quit [*.net *.split]
logicgeezer has quit [*.net *.split]
jlouis has quit [*.net *.split]
pcjoby has quit [*.net *.split]
kmc has quit [*.net *.split]
mal`` has quit [*.net *.split]
maufred_ has quit [*.net *.split]
hyperboreean has quit [*.net *.split]
shachaf has quit [*.net *.split]
bitbckt has quit [*.net *.split]
adrien has quit [*.net *.split]
rixed has quit [*.net *.split]
joewilliams has quit [*.net *.split]
gildor has quit [*.net *.split]
bnwr has quit [*.net *.split]
companion_cube has quit [*.net *.split]
patronus has quit [*.net *.split]
thelema has quit [*.net *.split]
bacam has quit [*.net *.split]
jacktrip has quit [*.net *.split]
yezariaely has quit [*.net *.split]
TaXules has quit [*.net *.split]
ppilatus has quit [*.net *.split]
zorun has quit [*.net *.split]
ftrvxmtrx has quit [*.net *.split]
strlen has quit [*.net *.split]
caligula_ has quit [*.net *.split]
mejalx has quit [*.net *.split]
MaskRay has joined #ocaml
Tobu has joined #ocaml
othiym23 has joined #ocaml
cdidd has joined #ocaml
Qrntzz has joined #ocaml
lamawithonel has joined #ocaml
everyonemines has joined #ocaml
fraggle_ has joined #ocaml
zorun has joined #ocaml
ivan\ has joined #ocaml
ftrvxmtrx has joined #ocaml
rossberg_ has joined #ocaml
ppilatus has joined #ocaml
pango has joined #ocaml
Ptival has joined #ocaml
braibant has joined #ocaml
logicgeezer has joined #ocaml
metasyntax|work has joined #ocaml
willb has joined #ocaml
emias has joined #ocaml
ftrvxmtrx_ has joined #ocaml
joewilliams has joined #ocaml
noj has joined #ocaml
foocraft has joined #ocaml
f[x] has joined #ocaml
ankit9 has joined #ocaml
r126f has joined #ocaml
mcclurmc_ has joined #ocaml
xorAxAx has joined #ocaml
strlen has joined #ocaml
dsheets has joined #ocaml
snarkyboojum has joined #ocaml
svenl has joined #ocaml
tlockney has joined #ocaml
brendan has joined #ocaml
haelix_ has joined #ocaml
wut__ has joined #ocaml
othiym231 has joined #ocaml
tomprince has joined #ocaml
daimrod has joined #ocaml
zzz_ has joined #ocaml
hcarty has joined #ocaml
Nass has joined #ocaml
sgnb has joined #ocaml
bobry has joined #ocaml
jonafan has joined #ocaml
larsrh has joined #ocaml
Derander_ has joined #ocaml
pheredhel has joined #ocaml
wagle has joined #ocaml
ski has joined #ocaml
in10t has joined #ocaml
yroeht has joined #ocaml
testcocoon has joined #ocaml
NaCl has joined #ocaml
olasd has joined #ocaml
milosn has joined #ocaml
rby has joined #ocaml
ousado has joined #ocaml
lopex has joined #ocaml
srcerer has joined #ocaml
flux has joined #ocaml
thizanne has joined #ocaml
kmc has joined #ocaml
gildor has joined #ocaml
mal`` has joined #ocaml
otk has joined #ocaml
zmoazeni has joined #ocaml
maufred_ has joined #ocaml
bnwr has joined #ocaml
explodus has joined #ocaml
companion_cube has joined #ocaml
hyperboreean has joined #ocaml
lusory has joined #ocaml
Obfuscate has joined #ocaml
shachaf has joined #ocaml
malouin_ has joined #ocaml
deavid has joined #ocaml
patronus has joined #ocaml
jlouis has joined #ocaml
nimred has joined #ocaml
jacktrip has joined #ocaml
pcjoby has joined #ocaml
Asmadeus has joined #ocaml
chambart has joined #ocaml
mfp has joined #ocaml
thelema has joined #ocaml
caligula_ has joined #ocaml
_habnabit has joined #ocaml
bitbckt has joined #ocaml
adrien has joined #ocaml
bacam has joined #ocaml
yezariaely has joined #ocaml
pou has joined #ocaml
TaXules has joined #ocaml
rixed has joined #ocaml
mejalx has joined #ocaml
Tobu has quit [Ping timeout: 272 seconds]
Cyanure has joined #ocaml
pango is now known as pangoafk
othiym231 has quit [Quit: leaving]
Tobu has joined #ocaml
ivan\ has quit [Ping timeout: 240 seconds]
Submarine has joined #ocaml
ivan\ has joined #ocaml
cyphase has joined #ocaml
Cyanure has quit [Ping timeout: 248 seconds]
Algo has joined #ocaml
<Algo>
someone told me "OCaml requires you to have sharp mental math skills"... is this true? I don't think I understand... or that claim even makes any sense
emmanuelux has joined #ocaml
<Ptival>
Algo: I think it's an overstatement :\
<Ptival>
not any sharper math skills than what you need for programming in any language
mdelaney has joined #ocaml
mdelaney has quit [Client Quit]
cago has joined #ocaml
Tobu has quit [Ping timeout: 248 seconds]
Algo has quit [Remote host closed the connection]
<mehdid>
gildor: ocamlcore.org seems down.
Cyanure has joined #ocaml
Tobu has joined #ocaml
Submarine has quit [Ping timeout: 244 seconds]
<everyonemines>
Well, you need sharp mental math skills to write the kind of programs people tend to write in ocaml. :-)
edwin has joined #ocaml
antegallya has joined #ocaml
Cyanure has quit [Ping timeout: 246 seconds]
<Ptival>
everyonemines: which is not "OCaml requires you to" :)
Cyanure has joined #ocaml
Arsenik has joined #ocaml
n25 has joined #ocaml
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
antegallya has quit [Client Quit]
antegallya has joined #ocaml
antegallya has quit [Client Quit]
antegallya has joined #ocaml
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
_andre has joined #ocaml
othiym23 has quit [Quit: Leaving...]
mcclurmc_ has quit [Excess Flood]
mcclurmc has joined #ocaml
Drakken has joined #ocaml
MaskRay has quit [Quit: leaving]
<Drakken>
I get "Error: Unbound record field label" when I try to access a field in a record whose type is defined in another file.
ikaros has joined #ocaml
<adrien>
t.Module.label
<adrien>
you need to put the module name, or open, locally or globally
<Drakken>
adrien thanks. Does the dot notation in record.field do anything at all? It seems no better than (field record)
avsm has joined #ocaml
<adrien>
hmmm, I don't understand your question: what do you mean by "(field record)"? do you have an example code?
MaskRay has joined #ocaml
dwhj has joined #ocaml
<Drakken>
adrien I mean why doesn't OCaml just use (Module.label t) to access the field? How is t.Module.label any better?
asdfhjkl has joined #ocaml
<daimrod>
Hi, is there a way to know how many time an expression takes to evaluate? something like: time fib 10
<avsm>
if it makes you feel better, Module.(t.label) works just fine
<adrien>
I use it when I get to Module.(t.label.foo.moo.bar.baz)
<adrien>
Drakken: what if you have a value/function named label in Module?
<Drakken>
adrien is that the only reason? So labels have their own namespace?
thomasga has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
<Drakken>
why does Module.(t.label) work if t is a record defined outside of Module?
<adrien>
Module.(t.label) is pretty much the same as
<adrien>
let open Module in
<adrien>
t.label
<adrien>
it's open: it does not hide other modules (unless there is a name conflict)
<adrien>
and I don't think labels have their own namespace, it's just a different synta
<adrien>
x
<Drakken>
but that syntax distinguishes between labels and values.
<adrien>
how so?
<adrien>
well, yes, it distinguishes between the two but I don't see your point; it's quite the typical syntax
<Drakken>
because t.label is different from (label t)
<adrien>
yes
<adrien>
which you need to ensure if you want to be able to have functions and values named "label" too
<adrien>
plus, ocaml, from a record definition, a class definition, a type declaration, ..., would never create accessor and setter functions
<adrien>
typically, a camlp4 extension could however
* adrien
throws a beer at avsm to compensate for the fosdem
<Drakken>
It should though. If I define type foo = { name: string } then foo.string should be the getter for the string field.
<adrien>
foo.name, you mean
<Drakken>
:/
<adrien>
and you can access it, yes, but it doesn't generate a new function
<Drakken>
but it should.
<adrien>
I don't know how they're implemented exactly but I doubt that "foo.name" is a function call; it's most probably a much simpler intstruction
<adrien>
it shouldn't! (hold on)
<adrien>
in a pretty small project, I have a file "types.ml" for project-wide type definitions; it has records and a rough total of 30 fields; if ocaml generated getters and setters, I would have 60 functions
<Drakken>
so?
<bnwr>
Drakken: if you want getters generated for fields of records, use camlp4
<bnwr>
there's probably some extension out there that does that
<adrien>
there's a public pa_whatever for getters and setters in object
<adrien>
s
<adrien>
by jacques garrigue iirc
<Drakken>
The main thing I want is labels that don't conflict with each other.
<adrien>
two solutions: 1- different modules/namespaces; 2- objects
<flux>
drakken, by 'should be' you mean 'I wish it were so'? I guess this would need to be handled differently then as well: type foo = { mutable name : string }
roha has joined #ocaml
<Drakken>
flux right, it just seems like a good idea. I suppose getters for mutable fields would be implemented differently, but that shouldn't be too hard.
<flux>
well, personally I haven't found field accessors not being functions a problem
<flux>
a much bigger problem has been that constructors aren't functions
<flux>
because they cannot be curried and then this doesn't work: List.map Some [1; 2; 3]
<adrien>
no, I want runtime type information for automated (de)serialization!
ftrvxmtrx has quit [Read error: Operation timed out]
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
ftrvxmtrx has joined #ocaml
<adrien>
Ptival: yup, but I wanted something "now" and to avoid relying on syntax extensions to generate code
letrec has joined #ocaml
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya1 has quit [Client Quit]
antegallya has joined #ocaml
antegallya has quit [Client Quit]
antegallya has joined #ocaml
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya1 is now known as antegallya
<everyonemines>
IIRC MLton has constructors and accessors as functions
<everyonemines>
for automated deserialization, rather than runtime type info I think the ML way is to use a hashtable or btree
<everyonemines>
of variant types
oriba has joined #ocaml
roha has quit [Ping timeout: 252 seconds]
Kakadu has joined #ocaml
Snark has joined #ocaml
EmmanuelOga has joined #ocaml
antegallya has quit [Read error: Connection reset by peer]
antegallya1 has joined #ocaml
antegallya1 is now known as antegallya
Tobu has quit [Read error: Operation timed out]
roha has joined #ocaml
MaskRay has quit [Ping timeout: 245 seconds]
antegallya has quit [Ping timeout: 245 seconds]
MaskRay has joined #ocaml
antegallya has joined #ocaml
companion_cube has quit [Ping timeout: 248 seconds]
roha has quit [Ping timeout: 276 seconds]
dwhj has joined #ocaml
Tobu has joined #ocaml
edwin1 has joined #ocaml
edwin has quit [Disconnected by services]
antegallya has quit [Read error: Connection reset by peer]
antegallya1 has joined #ocaml
antegallya1 is now known as antegallya
jamii has joined #ocaml
everyonemines has quit [Quit: Leaving.]
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya1 is now known as antegallya
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya1 is now known as antegallya
antegallya has quit [Read error: Connection reset by peer]
antegallya has joined #ocaml
oriba has quit [Quit: oriba]
Tobu has quit [Ping timeout: 260 seconds]
hnrgrgr has quit [Read error: Operation timed out]
Schadenfreude has quit [Read error: Operation timed out]
diml has quit [Read error: Operation timed out]
pr has quit [Read error: Connection reset by peer]
mehdid has quit [Read error: Operation timed out]
rwmjones has quit [Read error: Operation timed out]
pr_ has joined #ocaml
Schadenf1eude has joined #ocaml
hnrgrgr_ has joined #ocaml
rwmjones has joined #ocaml
mehdid has joined #ocaml
diml has joined #ocaml
clog has joined #ocaml
ulfdoz_ has joined #ocaml
ulfdoz has quit [Ping timeout: 265 seconds]
ulfdoz_ is now known as ulfdoz
letrec has quit [Remote host closed the connection]
iago has joined #ocaml
iago has quit [Client Quit]
Tobu has joined #ocaml
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
mdelaney has joined #ocaml
antegallya1 has joined #ocaml
antegallya has quit [Read error: Connection reset by peer]
antegallya1 is now known as antegallya
srcerer has quit [Ping timeout: 244 seconds]
iago has joined #ocaml
antegallya has quit [Ping timeout: 245 seconds]
dwhj has quit [Quit: dwhj]
mdelaney has quit [Ping timeout: 248 seconds]
Drup has joined #ocaml
antegallya has joined #ocaml
mdelaney has joined #ocaml
EmmanuelOga has quit [Quit: WeeChat 0.3.7-dev]
antegallya has quit [Ping timeout: 245 seconds]
Tobu has quit [Ping timeout: 272 seconds]
Tobu has joined #ocaml
antegallya has joined #ocaml
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya1 is now known as antegallya
antegallya has quit [Client Quit]
antegallya has joined #ocaml
pangoafk is now known as pango
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya has joined #ocaml
antegallya1 has quit [Read error: Connection reset by peer]
srcerer has joined #ocaml
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
hsuh has joined #ocaml
antegallya1 has joined #ocaml
antegallya has quit [Disconnected by services]
antegallya1 has quit [Client Quit]
antegallya has joined #ocaml
antegallya has quit [Client Quit]
antegallya has joined #ocaml
_andre has quit [Quit: leaving]
Tobu has quit [Read error: Operation timed out]
willb has quit [Ping timeout: 276 seconds]
willb has joined #ocaml
ankit9 has quit [Quit: Leaving]
Tobu has joined #ocaml
othiym23 has joined #ocaml
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
jonafan has quit [Quit: leaving]
jonafan has joined #ocaml
<jonafan>
what's the best ocaml blog?
<jonafan>
i've got janestreet
<thelema>
jonafan: you know about the ocaml planet?
<jonafan>
hmm, maybe i should subscribe to this
<jonafan>
i'm forgetting my ocaml
<jonafan>
I've gone from writing an STM monad to rereading my STM monad and going "how did I figure this stuff out???"
<adrien>
I like fortunes
<adrien>
Eagleson's Law: Any code of your own that you haven't looked at for six or more
<adrien>
months, might as well have been written by someone else. (Eagleson is
<adrien>
an optimist, the real number is more like three weeks.)
<jonafan>
hah
Tobu has quit [Ping timeout: 260 seconds]
<Qrntzz>
eagleson just had a good memory
Tobu has joined #ocaml
f[x] has quit [Ping timeout: 245 seconds]
Submarine has quit [Quit: Leaving]
ikaros has quit [Remote host closed the connection]
EmmanuelOga has joined #ocaml
ulfdoz has quit [Ping timeout: 244 seconds]
<flux>
hmm, so there's code that can be tco'd with one definition of >> but not another definition of >>, when the first is tail recursive but the second (is tail recursive and) uses %reavapply?
<flux>
oh, so it was explained that an optimization opportunity can make non-tr code into tr-code
<thelema>
flux: if only functions like >> could be inlined
<thelema>
as is, the call to >> is mandatory (higher order functions), thus the stack grows
EmmanuelOga has quit [Ping timeout: 244 seconds]
<flux>
hmm, but >> is the last thing it calls, no?
<flux>
and f a is the last thing >> calls?
<thelema>
hmmm...
<thelema>
ok, I don't know then.
<flux>
let (>>) a f = f a in let rec f x = x + 1 >> f in f 42;; seems to run in constant-space in my toplevel (little optimizations)
<flux>
ptival, if you have a piece of code demonstrating the difference, I would like to see it
<Ptival>
flux: oh... let me try that again
roha has joined #ocaml
Snark has quit [Quit: Quitte]
<Ptival>
huh... I can't get that C-c C-f working
<Ptival>
where can I get ocaml-mode?
<flux>
it comes it ocaml
<thelema>
Ptival: use newest tuareg, caml-types and caml-help are in ocaml source tree
<thelema>
Ptival: does C-c C-t work?
<flux>
thelema, what is the version?
<thelema>
I just used marmalade to upgrade to 2.05
<thelema>
I don't know what version it was added in, low 2.0, I think
<flux>
ok, debian unstable is at 2.0.4. I guess I'll stand to wait for a while to get it.
<flux>
actually hm
<flux>
I have some self-installed tuareg instead
Tobu has quit [Read error: Operation timed out]
<Ptival>
thelema: C-c C-t doesn't work, I just installed tuareg
<_habnabit>
define "doesn't work"
<thelema>
Ptival: you need 1) tuareg 2.0.5, 2) caml-types and caml-help (from ocaml distribution) and 3) have compiled with annot.
<thelema>
-annot
<_habnabit>
actually, as long as we're discussing this..
<_habnabit>
is there a way to inform tuareg-mode about an ocamlbuild _build directory? all of my annot files are in there; I've just been cp-ing them out when I need to view annotations
<Ptival>
_habnabit: doesn't work as in "not defined" :)
<_habnabit>
Ptival, _what_ isn't defined?
<Ptival>
I'll get caml-types and caml-help
<thelema>
Ptival: yes, you need those for both C-c C-t and C-f
<Ptival>
the shortcut itself is undefined
<thelema>
tuareg just loads caml-types and caml-help; those files provide annot support
<_habnabit>
what if you just M-x caml-types-show-type
<thelema>
_habnabit: I bet it won't work because no caml-types to define it
<thelema>
if caml-types were loaded, it would set the key shortcut
<Ptival>
yes I looked at tuareg.el and it does define them only if some caml-mode is set
ftrvxmtrx__ has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 244 seconds]
ftrvxmtrx__ has quit [Client Quit]
Tobu has joined #ocaml
roha has quit [Ping timeout: 252 seconds]
roha has joined #ocaml
n25 has quit [Quit: Leaving]
mnabil has joined #ocaml
<Ptival>
now the shortcut works, but I can't compile it right with -annot
<Ptival>
emacs ; C-x C-f /tmp/test.ml ; C-c C-c ; ocamlc -annot ; C-c C-f -> No annotation file. You should compile with option "-annot"
<thelema>
ocamlc -annot test.ml
Tobu has quit [Ping timeout: 272 seconds]
<Ptival>
ok so it's a tail call in this simple setting
<Ptival>
I made some tests with Damien Doligez and it seemed that at the time something was preventing TCO
<Ptival>
I don't remember what we put exactly, I'll try to find that...
thomasga has quit [Quit: Leaving.]
<Ptival>
flux: let rec f la lb x = match la, lb with | x::xs, y::ys -> x >> f xs ys | _, _ -> x
<Ptival>
this was what I tried it with
<_habnabit>
yeah, that couldn't be tail recursive
<thelema>
_habnabit: why?
<_habnabit>
oh, >> is %revapply
<_habnabit>
never mind
<thelema>
:)
<thelema>
f xs ys x is clearly tail recursive
<Ptival>
if I define let ( >> ) a f = f a, f is a stack call though
<thelema>
interesting...
<_habnabit>
not exactly the first choice I'd have for a %revapply operator
<Ptival>
if I define external ( >> ) : 'a -> ('a -> 'b) -> 'b = "%revapply", I think it was a tail call
<thelema>
Ptival: you know that batteries (and many others) use |> for %revapply, right?
<Ptival>
thelema: yes maybe I can change my notation, whatever :)
<thelema>
It won't hurt for OCaml to have a consistent notation for %revapply
<thelema>
(although now that revapply is in the compiler, I don't see why we don't put something using it in the stdlib, other than the bikeshedding over naming)
<Ptival>
strange my ocamlc here doesn't like "%revapply", whil I think it's the same version as the one at work
dwhj has joined #ocaml
pheredhel has quit [Ping timeout: 252 seconds]
edwin1 has quit [Remote host closed the connection]
pheredhel has joined #ocaml
mnabil has quit [*.net *.split]
asdfhjkl has quit [*.net *.split]
rossberg_ has quit [*.net *.split]
asdfhjkl has joined #ocaml
rossberg_ has joined #ocaml
mnabil has joined #ocaml
Tobu has joined #ocaml
jamii has quit [Remote host closed the connection]
antegallya has quit [Ping timeout: 260 seconds]
roha has quit [Ping timeout: 252 seconds]
antegallya has joined #ocaml
dwhj has quit [Quit: dwhj]
asdfhjkl has quit [Quit: Leaving]
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
willb has quit [Read error: Operation timed out]
Xizor has quit []
Tobu has quit [Read error: Operation timed out]
emmanuelux has quit [Read error: Connection reset by peer]
emmanuelux has joined #ocaml
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
Tobu has joined #ocaml
Drakken has left #ocaml []
emmanuelux has quit [Remote host closed the connection]
emmanuelux has joined #ocaml
emmanuelux has quit [Read error: Connection reset by peer]
antegallya has quit [Remote host closed the connection]