adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | Current MOOC: https://huit.re/ocamlmooc | OCaml 4.04.0 release notes: http://ocaml.org/releases/4.04.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
<orbifx> for the record, according to this: https://caml.inria.fr/mantis/view.php?id=6754
<orbifx> it should be lib/ocaml/topdirs.cmi
wtetzner has joined #ocaml
orbifx has quit [Ping timeout: 252 seconds]
hcarty has quit [Ping timeout: 252 seconds]
shinnya has quit [Ping timeout: 240 seconds]
rpip has joined #ocaml
paroneayea has joined #ocaml
sh0t has quit [Remote host closed the connection]
silver has quit [Read error: Connection reset by peer]
alienbot has joined #ocaml
myst|fon has quit [Quit: Connection closed for inactivity]
trepta has joined #ocaml
breitenj has quit [Ping timeout: 240 seconds]
lambda_foo has joined #ocaml
breitenj has joined #ocaml
wtetzner has quit [Remote host closed the connection]
snhmib has quit [Ping timeout: 240 seconds]
nkhodyunya has joined #ocaml
snhmib has joined #ocaml
mfp has quit [Ping timeout: 258 seconds]
nkhodyunya has quit [Quit: Leaving.]
wu_ng has joined #ocaml
wtetzner has joined #ocaml
hcarty has joined #ocaml
hcarty has quit [Ping timeout: 240 seconds]
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
wtetzner has quit [Remote host closed the connection]
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
ygrek has quit [Ping timeout: 248 seconds]
ryanartecona has joined #ocaml
rgrinberg has joined #ocaml
sz0 has joined #ocaml
wtetzner has joined #ocaml
tmtwd has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
wagle has quit [Remote host closed the connection]
alienbot has quit [Remote host closed the connection]
alienbot has joined #ocaml
wtetzner has quit [Remote host closed the connection]
tristero has quit [Ping timeout: 248 seconds]
alienbot has quit [Quit: No Ping reply in 180 seconds.]
wtetzner has joined #ocaml
alienbot has joined #ocaml
wtetzner has quit [Ping timeout: 240 seconds]
breitenj has quit [Ping timeout: 256 seconds]
wagle has joined #ocaml
ygrek has joined #ocaml
breitenj has joined #ocaml
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
<rgrinberg> Is anyone able to install coq using opam in 4.04? Getting: Error: Could not compile the library to native code.
tmtwd has quit [Ping timeout: 240 seconds]
pierpa has quit [Ping timeout: 240 seconds]
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
<rgrinberg> I was just running out of memory T_T nvm
MercurialAlchemi has quit [Ping timeout: 240 seconds]
ryanartecona has quit [Quit: ryanartecona]
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
malc_ has joined #ocaml
ryanartecona has joined #ocaml
rcabaco_ has joined #ocaml
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
snhmib has quit [Ping timeout: 240 seconds]
rcabaco has quit [Ping timeout: 255 seconds]
wagle has quit [Remote host closed the connection]
rgrinberg has quit [Remote host closed the connection]
nkhodyunya has joined #ocaml
snhmib has joined #ocaml
govg has quit [Ping timeout: 252 seconds]
malc_ has quit [Remote host closed the connection]
Algebr`` has quit [Ping timeout: 245 seconds]
rossberg has quit [Ping timeout: 256 seconds]
ygrek has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
breitenj has quit [Ping timeout: 252 seconds]
breitenj has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
hcarty has joined #ocaml
hcarty has quit [Ping timeout: 256 seconds]
wagle has joined #ocaml
wagle has quit [Remote host closed the connection]
wagle has joined #ocaml
jnavila has joined #ocaml
calculemus has quit [Quit: WeeChat 1.6]
alfredo has joined #ocaml
trepta has quit [Ping timeout: 248 seconds]
AltGr has joined #ocaml
calculemus has joined #ocaml
govg has joined #ocaml
moei has quit [Read error: Connection reset by peer]
moei has joined #ocaml
sh0t has joined #ocaml
profan_ is now known as profan
ocaml805 has joined #ocaml
<ocaml805> http://pastebin.com/Na3TGH23 kludgy but I was trying to simulate [ zip (repeat i) [0..n-1] | i <- [0..m-1] ]
<ocaml805> How should I improve that ?
<Leonidas> ocaml805: I would use CCList.(--) to construct the ranges
<Leonidas> and then CCList.map over it
<companion_cube> CCList.init ?
<companion_cube> Leonidas: my next PR for ocaml will be List.{range,init}, I think
<Leonidas> And a TCO'd List.map?
<companion_cube> ah, that I'm not sure
<companion_cube> XL made the point that if your list is that long, you should probably use sth else
<companion_cube> so I don't think he changed his mind on that
<Leonidas> in any case, I think containers have a lot of handy things that should be in the stdlib
<companion_cube> oh, maybe flat_map though :3
<companion_cube> well, me too :-)
<companion_cube> but other people apparently don't agree (e.g. Daniel B)
<ocaml805> How do I install the container ?
<Leonidas> companion_cube: yeah well, lists can be matched upon, other things… not as easily
<Leonidas> ocaml805: opam install containers
<companion_cube> Leonidas: that's a good point indeed
<companion_cube> but still, there is List.rev_map
ocaml571 has joined #ocaml
ocaml571 has quit [Ping timeout: 260 seconds]
larhat has joined #ocaml
hannes has quit [Ping timeout: 272 seconds]
nkhodyunya has quit [Quit: Leaving.]
kakadu has joined #ocaml
hannes has joined #ocaml
rossberg has joined #ocaml
<ocaml805> CCList is not compatible with type grid = {gamegrid : cell list list}
<ocaml805> Maybe I am missing something.
mpenet has joined #ocaml
XC[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
M-pesterhazy has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
matth[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
lpw25[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
Guest23668[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
regnt[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
diamaths[m] has left #ocaml ["Kicked by @appservice-irc:matrix.org"]
<thizanne> ocaml805: CCList works on lists
<thizanne> here if g is a grid, then g is a record which has a field which is a list (of lists)
<thizanne> so you can use CCList on g.gamegrid
<thizanne> (although again you don't really nede a record if you have only one field, as D_rup told you yesterday)
mpenet has left #ocaml ["ERC (IRC client for Emacs 26.0.50.2)"]
govg has quit [Ping timeout: 256 seconds]
<ocaml805> Can CCList give me cell list list ? type cell = { alive : bool }
_andre has joined #ocaml
<thizanne> CCList is a module that provides you functions to work with lists (like the List module of the standard library)
larhat has quit [Quit: Leaving.]
<ocaml805> # let l = 1 -- 100;; val l : int CCList.t
<ocaml805> I am yet to explore CCList.
<ocaml805> properly
<thizanne> CCList.t is defined (and exported) as List.t (which is also named list)
<thizanne> #show_type CCList.t;; should show it
<thizanne> (in the toplevel)
<ocaml805> Yes. I see.
govg has joined #ocaml
demonimin has quit [Read error: Connection reset by peer]
silver has joined #ocaml
myst|fon has joined #ocaml
ltadeu has joined #ocaml
<dmbaturin> In Menhir, how do I raise the same Error exception that is raised on parse errrors myself from inside the production?
demonimin has joined #ocaml
govg has quit [Quit: leaving]
Flerex has joined #ocaml
govg has joined #ocaml
Flerex has quit [Client Quit]
dhil has joined #ocaml
infinity0_ has joined #ocaml
infinity0 is now known as Guest78056
infinity0 has joined #ocaml
Guest78056 has quit [Killed (adams.freenode.net (Nickname regained by services))]
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
<ocaml805> let l1 = 0 -- 4 in [ 0 -- 4 ];; creates [[0; 1; 2; 3; 4]]
Flerex has joined #ocaml
mfp has joined #ocaml
<def`> dmbaturin: $syntaxerror
hcarty has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
hcarty has quit [Ping timeout: 240 seconds]
<dmbaturin> def`: How could I forget... Thanks!
<dmbaturin> def`: By the way, do you remember of any project with good error handling in a menhir parser?
breitenj has quit [Ping timeout: 252 seconds]
<def`> for messages, compcert
<def`> for robustness, merlin is able to parse all files :P
<def`> (including incorrect ones I mean :))
<def`> dmbaturin: there is an article by f.pottier for generating error messages
infinity0 has quit [Remote host closed the connection]
lambda_foo has quit [Quit: Connection closed for inactivity]
breitenj has joined #ocaml
infinity0 has joined #ocaml
sz0 has quit [Quit: Connection closed for inactivity]
rcabaco_ is now known as rcabaco
gjaldon has joined #ocaml
govg has quit [Ping timeout: 240 seconds]
<ocaml805> type cell = { alive : bool } Can CCList create a list of lists of cell ?
freusque has quit [Ping timeout: 240 seconds]
larhat has joined #ocaml
snhmib has quit [Ping timeout: 245 seconds]
Flerex has quit [Quit: Textual IRC Client: www.textualapp.com]
demonimin has quit [Ping timeout: 240 seconds]
sz0 has joined #ocaml
demonimin has joined #ocaml
breitenj has quit [Ping timeout: 252 seconds]
<ocaml805> let l1 = 0 -- 4 in (let l2 = 0 -- 4 in [0 -- 4]);; l1 |> CCList.filter_map(fun x-> Some ({alive = true}));;
<ocaml805> That create a list of one list of type cell = { alive : bool }
<ocaml805> list of lists of type cell = { alive : bool } ?
wu_ng has quit [Ping timeout: 240 seconds]
<reynir> CCList.init 4 (fun _ -> { alive = true })
<reynir> s/4/5/, off by one heh
demonimin has quit [Ping timeout: 240 seconds]
breitenj has joined #ocaml
<ocaml805> list of lists ?
<ocaml805> one more call
<ocaml805> CCList.init 4 ( fun _ -> (CCList.init 4 (fun _ -> { alive = true })) );;
<ocaml805> No doc. at all.
<reynir> oh
<thizanne> you mean "no detailed tutorial on how to use containers when you don't know ocaml. at all."
gjaldon has quit [Remote host closed the connection]
<ocaml805> I know OCaml. But still learning. Roughly 500 lines of code.
demonimin has joined #ocaml
<thizanne> well here is the doc of containers http://cedeela.fr/~simon/software/containers/
wu_ng has joined #ocaml
<Drup> dmbaturin, def`: I think reason's parser also use the fancy new error message stuff
<ocaml805> Right
demonimin has quit [Ping timeout: 255 seconds]
<companion_cube> one of these days I'll modernize the docs of containers
<companion_cube> put the tutorial right into the readme, host doc on github…
<companion_cube> #after1.0
<reynir> heh
dhil has quit [Ping timeout: 240 seconds]
larhat has quit [Quit: Leaving.]
larhat has joined #ocaml
<ocaml805> let newgridzipper = { g with focus = hd; left = [g.focus]; right = tl } in Some(newgridzipper)
<ocaml805> Does focus = hd mean that left = [g.focus] gets the updated value or old value ?
demonimin has joined #ocaml
<ocaml805> No idea how unit tests are written.
<zozozo> ocaml805: old value
<ocaml805> or even what a unit is.
<ocaml805> Ok
<zozozo> unit is the type of ()
<ocaml805> I mean unit test.
<reynir> heh, unit tests: () = () etc
<ocaml805> :-) How do such tests work for OCaml ?
<zozozo> depends on the lib you want to use
<zozozo> afaik there is ounit, qtest, alcotest, qcheck
<ocaml805> I am used mock libraries.
<ocaml805> Ah!
fraggle-boate has quit [Ping timeout: 258 seconds]
cheater has quit [Ping timeout: 258 seconds]
troydm has quit [Ping timeout: 258 seconds]
fraggle-boate has joined #ocaml
cheater has joined #ocaml
troydm has joined #ocaml
snhmib has joined #ocaml
<ocaml805> match l,n with | hd :: tl,n when n > 0 -> loop (hd :: acc) (n - 1) tl | [],_ -> None | hd :: tl,0 -> Some (acc, hd, tl)
<ocaml805> _::_,1 is unmatched according to the error.
<ocaml805> Should I ignore ?
<zozozo> well, the type-cehcker cannot know it is catched by the 'when' statement
<Leonidas> unit testing? how retro
<Leonidas> writing possible test data and results by hand, like an animal
<dmbaturin> In a formal proof, simplifying it to () = () is a perfectly valid thing to do though. ;)
<dmbaturin> ocaml805: The only thing I find mildly irritating about ounit is that I can't do assert_raises with the exn constructor alone, but nothing short of camlp4 could change it.
<ocaml805> I've heard the term "Equational reasoning".
<ocaml805> That makes it sound that I am learned. But I am a learner.
<zozozo> Leonidas: well, even quickcheck can be expressed as some kind of unit test
ocaml805 has quit [Ping timeout: 260 seconds]
maattdd has joined #ocaml
maattdd has quit [Quit: WeeChat 1.5]
dhil has joined #ocaml
sz0 has quit [Quit: Connection closed for inactivity]
ryanartecona has joined #ocaml
rossberg has quit [Ping timeout: 240 seconds]
wtetzner has joined #ocaml
al-damiri has joined #ocaml
wtetzner has quit [Remote host closed the connection]
shinnya has joined #ocaml
rossberg has joined #ocaml
copy` has joined #ocaml
hunteriam has joined #ocaml
sillyotter has joined #ocaml
silver has quit [Read error: Connection reset by peer]
jmiven has quit [Quit: co'o]
jmiven has joined #ocaml
MercurialAlchemi has quit [Remote host closed the connection]
<copy`> Can I make all record fields from another module visible? (without opening that module and without repeating the type definition)
sillyotter has quit [Quit: WeeChat 1.4]
<companion_cube> I don't think so
<companion_cube> a local open can be adequate
<lobo> companion_cube: while you're at it. List. drop/take wouldbe nice in the stdlib too. the "more ocaml" book has a package almost just for that on github :D
<companion_cube> erf
<companion_cube> I'm a bit afraid that the more functions I had, the less likely to be merged the PR is
<Armael> I thought the mainteners were tired of the N unconcerted PRs, each adding one function to the stdlib
orbifx-m has joined #ocaml
<orbifx-m> how do I tell oasis to make a thread enabled build?
<companion_cube> Armael: I have no idea.
<companion_cube> do you think I should make one single PR to add everything from containers into the stdlib? 0:-)
<orbifx-m> threads?
<orbifx-m> hmm that's it
<flux> companion_cube, you could, but it would be pointless, wouldn't it?-)
<companion_cube> heh
<companion_cube> chances of being merged ~= 0
freusque has joined #ocaml
lfish has joined #ocaml
<lfish> hi, a question... should I prefer to raise Failure or Invalid_argument when a situation would break an invariant of an abstract type?
<lfish> (Like passing 0 as a denominator for a representation of a rational number)
<companion_cube> Invalid_argument, I think
<companion_cube> it's not very clear-cut
pierpa has joined #ocaml
yomimono has joined #ocaml
MercurialAlchemi has joined #ocaml
<lfish> then I'll stick with Invalid_argument, thanks
<zozozo> at least for the constructors of your abstract type, else I'd say assert false
alfredo has quit [Quit: Textual IRC Client: www.textualapp.com]
<companion_cube> hmm, assert false is very bad in a public API (in a library)
<companion_cube> I mean, it's ok for errors that are internal to the lib
<companion_cube> not for errors coming from user input
<zozozo> sure, I was think of cases when internal functions break an internal invariant (which sould not happen at all)
rgrinberg has joined #ocaml
myst|fon has quit [Quit: Connection closed for inactivity]
hcarty has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
gjaldon has joined #ocaml
kakadu has quit [Ping timeout: 258 seconds]
shinnya has quit [Ping timeout: 258 seconds]
<aantron> dmbaturin: you may want to glance at your nice tutorial in light of lwt 2.7.0 and this question: http://stackoverflow.com/questions/41617724/lwt-2-7-0-type-error/41618149#41618149
gjaldon has quit []
ryanartecona has joined #ocaml
<copy`> Is there a library that allows printing literals in ocaml syntax, something like: show (list (pair int string)) [3, "b"; 4, "c"]` -> "[3, "b"; 4, "c"]"
<copy`> Meh, probably I can do it myself
<jerith> copy`: Fmt has something like that.
<reynir> ppx_deriving has a 'show' plugin(?) that can help generate those show-functions
<copy`> Cool, I'll have a look at fmt
<companion_cube> also in containers
<companion_cube> CCFormat.Dump (inspired from Fmt indeed)
<copy`> So many options, thanks guys
<lfish> in containers tutorial I've seen expressions like, for instance, CCVector.(1 -- 10), is that normal syntax?
<chelfi> lfish: CCVector.(*expr*) means that CCVector is opened locally in the scope of expr and (--) is, I guess, a range operator
jnavila has quit [Ping timeout: 240 seconds]
johnelse_ has joined #ocaml
johnelse has quit [Read error: Connection reset by peer]
<companion_cube> yes
<companion_cube> it's similar to `let open CCVector in 1--10`
tokenrove has quit [Ping timeout: 258 seconds]
relrod has quit [Ping timeout: 258 seconds]
tokenrove has joined #ocaml
relrod_ has joined #ocaml
relrod_ has quit [Changing host]
relrod_ has joined #ocaml
hunteriam has quit [Quit: Connection closed for inactivity]
yomimono has quit [Ping timeout: 240 seconds]
larhat has quit [Quit: Leaving.]
trepta has joined #ocaml
smondet has joined #ocaml
yomimono has joined #ocaml
trepta has quit [Remote host closed the connection]
johnelse_ is now known as johnelse
ollehar has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
roberto_ has joined #ocaml
<Leonidas> or let open CCVector in (--) 1 10
tristero has joined #ocaml
<lfish> yeah... I was thinking of it as if it was like a filesystem, but the let open Module in ... way of seeing it makes perfect sense
orbifx has joined #ocaml
xorpse has joined #ocaml
AltGr has left #ocaml [#ocaml]
larhat has joined #ocaml
ryanartecona has joined #ocaml
orbifx-m has quit [Ping timeout: 240 seconds]
orbifx has quit [Ping timeout: 255 seconds]
relrod_ is now known as relrod
silver has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
ygrek has joined #ocaml
jnavila has joined #ocaml
<copy`> def`: Could you make a new opam release of grenier?
slash^ has joined #ocaml
yomimono has joined #ocaml
xorpse has quit [Ping timeout: 252 seconds]
dhil has quit [Ping timeout: 240 seconds]
jnavila has quit [Ping timeout: 252 seconds]
obadz has joined #ocaml
kakadu has joined #ocaml
jnavila has joined #ocaml
_andre has quit [Quit: leaving]
obadz has quit [Read error: Connection reset by peer]
trepta has joined #ocaml
octachron has joined #ocaml
ltadeu has quit [Ping timeout: 245 seconds]
Xadnem has joined #ocaml
Xadnem has quit [Client Quit]
lfish has quit [Ping timeout: 260 seconds]
wagle_ has joined #ocaml
wagle has quit [Remote host closed the connection]
wagle_ is now known as wagle
jnavila has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
omongo has joined #ocaml
omongo has quit [Client Quit]
jnavila has joined #ocaml
omongo has joined #ocaml
obadz has joined #ocaml
omongo has quit [Client Quit]
omongo has joined #ocaml
obadz has quit [Ping timeout: 255 seconds]
govg has joined #ocaml
orbifx has joined #ocaml
trepta has quit [Ping timeout: 240 seconds]
<def`> copy`: yes
slash^ has quit [Read error: Connection reset by peer]
yomimono has quit [Ping timeout: 240 seconds]
<copy`> Cheers
hcarty1 has joined #ocaml
obadz has joined #ocaml
hcarty has quit [Ping timeout: 252 seconds]
srax has quit [Ping timeout: 260 seconds]
srax has joined #ocaml
obadz has quit [Read error: Connection reset by peer]
Algebr`` has joined #ocaml
<kakadu> Folks, can I in myocamlbuild.ml add some switches to the beginning of command line? (-toolchain android seems to be position-dependent)
zv has joined #ocaml
madroach has quit [Ping timeout: 240 seconds]
madroach has joined #ocaml
<octachron> kakadu, afaik, not with tags: tag expansion assumes that everything is commutative, and where the expansion itself is determined by the rule
<kakadu> So, no chance that his will work?
<kakadu> flag ["compile"] (S [A"-toolchain"; A"android"]) ?
<octachron> kakadu, are you truing to set the ocamlfind -toolchain option?
<kakadu> yep
<octachron> ocamlbuild own toolchain does not fit your need?
<kakadu> what do you mean?
<octachron> sorry, I mean the ocambuild -toolchain option?
<octachron> i.e. calling ocamlbuild with "ocamlbuild -toolchain android"
yomimono has joined #ocaml
<kakadu> Ah, thanks
<kakadu> I did not know about this option
MercurialAlchemi has quit [Ping timeout: 240 seconds]
<orbifx> hey all
larhat has quit [Quit: Leaving.]
<orbifx> are record field names values? (or functions)
<kakadu> no
ollehar has quit [Quit: ollehar]
<orbifx> what are they?
<theblatte> identifiers
<theblatte> just a syntactic category
ryanartecona has quit [Quit: ryanartecona]
<orbifx> any further explanation of references to read on this?
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
ryanartecona has joined #ocaml
ryanartecona has quit [Client Quit]
ryanartecona has joined #ocaml
<kakadu> do you want to use them as functions?
<orbifx> I kinda though of them us such. Kept the language simpler
<orbifx> but I know I can use lenses etc
<orbifx> I use them in logarion
hcarty1 has quit [Quit: WeeChat 1.5]
<Armael> there's probably a ppx out there that can generate functions corresponding to record fields
ryanartecona has quit [Quit: ryanartecona]
<octachron> Janestreet's ppx_fields_conv does that (and a lot of other things)
<kakadu> I think it is another name of lenses
jnavila has quit [Remote host closed the connection]
rcabaco has quit [Ping timeout: 256 seconds]
<orbifx> octachron: what is conv? seen it in a few things, but never looked deeper
<Leonidas> orbifx: conv is basically the name for all kind of conversion macros
<orbifx> is it Janestreet specific?
<Leonidas> into sexp, js objects, what have you
<Leonidas> orbifx: not really. they just like naming things conv, but if you search for it there are a number of other packages also using that term
<Leonidas> kinda like ppx_ and pa_ prefixes
AlexRussia has quit [Ping timeout: 240 seconds]
<orbifx> thanks Leonidas
<orbifx> and it's not part of ppx? Just a stand alone project?
AlexRussia has joined #ocaml
<orbifx> rgrinberg: here?
<octachron> ppx is a name used for any exntension-point based preprocessor
<Leonidas> ppx is basically just the name given to preprocessors that use the OCaml AST. They don't even need to be written in OCaml, you could have ppx'es in bash.
<orbifx> ok
kakadu has quit [Remote host closed the connection]
<octachron> Leonidas, writing a ppx in bash sounds absolutely nightmarish
<orbifx> would probably end up relying on sed
<octachron> orbifx, I am not sure how much sed would work on a binary serialized ast
<orbifx> ow
<orbifx> might get hairy
yomimono has quit [Ping timeout: 252 seconds]
jimt_ has joined #ocaml
jimt has quit [Ping timeout: 248 seconds]
ryanartecona has joined #ocaml
jao has joined #ocaml
kareeeeem has quit [Quit: Connection closed for inactivity]
smondet has quit [Ping timeout: 255 seconds]