adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.02.3 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
NingaLeaf has joined #ocaml
NingaLeaf has quit [Client Quit]
NingaLeaf has joined #ocaml
NingaLeaf has quit [Client Quit]
madroach has quit [Ping timeout: 246 seconds]
madroach has joined #ocaml
NingaLeaf has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
malc_ has joined #ocaml
^elyse^ has quit [Quit: Leaving]
ygrek has joined #ocaml
lolisa has joined #ocaml
vanilla_ has joined #ocaml
vanilla_ has quit [Ping timeout: 260 seconds]
erider has joined #ocaml
erider has quit [Remote host closed the connection]
lobo has quit [Quit: leaving]
ontologiae_ has joined #ocaml
NingaLeaf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
NingaLeaf has joined #ocaml
FreeBirdLjj has joined #ocaml
raphaelss has quit [Ping timeout: 245 seconds]
NingaLeaf has quit [Ping timeout: 246 seconds]
sbrouf has quit [Ping timeout: 245 seconds]
mcc has joined #ocaml
ontologiae_ has quit [Ping timeout: 246 seconds]
vanilla_ has joined #ocaml
vanilla__ has joined #ocaml
vanilla_ has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
vanilla__ has quit [Remote host closed the connection]
vanilla_ has joined #ocaml
sbrouf has joined #ocaml
arquebus has joined #ocaml
Bahman has joined #ocaml
Guest53187 has quit [Ping timeout: 246 seconds]
Bahman has quit [Client Quit]
Bahman has joined #ocaml
trix has joined #ocaml
trix is now known as Guest41278
arquebus has quit [Quit: Textual IRC Client: www.textualapp.com]
Bahman_ has joined #ocaml
Bahman has quit [Ping timeout: 245 seconds]
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
Bahman_ is now known as Bahman
ygrek_ has quit [Ping timeout: 260 seconds]
lolisa has quit [Ping timeout: 260 seconds]
sbrouf has quit [Ping timeout: 260 seconds]
vanilla_ has quit [Read error: Connection reset by peer]
ygrek_ has joined #ocaml
supercircle4 has joined #ocaml
meiji11` has quit [Read error: Connection reset by peer]
meiji11` has joined #ocaml
ygrek_ has quit [Ping timeout: 260 seconds]
Intensity has joined #ocaml
govg has joined #ocaml
meiji11` has quit [Ping timeout: 246 seconds]
erikd has joined #ocaml
badon has quit [Quit: Leaving]
darkf has joined #ocaml
lolisa has joined #ocaml
badon has joined #ocaml
supercircle4 has quit [Quit: Sleep]
mcc has quit [Quit: Connection closed for inactivity]
govg has quit [Ping timeout: 246 seconds]
govg has joined #ocaml
FreeBirdLjj has joined #ocaml
struk|desk2 has quit [Remote host closed the connection]
slash^ has joined #ocaml
ygrek_ has joined #ocaml
raphaelss has joined #ocaml
lolisa has quit [Ping timeout: 260 seconds]
cody` has quit [Quit: Connection closed for inactivity]
ygrek_ has quit [Ping timeout: 260 seconds]
JacobEdelman has quit [Quit: Connection closed for inactivity]
mort___ has joined #ocaml
FreeBirdLjj has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 245 seconds]
Simn has joined #ocaml
FreeBirdLjj has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
slash^ has joined #ocaml
mort___ has quit [Quit: Leaving.]
Bahman_ has joined #ocaml
Bahman has quit [Ping timeout: 260 seconds]
Bahman_ has quit [Read error: Connection reset by peer]
FreeBirdLjj has quit [Remote host closed the connection]
supercircle4 has joined #ocaml
yegods has joined #ocaml
sbrouf has joined #ocaml
Kakadu has joined #ocaml
lolisa has joined #ocaml
antkong has joined #ocaml
malc_ has quit [Ping timeout: 260 seconds]
malc_ has joined #ocaml
yegods has quit [Remote host closed the connection]
tennix has joined #ocaml
<tennix> why "Aa" < "0b" is true in OCaml?
<def`> it is not ?
<tennix> this evaluate to be false in all other languages i know
<tennix> python, ruby, haskell etc
<malc_> # "Aa" < "0b";;
<malc_> - : bool = false
<companion_cube> # Char.code 'A', Char.code '0'
<companion_cube> - : int * int = (65, 48)
<Kakadu> Folks, have you seen any demos with jsoo toplevel and ppx?
<tennix> oh, mixed 0 and o in my repl
<tennix> actually 0 and O
<malc_> tennix: slashed zero was invented for a reason
<tennix> i'm doing a edx quiz in browser, and big o really looks like zero
yegods has joined #ocaml
antkong has quit [Quit: antkong]
lolisa has quit [Ping timeout: 245 seconds]
nicholasf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nicholasf has joined #ocaml
supercircle4 has quit [Quit: Sleep]
rand has joined #ocaml
malc_ has quit [Quit: leaving]
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
mort___ has joined #ocaml
MercurialAlchemi has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 260 seconds]
yegods has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 260 seconds]
yegods has joined #ocaml
tane has joined #ocaml
<ianhedoesit> is there any good paste service for ocaml?
<companion_cube> many support OCaml; my favorite one is http://paste.isomorphis.me/
Haudegen has joined #ocaml
<ianhedoesit> yeah, I was just hoping for a more rich syntax highlighting option.
<companion_cube> oh, I didn't compare, tbh :)
<ianhedoesit> yeah, they're all fine (most use the same syntax highlighting anyway)
<companion_cube> I suppose so, something like pygments or the php equivalent
<ianhedoesit> yup
nicholasf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nicholasf has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
yegods has quit [Remote host closed the connection]
ianhedoesit has quit [Quit: leaving]
nicholasf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yegods has joined #ocaml
eni_ has joined #ocaml
eni_ is now known as eni
zpe has joined #ocaml
^elyse^ has joined #ocaml
infinity0 has quit [Ping timeout: 260 seconds]
govg has quit [Ping timeout: 260 seconds]
mort___ has quit [Remote host closed the connection]
yegods has quit [Remote host closed the connection]
govg has joined #ocaml
infinity0 has joined #ocaml
mort___ has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
cody` has joined #ocaml
cdidd has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
cdidd has joined #ocaml
zpe has joined #ocaml
d0nn1e has quit [Ping timeout: 246 seconds]
d0nn1e has joined #ocaml
zpe has quit [Remote host closed the connection]
yomimono has joined #ocaml
rand has quit [Quit: leaving]
supercircle4 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
patronus_ has joined #ocaml
Nahra``` has joined #ocaml
flx_ has joined #ocaml
mehdi___ has joined #ocaml
pootler_ has joined #ocaml
infinity0 has joined #ocaml
Pepe__ has joined #ocaml
_2can_ has joined #ocaml
vbmithr has joined #ocaml
Mandus_ has joined #ocaml
adrien_z- has joined #ocaml
Drup has joined #ocaml
w1gz_ has joined #ocaml
infinity0 has quit [Remote host closed the connection]
flx_ is now known as flux
infinity0 has joined #ocaml
pootler_ has quit [Ping timeout: 260 seconds]
Simn has quit [Read error: Network is unreachable]
Guest55091 has joined #ocaml
edwin has joined #ocaml
M-Illandan has joined #ocaml
rbocquet has joined #ocaml
yminsky has quit [Read error: Connection reset by peer]
rom1504 has quit [Ping timeout: 264 seconds]
yminsky has joined #ocaml
lopex_ has joined #ocaml
lopex has quit [Ping timeout: 264 seconds]
lopex_ is now known as lopex
pootler_ has joined #ocaml
rom1504 has joined #ocaml
msch has quit [Read error: Connection reset by peer]
groovy3shoes has joined #ocaml
msch has joined #ocaml
mietek has quit [Ping timeout: 264 seconds]
groovy2shoes has quit [Ping timeout: 260 seconds]
mietek has joined #ocaml
S11001001_ has joined #ocaml
S11001001 has quit [Ping timeout: 264 seconds]
S11001001_ is now known as S11001001
ggole has joined #ocaml
<Kakadu> Any ideas why ocaml toplevel doesn't have directive like #ppx2 "(value : Ast_mapper.mapper)" ?
<companion_cube> what would that do?
<Kakadu> will try to apply mapper to evey definition
<Kakadu> at the moment #ppx does some System.command
<companion_cube> oh, I see
<companion_cube> that would be interesting
Guest55091 has quit [Read error: Network is unreachable]
Guest55091 has joined #ocaml
Sim_n has joined #ocaml
Guest55091 has quit [Ping timeout: 264 seconds]
JacobEdelman has joined #ocaml
FreeBirdLjj has joined #ocaml
Sim_n has quit [Read error: Network is unreachable]
Sim_n has joined #ocaml
yomimono has quit [Ping timeout: 260 seconds]
S11001001 has quit [Ping timeout: 264 seconds]
S11001001 has joined #ocaml
mort___ has quit [Remote host closed the connection]
^elyse^ has quit [Quit: Leaving]
yomimono has joined #ocaml
IP92 has joined #ocaml
<IP92> I have this code http://pastebin.com/fD9cByaZ and the error message is there as well, why am I getting that although I explicitly say that t = int ?
Leonidas has joined #ocaml
<def`> IP92: the error message is pretty clear
<def`> the signature expects a : unit -> int while the structure contains a : int
vanilla_ has joined #ocaml
<IP92> how do I denote no input arguments then? ?
<def`> let a () = 10
<IP92> or the other option is to write val a : int right?
<def`> yes
pierpa` has joined #ocaml
<IP92> but if I were to not specify that t = int, how could I have that a = 10 ? kinda leave the t abstract
<def`> I don't understand ?
<def`> you would only know that there is a value named a of type t
<def`> inside the structure, t is int and a is 10, outside, we can't tell anything
<IP92> yes, that's basically what I want
<def`> then juste remove with type t = int
pierpa has quit [Ping timeout: 245 seconds]
<IP92> like this http://pastebin.com/yxZ7jNtM ?
<IP92> the Proov2
<def`> you still have to provide a definition for t, which happens to
<def`> be an int
<def`> so add
<def`> type t = int to Proov2 and that will be fine
<IP92> what's the difference if I add the t = int after the :Proov as "with t = int"
<IP92> "with type t = int"*
<def`> in this case you are changing the signature
<IP92> in Proov1 the signature is type t = int; val a : t, in Proov2 the signature is type t; val a : t?
<def`> yes
<IP92> ok, thanks
<def`> but in both case there needs to be a type t in the structure
<def`> and furthermore, a should be of type t
<def`> each structure as a "most precise" signature.
<IP92> so if I tried computing something with Proov1.a, then the type is t, but in case of Proov2.a, it is of type int?
<def`> the opposite
<IP92> ah yes
<IP92> although I know that the Proov2.a is actually a 10
<def`> Proov1.a is of type Proov1.t = int
<def`> well, inside your mind but not elsewhere
Haudegen has quit [Ping timeout: 260 seconds]
<IP92> yes
<def`> it is just abstract :)
<IP92> and Proov2.a is of type Proov2.t, just an abstract type ?
<def`> exact
<IP92> ok, that cleared stuff up a bit, thanks
<def`> np
<def`> a structure has a canonical signature, then when you constrain it with ": some_signature"
<def`> the compiler check that the inclusion is correct (everything in some_signature must exists in the structure), and then forgets the rest (what was inside the structure but not in some_signature)
yawnt has joined #ocaml
yawnt has left #ocaml [#ocaml]
FreeBirdLjj has quit [Remote host closed the connection]
andreypopp has quit [Read error: Connection reset by peer]
andreypopp has joined #ocaml
Haudegen has joined #ocaml
tennix has quit [Ping timeout: 246 seconds]
vanilla_ is now known as smerdyakow
lopex has quit [Ping timeout: 264 seconds]
lopex has joined #ocaml
^elyse^ has joined #ocaml
IP92 has quit [Ping timeout: 260 seconds]
oldmanistan_ has quit [Ping timeout: 264 seconds]
oldmanistan_ has joined #ocaml
lobo has joined #ocaml
yomimono has quit [Ping timeout: 260 seconds]
<gasche> def`: "a structure has a canonical signature", I think you have some progress margin left regarding pedagogy
smerdyakow has quit [Ping timeout: 245 seconds]
Algebr` has joined #ocaml
larhat1 has joined #ocaml
m_ has joined #ocaml
^elyse^ has quit [Quit: Leaving]
BitPuffin|osx has joined #ocaml
mac10688 has joined #ocaml
<m_> Hi, in an OCaml file, how I can use a module in a different folder? I have a makefile using "ocamlfind ocamlopt ..." to build the target
supercircle4 has quit [Quit: Sleep]
Algebr` has quit [Remote host closed the connection]
supercircle4 has joined #ocaml
<Maelan> m_, folders are not visible in the OCaml language
<Maelan> all you have is a set of modules (possibly with submodules)
agumonkey has quit [Ping timeout: 245 seconds]
<Maelan> so if you have a module B/ModB.ml that uses the module A/ModA.ml
<ggole> m_: you can tell ocamlopt to search in directories with -I
<Maelan> then in B/ModB.ml you simply do things like « ModB.function_from_ModB » or « open ModB »
<Maelan> oops
<ggole> Although usually you would use a build system
agumonkey has joined #ocaml
<Maelan> then in B/ModB.ml you simply do things like « ModA.function_from_ModA » or « open ModA »
<m_> How I can d that? To clarify it, I have my main file in src folder, and module file in x folder.
<m_> Ah, thanks ggole, let me see if that works
<Maelan> and for compiling, you compile A/ModA.ml with something like « ocamlfind ocamlc -c B/ModB.ml -o B/ModB.cmo »
<ggole> You might also want to have a look at https://ocaml.org/learn/tutorials/compiling_ocaml_projects.html
<Maelan> s/B/A/g :-°
<Maelan> and the same for B/ModB
profan has quit [Ping timeout: 260 seconds]
<Maelan> then you link then with « ocamlfind ocamlc A/ModA.cmo B/ModB.cmo -o prgm.exe »
<m_> Thanks
smerdyakow has joined #ocaml
<mahem1_> Maelan: Hmmm, so if I wanted to emulate directory structures: A.ModA.my_func
<Maelan> (not sure about the exact commands, i remember standard ocaml tools being troublesome about files not in the current directory :/)
<mahem1_> Then I could have the directory structure: A/modA.ml and A/a.ml
oldmanistan_ has quit [Ping timeout: 264 seconds]
<Maelan> mahem1_, yes, you would have to explicitly create a module A that contains the module ModA
oldmanistan_ has joined #ocaml
<mahem1_> Where a.ml is just a dummy file: module ModA = ModA;;
<Maelan> the problem is module ModA still being globally visible, in addition to being available through module A
<mahem1_> True. But that isn't too too bad, is it?
Kakadu has quit [Ping timeout: 246 seconds]
<Maelan> a better setting would probably be putting the dummy “directory” module at the same level as the directory, instead of in it
IP92 has joined #ocaml
darkf has quit [Quit: Leaving]
<IP92> what's the |> operator?
<mahem1_> Maelan: that would make sense. But A/modA.ml would still be global?
<Maelan> mahem1_, the point of directories/submodules is to organize your modules neatly, so making ModA directly available without going through A would break that purpose
<Maelan> and if you have say A/Mod.ml and B/Mod.ml, and both directories A and B are in the search path
<Maelan> you will have trouble
<Maelan> mahem1_, depends of which directories you put in your search path for compiling/linking
<Maelan> with the structure you suggested, you would have to add every directory (directory A/ to access A/A.cmo), so everything would be visible and it would break the abstraction
mort___ has joined #ocaml
<mahem1_> Makes sense, so if you put a.ml in the "root" directory, how would one properly compile? (So that just a.ml is visible)
<Maelan> by putting A.cmo in the root/parent directory, you only have to add that parent directory in the search path
^elyse^ has joined #ocaml
<mahem1_> Makes sense, thanks for the explanation.
<ggole> IP92: function application, backwards
<IP92> ggole: ok, but if I initialize a map like described here http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.html with the operator I asked about, it doesn't work
<IP92> says, "this is not a function, cannot be applied"
<Maelan> IP92, your code?
<IP92> let map = IntMap.(empty |> add 0 0 |> 1 1)
<ggole> You probably want add 1 1 there
zpe has joined #ocaml
<IP92> ..., such rookie mistake, sorry for bothering
<ggole> No worries.
smerdyakow has quit [Ping timeout: 260 seconds]
yomimono has joined #ocaml
Kakadu has joined #ocaml
profan has joined #ocaml
zpe has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
<IP92> if I define a module, can I not have one "#open MyModule;;" after the definition to use it?
<Maelan> no #
mort___ has joined #ocaml
yomimono has quit [Quit: Leaving]
demonimin has joined #ocaml
<def`> gasche: :D "PAN!"
demonimin has quit [Remote host closed the connection]
<Maelan> ggole, is there a build system (ocamlbuild / oasis) that can automate this emulation of the directory structure?
<ggole> I don't think so, they just build the source. Pretty much what you'd do by hand.
smerdyakow has joined #ocaml
Algebr` has joined #ocaml
<Maelan> i saw there was something called “packed modules”, that looks like intended for this…
demonimin has joined #ocaml
jonh has quit [Ping timeout: 264 seconds]
jonh has joined #ocaml
demonimin has quit [Ping timeout: 245 seconds]
supercircle4 has quit [Quit: Sleep]
supercircle4 has joined #ocaml
<IP92> I have this code http://pastebin.com/pNGu2eJg the last line "find n !map" should return an int and the function fib should return that function, but I receive that "this expression is of type int but unit was expected", why's that
<IP92> fib should return that int*
<def`> it is parsed as
<def`> if not (mem n !map) then (...; find n !map)
<def`> you can fix it this way:
<IP92> doesn't the indentation denote the if-block?
Algebr` has quit [Remote host closed the connection]
<def`> no
<def`> the parser is never indentation sensitive
<IP92> all whitespace is ignored?
<flux> ocaml the amount of whitespace dosen't matter; it only matters if there is whitespace or not.
<flux> in+
<def`> as flux said.
<gasche> (remember to vote against negative literals at the next elections)
nicholasf has joined #ocaml
demonimin has joined #ocaml
mietek has quit [Ping timeout: 264 seconds]
IP92 has quit [Quit: Leaving]
mietek has joined #ocaml
mort___ has quit [Quit: Leaving.]
m_ has quit [Ping timeout: 252 seconds]
demonimin has quit [Read error: Connection reset by peer]
TBads has joined #ocaml
demonimin has joined #ocaml
demonimin has quit [Ping timeout: 260 seconds]
erikd has quit [Quit: disappearing into the sunset]
ontologiae_ has joined #ocaml
groovy3shoes has quit [Quit: Leaving]
w1gz_ is now known as w1gz
nicholasf has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
slash^ has quit [Read error: Connection reset by peer]
octachron has joined #ocaml
ggole has quit []
supercircle4 has quit [Quit: Sleep]
groovy2shoes has joined #ocaml
meiji11 has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 260 seconds]
Guest41278 has quit [Ping timeout: 245 seconds]
trix has joined #ocaml
trix is now known as Guest83716
BitPuffin|osx has joined #ocaml
supercircle4 has joined #ocaml
smerdyakow has quit [Ping timeout: 260 seconds]
supercircle4 has quit [Client Quit]
ianhedoesit has joined #ocaml
jonludlam has joined #ocaml
Sim_n is now known as Simn
zpe has joined #ocaml
zpe has quit [Remote host closed the connection]
TBads has quit [Ping timeout: 246 seconds]
nicholasf has joined #ocaml
eni has quit [Quit: gjum tomel]
pierpa` has quit [Ping timeout: 246 seconds]
nullcatxxx_ has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
supercircle4 has joined #ocaml
Mandus_ is now known as Mandus
martintrojer has quit [Ping timeout: 260 seconds]
tane has quit [Ping timeout: 260 seconds]
martintrojer has joined #ocaml
Simn has quit [Quit: Leaving]
sbrouf has quit [Ping timeout: 260 seconds]
badon has quit [Quit: Leaving]
supercircle4 has quit [Quit: Sleep]
tane has joined #ocaml
nicoo has quit [Ping timeout: 260 seconds]
TBads has joined #ocaml
badon has joined #ocaml
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
nicoo has joined #ocaml
badon has quit [Remote host closed the connection]
TBads has quit [Quit: WeeChat 1.3]
Anarchos has joined #ocaml
tane has quit [Quit: Verlassend]
infinity0 has quit [Remote host closed the connection]
lolisa has joined #ocaml
^elyse^ has quit [Quit: Leaving]
antkong has joined #ocaml
<Maelan> negative litterals gasche ?
<octachron> Maelan, fun illustration define " let id x = x and (~-) = id " and then compare -( 2 ) to -( id 2 )
badon has joined #ocaml
supercircle4 has joined #ocaml
infinity0 has joined #ocaml
Anarchos has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 246 seconds]
malc_ has joined #ocaml
<Maelan> outch
<Maelan> so the unary (-) really is sort of syntactic alias to (~-) unless applied to a litteral
<Maelan> that is horrible :/
<Drup> that's not the only parser hack like that
<Drup> ask octachron here how x.[4] is defined :D
<Maelan> octachron, how is defined x.[4] ? :p
<octachron> Drup, the best question is why x.{2,5,9,12} and x.{2,9,12} are completely different
m_ has joined #ocaml
<companion_cube> heh
<octachron> Maelan, depending on your compiler options, x.[4] is syntactic sugar for either String.get or String.unsafe_get
<Maelan> i see no harm there?
<octachron> up to the moment that you realize that you can then redefine the index operator x.[4] by defining your own String module
Haudegen has joined #ocaml
damason has quit [Ping timeout: 260 seconds]
<Drup> parser hacks, best hacks
<lyxia> Haskellers rejoice, you can compose with dot! (fun x -> x + 1) . (fun y -> 2 * y)
<Drup> ?
<lyxia> By redefining Array
<Drup> ahaha
<Drup> you need the parens though :D
<Drup> you can't write f . g
<lyxia> right :)
raphaelss has quit [Ping timeout: 246 seconds]
<malc_> anyone with cocoa programming experience here?
lobo has quit [Quit: leaving]
lolisa has quit [Ping timeout: 260 seconds]
<mahem1_> Humphhh, I've got a polymorphic function but I am only using it with ints and I want to try to debug with print_int...
<mahem1_> Of course it won't compile. Any easier way than to go messing about with the .mli file?
<Drup> No other reasonable way
<mahem1_> Wish me luck.
lolisa has joined #ocaml
sz0 has quit [Quit: Connection closed for inactivity]
ianhedoesit has quit [Quit: leaving]
octachron has quit [Quit: Leaving]
m_ has quit [Ping timeout: 252 seconds]
yegods has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
yegods has quit [Remote host closed the connection]
nicholasf has quit [Ping timeout: 245 seconds]