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
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 250 seconds]
keen______ has joined #ocaml
keen_____ has quit [Ping timeout: 245 seconds]
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
shinnya has quit [Ping timeout: 245 seconds]
AltGr has joined #ocaml
BitPuffin has quit [Ping timeout: 276 seconds]
<struktured> argh curse you omake
swgillespie has joined #ocaml
small-wolf has joined #ocaml
c74d has quit [Read error: Connection reset by peer]
swgillespie has quit [Read error: Connection reset by peer]
robink has quit [Ping timeout: 255 seconds]
c74d has joined #ocaml
myst|work has quit [Ping timeout: 255 seconds]
robink_ has joined #ocaml
myst|work has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 265 seconds]
darkf has joined #ocaml
manizzle has quit [Ping timeout: 246 seconds]
swgillespie has joined #ocaml
swgillespie has quit [Read error: Connection reset by peer]
rossberg_ has joined #ocaml
swgillespie has joined #ocaml
osa1_ has joined #ocaml
<osa1_> can anyone help me linking my MetaOCaml program with Unix library?
rossberg has quit [Ping timeout: 245 seconds]
small-wolf has quit [Ping timeout: 250 seconds]
myst|work has quit [Ping timeout: 244 seconds]
<osa1_> simply adding "unix.cma" is not working: Reference to undefined global `Unix'
myst|work has joined #ocaml
small-wolf has joined #ocaml
swgillespie has quit [Read error: Connection reset by peer]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
c74d has quit [Read error: Connection reset by peer]
<osa1_> uh, it turns out the argument order matters.
swgillespie has joined #ocaml
darkf_ has joined #ocaml
darkf has quit [Ping timeout: 245 seconds]
c74d has joined #ocaml
tnguyen has quit [Quit: tnguyen]
tnguyen has joined #ocaml
mengu has joined #ocaml
swgillespie has quit [Read error: Connection reset by peer]
mengu has quit [Ping timeout: 255 seconds]
clog has quit [Ping timeout: 272 seconds]
thizanne has quit [Ping timeout: 246 seconds]
clog has joined #ocaml
thizanne has joined #ocaml
mcclurmc has joined #ocaml
idegen has quit [Quit: Leaving.]
mcclurmc has quit [Ping timeout: 240 seconds]
darkf_ is now known as darkf
ygrek has joined #ocaml
olibjerd has joined #ocaml
lopex has quit [Quit: Connection closed for inactivity]
swgillespie has joined #ocaml
swgillespie has quit [Read error: Connection reset by peer]
javamonn has joined #ocaml
small-wolf has quit [Read error: Connection reset by peer]
small-wolf has joined #ocaml
javamonn has quit [Remote host closed the connection]
javamonn has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
<struktured> does anyone know of an error + or_error module suite that is independent of core? I know there is rresult and pvem which handles the ('a,b') result concept but they they don't cover the "'a or_error.t one.
Bhavya has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
osa1_ has quit [Ping timeout: 245 seconds]
Denommus has joined #ocaml
A1977494 has joined #ocaml
A1977494 has left #ocaml [#ocaml]
small-wolf has quit [Ping timeout: 245 seconds]
ygrek has joined #ocaml
small-wolf has joined #ocaml
javamonn has quit [Remote host closed the connection]
olibjerd has quit [Ping timeout: 265 seconds]
small-wolf has quit [Read error: No route to host]
_whitelogger has joined #ocaml
whitequark has joined #ocaml
matason has joined #ocaml
Nahra has quit [Remote host closed the connection]
axiles has quit [Ping timeout: 255 seconds]
ggole has joined #ocaml
jonludlam has joined #ocaml
axiles has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
Haudegen has quit [Ping timeout: 244 seconds]
codefo has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
psy has quit [Ping timeout: 272 seconds]
badon has joined #ocaml
jonludlam has quit [Ping timeout: 244 seconds]
Haudegen has joined #ocaml
ygrek has joined #ocaml
ggole has quit [Read error: Connection reset by peer]
ggole has joined #ocaml
jbrown has joined #ocaml
Simn has joined #ocaml
whitequark has left #ocaml [#ocaml]
ggole has quit [Ping timeout: 252 seconds]
Gama11 has joined #ocaml
Gama11_ has joined #ocaml
Gama11 has quit [Remote host closed the connection]
axiles has quit [Ping timeout: 264 seconds]
axiles has joined #ocaml
xiaolin has quit [Remote host closed the connection]
zacts has joined #ocaml
zacts has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
avsm has quit [Quit: Leaving.]
ggole has joined #ocaml
ollehar has joined #ocaml
MercurialAlchemi has quit [Quit: Lost terminal]
MercurialAlchemi has joined #ocaml
freling has joined #ocaml
mort___ has joined #ocaml
octachron has joined #ocaml
avsm1 has joined #ocaml
avsm1 has quit [Quit: Leaving.]
olibjerd has joined #ocaml
johnelse is now known as johnel_away
dsheets has quit [Ping timeout: 256 seconds]
asQuirreL has joined #ocaml
johnel_away is now known as johnelse
A1977494 has joined #ocaml
jonludlam has joined #ocaml
mengu has quit [Remote host closed the connection]
dav-_ has joined #ocaml
A1977494 has left #ocaml [#ocaml]
dav- has quit [Ping timeout: 256 seconds]
dav has quit [Ping timeout: 250 seconds]
dav-_ has quit [Ping timeout: 246 seconds]
ohama has quit [Ping timeout: 250 seconds]
dav- has joined #ocaml
dav has joined #ocaml
ohama has joined #ocaml
dsheets has joined #ocaml
AltGr has left #ocaml [#ocaml]
milosn has quit [Ping timeout: 265 seconds]
Haudegen has quit [Ping timeout: 264 seconds]
Kakadu has joined #ocaml
lopex has joined #ocaml
Haudegen has joined #ocaml
ousado_ has joined #ocaml
ousado has quit [Ping timeout: 264 seconds]
Gama11_ has quit [Read error: Connection reset by peer]
meteo_ has joined #ocaml
<meteo_> what's the syntactically simplest way to test if a list is not empty?
<meteo_> I've been using Core.Core_list.is_empty
<flux> <> [] ?
<meteo_> yeah that's better
<flux> or in a pattern: .. _::_ -> ..
<meteo_> thanks
<flux> testing if a list is empty is often a candidate for pattern matching, I think :-). I mean, usually you want to extract some values out of that list then..
<flux> (and handle other cases.) but perhaps not in this case.
<meteo_> yes, i don't need to destructure/pattern match in this case
thomasga has joined #ocaml
mengu has joined #ocaml
freling has quit [Quit: Leaving.]
lordkryss has joined #ocaml
Haudegen has quit [Remote host closed the connection]
Haudegen has joined #ocaml
rand000 has joined #ocaml
Sorella has quit [Quit: Connection closed for inactivity]
Haudegen has quit [Ping timeout: 248 seconds]
milosn has joined #ocaml
larhat has joined #ocaml
Haudegen has joined #ocaml
Hannibal_Smith has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
Hannibal_Smith has quit [Quit: Leaving]
milosn has joined #ocaml
ohama has quit [Ping timeout: 250 seconds]
ohama has joined #ocaml
_andre has joined #ocaml
Haudegen has quit [Remote host closed the connection]
Haudegen has joined #ocaml
Haudegen has quit [Ping timeout: 255 seconds]
milosn has quit [Ping timeout: 248 seconds]
tnguyen has quit [Quit: tnguyen]
Haudegen has joined #ocaml
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
sdothum has joined #ocaml
larhat has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
ygrek has quit [Ping timeout: 250 seconds]
milosn has joined #ocaml
larhat has joined #ocaml
milosn has quit [Ping timeout: 264 seconds]
rossberg_ has quit [Remote host closed the connection]
BitPuffin has joined #ocaml
asQuirreL has joined #ocaml
rossberg has joined #ocaml
TheLemonMan has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
mengu has joined #ocaml
mengu has quit [Changing host]
avsm has quit [Quit: Leaving.]
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
freling has joined #ocaml
nojb has joined #ocaml
ousado_ is now known as ousado
ousado has quit [Changing host]
ousado has joined #ocaml
milosn has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
mort___ has quit [Ping timeout: 265 seconds]
avsm has quit [Quit: Leaving.]
badkins has joined #ocaml
milosn has joined #ocaml
osa1_ has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
larhat has quit [Quit: Leaving.]
amirmc has joined #ocaml
mort___ has joined #ocaml
avsm has joined #ocaml
avsm1 has joined #ocaml
<nicoo> meteo_: I thought idiomatic Core usage involved opening Core.Std (in which case, Core.Core_list.is_empty == List.is_empty)
avsm has quit [Ping timeout: 256 seconds]
<nicoo> One could also use List.exists (fun _ -> true) as an emptyness test, I guess :D
<nojb> match l with [] -> ... ?
mort___ has quit [Ping timeout: 240 seconds]
lordkryss has quit [Quit: Connection closed for inactivity]
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
asQuirreL has joined #ocaml
chris2 has quit [Ping timeout: 256 seconds]
idegen has joined #ocaml
chris2 has joined #ocaml
idegen has quit [Remote host closed the connection]
amirmc has quit [Quit: Leaving.]
idegen has joined #ocaml
badkins_ has joined #ocaml
djellemah_ has joined #ocaml
osa1_ has quit [Ping timeout: 264 seconds]
badkins has quit [Ping timeout: 255 seconds]
djellemah has quit [Ping timeout: 272 seconds]
djellemah_ is now known as djellemah
mcclurmc has joined #ocaml
milosn has quit [Ping timeout: 250 seconds]
freling has quit [Ping timeout: 272 seconds]
ygrek has joined #ocaml
ygrek_ has joined #ocaml
Sorella has joined #ocaml
osa1_ has joined #ocaml
shinnya has joined #ocaml
ygrek has quit [Ping timeout: 256 seconds]
osa1_ has quit [Client Quit]
osa1_ has joined #ocaml
ygrek_ has quit [Ping timeout: 265 seconds]
nojb has quit [Quit: nojb]
nojb has joined #ocaml
nojb has quit [Client Quit]
BitPuffin has quit [Ping timeout: 240 seconds]
ollehar1 has joined #ocaml
ollehar has quit [Remote host closed the connection]
paddymahoney has joined #ocaml
Simn has quit [Ping timeout: 276 seconds]
tane has joined #ocaml
milosn has joined #ocaml
avsm1 has quit [Quit: Leaving.]
ollehar1 has quit [Remote host closed the connection]
ollehar has joined #ocaml
ollehar1 has joined #ocaml
Algebr has joined #ocaml
darkf has quit [Quit: Leaving]
mengu has quit [Remote host closed the connection]
shinnya has quit [Ping timeout: 245 seconds]
Simn has joined #ocaml
BitPuffin has joined #ocaml
bitemyappPrime has quit [Ping timeout: 256 seconds]
tane has quit [Quit: Verlassend]
kdef has joined #ocaml
slash^ has joined #ocaml
MrScout has joined #ocaml
ygrek has joined #ocaml
bitemyappPrime has joined #ocaml
Bhavya has quit [Remote host closed the connection]
araujo has joined #ocaml
araujo has joined #ocaml
avsm has joined #ocaml
avsm1 has joined #ocaml
nojb has joined #ocaml
avsm has quit [Ping timeout: 240 seconds]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
kdef has quit [Quit: Leaving]
A1977494 has joined #ocaml
A1977494 has quit [Client Quit]
jonludlam has quit [Ping timeout: 264 seconds]
divyanshu has joined #ocaml
divyanshu has quit [Client Quit]
araujo has quit [Quit: Leaving]
avsm1 has quit [Quit: Leaving.]
divyanshu has joined #ocaml
larhat has joined #ocaml
jonludlam has joined #ocaml
LnL has quit [Quit: ZNC - http://znc.in]
avsm has joined #ocaml
<struk|desk2> does anyone know of a small ocamlib that tries to implement an Error + Or_error module (say w/polymorphic variants) ?
<struk|desk2> nojb: yeah but it doesn't have a concept of error or_error, it just has result, which is a good starting point but not everything
<Leonidas> you can talk to Daniel to add it, maybe?
<companion_cube> type 'a or_error = ('a, string) result ?
<struk|desk2> that is the jane street definition, except it throws around s-expressions
<struk|desk2> I'm not sure If I even like that defintion though
<nojb> what do you mean by error or_error ?
<struk|desk2> error, or_error
<nojb> what do you mean exactly ?
<thizanne> what do you mean by error, or_error ?
<struk|desk2> jane street has an Error.t and Or_error.t. one sec.
<struk|desk2> and error is this (which seems to be an info module with other stuff) : https://github.com/janestreet/core_kernel/blob/master/lib/error.ml
badkins_ has quit [Read error: Connection reset by peer]
<struk|desk2> but or_error is just a special instance of a result, using that customized error type.
<nojb> right so what is it that you want that is not provided by rresult lib ?
<struk|desk2> well I want out of the box something like the or_error and error defintions, but maybe not using sexp for expressiveness but poly variants or something else instead
<companion_cube> I think you should just use result
maufred has quit [Ping timeout: 265 seconds]
<struk|desk2> that's essentially an argument that or_error is not a necessary concept on it's own (eg. a separate shared lib among different projects) ?
matason has quit []
maufred has joined #ocaml
<Leonidas> I still don't understand what it is supposed to be good for
<struk|desk2> yeah I hear ya. this is the original blog justifying it's existance: https://blogs.janestreet.com/how-to-fail-introducing-or-error-dot-t/
jonludlam has quit [Ping timeout: 264 seconds]
<struk|desk2> perhaps its really only useful if you want to specialize on an particular error handling strategy (like the sexp thing)
nojb has quit [Quit: nojb]
octachron has quit [Quit: Leaving]
dsheets has quit [Ping timeout: 246 seconds]
LnL has joined #ocaml
<companion_cube> struk|desk2: type 'a or_error = [`Ok of 'a | `Error of string]
<companion_cube> this is what works currently between most projects
<companion_cube> having a special Error.t type isn't common (unless you use exn(
nojb has joined #ocaml
<Leonidas> it would be nice to have such a type in the stdlib :-)
<Leonidas> also, a module for handling option types
<companion_cube> well, so many things
tane has joined #ocaml
<companion_cube> but until then, you can use a stdlib extension/replacement ;)
<struk|desk2> companion_cube: why is string better than say, `Error of exn? portability?
matason has joined #ocaml
<struk|desk2> interesting, they went with a plain variant
<avsm> performance
<struk|desk2> avsm: I didn't know polymophic variants can be slower...under what circumstances? matching?
<Leonidas> avsm: nice. I should wish for more things, so Yaron can use his time machine and implement them :-)
<ggole> There's little performance advantage for two cases
jonludlam has joined #ocaml
<ggole> Poly variants do have more indirection for multiple arguments, but that doesn't matter in this case
<struk|desk2> ok, thanks for the recommendations and links guys.
<companion_cube> struk|desk2: it's just a convention that Bünzli, for instance, has been following for a while
<Algebr> avsm: in cohttp, what is the point of the headers field in Request.t when doing a http request will end up adding headers anyway, for example transfer-encoding
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<avsm> Algebr: custom headers, and cohttp will never override user-supplied headers
BitPuffin has quit [Ping timeout: 245 seconds]
axiles has quit [Ping timeout: 276 seconds]
asQuirreL has joined #ocaml
nojb has quit [Quit: nojb]
thomasga has quit [Ping timeout: 256 seconds]
avsm has quit [Quit: Leaving.]
kdef has joined #ocaml
milosn has quit [Ping timeout: 245 seconds]
nojb has joined #ocaml
nojb has quit [Client Quit]
<Algebr> avsm: cohttp sometimes just hangs when making a request and I'm not sure why, I would have expected it to timeout or something..
milosn has joined #ocaml
axiles has joined #ocaml
robink_ has quit [Ping timeout: 245 seconds]
jonludlam has quit [Ping timeout: 264 seconds]
wwilly has joined #ocaml
psy has joined #ocaml
Denommus has quit [Ping timeout: 245 seconds]
manizzle has quit [Ping timeout: 248 seconds]
badkins has joined #ocaml
<flux> leonidas, I take if you are the author of the Slacko module? I haven't yet managed to test the fix ;)
Nijiko_ has quit [Ping timeout: 245 seconds]
Hannibal_Smith has joined #ocaml
jwatzman|work has joined #ocaml
jwatzman|work has quit [Changing host]
jwatzman|work has joined #ocaml
Submarine has joined #ocaml
Submarine has joined #ocaml
milosn has quit [Ping timeout: 252 seconds]
Haudegen has quit [Ping timeout: 245 seconds]
milosn has joined #ocaml
dav has quit [Quit: Lost terminal]
<Leonidas> flux: you would be correct :-)
<Leonidas> no worries
<Leonidas> (pretty sure it works, since the fix is not exactly rocket science)
lordkryss has joined #ocaml
Haudegen has joined #ocaml
<flux> leonidas, btw, I also have another issue with it.. to find out the channel id it needs to retrieve the channel list.. which apparently contains the list of members in each joined channel
<flux> and that takes some time and must be done before each sent message
<flux> hmm, now as I'm writing this comes to me can I myself do the caching?
<flux> I guess I can do that as channel ids are og for 'channel'
<Leonidas> flux: You can specify the channel id directly
<Leonidas> caching that would be easy, the problem is that it would also be incorrect, since the mapping #channel <-> C323id is not static
<flux> not even during the one session?
hellome has quit [Remote host closed the connection]
<Leonidas> I could expose a function that takes a #channel name and returns its current id.
<Leonidas> flux: the API is sessionless.
<flux> hmm, that is true. so I guess the only option is to assume the id persists. when does it not persist?
<flux> and if it doesn't persist (an error occurs), one could flush the cache
hellome has joined #ocaml
<Leonidas> the only call that does accept #channel names is chat.postMessage
manizzle has joined #ocaml
hellome has quit [Read error: Connection reset by peer]
<Leonidas> I could avoid the lookup roundtrip there
<flux> are you now referring to Slack API or Slacko API?
<Leonidas> flux: Slack API
<flux> ok, so that would be nice
hellome has joined #ocaml
<flux> the round trip took even something around 15 seconds for me behind 4G internet
<Leonidas> the other Slack API calls say they require IDs.
<flux> but my application persists, so it could just as easily find the ID in the beginning
<Leonidas> flux: I could add lookup_channel which resolves a channel name to an ID and you can deal on on the application side with it, if the channel gets renamed
dav has joined #ocaml
<Leonidas> that would solve 80% of roundtrips, since renames are not that common I guess.
<flux> isn't the idea of channel IDs that they don't change if the channel does get renamed?
<Leonidas> flux: yes. But if you say (chat_post_message "#ocaml" …) you'd want to post to the channel "#ocaml", and not to the channel that was named "#ocaml" when you did the first call :-)
<flux> actually can't I just use the channel_list call to find out the channel name -> channel id association
<Leonidas> when you do let chanid = lookup "#ocaml" in chat_post_message chanid … then the expectation is ok
<Leonidas> flux: sure, that's exactly what Slacko does internally.
<flux> the only downside is that I cannot store the 'channel' to a persistent storage
<flux> so if I wanted my bot to join a channel and stick to it regardless its restarts and channel renamed, it could a bit more annoying
<flux> but it's not really my use case :)
<Leonidas> flux: by the way, what are you building with Slacko, if I might ask?
<flux> leonidas, so what would the lookup_chat do? token -> chat -> channel_obj?
<flux> well, we have this PlayStation 3 at work where we play Worms during breaks...
axiles has quit [Ping timeout: 265 seconds]
<flux> ..so I'm going to have this button next to the PS3 that sends "Game's on!" to the channel
<flux> with RPi.
<Leonidas> flux: basically I'd just expose id_of_channel: https://github.com/Leonidas-from-XIV/slacko/blob/master/src/slacko.ml#L713
<Leonidas> flux: id_of_channel : token -> channel -> channel
<Leonidas> whereas channel might be already resolved to an id, in which case nothing is done, or it might be the ChannelName, in which case it looks it up
<Leonidas> (that's the case that causes the roundtrip, of course)
<Leonidas> flux: Cool! :)
<flux> I also have more advanced features on my mind, but I'll start easy :)
<Leonidas> Sure. I was kinda suspecting something similar from your description "Raspberry Pi" :)
<Leonidas> flux: in any case, if you find some issues or inconveniences, just let me know here or (possibly better, so I don't forget) in the bug tracker.
<Leonidas> I'll get going home
dav has quit [Quit: Lost terminal]
<flux> ok, have a nice walk/drive/whatever ;)
struktured has quit [Ping timeout: 245 seconds]
mort___ has joined #ocaml
Kakadu has quit [Quit: Page closed]
sinelaw has joined #ocaml
axiles has joined #ocaml
<reynir> I just looked at the README for slacko. It's fun to read heh :)
A1977494 has joined #ocaml
Haudegen has quit [Ping timeout: 245 seconds]
mengu__ has joined #ocaml
ygrek has quit [Ping timeout: 255 seconds]
mengu__ has quit [Remote host closed the connection]
Hannibal_Smith has quit [Quit: Leaving]
Nijikokun has joined #ocaml
Anarchos has joined #ocaml
dav has joined #ocaml
slash^ has quit [Quit: Leaving.]
A1977494 has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
dav has quit [Quit: Lost terminal]
rand000 has quit [Quit: leaving]
jonludlam has joined #ocaml
wwilly has quit [Quit: This computer has gone to sleep]
<sinelaw> hi! question about relaxing the value restriction. consider:
<sinelaw> let f x = (); let id x = x; let g = id f;
<sinelaw> g gets the type: '_a -> unit
<sinelaw> but can't we generalize 'a?
<sinelaw> it's never used!
Gama11 has joined #ocaml
<Drup> the typechecker doesn't know it's never used, it doesn't do "inlining" :)
<sinelaw> Drup, theoretically speaking it could tag it as unused at the definition of 'f'
<Drup> theoretically, but I doubt it has much use apart from toy examples.
<flux> in particular simply using the variable 'x' in the definition of 'f' would now cause other code breaking?
<sinelaw> flux, right
alexshendi has joined #ocaml
Kakadu has joined #ocaml
matason has quit []
mort___ has quit [Quit: Leaving.]
<ggole> sinelaw: eta-expand as usual
matason has joined #ocaml
octachron has joined #ocaml
<sinelaw> ggole, I know, I'm looking at this possible solution in the context of a language where a specific function argument may be consistently ignored
<ggole> You want to design a type system that gives g (and similar cases) a polymorphic type?
mengu__ has joined #ocaml
dav has joined #ocaml
asQuirreL has quit [Ping timeout: 246 seconds]
<sinelaw> ggole, not sure yet. but yes.
<Drup> what is your goal ?
<sinelaw> JavaScript's "this" argument
<Drup> I mean, it's pretty toy-y.
mort___ has joined #ocaml
<sinelaw> function(x) { return x; } <--- 'this' can be thought of as an implicit argument that is not being used here
<Drup> except his is not polymorphic
<sinelaw> why not?
<Drup> it's a structural type of the object
asQuirreL has joined #ocaml
<Drup> I mean not fully polymorphic ;)
<sinelaw> it could also be 'undefined'
<Drup> everything can be undefined in javascript, that's not a good argument
ollehar1 has quit [Ping timeout: 245 seconds]
<sinelaw> not in my type system
struktured has joined #ocaml
<ggole> I guess you could use data flow info to indicate the cases that it's safe to generalize
<ggole> That's not really a nice system though
<Drup> sinelaw: regardless, it's not a full 'a
<ggole> It would be hard for a user to tell why something had been/not been generalized
<sinelaw> Drup, why not? it's not used anywhere in the function I gave
<Drup> it's a < val x : int ; .. > option, in caml notation
<Drup> well, because it's a this, it's not "anything"
<sinelaw> Drup, ok, but both "undefined" and arbitrary rows are allowed, so say there's a constraint on it
<sinelaw> still, it's not monomorphic, because different invocations of that function could use different types for "this"
<sinelaw> e.g. f() vs. obj = { g : f }; obj.g()
<Drup> I didn't say it was monomorphic
<Drup> just not fully polymorphic
<sinelaw> ok
<Drup> there is a good amount of stuff in between
<Drup> and the value restriction doesn't behave the same
<sinelaw> Drup, value-restriction wise, it could have been generalized
<Drup> sure, and it is in OCaml
<sinelaw> oh?
<Drup> if you put the type constraint
<sinelaw> example?
<Drup> (at least I think)
<sinelaw> ggole, that's true
<Drup> arg no, it isn't here
<Drup> I wonder why it's not, it seems injective
<sinelaw> Drup, you mean g should have type +a' -> unit?
<Drup> f
<Drup> and that's < x : int; .. > -> unit, not 'a.
<Drup> or rather < .. >
<Drup> and I don't think it's covariant, just injective, which means it can be safely be generalized
olibjerd has left #ocaml [#ocaml]
<sinelaw> I didn't know that ocaml treats injective functions differently
dav has quit [Quit: Lost terminal]
<sinelaw> or did you mean something else?
<Drup> types
<Drup> not functions
<Drup> and it's more complicated than that
<Drup> you read jacque garigue's paper aboug relaxed value restriction ?
<Drup> huum, that is strange.
<octachron> injective types can be generalized ?
robink_ has joined #ocaml
<sinelaw> once :) don't remember too many details
<Drup> octachron: that's kinda the point of the paper, you should read it :p
<sinelaw> I happen to have it open
<sinelaw> the word "injective" is not mentioned
BitPuffin has joined #ocaml
<octachron> I have read the paper for the covariant types
kdef has quit [Ping timeout: 250 seconds]
<sinelaw> thanks
<Drup> yes, exactly the same :p
struk|desk2 has quit [Quit: Konversation terminated!]
BitPuffin has quit [Ping timeout: 272 seconds]
<Leonidas> reynir: people have different opinions on that, but I still like it :-)
<Drup> I tend to think I don't have to ask the reader how neat something is, just show it, but otherwise, yeah, it's amusing :p
thomasga has joined #ocaml
freling has joined #ocaml
_andre has quit [Quit: leaving]
claudiuc has joined #ocaml
dav- has quit [Quit: Lost terminal]
kdef has joined #ocaml
larhat has quit [Ping timeout: 276 seconds]
freling has quit [Quit: Leaving.]
larhat has joined #ocaml
<octachron> Drup: I must misunderstand type injectivity somehow... Isn't "type 'a ref = {mutable x : 'a }" injective?
Submarine has quit [Quit: Leaving]
Haudegen has quit [Ping timeout: 245 seconds]
sinelaw has quit [Quit: Leaving]
shinnya has joined #ocaml
wwilly has joined #ocaml
divyanshu has quit [Quit: Computer has gone to sleep.]
Haudegen has joined #ocaml
asQuirreL has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
asQuirreL has joined #ocaml
moei has quit [Quit: Leaving...]
javamonn has joined #ocaml
dav has joined #ocaml
Hannibal_Smith has joined #ocaml
ggole has quit []
freling has joined #ocaml
mort___ has quit [Quit: Leaving.]
divyanshu has joined #ocaml
avsm has joined #ocaml
divyanshu has quit [Client Quit]
tane has quit [Quit: Verlassend]
badkins has quit [Read error: Connection reset by peer]
mengu__ has quit [Remote host closed the connection]
ontologiae has joined #ocaml
Gama11 has quit [Read error: Connection reset by peer]
lordkryss has quit [Quit: Connection closed for inactivity]
Simn has quit [Quit: Leaving]
matason has quit []
Hannibal_Smith has quit [Quit: Leaving]
octachron has quit [Quit: Leaving]
badkins has joined #ocaml
freling has quit [Quit: Leaving.]
<Leonidas> def`: just tried Merlin with Neovim, works just fine :) (after installing the Python bindings)
<Anarchos> Leonidas what is neovim ?
<Leonidas> Anarchos: A more modern fork of Vim.
MercurialAlchemi has quit [Ping timeout: 256 seconds]
Kakadu has quit [Remote host closed the connection]
<Anarchos> Leonidas modern in what sense ?
javamonn has quit [Remote host closed the connection]
<Leonidas> Anarchos: Plugins decoupled from the main process, proper support for embedded terminals, removal of many legacy features, faster development pace via github
Anarchos has quit [Ping timeout: 250 seconds]
mridul_seth has joined #ocaml
Anarchos has joined #ocaml
ontologiae has quit [Ping timeout: 246 seconds]
Denommus has joined #ocaml
javamonn has joined #ocaml
javamonn has quit [Read error: Connection reset by peer]
javamonn has joined #ocaml
osa1_ has quit [Ping timeout: 240 seconds]
BitPuffin has joined #ocaml
Algebr has quit [Ping timeout: 264 seconds]
avsm has quit [Quit: Leaving.]
osa1_ has joined #ocaml
javamonn has quit [Remote host closed the connection]
mridul_seth has quit [Ping timeout: 245 seconds]
robink_ has quit [Ping timeout: 245 seconds]
javamonn has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
thomasga has quit [Quit: Leaving.]