companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.11 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.11/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
Haudegen has quit [Ping timeout: 264 seconds]
dhil has quit [Ping timeout: 256 seconds]
<d_bot_> <roddy> @Jo.Blade I have a vim setup for sending code to utop in tmux using vimux if that's the kind of thing you're looking for
nepascourir has joined #ocaml
nepascourir has quit [Quit: Leaving]
rock64 has quit [Ping timeout: 246 seconds]
rock64 has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
elusive has joined #ocaml
dh` has quit [Read error: Connection reset by peer]
dh` has joined #ocaml
elusive has quit [Quit: Leaving]
mbuf has joined #ocaml
<d_bot_> <EduardoRFS> Why I can't use GADTs directly to proof that two module types are equal? ```ocaml
<d_bot_> <EduardoRFS> ((module A), (module B)) eq
<d_bot_> <EduardoRFS> ```
<d_bot_> <EduardoRFS>
<d_bot_> <EduardoRFS> Doesn't allow me to convert one to the other, but if I have an intermediary abstract type I can do it, which seems weird
mfp has quit [Ping timeout: 260 seconds]
mxns has quit [Ping timeout: 240 seconds]
zebrag has quit [Read error: Connection reset by peer]
zebrag has joined #ocaml
mxns has joined #ocaml
mxns has quit [Ping timeout: 265 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 265 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 264 seconds]
mxns has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
mxns has quit [Ping timeout: 265 seconds]
mbuf has quit [Remote host closed the connection]
mbuf has joined #ocaml
Serpent7776 has joined #ocaml
<d_bot_> <froyo> huh. it'd be news to me if we could be generic over modules in a higher kinded way like this
<d_bot_> <froyo> what's your implementation of eq like?
<d_bot_> <EduardoRFS> it is possible, I have modular implicits implemented partially in userspace
<d_bot_> <EduardoRFS> default one, `| Eq: ('a, 'a) eq`
<d_bot_> <EduardoRFS> I did some trickery to replace first class modules on the implicits paper as a target using this.
<d_bot_> <EduardoRFS>
<d_bot_> <EduardoRFS> But now I'm trying to build a self cyclic recursive module, I was able to build the recursive module type using the GADT trick with an intermediary
<d_bot_> <froyo> I haven't experimented with those. I'm afraid I won't be much help, but I'll be watching where it goes
<d_bot_> <froyo> got a writeup in the works perhaps?
<d_bot_> <EduardoRFS> I don't know how to write, you can find progress on my twitter media because I post it almost everyday
<d_bot_> <EduardoRFS>
<d_bot_> <froyo> I'll take what I can :P
narimiran has joined #ocaml
<d_bot_> <Jo.Blade> Yes its looks to be what I'm looking for
<d_bot_> <Jo.Blade> Thanks, I understand better now, I should try
<d_bot_> <Jo.Blade> @roddy how it works exactly? You just go in visual mode, select your fonction and press a key to send and execute in another tmux terminal ?
<d_bot_> <Jo.Blade> Is the ";;" automatically added at the end of the sentence ?
<d_bot_> <Jo.Blade> Or maybe you don't have to select by hand ?
decentpenguin has quit [Read error: Connection reset by peer]
decentpenguin has joined #ocaml
<d_bot_> <EduardoRFS> Can anyone imagine an usage for cyclical modules? Like, X.X.X.X == X?
<d_bot_> <octachron> @EduardoRFS , concerning your equality problems, it sounds like you hit the restriction that only abstract type can be refined by matching on a GADT.
<d_bot_> <EduardoRFS> @octachron but the thing is, by adding a third type `a` I was able to work around it and make the equality behaves as expected
<d_bot_> <octachron> Without seeing the code, it does sound like a variant of https://sketch.sh/s/7FEI7YznnMUTJNcNAdfkcb
guanche has joined #ocaml
<d_bot_> <EduardoRFS> @octachron the code https://gist.github.com/EduardoRFS/ccf3cf4183a46f0449e411b48db57e34 but yeah your example can also be hacked https://sketch.sh/s/4S44eggNThvSvvSCN7UiWh/
<d_bot_> <EduardoRFS> added `type temp` and split the equality in two pieces, then I can do the transformation in two steps,
<d_bot_> <EduardoRFS> but good to know this is known behavior, was concerned
<d_bot_> <octachron> Yep. With 4.13, you can do the same thing more locally by using a named existential variable to temporarily hide a concrete type.
<d_bot_> <octachron> This is the motivation behind: https://github.com/ocaml/ocaml/issues/10237
<d_bot_> <octachron> https://gist.github.com/Octachron/916d307c4a4ea031e3b795b0cc0a361e for the "how to locally hide a type" trick in 4.13
mxns has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
<d_bot_> <EduardoRFS> @octachron do you know if there is any way to access equality of module types without going through first class modules / core language? Maybe something on the module system with fancy functors?
Haudegen has joined #ocaml
gareppa has joined #ocaml
gareppa has quit [Client Quit]
glass is now known as theglass
<d_bot_> <octachron> You can have conversion functor: `x->y` and `y->x` or the higher level version :`(x -> r) -> y -> r`
benc has joined #ocaml
guanche has quit [Quit: Leaving]
mxns has joined #ocaml
nullcone has quit [Quit: Connection closed for inactivity]
bartholin has joined #ocaml
benc_ has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
benc has quit [Ping timeout: 264 seconds]
benc_ has quit [Remote host closed the connection]
benc has joined #ocaml
hosewiejacke has joined #ocaml
ski_ is now known as ski
benc has quit [Remote host closed the connection]
hosewiejacke has quit [Ping timeout: 240 seconds]
benc has joined #ocaml
mbuf has quit [Quit: Leaving]
benc has quit [Remote host closed the connection]
benc has joined #ocaml
dhil has joined #ocaml
hosewiejacke has joined #ocaml
nepascourir has joined #ocaml
dckc has quit [Ping timeout: 240 seconds]
Haudegen has quit [Quit: Bin weg.]
benc has quit [Remote host closed the connection]
mfp has joined #ocaml
nepascourir has quit [Quit: Leaving]
nepascourir has joined #ocaml
wonko7 has joined #ocaml
IbnFirnas__ has joined #ocaml
IbnFirnas__ has left #ocaml [#ocaml]
mxns has joined #ocaml
Haudegen has joined #ocaml
mxns has quit [Ping timeout: 265 seconds]
decentpe- has joined #ocaml
glass has joined #ocaml
TheRuralJuror has joined #ocaml
hosewiejacke has quit [Ping timeout: 240 seconds]
Haudegen has quit [*.net *.split]
mfp has quit [*.net *.split]
dhil has quit [*.net *.split]
decentpenguin has quit [*.net *.split]
neiluj has quit [*.net *.split]
theglass has quit [*.net *.split]
decentpe- is now known as decentpenguin
TheRuralJuror has quit [Quit: Bin weg.]
Haudegen has joined #ocaml
neiluj has joined #ocaml
neiluj has quit [*.net *.split]
mfp has joined #ocaml
dhil has joined #ocaml
neiluj has joined #ocaml
mxns has joined #ocaml
hosewiejacke has joined #ocaml
mxns has quit [Ping timeout: 265 seconds]
<d_bot_> <froyo> that's an exciting feature.. before that I had to use functors to introduce new abstract types
nepascourir has quit [Quit: Leaving]
nepascourir has joined #ocaml
mxns has joined #ocaml
mxns has quit [Ping timeout: 276 seconds]
benc has joined #ocaml
zebrag has joined #ocaml
mxns has joined #ocaml
benc has quit []
malc_ has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
nepascourir has quit [Quit: Leaving]
benc has joined #ocaml
benc has quit [Read error: Connection reset by peer]
Tuplanolla has joined #ocaml
TheLemonMan has joined #ocaml
mouseghost has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
nepascourir has joined #ocaml
bartholin has quit [Quit: Leaving]
Haudegen has quit [Quit: Bin weg.]
malc_ has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
hosewiejacke has quit [Ping timeout: 240 seconds]
Solrac has joined #ocaml
Solrac is now known as Tekato
Tekato has quit [Quit: Ping timeout (120 seconds)]
kafilat_ has joined #ocaml
Haudegen has joined #ocaml
nullcone has joined #ocaml
nepascourir has quit [Quit: Leaving]
nepascourir has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
hosewiejacke has joined #ocaml
haesbaert has quit [Ping timeout: 264 seconds]
hosewiejacke has quit [Remote host closed the connection]
<d_bot_> <roddy> @Jo.Blade Yes it's basically like that, it's the utop bits here https://hg.sr.ht/~roddy/dotfiles/browse/.config/nvim/ocaml.vim?rev=tip (the issue in the comment might have been fixed now I'm not sure) with a binding at the bottom of this https://hg.sr.ht/~roddy/dotfiles/browse/.config/nvim/init.vim?rev=tip I don't actually use it much though (I think deriving some printable representation + expect tests is often a nicer workflow t
mxns has quit [Ping timeout: 260 seconds]
nepascourir has quit [Quit: Leaving]
<d_bot_> <Jo.Blade> Thanks @roddy I will take a look
<d_bot_> <Jo.Blade> But I have also found vim-slime
<d_bot_> <Jo.Blade> Vim slime support the vim-terminal and is just awesome
<d_bot_> <Jo.Blade> Just do ctr+c-ctrl+c and the actual block of code is send to the terminal (where you run ocaml)
<d_bot_> <Jo.Blade> The advantages is it automatically add ";;" ending and run the snippet of code.
<d_bot_> <Jo.Blade> It works just perfectly
mxns has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 246 seconds]
narimiran has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
nullcone has quit [Quit: Connection closed for inactivity]
mxns has quit [Ping timeout: 265 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 265 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
nullcone has joined #ocaml
<d_bot_> <Zach5050> is anyone available to help
<d_bot_> <Zach5050> When I enter Num(0) into IsZero I am getting false
<d_bot_> <Zach5050> I dont understand why
<d_bot_> <Splingush> `=` is structural equality, `==` checks the memory-position.
<d_bot_> <joris> You use ohysiqual equality
<d_bot_> <Splingush> Try with the former.
<d_bot_> <Zach5050> lmao!
<d_bot_> <Zach5050> thank you
<d_bot_> <Zach5050> wait so what is ==?
<d_bot_> <Zach5050> ooo
<d_bot_> <joris> It checks that objects are the same in memory. Kind of pointer comparaison if you want
<d_bot_> <Zach5050> memory
<d_bot_> <Zach5050> okay perfect thank you guys
tmhoang5 has joined #ocaml
tmhoang has quit [Write error: Connection reset by peer]
omni_ has joined #ocaml
Ankhers has quit [Ping timeout: 264 seconds]
omni has quit [Read error: Connection reset by peer]
raver has quit [Ping timeout: 246 seconds]
Johann has quit [Ping timeout: 246 seconds]
Ankhers has joined #ocaml
Johann has joined #ocaml
decentpenguin has quit [Ping timeout: 240 seconds]
decentpenguin has joined #ocaml
kafilat_ has quit [Quit: Connection closed for inactivity]
neiluj has quit [Ping timeout: 260 seconds]
neiluj has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
mxns has joined #ocaml
<d_bot_> <myl> for people with experience with the ocaml graphics module, how would you detect keyboard shortcuts? for example, tell the program to save something when ctrl+s is pressed
mxns has quit [Ping timeout: 246 seconds]
mxns has joined #ocaml
mouseghost has quit [Quit: mew wew]
wonko7 has quit [Ping timeout: 264 seconds]
mxns has quit [Quit: ZNC 1.8.2 - https://znc.in]
mxns has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml