ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.1 announcement at http://ocaml.org/releases/4.02.html | Public channel logs at http://irclog.whitequark.org/ocaml
Simn has quit [Quit: Leaving]
whirm has quit [Quit: WeeChat 1.2]
jonludlam has quit [Ping timeout: 246 seconds]
lordkryss has quit [Quit: Connection closed for inactivity]
MrScout_ has quit [Ping timeout: 256 seconds]
lobo has quit [Quit: leaving]
tmtwd has quit [Ping timeout: 256 seconds]
mcclurmc has quit [Remote host closed the connection]
Cyanure has quit [Remote host closed the connection]
victoroak has joined #ocaml
victoroak has left #ocaml [#ocaml]
mcclurmc has joined #ocaml
victoroak has joined #ocaml
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mcclurmc has quit [Remote host closed the connection]
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
victoroak has quit [Quit: Page closed]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
victoroak has joined #ocaml
walter|r has quit [Remote host closed the connection]
walter|r has joined #ocaml
struktured has quit [Ping timeout: 265 seconds]
Algebr has quit [Ping timeout: 276 seconds]
rgrinberg has joined #ocaml
<JuanDaugherty> nice log archive thing
iZsh has quit [Quit: ZNC - http://znc.in]
iZsh has joined #ocaml
fraguk has joined #ocaml
jonh has joined #ocaml
fraguk has quit []
tmtwd has joined #ocaml
victoroak has quit [Quit: Leaving]
SomeDamnBody has joined #ocaml
ygrek has joined #ocaml
tmtwd has quit [Ping timeout: 246 seconds]
rgrinberg has quit [Ping timeout: 264 seconds]
cdidd has quit [Read error: Connection reset by peer]
<walter|r> i'm having problems installing llvm with opam
<walter|r> does anyone know what might be wrong? http://pastebin.com/tNQBkq20
<walter|r> i'm running OS X
ygrek has quit [Remote host closed the connection]
idegen has quit [Quit: Leaving.]
idegen has joined #ocaml
ob_ has quit [Quit: Connection closed for inactivity]
maurer has quit [Ping timeout: 255 seconds]
maurer has joined #ocaml
enquora has quit [Quit: enquora]
victoroak has joined #ocaml
idegen has quit [Quit: Leaving.]
darkf has joined #ocaml
psy_ has joined #ocaml
psy_ has quit [Remote host closed the connection]
psy_ has joined #ocaml
robink has quit [Ping timeout: 244 seconds]
SomeDamnBody has quit [Ping timeout: 276 seconds]
Nahra` has quit [Remote host closed the connection]
Nahra` has joined #ocaml
Nahra` has quit [Remote host closed the connection]
robink_ has joined #ocaml
mcclurmc has joined #ocaml
pyon has quit [Quit: fix config]
inf-gropeoid has joined #ocaml
inf-gropeoid is now known as pyon
mcclurmc has quit [Ping timeout: 265 seconds]
pyon has quit [Client Quit]
dtscode is now known as bulbasaur
pyon has joined #ocaml
sdothum has quit [Ping timeout: 252 seconds]
bulbasaur is now known as charmander
contempt has quit [Ping timeout: 252 seconds]
contempt has joined #ocaml
brendan has quit [Quit: leaving]
brendan has joined #ocaml
rgrinberg has joined #ocaml
hay207 has joined #ocaml
AlexRussia has quit [Quit: WeeChat 1.2-dev]
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
hay207 has quit [Ping timeout: 265 seconds]
milosn has quit [Ping timeout: 252 seconds]
mcclurmc has joined #ocaml
rgrinberg has quit [Ping timeout: 264 seconds]
milosn has joined #ocaml
slash^ has joined #ocaml
tmtwd has joined #ocaml
psy_ has quit [Quit: Leaving]
keen______ has joined #ocaml
ggole has joined #ocaml
rgrinberg has joined #ocaml
keen_____ has quit [Ping timeout: 240 seconds]
slash^ has quit [Read error: Connection reset by peer]
zmyrgel has joined #ocaml
slash^ has joined #ocaml
MercurialAlchemi has joined #ocaml
xificurC has quit [Quit: WeeChat 1.2]
xificurC has joined #ocaml
tmtwd has quit [Quit: Leaving]
mcclurmc has quit [Remote host closed the connection]
rgrinberg has quit [Ping timeout: 246 seconds]
rgrinberg has joined #ocaml
charmander is now known as agent_black
milosn_ has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn_ is now known as milosn
Simn has joined #ocaml
larhat1 has joined #ocaml
larhat has quit [Ping timeout: 250 seconds]
mankyKitty has joined #ocaml
rgrinberg has quit [Ping timeout: 246 seconds]
swgillespie has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 265 seconds]
MercurialAlchemi has joined #ocaml
<agent_black> Can someone help me with this? https://bpaste.net/show/9c9df6bd13a1
PM` is now known as PM
lopex has quit [Quit: Connection closed for inactivity]
fractionuser has joined #ocaml
fractionuser has left #ocaml [#ocaml]
rgrinberg has joined #ocaml
rgrinberg has quit [Ping timeout: 264 seconds]
yomimono_ has quit [Ping timeout: 252 seconds]
<ggole> agent_black: ocaml's parser isn't newline sensitive, so that's being parsed as an application of foo to four arguments
<ggole> Prefix the print_string with let () = and you should be right
MercurialAlchemi has quit [Ping timeout: 276 seconds]
c74d has quit [Remote host closed the connection]
c74d has joined #ocaml
<zmyrgel> I tried to install xml-light with opam but it failed
<zmyrgel> the error is that the Makefile xml-light uses contains non-portable sed command which errors out
<zmyrgel> it would seem that the Makefile is generated by ocamake but I can't find sed definitions from ocamake sources
Kakadu has joined #ocaml
rand000 has joined #ocaml
<zmyrgel> the problem is "sed -itmp "s|@VERSION@|$(VERSION)|g" META" call in the Makefile
rgrinberg has joined #ocaml
<zmyrgel> I'm on OpenBSD and its sed doesn't have the '-i' flag at all
<zmyrgel> any ideas how to get it fixed?
<agent_black> ggole: Thanks. If I start ending all of these with ;; would it fix the issue as well?
rgrinberg has quit [Ping timeout: 256 seconds]
amnn has joined #ocaml
freling has joined #ocaml
yomimono_ has joined #ocaml
hay207 has joined #ocaml
Haudegen has quit [Ping timeout: 256 seconds]
<ggole> agent_black: yep
<ggole> Although most people seem to prefer the let () =
<agent_black> thanks man!
<agent_black> Thats probably a better way to do it. Its just hard for me to let go of my ;'s after c++
amnn has quit [Read error: Connection reset by peer]
amnn has joined #ocaml
SIGILL has quit [Quit: WeeChat 1.1.1]
SIGILL has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
agent_black is now known as dtscode
dtscode is now known as agent_dtscode
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Haudegen has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
lopex has joined #ocaml
rand000 has quit [Ping timeout: 252 seconds]
breadmonster has joined #ocaml
<breadmonster> What's the recommended way to pick up OCaml for Haskell users?
emanuelz has quit [Quit: emanuelz]
hay207 has quit [Quit: Leaving]
<yomimono_> breadmonster: I don't know what those with more experience would recommend, but I came to OCaml from Haskell and had success with https://realworldocaml.org
<breadmonster> yomimono_: Oh okay.
<yomimono_> breadmonster: sorry for the banal advice; I don't know of a special resource for that circumstance but RWO was at least not extra confusing
<mankyKitty> breadmonster: I'm finding this UPenn course pretty nice way to just dive in https://www.seas.upenn.edu/~cis341/current/
<mankyKitty> I also use Haskell so many of the concepts are familiar, this course seems like a nice project to just dive in the deep end with
<breadmonster> mankyKitty: This is perfect.
<breadmonster> Though I'll also read Real World OCaml side by side.
<breadmonster> Thanks!
<mankyKitty> if RWO is anything like RWH then it'll be great reference to keep handy, that's what I'm doing.
<breadmonster> mankyKitty: The course is pretty awesome, but I know very little about computers o.O
<mankyKitty> only one way to learn. :D
ggole has quit [Ping timeout: 265 seconds]
<breadmonster> No, as in I know very little about architecture and so on, but okay.
<breadmonster> This should be fun :D
Enjolras has quit [Ping timeout: 252 seconds]
ggole has joined #ocaml
cdidd has joined #ocaml
k1000 has quit [Quit: .]
k1000 has joined #ocaml
yomimono_ has quit [Ping timeout: 252 seconds]
yomimono_ has joined #ocaml
MercurialAlchemi has joined #ocaml
tmtwd has joined #ocaml
yomimono_ has quit [Ping timeout: 265 seconds]
Simn has quit [Ping timeout: 252 seconds]
rand000 has joined #ocaml
k1000 has quit [Quit: .]
victoroak has quit [Remote host closed the connection]
k1000 has joined #ocaml
Simn has joined #ocaml
rgrinberg has joined #ocaml
hay207 has joined #ocaml
slash^ has joined #ocaml
Anarchos has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
sdothum has joined #ocaml
BitPuffin|osx has joined #ocaml
jeroldhaas_ has joined #ocaml
sh0t has joined #ocaml
jeroldhaas has quit [Ping timeout: 265 seconds]
tmtwd has quit [Ping timeout: 276 seconds]
chris2 has quit [Ping timeout: 252 seconds]
chris2 has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
tmtwd has joined #ocaml
lopex has quit [Quit: Connection closed for inactivity]
Pepe_ has quit [Ping timeout: 276 seconds]
slash^ has left #ocaml [#ocaml]
chris2 has quit [Ping timeout: 276 seconds]
amnn has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<walter|r> hey guys, i'm having problems installing llvm with opam
<walter|r> does anyone know what might be wrong? http://pastebin.com/tNQBkq20
<walter|r> i'm running OS X
slash^ has joined #ocaml
<theblatte> walter|r: did you try running "opam depext llvm.3.6" as suggested by opam? it looks like you may be missing some non-opam dependencies
tmtwd has quit [Ping timeout: 272 seconds]
<walter|r> theblatte: yes, i got this: http://pastebin.com/6udPtLps
chris2 has joined #ocaml
<theblatte> walter|r: well, I'm out of ideas then
amnn has joined #ocaml
<walter|r> dsheets: thanks
idegen has joined #ocaml
vpm has quit [Quit: co'o]
<tokenrove> is there a way to test if the runtime system lock has been acquired, especially within gdb?
vpm has joined #ocaml
Submarine has joined #ocaml
psy_ has joined #ocaml
rgrinberg has joined #ocaml
A1977494 has joined #ocaml
chris2 has quit [Ping timeout: 265 seconds]
enquora has joined #ocaml
rgrinberg has quit [Ping timeout: 252 seconds]
Haudegen has quit [Ping timeout: 252 seconds]
A1977494 has left #ocaml [#ocaml]
psy_ has quit [Ping timeout: 264 seconds]
chris2 has joined #ocaml
Gama11 has joined #ocaml
nullcat_ has joined #ocaml
rand000_ has joined #ocaml
rand000 has quit [Ping timeout: 250 seconds]
<nullcat_> good afternoon...
<Drup> good morning :D
sh0t has quit [Quit: Leaving]
Haudegen has joined #ocaml
bezirg has joined #ocaml
jonludlam has joined #ocaml
<nullcat_> at cambridge already
<nullcat_> only one timezone diff with you
<Drup> actually no, since I'm in portland right now
<Drup> It's really the morning :D
<nullcat_> ...
breadmonster has quit [Ping timeout: 246 seconds]
<nullcat_> OPLSS?
<Drup> PLDI.
<nullcat_> oh oh
<theblatte> nice
Haudegen has quit [Ping timeout: 256 seconds]
struktured has joined #ocaml
Anarchos has joined #ocaml
darkf has quit [Quit: Leaving]
slash^ has quit [Read error: Connection reset by peer]
struktured has quit [Ping timeout: 245 seconds]
struktured has joined #ocaml
tmtwd has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 246 seconds]
nullcat_ has quit [Read error: Connection reset by peer]
Submarine has quit [Ping timeout: 252 seconds]
freling has quit [Quit: Leaving.]
SomeDamnBody has joined #ocaml
_whitelogger has joined #ocaml
rgrinberg has joined #ocaml
struktured has quit [Ping timeout: 245 seconds]
rgrinberg has quit [Ping timeout: 252 seconds]
Pepe_ has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
Snark has joined #ocaml
Haudegen has quit [Ping timeout: 265 seconds]
lopex has joined #ocaml
zaquest has quit [Read error: Connection reset by peer]
zaquest has joined #ocaml
struktured has joined #ocaml
OnkV has joined #ocaml
wraithm has joined #ocaml
OnkV has quit [Ping timeout: 256 seconds]
OnkV has joined #ocaml
slash^ has joined #ocaml
OnkV has quit [Ping timeout: 272 seconds]
victoroak has joined #ocaml
OnkV has joined #ocaml
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
A19774941 has joined #ocaml
jonludlam has quit [Ping timeout: 264 seconds]
MercurialAlchemi has quit [Ping timeout: 250 seconds]
A19774941 has left #ocaml [#ocaml]
<haesbaert> how do I get an int32 out of a string like "aaaaaaaa" ?
<haesbaert> argfhh, I mean, an int32 out of a string like "aaaa"
<ggole> Pull out the bytes, combine them
<haesbaert> hmm not sure I follow
<haesbaert> I thought about getting the Char.code of each byte and then building up the int
<ggole> That's pretty much what I was suggesting, yep
<haesbaert> ah ok, I was wondering if there was a more direct approach, thank
<haesbaert> *thanks
<ggole> It's clumsy since you have to go through a few functions
ernst has quit [Quit: leaving]
rgrinberg has joined #ocaml
pyon has quit [Quit: fix config]
pyon has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
wraithm has quit [Quit: leaving]
duqu_ has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg1 has joined #ocaml
rgrinberg has quit [Ping timeout: 244 seconds]
SomeDamnBody has quit [Ping timeout: 256 seconds]
mcclurmc has joined #ocaml
OnkV has quit [Ping timeout: 245 seconds]
yomimono has joined #ocaml
nullcat_ has joined #ocaml
mcclurmc has quit [Ping timeout: 244 seconds]
swgillespie has joined #ocaml
MercurialAlchemi has joined #ocaml
Haudegen has joined #ocaml
emanuelz has joined #ocaml
ollehar has joined #ocaml
tmtwd has joined #ocaml
Denommus has joined #ocaml
monoprotic has quit []
Algebr has joined #ocaml
monoprotic has joined #ocaml
sdothum has quit [Ping timeout: 255 seconds]
sdothum has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg1 has quit [Ping timeout: 252 seconds]
jonawaw has joined #ocaml
wraithm has joined #ocaml
rgrinberg1 has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
mcclurmc has joined #ocaml
<ollehar> in menhir lexer, can I add support for german/frensh/swedish letters?
Haudegen has joined #ocaml
<ollehar> a-z A-Z plus åäö etc
mcclurmc has quit [Ping timeout: 245 seconds]
Denommus has quit [Ping timeout: 256 seconds]
<jonawaw> I got a stack overflow question for you all! :)
<companion_cube> ollehar: you need a unicode-aware lexer,such as sedlex
<ollehar> companion_cube: and plug it in menhir?
<companion_cube> I think menhir doesn't care
<companion_cube> it only requires a Lexing.lexbuf input
ygrek has joined #ocaml
jonawaw has quit [Ping timeout: 246 seconds]
<ollehar> companion_cube: but then I would have to write another lexer?
<ollehar> no big deal, I guess.
AlexRussia has joined #ocaml
<companion_cube> there is ulex, too, I think
<ollehar> or lexer "grammar"
<companion_cube> but it's modular anyway, the parser doesn't know what the lexer does
<ollehar> I would need help with this, I think :P
<ollehar> hm
<ollehar> maybe stackoverflow, then
slash^ has quit [Read error: Connection reset by peer]
rbocquet has quit [Ping timeout: 272 seconds]
<companion_cube> ollehar: menhir (or ocamlyacc) generates a function Lexing.lexbuf -> foo, for a top-level rule that parses foo
<companion_cube> how you create/manage the lexbuf is orthogonal
<Drup> ollehar: search the log of the chan, it has been discussed here several time
<ollehar> Drup: ok
<companion_cube> err, it produces (lexbuf -> token) -> lexbuf -> foo
<companion_cube> lexer function + lexbuf
boegel has joined #ocaml
duqu_ has quit [Read error: Connection reset by peer]
psy_ has quit [Ping timeout: 252 seconds]
<ollehar> ah, this uses menhir and ulex, https://github.com/vbmithr/ocaml-sgf, will take that if possible
tane has joined #ocaml
psy_ has joined #ocaml
freling has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
zpe has joined #ocaml
rbocquet has joined #ocaml
<ollehar> uhm, so, what is the range of chars in menhir? can I use all ascii?
Andre has joined #ocaml
<companion_cube> currently it's ascii, I think
<companion_cube> waaaait
<companion_cube> no, menhir doesn't care
<companion_cube> at all
<companion_cube> menhir doesn't know strings
psy_ has quit [Ping timeout: 276 seconds]
Andre has left #ocaml [#ocaml]
<ollehar> so what's the default lexer? ocamllex
<def`> or sedlex
<ollehar> ok
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
zpe has quit [Ping timeout: 276 seconds]
t4nk229 has joined #ocaml
clockish has joined #ocaml
nullcat has joined #ocaml
SomeDamnBody has joined #ocaml
t4nk229 has quit [Ping timeout: 246 seconds]
ggole has quit []
<clockish> Hi all, syntax/language question: Is there a way to write a patten matching clause that matches any constructor (within the same type) of a given GADT signature?
<dsheets> clockish, no
rgrinberg1 has quit [Ping timeout: 264 seconds]
<clockish> shucks.
<ollehar> and ocamllex doesn't support extended ascii, I take it? doesn't seem so, at least. :/
<companion_cube> you need an unicode aware lexer, anyway
<ollehar> nooooo
<ollehar> but ok
BitPuffin|osx has quit [Ping timeout: 264 seconds]
WanderingGlitch has quit [Changing host]
WanderingGlitch has joined #ocaml
LnL has quit [Quit: ZNC - http://znc.in]
<dsheets> clockish, the pattern match of gadts introduces type equalities on the rhs which are hard to reconcile with the pattern alternative operator
Algebr has quit [Ping timeout: 264 seconds]
robink_ has quit [Ping timeout: 255 seconds]
robink_ has joined #ocaml
robink_ has quit [Ping timeout: 248 seconds]
mcclurmc has joined #ocaml
psy_ has joined #ocaml
lobo has joined #ocaml
paarth has quit [Ping timeout: 265 seconds]
robink_ has joined #ocaml
mcclurmc has quit [Ping timeout: 265 seconds]
SomeDamnBody has quit [Ping timeout: 255 seconds]
rand000_ has quit [Ping timeout: 264 seconds]
ygrek has quit [Ping timeout: 264 seconds]
rgrinberg1 has joined #ocaml
luzie has quit [Ping timeout: 250 seconds]
rgrinberg1 has quit [Ping timeout: 245 seconds]
swgillespie has joined #ocaml
hay207 has quit [Quit: Leaving]
luzie has joined #ocaml
rand000 has joined #ocaml
victoroak has quit [Ping timeout: 252 seconds]
MercurialAlchemi has quit [Ping timeout: 264 seconds]
rand000 has quit [Quit: leaving]
tane has quit [Quit: Verlassend]
rgrinberg1 has joined #ocaml
SomeDamnBody has joined #ocaml
struktured has quit [Ping timeout: 256 seconds]
ollehar has quit [Quit: ollehar]
struktured has joined #ocaml
rgrinberg1 has quit [Ping timeout: 256 seconds]
SomeDamnBody has quit [Ping timeout: 265 seconds]
<ericbmerritt> is there a way to include a module that takes a functor into another module that takes the same functor. That seems like it should be doable but ...
Simn has quit [Read error: Connection reset by peer]
Simn has joined #ocaml
Simn has quit [Client Quit]
<thizanne> ericbmerritt: # module M (A : sig type t val compare : t -> t -> int end) = struct include Map.Make (A) end;;
<ericbmerritt> thizanne: thanks. though I think this added to my confusion (through no fault of yours)
srcerer_ has joined #ocaml
srcerer has quit [Ping timeout: 276 seconds]
lobo has quit [Ping timeout: 276 seconds]
Gama11 has quit [Read error: Connection reset by peer]
kakadu has quit [Remote host closed the connection]
<ericbmerritt> thizanne: does it make sense to do something like https://gist.github.com/ericbmerritt/00d5496515adbab9a896
<ericbmerritt> ?
rgrinberg1 has joined #ocaml
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yomimono has quit [Quit: Leaving]
<ericbmerritt> essentially, I want to define a concrete signature of a module that takes a function. actually eventually I want to define several concrete signatures for the same module. along with a 'make' module
<ericbmerritt> the functor is throwing me on the syntax to use though
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
<Drup> ericbmerritt: if F is a module type that happen to be the type of a functor, you can't apply it
<Drup> it's not a functor, it's a type.
madroach has quit [Ping timeout: 264 seconds]
freling has quit [Quit: Leaving.]
madroach has joined #ocaml
<ericbmerritt> Drup. So S is the functor, SimpleSystem is a concrete implementation of S (so it is a functor as well).
<ericbmerritt> it just happens that it doesn't export anything beyond what S already exports
<Drup> S is not a functor
<Drup> it's a module type
<ericbmerritt> hmm. ok. my terminology is off. So its a type that takes a functor?
<ericbmerritt> that still leaves me with, how do I include it into the other module type
idegen has quit [Quit: Leaving.]
idegen has joined #ocaml
<Drup> ericbmerritt: it's the type of a functor
<ericbmerritt> ah. ok. that make sense to me
<Drup> ericbmerritt: to do a comparison
<Drup> type t = int -> float
<Drup> you can't do t(int)
<Drup> :)
amnn has quit [Quit: Textual IRC Client: www.textualapp.com]
<ericbmerritt> ok. thats fair. but isn't this more like 'type 'a t = 'a -> float' and 'type t2 = int t'?
amnn has joined #ocaml
<Drup> Nope
<ericbmerritt> does that make S not includable in another signature
<ericbmerritt> ?
<ericbmerritt> i have to run. i will come back in a couple of hours. This is driving me nut so I would love to get it figured out. Obviously I am missing some fundamental understanding
<Drup> so, what is usually done is to do something like that
<Drup> module type S = sig module Log : Nixy_log.S ..... end
<Drup> and then you use it like that:
<Drup> include (S with module Log := Log)
idegen has left #ocaml [#ocaml]
sdothum has quit [Read error: Connection reset by peer]
copycat has joined #ocaml