Leonidas changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 4.13.0 released: https://ocaml.org/releases/4.13.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
Haudegen has quit [Ping timeout: 240 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Techcable has joined #ocaml
<d_bot> <cemerick> I have something you might be interested in https://github.com/cemerick/homunculus
<d_bot> <cemerick> It's a nodejs eval facility
<d_bot> <cemerick> (I have yet to write the docs or do a release)
mbuf has joined #ocaml
tizoc has quit [Quit: Coyote finally caught me]
tizoc has joined #ocaml
leah2 has quit [Ping timeout: 268 seconds]
leah2 has joined #ocaml
waleee has quit [Quit: WeeChat 3.3]
zebrag has quit [Quit: Konversation terminated!]
rgrinberg has joined #ocaml
gravicappa has joined #ocaml
xd1le has joined #ocaml
Haudegen has joined #ocaml
mro has joined #ocaml
haesbaert has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
olle has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<d_bot> <Continuation Calculus> Looks vinteresting
bartholin has joined #ocaml
<Leonidas> companion_cube: If I had the choice, I'd still prefer alcotest over ounit because ounit is a very java/xunit style library whereas the composable testables in alcotest are much nicer API-wise
<Leonidas> also it doesn't overload silly operators just because you can write `foo >::: bar`
<d_bot> <Continuation Calculus> Do you plan to maintain it, or was it just as a demonstration of the approach of keeping one process open?
olle has quit [Remote host closed the connection]
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
<companion_cube> Leonidas: the API is bad in both cases imho
<companion_cube> I find the first class modules of alcotest weird
<Leonidas> companion_cube: where do you need to use first-class modules?
<companion_cube> The checkable thing
<companion_cube> The ounit actual test functions are more straightforward to use
<Leonidas> Testables?
<d_bot> <cemerick> The former is the plan
<d_bot> <cemerick> It's what will keep using e.g. dream feasible long term
<d_bot> <cemerick> (For me, that is)
<companion_cube> Ah yes
<Leonidas> I find these pretty straightforward, there's combinators and you can implement your own TESTABLES. it is kinda like Cmdliner or Fmt, just with simpler types.
<d_bot> <undu> It's a barrier for newcomers: 1. Knowing what is a "testable" and how to define it, 2. Knowing what is Fmt.t and how to define one
<d_bot> <undu> I think this could be eased somewhat
<Leonidas> Sure, but the most common testables are predefined anyway
<Leonidas> `assert_equal ~equal:String.equal "hest" my_value` is `Alcotest.(check string) "hest" my_value` essentially
mro has joined #ocaml
mro has quit [Remote host closed the connection]
xiongxin has joined #ocaml
mro has joined #ocaml
mro has quit [Ping timeout: 256 seconds]
Haudegen has quit [Quit: Bin weg.]
xiongxin1 has joined #ocaml
xiongxin has quit [Ping timeout: 256 seconds]
xiongxin1 is now known as xiongxin
mro has joined #ocaml
<d_bot> <blub> does flambda work with multicore?
<d_bot> <VPhantom> From the April update: "Support for Flambda has been merged into the Multicore OCaml project repository."
waleee has joined #ocaml
mro has quit [Remote host closed the connection]
Haudegen has joined #ocaml
mro has joined #ocaml
mro has quit [Remote host closed the connection]
xiongxin1 has joined #ocaml
xiongxin has quit [Ping timeout: 265 seconds]
xiongxin1 is now known as xiongxin
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
xiongxin has quit [Remote host closed the connection]
rgrinberg has quit [Ping timeout: 265 seconds]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
zebrag has joined #ocaml
waleee has quit [Ping timeout: 252 seconds]
mro has joined #ocaml
rgrinberg has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
mro has quit [Remote host closed the connection]
mro has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mbuf has quit [Quit: Leaving]
mro has quit [Remote host closed the connection]
bartholin has quit [Quit: Leaving]
Serpent7776 has quit [Read error: Connection reset by peer]
Serpent7776 has joined #ocaml
Haudegen has joined #ocaml
Techcable has quit [Ping timeout: 240 seconds]
xd1le has quit [Quit: xd1le]
mro has joined #ocaml
ulyssa has quit [Remote host closed the connection]
ulyssa has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
ulyssa has quit [K-Lined]
gravicappa has quit [Ping timeout: 268 seconds]
<d_bot> <EduardoRFS> Is it possible to implement the following function without using exceptions or recursive types in OCaml?
<d_bot> <EduardoRFS>
<d_bot> <EduardoRFS> ```ocaml
<d_bot> <EduardoRFS> type ('a, 'b) eq = Eq: ('a, 'a) eq
<d_bot> <EduardoRFS> type _ s
<d_bot> <EduardoRFS> let f: type n a . (n, n s) eq -> a = ...
<d_bot> <EduardoRFS> ```
<d_bot> <EduardoRFS> I understand that there is valid cases for n, but from what I understand it's only the case under recursive types, is recursive types supposed to be sound in OCaml?
<d_bot> <octachron> `let f: ... = fun x -> let rec never x = never x in never x`?
<d_bot> <octachron> But no, the function `f` can never return.
<d_bot> <octachron> Recursive types are sound in OCaml.
<d_bot> <EduardoRFS> sad
<d_bot> <EduardoRFS> Was having fun doing Coq -> OCaml, but this broke me
kurfen_ has quit [Quit: ZNC 1.8.2 - https://znc.in]
kurfen has joined #ocaml
lagash has quit [Quit: ZNC - https://znc.in]
lagash has joined #ocaml
kurfen_ has joined #ocaml
kurfen has quit [Ping timeout: 265 seconds]
kurfen_ has quit [Client Quit]
<d_bot> <octachron> Ah, your question was more in the direction, it is possible to prove that `(n, n s) eq` is empty.
kurfen has joined #ocaml
lagash has quit [Client Quit]
lagash has joined #ocaml
lagash has quit [Quit: ZNC - https://znc.in]
<d_bot> <EduardoRFS> @octachron I don't think so
<d_bot> <EduardoRFS> ```ocaml
<d_bot> <EduardoRFS> let eq : (('a s as 'a), 'a s) eq = Eq
<d_bot> <EduardoRFS> ```
<d_bot> <EduardoRFS>
<d_bot> <EduardoRFS> Actually types under rectypes
<d_bot> <EduardoRFS> and allows you to call f
gravicappa has joined #ocaml
<d_bot> <EduardoRFS> which I would guess is why `function _ -> .` didn't work
<d_bot> <EduardoRFS> also depending on the type of s it's possible to create it using `let rec`
<d_bot> <octachron> There is also the issue that your definition could be hidding `type 'a s = 'a`
<d_bot> <EduardoRFS> Oh yeah in my case s = |
<d_bot> <EduardoRFS> Was a mistake when copying it
<d_bot> <EduardoRFS> It would be cool to have a way to prove that a type is not recursive so this could be rejected with .
haesbaert has quit [Remote host closed the connection]
mro has quit [Remote host closed the connection]
lagash has joined #ocaml
Techcable has joined #ocaml
gravicappa has quit [Ping timeout: 256 seconds]
mro has joined #ocaml
mro has quit [Remote host closed the connection]
mro has joined #ocaml
vicfred has joined #ocaml
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
Haudegen has joined #ocaml
mro has quit [Quit: Leaving...]
Tuplanolla has quit [Quit: Leaving.]