19:13:52 From Claude Rubinson To Everyone : Houston Functional Programming User Group: hfpug.org 19:28:19 From Rudi Grinberg To Everyone : Sorry for the late entrance! 19:29:36 From Claude Rubinson To Everyone : No worries! We've actually just been introducing ourselves. 19:30:25 From Allen Hai To Everyone : I love that lego analogy! It really does capture the nature of functional programming in a simple way :) 19:30:29 From Michael Bacarella To Everyone : TLA was mentioned twice here so maybe it's fate, but in case you missed it, I feel like I should point out this heroic effort undertaken by a member of the community named Malte to formally verify a solution to a bug in glibc pthreads that was causing deadlocks in the OCaml runtime. https://probablydance.com/2020/10/31/using-tla-in-the-real-world-to-understand-a-glibc-bug/ 19:30:35 From Allen Hai To Everyone : And legos are fun :))) 19:30:46 From Shon Feder To Everyone : Yes totally. I also love the lego/sculpting view and approach. 19:32:00 From Isaac To Everyone : I'm super interested in using Apalache's bounded and symbolic model checking capabilities 19:33:06 From Allen Hai To Everyone : http://ocsigen.org/js_of_ocaml/3.7.0/manual/overview 19:33:18 From Allen Hai To Everyone : https://rescript-lang.org 20:06:49 From Shon Feder To Everyone : Let’s sync up after, Isaac. I can help connect you with the lead dev on the project. We’re very invested in helping support users get Apalache running effectively :) Feel free to email me at shon@informal.systems. 20:09:43 From Robin Bjorklin To Everyone : This feels a bit on theme hearing the bits from Jane Street and talking about failure cases: https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/ 20:12:10 From Jose Luiz Vargas De Mendonca To Everyone : I have to go. Thanks for the great conversation today! I am at the very beginning of learning ocaml and having a high overview of how it works helps a lot. Hope to meet again in the future. 20:16:35 From Robin Bjorklin To Everyone : I'm also going to drop off and grab dinner. Good getting some faces to all the names from discuss :) 20:16:50 From Shon Feder To Everyone : Hey Michael! Welcome. 20:17:13 From Michael To Everyone : Thanks! It’s been too long. 20:18:27 From Allen Hai To Everyone : https://www.indiehackers.com 20:20:20 From Allen Hai To Everyone : OCaml is soooo fast 20:20:35 From Michael Bacarella To Everyone : Re: the Knight Capital Group implosion https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/ if you don't want this to happen to you, make sure you use bin_prot for serializing binary 20:20:39 From Michael Bacarella To Everyone : protocls 20:20:40 From Michael Bacarella To Everyone : https://github.com/janestreet/bin_prot 20:21:14 From Allen Hai To Everyone : https://reasonml.github.io/reason-react/docs/en/installation.html 20:23:44 From Shon Feder To Everyone : Here’s my favorite paper by Joseph Goguen, whom I mentioned in my intro https://cseweb.ucsd.edu/~goguen/pps/as.pdf. — the examples are in OBJ, not OCaml, but if you squint I think you can see the strong resemblance with the OCaml module system (because the module system is parametric). The approach of “Algebraic Semiotics” he proposes there is approximately midway between DDD and denotational semantics. I think it’s a great example of showing how we can think in a disciplined way with our type signatures. 20:33:58 From Isaac To Everyone : I have to get going. Thanks for the great conversation everyone! 20:39:15 From Yawar Amin To Everyone : https://github.com/Octachron/tensority 20:41:49 From Yawar Amin To Everyone : https://hackage.haskell.org/package/safe-tensor 20:44:04 From Michael Bacarella To Everyone : brb sorry 20:55:14 From Michael Bacarella To Everyone : Max, so you could end up with an interface like this (.mli) type t type u val t_of_array : array -> t val u_of_array : array -> u ... val array_of_t : t -> array val array_of_u : u -> array ... val add : t -> u -> v and then an implementation like this (.ml): type t = array type u = array let t_of_array a = a let u_of_array a = a let array_of_t t = t let array_of_u u = u let add a b = a + b --- ocaml will not let accidentally call add with anything but t and u, but there's no overhead on the implementation side 20:56:31 From Rudi Grinberg To Everyone : Lwt.wakeup and Lwt.wait 21:00:00 From Michael To Everyone : Dinner calls, gentlemen. Great to join tonight and hope to join next time. Take care. 21:00:09 From Allen Hai To Everyone : Bye!! 21:00:37 From A. Max Reppen To Everyone : Thanks Michael 21:01:06 From Michael Bacarella To Everyone : I've gotta run, toddler bedtime! Nice hanging out with y'all