adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.09 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.09/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
oriba has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
ollehar has quit [Ping timeout: 240 seconds]
ollehar has joined #ocaml
malc_ has quit [Ping timeout: 272 seconds]
<snowpanda> type t = U of u and u = T of t (* OK *) - Why is this legal?
<snowpanda> It seems like to construct a t, I'd need a u, and to construct a u, I'd need a t
malc_ has joined #ocaml
robmyers has quit [Quit: Connection closed for inactivity]
<companion_cube> `let rec t0 = T u0 and u0 = U t0 ;;` <-- it works, you just have a cyclic structure
mbuf has joined #ocaml
mbuf has quit [Remote host closed the connection]
mbuf has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
waleee-cl has quit [Quit: Connection closed for inactivity]
brown121407 has joined #ocaml
malc_` has joined #ocaml
malc_ has quit [Ping timeout: 272 seconds]
robmyers has joined #ocaml
malc_` has quit [Ping timeout: 256 seconds]
osa1 has joined #ocaml
snowpanda has quit [Remote host closed the connection]
wagle has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
wagle has joined #ocaml
snowpanda has joined #ocaml
vicfred has quit [Quit: Leaving]
kleisli has joined #ocaml
narimiran has joined #ocaml
snowpanda has quit [Remote host closed the connection]
snowpanda has joined #ocaml
snowpanda has quit [Remote host closed the connection]
kleisli has quit [Ping timeout: 256 seconds]
snowpanda has joined #ocaml
cantstanya has quit [Remote host closed the connection]
cantstanya has joined #ocaml
Haudegen has joined #ocaml
ggole has joined #ocaml
malc_` has joined #ocaml
malc_` has quit [Remote host closed the connection]
malc_ has joined #ocaml
govg has joined #ocaml
lobo has quit [Quit: WeeChat 2.3]
lobo has joined #ocaml
snowpanda has quit [Remote host closed the connection]
ollehar has quit [Ping timeout: 260 seconds]
ollehar has joined #ocaml
henrik`` has joined #ocaml
robmyers has quit [Quit: Connection closed for inactivity]
olle has joined #ocaml
sarna has joined #ocaml
sarna has left #ocaml [#ocaml]
luna_is_here has joined #ocaml
<flux> though it's very impractical in practice :)
kleisli has joined #ocaml
bartholin has quit [Quit: Leaving]
<olle> what about freezing as an alternative to immutability?
andreas303 has quit [Remote host closed the connection]
andreas303 has joined #ocaml
<olle> maybe makes no sense in a language where almost everything already is immutable
infinity0 has quit [Remote host closed the connection]
<flux> how would the freezing work?
<flux> you need support for immutable data anyway, and you need to make a copy of the data or dynamically prevent freezed data from being mutated?
<olle> flux: no, freezing can happen without a copy if you do it on type-level
<flux> so freezing would then need to be part of the type system
<flux> for example: `let foo a = freeze a` wouldn't work otherwise?
<flux> sometimes it would be nice if I were able to transform a record into a variant that has optionals and mutable fields eliminated. this I guess is very feasible with ppx.
<flux> variant was a bad word, I didn't mean the language feature :)
<flux> basically go from `type t' = { a : string option ref }` to `type t = { a : string }` with the obvious checking required and high-quality error data :)
<flux> in particular it would be useful when processing options. though the Cmdliner-module handles that particular problem for command-line arguments.
infinity0 has joined #ocaml
<olle> flux: well, going from option to not-option would require some standard value stuff
<olle> but yeah, guess a ppx could do that
<flux> it would only require a way to dynamically signal missing values
<flux> in most user-facing applications those would be converted to error messages, missing parameter X etc, or similarly in protocol contexts
<olle> ah
<olle> yeah, `freeze val` and get None back :D
oturtle_ has joined #ocaml
oturtle_ has quit [Client Quit]
oturtle has joined #ocaml
oturtle has quit [Client Quit]
oturtle has joined #ocaml
bartholin has joined #ocaml
nullcone has quit [Quit: Connection closed for inactivity]
malc_ has quit [Ping timeout: 240 seconds]
Anarchos has joined #ocaml
brown121407 has quit [Remote host closed the connection]
Haudegen has quit [Quit: Bin weg.]
Anarchos has quit [Quit: Vision[0.10.3]: i've been blurred!]
malc_ has joined #ocaml
muskan has joined #ocaml
_whitelogger has joined #ocaml
luna_is_here_ has joined #ocaml
luna_is_here has quit [Ping timeout: 240 seconds]
oturtle has quit [*.net *.split]
infinity0 has quit [*.net *.split]
wildsebastian has quit [*.net *.split]
sadiq_ has quit [*.net *.split]
penguwin has quit [*.net *.split]
robi has quit [*.net *.split]
p4bl0 has quit [*.net *.split]
engil has quit [*.net *.split]
johnel has quit [*.net *.split]
oturtle has joined #ocaml
infinity0 has joined #ocaml
robi has joined #ocaml
penguwin has joined #ocaml
johnel has joined #ocaml
engil has joined #ocaml
sadiq_ has joined #ocaml
wildsebastian has joined #ocaml
p4bl0 has joined #ocaml
muskan has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
dckc has quit [Ping timeout: 246 seconds]
ziman has quit [Ping timeout: 246 seconds]
dckc has joined #ocaml
zebrag has joined #ocaml
ziman has joined #ocaml
kleisli has quit [Ping timeout: 260 seconds]
osa1 has quit [Ping timeout: 264 seconds]
porchetta has quit [Ping timeout: 246 seconds]
oturtle has quit [Ping timeout: 272 seconds]
oturtle has joined #ocaml
porchetta has joined #ocaml
luna_is_here_ has quit [Ping timeout: 246 seconds]
luna_is_here_ has joined #ocaml
h14u has joined #ocaml
brown121407 has joined #ocaml
webshinra has quit [Remote host closed the connection]
olle has quit [Ping timeout: 240 seconds]
muskan has joined #ocaml
narimiran has quit [Ping timeout: 256 seconds]
osa1 has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
nullcone has joined #ocaml
waleee-cl has joined #ocaml
robmyers has joined #ocaml
zv has joined #ocaml
Haudegen has joined #ocaml
mbuf has quit [Quit: Leaving]
muskan has quit [Ping timeout: 245 seconds]
<ollehar> test
<ollehar> hey, haskell merged linear types? that's cool!
zebrag has quit [Ping timeout: 240 seconds]
inkbottle has joined #ocaml
vicfred has joined #ocaml
oriba has joined #ocaml
luna_is_here_ has quit [Read error: Connection reset by peer]
malc_ has quit [Remote host closed the connection]
osa1 has quit [Quit: osa1]
porchetta_ has joined #ocaml
porchetta has quit [Ping timeout: 240 seconds]
<flux> wow, that's nice
bitmapper has joined #ocaml
<bitmapper> hmm.
<bitmapper> this doesn't seem quite right
nullcone has quit [Quit: Connection closed for inactivity]
<bitmapper> using rectypes you can write a function that can return a function of (a -> a -> a -> a), (a -> a -> a), or (a -> a)
<companion_cube> well, rectypes is full yolo
<bitmapper> yes
<bitmapper> but like
<bitmapper> idk
narimiran has joined #ocaml
Hrundi_V_Bakshi has joined #ocaml
ggole has quit [Quit: Leaving]
jnavila has joined #ocaml
<Leonidas> ha, love me getting some hatemail from travis
<companion_cube> love me getting some news about merges from github :p
jnavila_ has joined #ocaml
jnavila has quit [Ping timeout: 256 seconds]
brown121407 has quit [Remote host closed the connection]
infinity0 has quit [Remote host closed the connection]
narimiran has quit [Ping timeout: 246 seconds]
henrik`` has quit [Ping timeout: 260 seconds]
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
jnavila_ has quit [Ping timeout: 272 seconds]
h14u has quit [Quit: Leaving]
jbrown has quit [Ping timeout: 265 seconds]
infinity0 has joined #ocaml
Hrundi_V_Bakshi has quit [Ping timeout: 246 seconds]
Haudegen has quit [Ping timeout: 256 seconds]
vicfred_ has joined #ocaml
vicfred has quit [Ping timeout: 240 seconds]
tobiasBora2 has quit [Ping timeout: 260 seconds]
tobiasBora2 has joined #ocaml