companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.2.0 released: https://ocaml.org/releases/5.2.0 | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
f[x] has joined #ocaml
rgrinberg has quit [Quit: My Unrecognized Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
f[x] has quit [Remote host closed the connection]
Haudegen has quit [Quit: Bin weg.]
Everything has quit [Quit: leaving]
rgrinberg has quit [Quit: My Unrecognized Mac has gone to sleep. ZZZzzz…]
Tuplanolla has quit [Quit: Leaving.]
troydm has joined #ocaml
tremon has quit [Quit: getting boxed in]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
toastal has joined #ocaml
zenmov has quit [Quit: Reconnecting]
zenmov has joined #ocaml
zenmov has quit [Changing host]
zenmov has joined #ocaml
zenmov has quit [Client Quit]
zenmov has joined #ocaml
zenmov has quit [Client Quit]
zenmov has joined #ocaml
zenmov has quit [Client Quit]
zenmov has joined #ocaml
divya` has joined #ocaml
divya has quit [Ping timeout: 260 seconds]
deavmi has joined #ocaml
deavmi has quit [Remote host closed the connection]
deavmi has joined #ocaml
toastal has left #ocaml [Disconnected: Hibernating too long]
YuGiOhJCJ has joined #ocaml
bartholin has joined #ocaml
toastal has joined #ocaml
toastal has left #ocaml [Disconnected: Hibernating too long]
olle has joined #ocaml
Haudegen has joined #ocaml
toastal has joined #ocaml
chrisz has quit [Ping timeout: 252 seconds]
chrisz has joined #ocaml
bartholin has quit [Quit: Leaving]
toastal has left #ocaml [Disconnected: Hibernating too long]
toastal has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
seeg has quit [Remote host closed the connection]
philipwhite has quit [Remote host closed the connection]
ymherklotz has quit [Remote host closed the connection]
arya_elfren has quit [Remote host closed the connection]
ggb has quit [Remote host closed the connection]
078AAO3AY has quit [Remote host closed the connection]
whereiseveryone has quit [Remote host closed the connection]
lane has quit [Remote host closed the connection]
henrytill has quit [Remote host closed the connection]
sleepydog has quit [Remote host closed the connection]
pluviaq has quit [Remote host closed the connection]
xvilka has quit [Remote host closed the connection]
040AAOEU2 has quit [Remote host closed the connection]
slondr has quit [Remote host closed the connection]
rustyne has quit [Remote host closed the connection]
richardhuxton has quit [Remote host closed the connection]
immutable has quit [Remote host closed the connection]
ursa-major has quit [Remote host closed the connection]
pmk_ has quit [Remote host closed the connection]
beo has quit [Remote host closed the connection]
b0o has quit [Remote host closed the connection]
_alix has quit [Remote host closed the connection]
Ankhers has quit [Remote host closed the connection]
arya_elfren has joined #ocaml
ggb has joined #ocaml
beo has joined #ocaml
pmk has joined #ocaml
lane has joined #ocaml
philipwhite has joined #ocaml
patrick_ has joined #ocaml
rustyne has joined #ocaml
immutable has joined #ocaml
richardhuxton has joined #ocaml
pluviaq has joined #ocaml
whereiseveryone has joined #ocaml
xvilka has joined #ocaml
_alix has joined #ocaml
slondr has joined #ocaml
Ankhers has joined #ocaml
b0o has joined #ocaml
seeg has joined #ocaml
ursa-major has joined #ocaml
sleepydog has joined #ocaml
ymherklotz has joined #ocaml
henrytill has joined #ocaml
soni_ has joined #ocaml
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
semarie has quit [Quit: quit]
toastal has quit [Ping timeout: 246 seconds]
semarie has joined #ocaml
semarie has quit [Client Quit]
semarie has joined #ocaml
Haudegen has joined #ocaml
f[x] has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
divya` has quit [Ping timeout: 246 seconds]
<Soni> how often does ocaml use exceptions?
euphores has quit [Quit: Leaving.]
<discocaml> <._null._> Quite often I would say
euphores has joined #ocaml
olle has quit [Ping timeout: 252 seconds]
f[x] has quit [Remote host closed the connection]
eilvelia has joined #ocaml
Haudegen has joined #ocaml
cross has quit [Ping timeout: 252 seconds]
cross has joined #ocaml
troydm has joined #ocaml
<discocaml> <ada2k> pretty often, although most good apis offer you an option or error based version
<discocaml> <yawaramin> for stuff that deals with I/O i'd say exceptions are unavoidable. eg look at Eio
<companion_cube> exceptions work well with scope based resource management
bartholin has joined #ocaml
bibi_ has joined #ocaml
Anarchos has joined #ocaml
Serpent7776 has joined #ocaml
pi3ce has quit [Read error: Connection reset by peer]
pi3ce_ has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Anarchos has joined #ocaml
euphores has quit [Ping timeout: 245 seconds]
euphores has joined #ocaml
Stumpfenstiel has joined #ocaml
Stumpfenstiel has quit [Ping timeout: 252 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
eilvelia has quit [Quit: eilvelia]
eilvelia has joined #ocaml
Anarchos has joined #ocaml
Stumpfenstiel has joined #ocaml
rgrinberg has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Everything has joined #ocaml
Tuplanolla has joined #ocaml
f[x] has joined #ocaml
bartholin has quit [Quit: Leaving]
Anarchos has joined #ocaml
Serpent7776 has quit [Ping timeout: 248 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Anarchos has joined #ocaml
mange has joined #ocaml
ski has quit [Ping timeout: 252 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
ski has joined #ocaml
Stumpfenstiel has quit [Ping timeout: 245 seconds]
<Soni> hmm
<Soni> think you can make use of this slightly cursed idea? https://soniex2.autistic.space/draft/exception-oriented-programming.xhtml
<Soni> (it's about when your interface calls itself. for example maybe you have an object that represents a database, and then you have objects that represent, for example, an union of two databases, an intersection of two databases, an "if the first database has this entry, then find the corresponding database in the list and use that for the actual query", and so on. and these also, themselves, act as databases, so you can compose these objects like
<Soni> they're chains of transformations or something)
<discocaml> <ape_logic> exceptions are my least favourite part of OCaml (or any language)
<discocaml> <ape_logic> imo potential errors shouldn't escape the type system this way
semarie has quit [Ping timeout: 245 seconds]
semarie has joined #ocaml
Everything has quit [Ping timeout: 265 seconds]
Everything has joined #ocaml
<discocaml> <contificate> at least OCaml's exceptions are very cheap
<discocaml> <ape_logic> true, but I'm more concerned with dx than runtime cost
<discocaml> <ape_logic> it has never, ever not completely sucked to hit an error you had no idea was even possible
<discocaml> <contificate> well, I mean - effect safety would be better overall
<discocaml> <contificate> as effects subsume exceptions
<discocaml> <ape_logic> agreed
<discocaml> <ape_logic> I just want composable, well indicated potential errors lol
rgrinberg has quit [Quit: My Unrecognized Mac has gone to sleep. ZZZzzz…]
<discocaml> <contificate> I just really get real tired of programming within monads
<discocaml> <ape_logic> effects are the best approach I've seen, although all the effects talk I see in OCaml is related to concurrency systems
<discocaml> <contificate> yeah, because the lack of effect safety and intention to use it build scalable concurrency over domains