ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | http://www.ocaml.org | OCaml 4.01.0 announce at http://bit.ly/1851A3R | Logs at http://irclog.whitequark.org/ocaml
LU324 has joined #ocaml
Eyyub has quit [Ping timeout: 255 seconds]
studybot has joined #ocaml
malvarez has joined #ocaml
tnguyen has quit [Ping timeout: 252 seconds]
michael_lee has joined #ocaml
malvarez has quit [Quit: Leaving]
rgrinberg has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
philtor has joined #ocaml
troydm has quit [Ping timeout: 252 seconds]
troydm has joined #ocaml
philtor has quit [Ping timeout: 255 seconds]
ebzzry has quit [Remote host closed the connection]
troydm has quit [Ping timeout: 252 seconds]
troydm has joined #ocaml
nikki93 has quit [Remote host closed the connection]
WraithM has quit [Ping timeout: 255 seconds]
michael_lee has quit [Ping timeout: 276 seconds]
jao has quit [Ping timeout: 255 seconds]
troydm has quit [Ping timeout: 252 seconds]
michael_lee has joined #ocaml
troydm has joined #ocaml
troydm has quit [Ping timeout: 252 seconds]
troydm has joined #ocaml
nikki93 has joined #ocaml
WraithM has joined #ocaml
q66 has quit [Quit: Leaving]
nikki93 has quit [Remote host closed the connection]
troydm has quit [Ping timeout: 252 seconds]
troydm has joined #ocaml
troydm has quit [Ping timeout: 252 seconds]
eikke__ has quit [Ping timeout: 240 seconds]
yacks has joined #ocaml
troydm has joined #ocaml
troydm has quit [Ping timeout: 252 seconds]
eikke__ has joined #ocaml
eikke__ has quit [Ping timeout: 252 seconds]
boogie has quit [Remote host closed the connection]
johnnydiabetic has quit [Quit: Leaving]
fraggle_ has quit [Ping timeout: 265 seconds]
fraggle_ has joined #ocaml
johnnydiabetic has joined #ocaml
johnnydiabetic has quit [Ping timeout: 276 seconds]
WraithM has quit [Ping timeout: 252 seconds]
<whitequark> ugh, cmdliner is horrible
WraithM has joined #ocaml
<whitequark> instead of doing something useful, I have to decipher its esoteric syntax and even more esoteric error messages
<whitequark> Error: The type of this expression, '_a Term.t * Term.info, contains type variables that cannot be generalized
<whitequark> the fuck does this even mean.
<whitequark> I mean, not in the type theory sense, in the sense of
<whitequark> "what do I need to fix in my code to make it go away".
michael_lee has quit [Ping timeout: 265 seconds]
axiles has joined #ocaml
studybot has quit [Remote host closed the connection]
shinnya has quit [Ping timeout: 255 seconds]
<gasche> whitequark: I try to fix the parallel build whenever I can
<gasche> but most people don't rely on it so they don't notice when it breaks
<gasche> (and I think that's not important enough to go into CI)
<gasche> re. your cmdliner issue, cannot say anything without the code
<gasche> (except explaining you the type theory if you're interested)
<gasche> (well it's probably mutable state you use in a chessy way, or a `let f = foo` that needs to be come `let f x = foo x`)
<whitequark> gasche: already fixed it; shouldn't've used "assert false" as the command body
<whitequark> the value restriction; I know
<gasche> so latter case
<gasche> `let f = assert false` is not such a good idea anyway if you want to test your code at some point
<whitequark> nonono, let f _ = assert false"
<gasche> that shouldn't warn
<whitequark> well, duh
<whitequark> let me make a testcase.
<gasche> maybe you used `let g = f ()` somewhere
<whitequark> nope, it's as simple as it gets
<whitequark> I wonder if it's maybe due to types which are too abstract
<gasche> too-abstract sometimes prevent doing eta-expansion, but the problem wouldn't be of the form you describe
<whitequark> I mean, if you have a "type 'a t" (not "type +'a t"!) and a function "val create : unit -> 'a t", won't OCaml be conservative here and treat the type as containing mutable data?
<whitequark> so let foo = create () would be of type '_a t ?
<gasche> yes
<gasche> but not "let foo _ = create ()"
<whitequark> well, cmdliner has "val pure : 'a -> 'a Term.t"
<whitequark> and apparently Term.t doesn't declare variance
<whitequark> you're supposed to lift functions with it, so... "pure (fun _ -> assert false) : ('_a -> '_b) Term.t"
<whitequark> yep:
<whitequark> # Cmdliner.Term.pure (fun _ -> assert false);;
<whitequark> - : ('_a -> '_b) Cmdliner.Term.t = <abstr>
WraithM has quit [Ping timeout: 265 seconds]
tlockney is now known as tlockney_away
<whitequark> sent a suggestion to Daniel.
tlockney_away is now known as tlockney
<gasche> whitequark: Term.t is not covariant, because it is implemented in object-oriented style
<gasche> so Daniel couldn't apply your suggestion without rather invasive implementation changes
<whitequark> oh.
<gasche> in fact it's not even clear such a change can be done
<gasche> semantically, you need to be able to parse and print terms
<gasche> if you know how to print t, you don't know how to print u for t <= u
<whitequark> right
ebzzry has joined #ocaml
<adrien> gasche: people don't rely on parallel builds because they're known not to work :)
<gasche> I'm fine with that as long as I can make them work during a edit-compile-test-heavy afternoon
tlockney is now known as tlockney_away
<adrien> and btw, I still don't know what to do with the .depend.nt files btw; get them out of source control and generate them on-the-fly?
<adrien> make -j4 || make -j4 || make
<gasche> (I have no idea what the .depend.nt are for)
<adrien> sed 's/\.o/\.obj/g' .depend > .depend.nt
<adrien> (got it? and no, I'm not kidding)
<adrien> actually my question was not about removing them from source control and doing them dynamically; too early for me to remember the question though
<adrien> plus I'm going to be working on win-builds tomorrow: a possible fix for cygwin then documentation and hopefully a release on tomorrow
<gasche> if the depend are included, we could make them .$(OBJ) everywhere
WraithM has joined #ocaml
<adrien> they are, and that was my idea (I think)
<gasche> I wish you a good release :p
<adrien> thanks, so far it seems everything is working nicely: installation is easy, updates too, it's fast, antivirus software don't complain, ...
tlockney_away is now known as tlockney
Simn has joined #ocaml
tlockney is now known as tlockney_away
LU324 has quit [Quit: No Ping reply in 180 seconds.]
ontologiae has quit [Ping timeout: 240 seconds]
ebzzry has quit [Ping timeout: 255 seconds]
ebzzry has joined #ocaml
ygrek_ has joined #ocaml
dan_ has joined #ocaml
dan_ is now known as wdan
WraithM has quit [Ping timeout: 252 seconds]
demonimin has quit [Remote host closed the connection]
demonimin has joined #ocaml
tlockney_away is now known as tlockney
Kakadu has joined #ocaml
tlockney is now known as tlockney_away
rgrinberg has quit [Quit: Leaving.]
ustunozgur has joined #ocaml
ustunozgur has quit [Remote host closed the connection]
ustunozgur has joined #ocaml
avsm has joined #ocaml
divyanshu has joined #ocaml
divyanshu has quit [Client Quit]
divyanshu has joined #ocaml
divyanshu has quit [Client Quit]
ustunozg_ has joined #ocaml
ustunozgur has quit [Ping timeout: 276 seconds]
ggole has joined #ocaml
tlockney_away is now known as tlockney
divyanshu has joined #ocaml
rand000 has joined #ocaml
tlockney is now known as tlockney_away
ygrek_ has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
ontologiae has joined #ocaml
divyanshu has quit [Ping timeout: 276 seconds]
ontologiae has quit [Ping timeout: 240 seconds]
divyanshu has joined #ocaml
BitPuffin has joined #ocaml
Submarine has quit [Quit: Leaving]
BitPuffin has quit [Ping timeout: 252 seconds]
Arsenik has joined #ocaml
BitPuffin has joined #ocaml
ygrek_ has joined #ocaml
ollehar has joined #ocaml
pminten has joined #ocaml
tlockney_away is now known as tlockney
shinnya has joined #ocaml
tlockney is now known as tlockney_away
ygrek_ has quit [Ping timeout: 240 seconds]
tane has joined #ocaml
nikki93 has joined #ocaml
divyanshu has quit [Ping timeout: 240 seconds]
divyanshu has joined #ocaml
maattdd has joined #ocaml
<ebzzry> Is there a built-in, trivial way to create the list [1; 2; 3; 4; 5] in OCaml, programmatically?
<ggole> Built-in, no. Trivial, yes.
<ggole> let rec nums low high = if low >= high then [] else low::nums (succ low) high
<ggole> Then nums 1 6
<ebzzry> ggole: ok. thanks.
ygrek_ has joined #ocaml
ustunozg_ has quit [Remote host closed the connection]
<ggole> (If you're using Batteries or Core they might provide that one already, dunno.)
<mrvn> that only wortks for small numbers because it isn't tail recursive
<ggole> Just like the stdlib
<ggole> And if you care, that's easily fixed
tlockney_away is now known as tlockney
<ggole> (It'd be nice if OCaml had TRMC...)
<gasche> ggole: I've slowly come to accept that a well-specified TRMC would be a nice extension
<gasche> I wasn't convinced before that's a bit operational
<gasche> *because* that's operational
<gasche> but I buy the argument that you want to be able to write elegant functions and still be efficient
tlockney is now known as tlockney_away
<Drup> trmc ?
maattdd has quit [Ping timeout: 240 seconds]
ontologiae has joined #ocaml
<rks`> same question as Drup
ygrek_ has quit [Ping timeout: 252 seconds]
<gasche> tail-recursion modulo context
<gasche> hm
<gasche> modulo cons
<gasche> but the name *should* be modulo context
ontologiae has quit [Ping timeout: 252 seconds]
<ggole> gasche: I can't deny that it is a bit operational
<ggole> But you end up having to work around it in a strict language
<ggole> An interesting question is what patterns should be supported: it might be good to support exception handlers wrapped around recursive calls, for instance
<ggole> (If that can be done in a sane way.)
<Drup> ggole: is that still needed with the new extended pattern thingy ?
<ggole> I dunno, haven't played with that yet. Does it interfere with tail calls?
<gasche> Clemens and Felleisen used a modulo-context-like technique to keep track of stack-based security policies
<gasche> but don't think capturing exception frames would make sense here
<gasche> (and as Drup says it can be avoided with "match with exception")
<ggole> The original meaning (from Prolog, iirc) was modulo-constructor.
<ggole> Which has the advantage of being easy to explain.
Eyyub has joined #ocaml
BitPuffin has quit [Ping timeout: 265 seconds]
<ggole> gasche: oh by the way, before I forget, the ocamlbuild question I had for you a few days back was about passing flags to ocamlmktop
nikki93 has quit [Remote host closed the connection]
<ggole> I wanted to ask whether -cflags should be passed (which it currently isn't)
Eyyub has quit [Ping timeout: 265 seconds]
ssq has joined #ocaml
ollehar1 has joined #ocaml
pminten has quit [Quit: Leaving]
tlockney_away is now known as tlockney
Eyyub has joined #ocaml
tlockney is now known as tlockney_away
<ssq> Is opalang dead language ? Trying to install it on my debian machine but failing hard.
<Drup> if it's not dead, it's dying
<Drup> it's a shame, because the language was interesting, but they got overly ambitious and tried to change target in the middle
<Drup> the last version of it is more like a typed extension of js for nodejs than really a ml-like language :/
<ssq> ah i see
<ssq> Drup: Thanks for explanation.
testcocoon has quit [Quit: Coyote finally caught me]
maattdd has joined #ocaml
<Drup> but yeah, it's pretty much dead. there is no traffic on the mailing list at all :/
<ssq> I was very excited but now ..
<Drup> look at ocsigen / eliom, it's in the same area :)
johnnydiabetic has joined #ocaml
<ssq> will do ^^
testcocoon has joined #ocaml
tobiasBora has joined #ocaml
<Kakadu> ssq: Ocsigen is nice, best web framework I've ever seen
SethTisue has joined #ocaml
ygrek_ has joined #ocaml
divyanshu has quit [Ping timeout: 240 seconds]
darkf has quit [Quit: Leaving]
LU324 has joined #ocaml
divyanshu has joined #ocaml
ssq has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
Thooms has joined #ocaml
maattdd has quit [Ping timeout: 240 seconds]
tlockney_away is now known as tlockney
companion_cube has quit [Ping timeout: 240 seconds]
companion_cube has joined #ocaml
tlockney is now known as tlockney_away
ontologiae has joined #ocaml
q66 has joined #ocaml
q66 has joined #ocaml
ontologiae has quit [Ping timeout: 265 seconds]
wdan has quit [Quit: Leaving...]
Anarchos has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
ygrek_ has quit [Ping timeout: 240 seconds]
avsm has joined #ocaml
BitPuffin has joined #ocaml
SethTisue has quit [Quit: SethTisue]
SethTisue has joined #ocaml
SethTisue has quit [Quit: SethTisue]
<nicoo> ebzzry: Array.init 5 (fun i -> i+1) |> Array.to_list
<nicoo> List.init is in Batteries, IIRC
tlockney_away is now known as tlockney
shinnya has quit [Ping timeout: 252 seconds]
ollehar has joined #ocaml
tlockney is now known as tlockney_away
racycle_ has joined #ocaml
sheijk has joined #ocaml
studybot has joined #ocaml
axiles has quit [Ping timeout: 252 seconds]
ollehar has quit [Ping timeout: 240 seconds]
tlockney_away is now known as tlockney
ontologiae has joined #ocaml
tlockney is now known as tlockney_away
SethTisue has joined #ocaml
<BitPuffin> Someone should create a programming language called subjective caml
SethTisue has quit [Client Quit]
<tane> BitPuffin, the compiler interfers what the programmer had in mind? :)
<tane> infers*
ssq has joined #ocaml
<ssq> /join #opalang
maattdd has joined #ocaml
rgrinberg has joined #ocaml
<mrvn> with DTRT[tm] (do the right thing)
<mrvn> and WYMIWYG (what you mean is what you get)
divyanshu has quit [Ping timeout: 276 seconds]
rgrinberg has quit [Quit: Leaving.]
divyanshu has joined #ocaml
SethTisue has joined #ocaml
<Kakadu> anybody is aware of what is happening with deriving,deriving-ocsigen and type-conv recently?
<Kakadu> They have introduced some refactorings and...
sheijk has quit [Ping timeout: 255 seconds]
<Kakadu> I don't know which packages to pass now
<mrvn> that's what 'git reset' is for
SethTisue has quit [Client Quit]
Thooms has quit [Quit: WeeChat 0.3.8]
sheijk has joined #ocaml
tlockney_away is now known as tlockney
WraithM has joined #ocaml
boogie has joined #ocaml
tlockney is now known as tlockney_away
Nuki has joined #ocaml
pminten has joined #ocaml
maattdd has quit [Ping timeout: 240 seconds]
ssq has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<Kakadu> It is not really obvious what should I reset
dsheets has joined #ocaml
axiles has joined #ocaml
Nuki has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
Eyyub has quit [Ping timeout: 252 seconds]
pminten has quit [Remote host closed the connection]
tlockney_away is now known as tlockney
maattdd has joined #ocaml
<rgrinberg> is the ocamlbuild wiki completely dead?
SethTisue has joined #ocaml
eikke__ has joined #ocaml
tani has joined #ocaml
maattdd has quit [Ping timeout: 252 seconds]
dsheets has quit [Ping timeout: 276 seconds]
<gasche> rgrinberg: which one?
Arsenik has quit [Remote host closed the connection]
tane has quit [Ping timeout: 255 seconds]
<gasche> if you're thinking of the alternative manual, it's waiting to be awakened by contributions
<rgrinberg> the old wiki
<rgrinberg> hosted by inria I think
<rgrinberg> I can't find it anymore though, so I'm not sure
Arsenik has joined #ocaml
<gasche> ah
<gasche> someone has a dump somewhere, but it was spammed and taken offline
<gasche> the plan is to get the content on ocaml.org eventually
<rgrinberg> what was the homepage again? time for the way-back machine :D
<rgrinberg> nvm, found it.
racycle_ has quit [Quit: ZZZzzz…]
ollehar1 has quit [Ping timeout: 264 seconds]
dsheets has joined #ocaml
Eyyub has joined #ocaml
moop7 has joined #ocaml
<moop7> hello
johnnydiabetic has quit [Quit: Leaving]
<moop7> the ocaml standard library is distributed under the LGPL
<moop7> does that mean it's forbidden to distribute ocaml-compiled executables without the corresponding source code?
<gasche> moop7: no
ontologiae has quit [Ping timeout: 265 seconds]
<gasche> there is a linking exception added to the LGPL
<gasche> (which morally does not contaminate linked code anyway)
<moop7> ah okay
<rgrinberg> gasche: btw, doesn't menhir not have that exception?
<gasche> rgrinberg: if that was the case, it would probably be a mistake of menhir's author
<gasche> I never had a look
<gasche> rgrinberg: no, I justed checked and menhir has the exception
<rgrinberg> yeah just confirmed myself you're right
eikke__ has quit [Ping timeout: 276 seconds]
ontologiae has joined #ocaml
msch has quit [Ping timeout: 240 seconds]
msch has joined #ocaml
tobiasBora has quit [Quit: Konversation terminated!]
maattdd has joined #ocaml
<adrien> gasche: haha
<adrien> gasche: but I'm not sure I'm surprised he reinvented something
maattdd has quit [Ping timeout: 265 seconds]
jpeeters has joined #ocaml
Thooms has joined #ocaml
<adrien> gasche: also adding support with cowboy is a fairly large task: it takes some work in order to start getting something
<adrien> gasche: but with a few sed over headers, one would get almost immediate results
<adrien> gasche: and that's the typical situation that leads to "I can do it myself (better/simpler/faster/...)"
eikke__ has joined #ocaml
<avsm> really odd that ocamlbuild doesnt have an include pflag tag
<avsm> i.e. <foo/*>: include(../bar/)
<avsm> the other way makes it really hard to manage subpackages, and forces oasis to generate a zillion tags
Eyyub has quit [Ping timeout: 240 seconds]
tlockney is now known as tlockney_away
moop7 has quit [Quit: Page closed]
ollehar has joined #ocaml
ollehar has quit [Ping timeout: 264 seconds]
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
<whitequark> adrien: cowboy?
<gasche> avsm: note that from myocamlbuild.ml you can use Path.define_context "foo" ["foo"; "bar"; "baz"] to set the include environment, I believe
<gasche> (I have actually never played with that much)
<gasche> (note that include(foo) wouldn't really respect the _tags semantics)
Eyyub has joined #ocaml
avsm has quit [Ping timeout: 252 seconds]
<adrien> whitequark: layer on top of yacfe-light which exposes a C AST which has been stripped off of the parts that are not needed to store the API of a library
<adrien> i.e. everything implementation
<whitequark> ah, right
Submarine has joined #ocaml
eikke__ has quit [Ping timeout: 255 seconds]
Thooms has quit [Quit: WeeChat 0.3.8]
maattdd has joined #ocaml
<Anarchos> Can't compile coq anymore : Fatal error: exception File "camlinternalFormat.ml", line 980, characters 6-12: Assertion failed
<adrien> Format? :P
<adrien> I guess the bugfix will probably wait until the thunderstorms begin
<Anarchos> adrien no idea : i use the lastet dev version of ocaml, and camlp4.
avsm has joined #ocaml
<ggole> GADT printf fail!
<adrien> :]
contempt has quit [Disconnected by services]
contempt has joined #ocaml
sheijk_ has joined #ocaml
sheijk has quit [Ping timeout: 252 seconds]
Nuki has joined #ocaml
tani has quit [Quit: Verlassend]
avsm has quit [Ping timeout: 252 seconds]
maattdd has quit [Ping timeout: 240 seconds]
ollehar has joined #ocaml
<whitequark> gasche: "type 'a t = arg_info list * (eval_info -> cmdline -> 'a)"
<whitequark> and cmdliner doesn't ever use objects
tristero has quit [Read error: Connection reset by peer]
<whitequark> (why would it?!)
LU324 has quit [Quit: No Ping reply in 180 seconds.]
dsheets has quit [Ping timeout: 252 seconds]
shinnya has joined #ocaml
dsheets has joined #ocaml
ontologiae has quit [Ping timeout: 240 seconds]
LU324 has joined #ocaml
<gasche> whitequark: my bad, I looked at Arg.t
<gasche> by object-oriented I mean that values are defined by a product of methods, rather than their data structure
<gasche> Anarchos: did you submit a bug report?
maattdd has joined #ocaml
eikke__ has joined #ocaml
<Anarchos> gasche no cause i have too much exotic systems with my own ports.
ollehar has quit [Ping timeout: 240 seconds]
<adrien> do it!
NoNNaN has joined #ocaml
dsheets has quit [Ping timeout: 240 seconds]
<gasche> Anarchos: it would help me if you knew which of Coq files failed with that error
<gasche> (even better, which format it was)
rz has joined #ocaml
<ggole> Is there a term for tuples where every element is the same type?
<gasche> homogeneous?
<ggole> Yeah, that's obvious in retrospect
<Anarchos> ggole last line before error : COQC -noinit theories/Init/Notations.v
<Anarchos> gasche last line before error : COQC -noinit theories/Init/Notations.v
<gasche> thanks
<gasche> can reproduce
<gasche> Printf.printf "%.3x" (16*16-1);;
<gasche> Anarchos: I'll report the issue, thanks
tobiasBora has joined #ocaml
BitPuffi1 has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
maattdd has quit [Ping timeout: 265 seconds]
<Anarchos> gasche no problem :)
ontologiae has joined #ocaml
avsm has joined #ocaml
avsm1 has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
Submarine has quit [Remote host closed the connection]
ollehar has joined #ocaml
<Anarchos> gasche what could be the right solution ?
Thooms has joined #ocaml
john3213 has joined #ocaml
john3213 has left #ocaml [#ocaml]
maattdd has joined #ocaml
nikki93 has joined #ocaml
maattdd has quit [Ping timeout: 240 seconds]
tobiasBora has quit [Quit: Konversation terminated!]
ggole has quit []
tobiasBora_ has joined #ocaml
tobiasBora_ is now known as tobiasBora
ontologiae has quit [Ping timeout: 252 seconds]
yacks has quit [Ping timeout: 264 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
divyanshu has quit [Quit: Computer has gone to sleep.]
ontologiae has joined #ocaml
axiles has quit [Remote host closed the connection]
ollehar has quit [Ping timeout: 240 seconds]
tianon has quit [Read error: Connection reset by peer]
<rgrinberg> does ocamlbuild have builtin rules for cppo?
<Drup> no
<rgrinberg> i see, well at least they aren't hard to write ^_^
ollehar has joined #ocaml
<Drup> personally, I put it directly in ByteOpt/NativeOpt in oasis
<termos> I installed a package with opam, but how can I open it in ocaml? This questions feels so stupid, but I can't find anything on google
<rgrinberg> termos: you can experiment with the package from the toplevel with #require "package_name";
<Drup> (if you have topfind loaded, which is probably not the case if you are asking this question :p)
tianon has joined #ocaml
<rgrinberg> if you use utop, it should be there by default i think?
<Drup> yes
<rgrinberg> termos: use utop :D
<whitequark> termos: or #use "topfind" in regular toplevel
<termos> okey thanks! looks like it worked
nikki93 has quit [Remote host closed the connection]
Arsenik has quit [Remote host closed the connection]
tianon has quit [Read error: Connection reset by peer]
tianon has joined #ocaml
tianon has quit [Changing host]
tianon has joined #ocaml
nikki93 has joined #ocaml
eikke__ has quit [Ping timeout: 258 seconds]
eikke__ has joined #ocaml
Simn has quit [Quit: Leaving]
nikki93 has quit [Remote host closed the connection]
ebzzry has quit [Ping timeout: 240 seconds]
ebzzry has joined #ocaml
ontologiae has quit [Ping timeout: 264 seconds]
maattdd has joined #ocaml
ontologiae has joined #ocaml
eikke__ has quit [Ping timeout: 240 seconds]
Thooms has quit [Read error: No route to host]
eikke__ has joined #ocaml
johnnydiabetic has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
avsm1 has quit [*.net *.split]
shinnya has quit [*.net *.split]
rgrinberg has quit [*.net *.split]
cthuluh has quit [*.net *.split]
Ptival has quit [*.net *.split]
Tamae has quit [*.net *.split]
alex_nx has quit [*.net *.split]
reynir has quit [*.net *.split]
Asmadeus has quit [*.net *.split]
so has quit [*.net *.split]
ccasin has quit [*.net *.split]
tchell has quit [*.net *.split]
Armael has quit [*.net *.split]
rs0 has quit [*.net *.split]
AeroNotix has quit [*.net *.split]
saarin has quit [*.net *.split]
contempt has quit [*.net *.split]
jlouis has quit [*.net *.split]
chris2 has quit [*.net *.split]
bitbckt has quit [*.net *.split]
zozozo has quit [*.net *.split]
_habnabit has quit [*.net *.split]
rossberg has quit [*.net *.split]
mdenes has quit [*.net *.split]
hannes has quit [*.net *.split]
termos has quit [*.net *.split]
asmanur_ has quit [*.net *.split]
mrvn has quit [*.net *.split]
bunzen has quit [*.net *.split]
whitequark has quit [*.net *.split]
mal`` has quit [*.net *.split]
_5kg has quit [*.net *.split]
flux has quit [*.net *.split]
Kakadu has quit [*.net *.split]
seliopou has quit [*.net *.split]
dinosaure has quit [*.net *.split]
robink has quit [*.net *.split]
jbrown has quit [*.net *.split]
penryu has quit [*.net *.split]
willb1 has quit [*.net *.split]
sheijk_ has quit [*.net *.split]
martintrojer has quit [*.net *.split]
__marius____ has quit [*.net *.split]
pango has quit [*.net *.split]
samebchase has quit [*.net *.split]
n0v has quit [*.net *.split]
jave_ has quit [*.net *.split]
IbnFirnas has quit [*.net *.split]
Axman6 has quit [*.net *.split]
tobiasBora has quit [Write error: Broken pipe]
srcerer has quit [Ping timeout: 252 seconds]
maattdd has quit [Ping timeout: 252 seconds]
samebchase has joined #ocaml
robink has joined #ocaml
Thooms` has joined #ocaml
avsm1 has joined #ocaml
shinnya has joined #ocaml
sheijk_ has joined #ocaml
rgrinberg has joined #ocaml
contempt has joined #ocaml
jlouis has joined #ocaml
seliopou has joined #ocaml
cthuluh has joined #ocaml
saarin has joined #ocaml
rs0 has joined #ocaml
Armael has joined #ocaml
tchell has joined #ocaml
so has joined #ocaml
ccasin has joined #ocaml
AeroNotix has joined #ocaml
Asmadeus has joined #ocaml
alex_nx has joined #ocaml
reynir has joined #ocaml
Tamae has joined #ocaml
Ptival has joined #ocaml
bunzen has joined #ocaml
mal`` has joined #ocaml
_5kg has joined #ocaml
mrvn has joined #ocaml
flux has joined #ocaml
termos has joined #ocaml
asmanur_ has joined #ocaml
_habnabit has joined #ocaml
whitequark has joined #ocaml
hannes has joined #ocaml
zozozo has joined #ocaml
bitbckt has joined #ocaml
mdenes has joined #ocaml
martintrojer has joined #ocaml
rossberg has joined #ocaml
dinosaure has joined #ocaml
__marius____ has joined #ocaml
Axman6 has joined #ocaml
jbrown has joined #ocaml
pango has joined #ocaml
penryu has joined #ocaml
17SAACTKL has joined #ocaml
willb1 has joined #ocaml
n0v has joined #ocaml
jave_ has joined #ocaml
IbnFirnas has joined #ocaml
sheijk has joined #ocaml
contempt has quit [Max SendQ exceeded]
17SAACTKL has quit [Write error: Broken pipe]
contempt has joined #ocaml
<whitequark> I cringe every time cmdliner makes me write "pure obviously_very_impure_function" ಠ_ಠ
studybot has quit [Ping timeout: 272 seconds]
<whitequark> should've called it "lift" or something
sheijk_ has quit [Ping timeout: 242 seconds]
chris2 has joined #ocaml
johnnydiabetic has quit [Quit: Leaving]
contempt has quit [Ping timeout: 252 seconds]
tautologico has joined #ocaml
contempt has joined #ocaml
<whitequark> gasche: hmm, I wonder if OCaml is right in conflating variance and mutability
<whitequark> I mean, aren't there cases where the type parameter should be invariant, but the underlying storage is immutable, so value restriction should not apply?
<companion_cube> one thing is sure, mutability implies invariant
<companion_cube> invariance*
<whitequark> yes, but not vice versa
studybot has joined #ocaml
<companion_cube> you can specify that the type is invariant, can't you?
<whitequark> yes, but I can't specify that it's invariant *and* immutable
<whitequark> i.e. OCaml thinks that invariance implies mutability
<companion_cube> how?
tlockney_away is now known as tlockney
<companion_cube> i don't think OCaml contains the notion of 'mutability' in the type language
<companion_cube> you have types, with some variance properties
<companion_cube> that doesn't tell much about their mutability
Thooms` has quit [Ping timeout: 240 seconds]
<whitequark> # module M : sig type 'a t val create : unit -> 'a t end = struct type 'a t = int let create () = 1 end;;
<whitequark> module M : sig type 'a t val create : unit -> 'a t end
<whitequark> # module M' = struct let x = M.create () end;;
<whitequark> module M' : sig val x : '_a M.t end
<whitequark> note the '_a
<whitequark> there *is* a notion of mutability in the type system, in a way
manizzle has quit [Ping timeout: 252 seconds]
<companion_cube> a limitation caused by it, yes
nikki93 has joined #ocaml
<whitequark> how do you call a "string" in german?
<companion_cube> I don't speak german, sorry :D
<whitequark> apparently "Zeichenfolge"
sheijk has quit [Ping timeout: 264 seconds]
sheijk has joined #ocaml
ollehar1 has joined #ocaml
ollehar1 has quit [Client Quit]
ollehar has quit [Ping timeout: 240 seconds]
teiresias has quit [Ping timeout: 265 seconds]
rand000 has quit [Quit: leaving]
teiresias has joined #ocaml
Tamae has quit [Read error: Connection reset by peer]
Tamae has joined #ocaml
Enjolras has quit [Quit: Lost terminal]
darkf has joined #ocaml
claudiuc has quit [Remote host closed the connection]
Nuki has quit [Remote host closed the connection]
maattdd has joined #ocaml
madroach has quit [Ping timeout: 252 seconds]
madroach has joined #ocaml
maattdd has quit [Ping timeout: 252 seconds]
maattdd has joined #ocaml
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
nikki93 has quit [Remote host closed the connection]
ontologiae has quit [Ping timeout: 252 seconds]
studybot has quit [Remote host closed the connection]