adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.06.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.06/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
orbifx has quit [Ping timeout: 268 seconds]
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zolk3ri has quit [Quit: Lost terminal]
gtrak has joined #ocaml
jbrown has joined #ocaml
aantron has quit [Quit: removing from IRC because user idle on matrix for 30+ days]
sh0t has quit [Ping timeout: 264 seconds]
averell has joined #ocaml
gtrak has quit [Ping timeout: 264 seconds]
jao has quit [Ping timeout: 260 seconds]
gtrak has joined #ocaml
Fare has quit [Ping timeout: 268 seconds]
Fare has joined #ocaml
mfp has quit [Ping timeout: 264 seconds]
pierpa_ has joined #ocaml
pierpa has quit [Ping timeout: 260 seconds]
mbuf has joined #ocaml
pierpa_ is now known as pierpa
gtrak has quit [Ping timeout: 240 seconds]
tormen_ has joined #ocaml
hdon has joined #ocaml
tormen has quit [Ping timeout: 248 seconds]
hdon has quit [Ping timeout: 248 seconds]
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #ocaml
jbrown has quit [Ping timeout: 260 seconds]
tarptaeya has joined #ocaml
kotrcka has left #ocaml [#ocaml]
pierpa has quit [Quit: Page closed]
pierpal has joined #ocaml
pierpal has quit [Client Quit]
pierpal has joined #ocaml
hdon has joined #ocaml
hdon has quit [Ping timeout: 264 seconds]
pierpal has quit [Read error: Connection reset by peer]
Fare has quit [Ping timeout: 255 seconds]
isd has joined #ocaml
pierpal has joined #ocaml
mbuf has quit [Read error: Connection reset by peer]
mbuf has joined #ocaml
riveter has quit [Ping timeout: 260 seconds]
gargawel has quit [Ping timeout: 260 seconds]
gargawel has joined #ocaml
mbuf has quit [Remote host closed the connection]
mbuf has joined #ocaml
riveter has joined #ocaml
philtor has quit [Ping timeout: 260 seconds]
bramford has quit [Ping timeout: 260 seconds]
bramford has joined #ocaml
philtor has joined #ocaml
companion_cube has quit [Remote host closed the connection]
pierpal has quit [Ping timeout: 264 seconds]
pierpal has joined #ocaml
exarkun has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #ocaml
pierpal has quit [Ping timeout: 268 seconds]
exarkun has joined #ocaml
govg has quit [Quit: leaving]
pierpal has joined #ocaml
pierpal has quit [Remote host closed the connection]
hdon has joined #ocaml
hdon has quit [Ping timeout: 240 seconds]
ozzymcduff has joined #ocaml
ozzymcduff has quit [Client Quit]
ziyourenxiang has quit [Quit: Leaving]
ziyourenxiang has joined #ocaml
ziyourenxiang has quit [Remote host closed the connection]
ziyourenxiang has joined #ocaml
isd has quit [Quit: Leaving.]
xaimus has quit [Ping timeout: 276 seconds]
argent_smith has joined #ocaml
exarkun has quit [Read error: Connection reset by peer]
exarkun has joined #ocaml
<keep_learning> Hi Everyone, I am trying to learn jbuilder for my project (https://github.com/mukeshtiwari/learnjbuild/tree/master/bindingocaml)
<keep_learning> But when I am executing jbuilder build javaocamlbinding.exe
<keep_learning> I am getting Error: Library "camljava" not found.
<keep_learning> There is already jbuild file inside ocaml-java (https://github.com/mukeshtiwari/learnjbuild/tree/master/bindingocaml/ocaml-java)
<keep_learning> I have taken the ocaml-java code from (https://github.com/Julow/ocaml-java)
pierpal has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
pierpal has quit [Remote host closed the connection]
pierpal has joined #ocaml
hdon has joined #ocaml
hdon has quit [Ping timeout: 260 seconds]
pierpal has quit [Ping timeout: 240 seconds]
pierpal has joined #ocaml
<steenuil> keep_learning: in the jbuild file it says (public_name ocamljava.camljava)
<steenuil> so I suppose you have to use that in the jbuild file rather than camljava
kalio has quit [Ping timeout: 248 seconds]
zolk3ri has joined #ocaml
pierpal has quit [Ping timeout: 248 seconds]
<keep_learning> steenuil Thank you
pierpal has joined #ocaml
pierpal has quit [Ping timeout: 240 seconds]
Haudegen has joined #ocaml
pierpal has joined #ocaml
hannes` has joined #ocaml
ziyourenxiang has quit [Read error: Connection reset by peer]
ziyourenxiang_ has joined #ocaml
hannes has quit [Read error: Connection reset by peer]
troydm has joined #ocaml
mfp has joined #ocaml
proxycon has joined #ocaml
malina has joined #ocaml
pierpal has quit [Ping timeout: 248 seconds]
rwmjones is now known as rwmjones|bcn
hdon has joined #ocaml
argent_smith has quit [Quit: Leaving.]
hdon has quit [Ping timeout: 260 seconds]
proxycon has quit [Quit: proxycon]
govg has joined #ocaml
proxycon has joined #ocaml
proxycon has quit [Read error: Connection reset by peer]
dtornabene has joined #ocaml
pierpal has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
FreeBirdLjj has quit [Remote host closed the connection]
ianconnolly has quit []
ianconnolly has joined #ocaml
FreeBirdLjj has joined #ocaml
jao has joined #ocaml
jao has quit [Ping timeout: 264 seconds]
jnavila has joined #ocaml
hdon has joined #ocaml
hdon has quit [Ping timeout: 248 seconds]
jnavila has quit [Ping timeout: 240 seconds]
silver has joined #ocaml
dtornabene has quit [Ping timeout: 260 seconds]
exarkun has quit [Read error: Connection reset by peer]
jnavila has joined #ocaml
exarkun has joined #ocaml
jimmyrcom_ has quit [Ping timeout: 256 seconds]
johnelse_ has joined #ocaml
jnavila has quit [Ping timeout: 256 seconds]
johnelse has quit [Ping timeout: 240 seconds]
sh0t has joined #ocaml
terrorjack has quit []
terrorjack has joined #ocaml
rostero has quit []
rostero has joined #ocaml
pierpal has joined #ocaml
muelleme has joined #ocaml
xaimus has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
Fare has joined #ocaml
FreeBirdLjj has joined #ocaml
Fare has quit [Ping timeout: 268 seconds]
Fare has joined #ocaml
ia0 has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #ocaml
gtrak has joined #ocaml
muelleme has quit [Ping timeout: 248 seconds]
<discord1> <ncthbrt> Good people of irc land. I would like to join you. What would be your recommended IRC client for mac OS?
<discord1> <loxs> I'm using XChat Azure, though it's much worse than discord to me, so I use the discord bridge to talk to IRC folk
<discord1> <loxs> at least that's what I do since it exists (which is for a few days now)
<discord1> <loxs> If you want to try, go here: https://discord.gg/VHeS5x
pierpal has quit [Remote host closed the connection]
<discord1> <ncthbrt> I'm already part of the discord @loxs 😃
<discord1> <ncthbrt> But thanks
<discord1> <loxs> ah, right, sorry, didn't know 😃
<discord1> <ncthbrt> Also using the bridge but wondering if anything is getting lost in translation
<discord1> <loxs> I don't think so, the only thing I try not to do is to not write multiline markdown code snippets in irc... when I need to do that, I ask in #general
<zozozo> @ncthbrt well on irc you can telle the differnce between an irc user and a discord user, but it looks like it's harder for discord users
<discord1> <loxs> you can tell in discord too, you just have to look (which I didn't do carefully) 😄
<steenuil> @ncthbrt: the best IRC client is definitely Textual, though it costs a bit. LimeChat is serviceable if you don't want to pay
<discord1> <ncthbrt> steenuil: Will give them both a try. Thanks
<steenuil> both are open source, too
Fare has quit [Ping timeout: 260 seconds]
Fare has joined #ocaml
companion_cube has joined #ocaml
pierpal has joined #ocaml
ncthbrt has joined #ocaml
<ncthbrt> /msg NickServ VERIFY REGISTER ncthbrt dolfoewryesw
<companion_cube> :D
<discord1> <ncthbrt> Sigh
<companion_cube> just do that in the nickserv buffer, always
<ncthbrt> I am very much an irc noob.
<ncthbrt> Will try to do that in future haha
<companion_cube> I once typed a password in an IRC buffer; now I always put it in the status buffer before changing window
<steenuil> yeah, same happened to me
rostero has quit []
rostero has joined #ocaml
mbuf has quit [Quit: Leaving]
ziyourenxiang_ has quit [Ping timeout: 248 seconds]
dxtr has quit [Ping timeout: 276 seconds]
Fare has quit [Ping timeout: 240 seconds]
<bartholin> # module type Foo = sig val x : int end;;
<bartholin> module type Foo = sig val x : int end
<bartholin> # module Bar = val m;;
<bartholin> val m : (module Foo) = <module>
<bartholin> # let m = (module struct let x = 4 end : Foo);;
<bartholin> Error: Syntax error
<bartholin> # module Bar = (val m);;
<bartholin> module Bar : Foo
<bartholin> So parentheses (or lack of parentheses) are a syntax error.
hannes` is now known as hannes
<companion_cube> it's used for "first class modules", a relatively advanced topic
<bartholin> But I find it weird that parentheses are mandatory.
<companion_cube> there would be an ambiguity otherwise I think
<bartholin> ?
<bartholin> val is a reserved keyword.
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
<discord1> <loxs> I have a record of type {my_field: my_type Stack.t} - how do I initiate a record with an empty stack of this type?
jao has joined #ocaml
<companion_cube> {my_field=Stack.create()}
<discord1> <loxs> ah, was wondering what's this unit in the signaure, thanks
pierpal has quit [Ping timeout: 260 seconds]
gtrak has quit [Ping timeout: 256 seconds]
<steenuil> functions that take a unit are typically functions that perform some side effects or just functions that don't take an argument
<steenuil> since ocaml is not lazily evaluated you need to have something that says they're functions and not values
<discord1> <loxs> yeah, makes sense
dxtr has joined #ocaml
<companion_cube> it's also because of impuriy
<companion_cube> +t
<companion_cube> two calls to Stack.create() return different (mutable) values
jbrown has joined #ocaml
<discord1> <loxs> yeah, starting to wonder how much is all this mutable trouble worth... and for stacks I should probably just use lists with prepend and pattern matching, but Hashtables seem hard to avoid
<hannes> loxs: there's the Map module in stdlib http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.html which I prefer over Hashtbl.
<discord1> <loxs> I am using Base, but it should be almost the same there
dhil has joined #ocaml
cojy has quit []
cojy has joined #ocaml
Haudegen has quit [Remote host closed the connection]
jao has quit [Ping timeout: 260 seconds]
ichigo_best_girl is now known as Duns_Scrotus
<discord1> <Perry> ncthbrt: I use LimeChat. It's free.
<discord1> <Perry> Though I often use various Emacs clients for IRC. (I'm an Emacs addict.)
<discord1> <Perry> Drup: on the topic of the GADT manual/tutorial, I agree that it is hard to explain, but I think we should make the attempt. We can fail "better" than the current failure at least. 😃
<Drup> Perry I think it's better some concrete use cases of GADTs than to try to explain them in the abstract
<Drup> and doing that take quite a big longer
<discord1> <Perry> I think examples will absolutely help, but we might do things like explaining some of the terms (like existential type) or at least provide some pointers to references that explain them.
dakk has joined #ocaml
<discord1> <Perry> One important thing the section needs is to explain the motivation better. "This helps us solve the following problem."
rfv has quit []
rfv has joined #ocaml
<Drup> Well, that's precisely what I'm saying is really difficult for GADTs
<Drup> there are many use cases, but they are usually not that simple and require some machinery
<companion_cube> "This helps us solve the problem of not having enough type wizardry in our program"
<Drup> (Ideally, these kinds of tutorials could go to ocaml.org, but, well ..;)
<octachron> Another part of the problem is that the extension chapter is a quite awkward place which is stuck between being a dry technical reference, a technical guide and a tutorial.
<companion_cube> I agree, this chapter is weird
<companion_cube> it shouldn't even exist anymore, the extensions are just part of the langauge
<Drup> that chapter is a mess =')
<ncthbrt> Referring to this chapter? https://caml.inria.fr/pub/docs/manual-ocaml/extn.html
<octachron> And for explaining GADTs, there is also the trap of the "yet another interpreter tutorial"
<octachron> ncthbrt, yes
<ncthbrt> :+1: When trying to make my first ppx a few weeks ago, found that pretty inscrutable.
<companion_cube> well interpreters are incredibly useful
<companion_cube> Format is an interpreter
Haudegen has joined #ocaml
kalio has joined #ocaml
<Drup> companion_cube: for normal peoples, format is not an intepreter
<Armael> umm
<Armael> it sounds like a trap to me
<Armael> if I have to write an interpreter I don't think I would want to type it using gadts
mrallen1 has quit []
mrallen1 has joined #ocaml
<Armael> most of the time at least
<Drup> Armael: you haven't been brainwashed by numerous academic articles about GADTs, then
<Armael> I guess I haven't
<octachron> companion_cube, sure, but if you want to explain GADTs with an interpret you need to either restrict your audience to people that find interpreter natural and useful
<octachron> or try to explain both why interpreter are useful and GADTs at the same time
govg has quit [Ping timeout: 256 seconds]
tarptaeya has quit [Ping timeout: 248 seconds]
<ncthbrt> Could perhaps be explained from a type driven development approach?
<ncthbrt> How using gadt could be used to more expressively prevent errors in business logic
<ncthbrt> Not necessarily as fun as interpreters, but likely a lot more accessible to a non academic audience
<Drup> ncthbrt: if you find a way to do that without having to explain 2 pages of background in type theory, I'm all ears :D
ctrlsbstr has joined #ocaml
<ncthbrt> Think this site makes a good go of it in F# https://fsharpforfunandprofit.com/ddd/
<Armael> is it even a good idea to do TDD using gadts
Fare has joined #ocaml
<Drup> yeah, that's even deabatable
<Drup> ncthbrt: F# doesn't has GADTs.
<Drup> we're not talking about normal type features here, I think the manual does a decent jobs for those
<Drup> (or it doesn't, but still, that's not the topic at hand)
<companion_cube> a basic use case for GADTs is existential types
<companion_cube> it's much simpler than full interpreters
<Drup> companion_cube: existential types alone are usueless
<Armael> humm, are they?
<companion_cube> I didn't mean `foo : Data : 'a -> foo` ofc
<ncthbrt> F# doesn't but that site does a good job explaining why you would want to care about these more advanced features of the type system
<companion_cube> I mean with a record of stuff with the 'a
<companion_cube> just hiding some of the type parameters from the outside
<Armael> yea
<ncthbrt> They talk things that are familiar like cars, or playing cards, or things like that
<ncthbrt> Systems where the rules are fairly well understood
pmetzger has joined #ocaml
<pmetzger> So I'm going to make two claims. (1) It would be great to have enough of a beginner's introduction to the type theory needed to really understand OCaml's type system (in the manual or separately) for real beginners to attack things and (2) it will be serious work. But if there's a wishlist, this should be on it.
dakk has quit [Remote host closed the connection]
<pmetzger> And let me re-emphasize, wish list. I'm not suggesting anyone should feel obligated to do it. But it would be nice if there was awareness that this is a deficit.
<pmetzger> But it's helpful to be able to point a beginner at something and say "this will tell you will need to know", so "someday" it would be good for that to exist.
<Drup> pmetzger: it's on my todo list to make a series of introductory blog posts about various fancy things you can do with the type system, but it takes time :)
<Drup> I think it's better to focus on specific features than GADTs in general
<pmetzger> Oh, I don't just mean GADTs. There's other stuff throughout OCaml that beginners will find puzzling.
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<pmetzger> But I think blog posts aren't a good medium because over years and decades they get lost. Being part of a tutorial or intro in the manual will keep that from happening.
<pmetzger> And yes, it takes time, and I don't expect this will show up for a long time, but it should be on the wishlist.
<Drup> pmetzger: step1, make a blog post, get feedback, step2: integrate it somewhere
<pmetzger> True. The feedback in blog posts is nice.
FreeBirdLjj has quit [Remote host closed the connection]
<pmetzger> So I've decided that for the documentation sprint I'm going to write a one page explanation of PPXes for the manual. I think I understand _just_ enough not to screw up a very high level explanation of what they're for.
<pmetzger> (And how they work.)
FreeBirdLjj has joined #ocaml
pierpal has joined #ocaml
<pmetzger> Anyway, I'll be very interested in review when I do that. Also, what section of the manual should it go in? I'm sort of refusing to put it into "Extensions" with everything else. :)
<octachron> before or after the plugin section
<octachron> *chapter
<pmetzger> so as a new chapter 23 or 25.
<pmetzger> That seems a little odd to me though because understanding what PPX plugins do is needed even if you don't care about the more advanced tools. I'd probably have picked like a section 7.13?
<pmetzger> With maybe a little bit in Part I?
<pmetzger> Needs thought anyway. Might be easier to tell after I've written some text.
rostero has quit [Quit: Connection closed for inactivity]
<steenuil> why not put an introduction somewhere early and then a full guide on what they do and how to write them later
<steenuil> actually there's already a small section on them on the extensions page, iirc
tarptaeya has joined #ocaml
<pmetzger> There's just a reference to the fact that @@ and the like are associated with them.
<pmetzger> Basically 8.17 explains that extension nodes exist for their benefit.
<pmetzger> oh, and 8.22
monad_cat has quit []
monad_cat has joined #ocaml
jmct has quit []
jmct has joined #ocaml
<octachron> pmetzger, it could make sense to split a ppx chapter in two: "how to use a ppx" and "how to write a ppx"
<discord1> <Perry> That would definitely make sense.
<steenuil> yeah, that's what I meant
<octachron> the "using" part could be in the last section of the tutorial, but the "writing" part definitely belongs to the "advanced tools" chapter
<discord1> <Perry> Oh, writing goes in advanced tools, but I think an explanation of what the thing is in general might go in Ch. 7. Let me explain what I mean.
<discord1> <Perry> Writing one in practice requires the use of all these libraries etc. that are not part of the language. So that goes in advanced tools.
<octachron> you could expand the grammar descriptions in the Chapter 7 indeed
<discord1> <Perry> The principle of operation probably goes in Ch. 7 (that is, an explanation that a syntax extension uses the following standard features of the syntax to signal to the ppx.) And the grammar.
<discord1> <Perry> And using goes in Part I.
<discord1> <Perry> BTW, apologies for bouncing between IRC and discord. Sometimes one is open on top and sometimes the other.
FreeBirdLjj has quit [Remote host closed the connection]
ygrek has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
ctrlsbstr has joined #ocaml
muelleme has joined #ocaml
argent_smith has joined #ocaml
Duns_Scrotus has quit []
Duns_Scrotus has joined #ocaml
gtrak has joined #ocaml
greenbagels has joined #ocaml
gtrak has quit [Client Quit]
gtrak has joined #ocaml
muelleme has quit [Ping timeout: 265 seconds]
pmetzger has quit []
pmetzger has joined #ocaml
Fare has quit [Ping timeout: 260 seconds]
exarkun has quit [Read error: Connection reset by peer]
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
exarkun has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
Fare has joined #ocaml
noitakomentaja has joined #ocaml
<Fare> I'm trying to write jbuild rules for ocaml-lens, and while trying to build the ppx_deriving module, I get: File "ppx_deriving_lens.ml", line 25, characters 6-10: Error: Uninterpreted extension 'expr'.
<Fare> when building with oasis, somehow it adds those flags missing from what jbuilder uses: -principal -package ppx_deriving.api -package ppx_tools.metaquot
muelleme has joined #ocaml
<pmetzger> As I've said, I find Dune/JBuilder a bit mysterious. I have a bit of a thing against build systems that are too intelligent. I like ones that have default sets of macros that you can override at will.
<pmetzger> My ideal OCaml build system would have been a PPX based DSL. :)
jao has joined #ocaml
<Fare> actually, these flags seem to apply to ocamlfind, not ocamlc that jbuilder calls directly
<steenuil> I remember I had some problems with metaquot too
kakadu has joined #ocaml
noitakomentaja has quit [Ping timeout: 255 seconds]
jack5638 has quit [Ping timeout: 248 seconds]
ctrlsbstr has joined #ocaml
<Fare> This looks like it might have done the trick: (preprocess (action (run ppxfind -legacy ppx_tools.metaquot,ppx_deriving.std --as-pp ${<})))
jack5638 has joined #ocaml
jnavila has joined #ocaml
<Fare> well, now it looks like I build lens.ppx_deriving with jbuilder, but it still doesn't work with jbuilder. sigh.
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discord1> <Perry> I think the main problem with Make in an OCaml context is that it really sucks for situations where multiple products are constructed by a single command being executed. One could create a version of Make in OCaml that didn't have this problem and worked well with the language. But I have to confess my attempts at making all these build systems work have probably been failures because I'm an ignorant newbie and not because Dune is actually bad.
<discord1> I just find it scary because it's opaque.
<discord1> <Perry> I really like build systems where I can tell the system how things are built if I want to but there are good defaults (which is what Make is like for C code.)
zolk3ri has quit [Remote host closed the connection]
<discord1> <Perry> Then again, Stu always said Make was, and he was quoting Hamlet, "From it's mother's womb untimely ripped".
zolk3ri has joined #ocaml
<Fare> There have been tens of build systems written in OCaml
<pmetzger> That few?
<Fare> OK, so I can now build the code with jbuilder indeed, just not make it work as a regular jbuilder ppx preprocessor. The yak is being shaved!
<Fare> I might just have to purchase better yak-shaving scissors.
<steenuil> have you added the (kind ppx_rewriter) thing to the jbuild file?
<octachron> Fare, you would also need to use the versioned version of ppx_tools.metaquot
<discord1> <loxs> What's the proper comparator function for string list ?
<discord1> <loxs> (when writing a Map implementation)
<lyxia> `compare` should work
<discord1> <loxs> compare of which module?
<discord1> <loxs> List?
<steenuil> Pervasives
<discord1> <loxs> uh, there is such a thing...
<steenuil> it's the module that's opened by default in all files
<discord1> <loxs> I know, I didn't know it already has a polymorphic compare
<copy`> If you use base or containers: `List.compare String.compare`
cheesy has joined #ocaml
<discord1> <loxs> I do use Base
<discord1> <loxs> thanks
<steenuil> is there any reason for the stdlib not to have an option module with some functions like map and with_default?
<steenuil> I mean, there's one in compiler-libs but I'm never sure whether I'm supposed to use it
<octachron> steenuil, there is less a reason now that the stdlib is prefixed. But no one has volunteered for writing a consensual Option module yet.
<steenuil> oh, didn't know it was prefixed now
<discord1> <Perry> steenuil: want to volunteer?
<discord1> <Perry> 😉
<steenuil> I find that the stdlib is enough for most of what I do, but I keep rewriting the same option utility functions over and over, it just seems weird not to have
<discord1> <Perry> Seems like a perfect opportunity for a Pull Request so you never have to write them again.
<discord1> <Perry> Design them well. 😃
tarptaeya has quit [Quit: Konversation terminated!]
<steenuil> I'm looking at what could be stuffed in
<octachron> steenuil, beware that my now means "once 4.07 released" (or in the current dev version)
<steenuil> yeah, I looked up the PR
<octachron> also part of the difficulty would be to navigate between the incompatibilities of the Option modules provided by base/containers/batteries
<discord1> <Perry> Presumably one would want to look at all three of those and pick a reasonable design. My suspicion you will not get good feedback until there's a pull request that leads to imminent danger of something actually being pulled, but that you'll get good feedback then. You might get good feedback from a post to discuss though.
gtrak has quit [Quit: WeeChat 2.1]
<discord1> <loxs> is it wrong to open Core_kernel in my modules? I was having hard time figuring out how to make Maps work and seems like one of my module (both of them have Core_kernel opened) expects Base.Map and the other Core_kernel.Map...
<octachron> The two should be the same, since Core_kernel is a superset of Base
<discord1> <loxs> it is, but I get this error
<steenuil> I think map, bind, apply, with_default, and get would be enough
argent_smith has quit [Quit: Leaving.]
pmetzger has quit [Read error: Connection reset by peer]
pmetzger has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
<Fare> octachron, how do I use the versioned version of ppx_tools.metaquot ?
<Fare> And, is there a versionedly versioned version?
<octachron> Fare, opam search ppx_tools
jimmyrcom_ has joined #ocaml
muelleme has quit [Ping timeout: 260 seconds]
infinity0 has quit [Ping timeout: 240 seconds]
<Fare> thanks!
jnavila has quit [Remote host closed the connection]
jimmyrcom_ has quit [Ping timeout: 260 seconds]
pmetzger has quit [Ping timeout: 256 seconds]
mal`` has quit [Ping timeout: 240 seconds]
mal`` has joined #ocaml
companion_cube has quit [Ping timeout: 260 seconds]
companion_cube has joined #ocaml
<Fare> Good thing: the code is now running. Bad thing: with the versioned ppx_tools, there seems to be a bad interaction with the module syntax, so modules "Lens" are defined at the wrong level. Sigh.
<ncthbrt> Fare: As a matter of interest, why did you select ppx_tools over ppxlib? https://github.com/ocaml-ppx/ppxlib
<steenuil> tjere
<steenuil> *there's too many of these ppx libraries
<ncthbrt> I was having that problem
<ncthbrt> Went with ppxlib as it seemed to have most things I needed out the box
bramford has quit [Ping timeout: 240 seconds]
<ncthbrt> But was wondering if maybe people are avoiding it for some reason
<steenuil> I didn't know it existed
mk9 has joined #ocaml
<octachron> ncthbrt, ppxlib is probably the most forward-compatible choice
<octachron> but I cannot honestly recommend it to people due to the current state of the documentation
mk9 has quit [Remote host closed the connection]
<ncthbrt> That is true. I found the source readable enough. But it was a little bit of a struggle figuring out how to get started
mk9 has joined #ocaml
<octachron> Did you have any experience with ppx before using ppxlib?
<ncthbrt> Not at all
mk9 has quit [Client Quit]
<ncthbrt> On jaredly's advice, I pretty printed out the input target ast and tried to understand how the ast was structured. Worked my way backwards from there. Started using simply migrate-parsetree but was finding that quite onerous due to what I was trying to achieve.
mk9 has joined #ocaml
<ncthbrt> So added ppxlib for metaquot
kakadu_ has joined #ocaml
ia0 has quit [Ping timeout: 260 seconds]
ia0 has joined #ocaml
<Drup> ppx_tools and ppxlib both have metaquot, so that's ok
<Drup> the rest of the stuff in ppxlib is less essential (it's still useful)
pitastrudl_ has joined #ocaml
<ncthbrt> It's weird, when using it, I felt as though metaquot should be a part of the language.
<ncthbrt> It was at least as elegant as a lisp macro
kakadu has quit [*.net *.split]
exarkun has quit [*.net *.split]
Fare has quit [*.net *.split]
averell has quit [*.net *.split]
jmiven has quit [*.net *.split]
eagleflo has quit [*.net *.split]
barcabuona has quit [*.net *.split]
pitastrudl has quit [*.net *.split]
sheijk has quit [*.net *.split]
diginet has quit [*.net *.split]
profan has quit [*.net *.split]
adrien has quit [*.net *.split]
lix has quit [*.net *.split]
jmiven has joined #ocaml
barcabuona has joined #ocaml
sheijk has joined #ocaml
eagleflo has joined #ocaml
diginet has joined #ocaml
profan has joined #ocaml
averell has joined #ocaml
Fare has joined #ocaml
adrien has joined #ocaml
exarkun has joined #ocaml
diginet has quit [Excess Flood]
barcabuona has quit [Max SendQ exceeded]
diginet has joined #ocaml
adrien is now known as Guest54659
barcabuona has joined #ocaml
riveter has quit [Ping timeout: 260 seconds]
pmetzger has joined #ocaml
lix has joined #ocaml
diginet_ has joined #ocaml
jimmyrcom_ has joined #ocaml
wagle has quit [Remote host closed the connection]
riveter has joined #ocaml
wagle has joined #ocaml
diginet has quit [Ping timeout: 260 seconds]
diginet_ is now known as diginet
Fare has quit [Ping timeout: 240 seconds]
averell has quit [Ping timeout: 240 seconds]
averell has joined #ocaml
jao has quit [Remote host closed the connection]
jao has joined #ocaml
kakadu_ has quit [Remote host closed the connection]
mk9 has quit [Quit: mk9]
Fare has joined #ocaml
Haudegen has quit [Read error: Connection reset by peer]
rostero has joined #ocaml
pierpal has joined #ocaml
pierpal has quit [Ping timeout: 268 seconds]
ncthbrt has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]