flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.03.0 announced http://ocaml.org/releases/4.03.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
nicholasf has joined #ocaml
Algebr`` has quit [Read error: Connection reset by peer]
Algebr`` has joined #ocaml
sveit has joined #ocaml
<sveit> if i declare a module type in an *.mli file "module type T = sig type t .. end", is there a way to avoid having to duplicate the definition in the *.ml file?
tautologico has joined #ocaml
rgrinberg has joined #ocaml
<sveit> to be more specific, suppose I have a file "t.mli" with some definitions including "module type T = sig type t .. end". When I then try to write a corresponding "t.ml" file, I find that I have to duplicate the module type there. There doesn't seem to be a way to just include it in a single location; omitting it from "t.ml" gives a compilation error, and omitting it from "t.mli" means I cannot access it from other code
nicholasf has quit [Ping timeout: 240 seconds]
<Algebr``> I believe the answer is no
nicholasf has joined #ocaml
tautologico has quit [Ping timeout: 250 seconds]
FreeBirdLjj has joined #ocaml
tautologico has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 276 seconds]
rwmjones has quit [Ping timeout: 244 seconds]
rwmjones has joined #ocaml
FreeBirdLjj has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
tautologico has quit [Ping timeout: 258 seconds]
f- has joined #ocaml
tautologico has joined #ocaml
Algebr`` has quit [Ping timeout: 250 seconds]
tmtwd has joined #ocaml
tautologico has quit [Ping timeout: 272 seconds]
<sveit> Algebr``: thanks! for anyone wondering, there is at least the workaround of having an mli file of only signatures, which can be used without any ml file at all.
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
sh0t has joined #ocaml
sveit has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
rgrinberg has quit [Ping timeout: 258 seconds]
ygrek has quit [Ping timeout: 272 seconds]
shinnya has quit [Ping timeout: 240 seconds]
vgrocha has quit [Ping timeout: 244 seconds]
kushal has quit [Quit: Leaving]
kushal has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
Algebr`` has joined #ocaml
pierpa has quit [Ping timeout: 276 seconds]
tautologico has joined #ocaml
tmtwd has quit [Ping timeout: 258 seconds]
Algebr`` has quit [Read error: Connection reset by peer]
tmtwd has joined #ocaml
FreeBird_ has joined #ocaml
FreeBirdLjj has quit [Read error: Connection reset by peer]
sh0t has quit [Remote host closed the connection]
shinnya has joined #ocaml
jonasen has joined #ocaml
AlexDenisov has joined #ocaml
tautologico has quit [Ping timeout: 258 seconds]
kushal has quit [Ping timeout: 244 seconds]
kdas__ has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
govg has quit [Ping timeout: 276 seconds]
govg has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
kdas__ is now known as kushal
kushal has quit [Changing host]
kushal has joined #ocaml
shinnya has quit [Ping timeout: 258 seconds]
Algebr`` has joined #ocaml
FreeBird_ has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
agarwal1975 has quit [Ping timeout: 258 seconds]
nicholasf has quit []
Simn has joined #ocaml
pyon has quit [Ping timeout: 258 seconds]
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
MercurialAlchemi has joined #ocaml
tane has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
mcc has quit [Quit: Connection closed for inactivity]
A1977494 has joined #ocaml
A19774941 has joined #ocaml
A1977494 has quit [Ping timeout: 240 seconds]
silver has joined #ocaml
A19774941 has quit [Quit: Leaving.]
dexterph has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
AlexDenisov has joined #ocaml
dexterph has quit [Remote host closed the connection]
dexterph has joined #ocaml
rossberg_ has quit [Ping timeout: 264 seconds]
fraggle_ has quit [Read error: Connection reset by peer]
ygrek has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
fraggle_ has joined #ocaml
MercurialAlchemi has joined #ocaml
rossberg_ has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
MercurialAlchemi has joined #ocaml
<Algebr``> what part of the ast do I match on for just a plain value in ppx?
<Algebr``> Example, PStr [{ pstr_desc = Pstr_eval ({ pexp_loc = loc; pexp_desc = Pexp_constant (Pconst_string (sym, None))}, _)}] -> gets you sym as a string
<Algebr``> but say for something simple like [%foo bar] you just want to do f bar, so just want to match on the value bar itself as an identifier
Mercuria1Alchemi has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 264 seconds]
AltGr has joined #ocaml
Algebr`` has quit [Ping timeout: 250 seconds]
dakk has quit [Ping timeout: 276 seconds]
dakk has joined #ocaml
tmtwd has joined #ocaml
axiles has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
AlexDenisov has joined #ocaml
tmtwd has quit [Ping timeout: 250 seconds]
AlexDenisov has quit [Read error: Connection reset by peer]
AlexDenisov has joined #ocaml
jwatzman|work has joined #ocaml
AlexDenisov has quit [Client Quit]
AlexDenisov has joined #ocaml
<Drup> Algebr: for this kind of questions, "ocaml -dparsetree" and look at the output.
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ygrek has quit [Ping timeout: 272 seconds]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
sdothum has joined #ocaml
A1977494 has joined #ocaml
MercurialAlchemi has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
Mercuria1Alchemi has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
malc_ has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
ggole has joined #ocaml
dave24 has joined #ocaml
tautologico has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
yomimono has joined #ocaml
malc_` has joined #ocaml
tautologico has quit [Ping timeout: 240 seconds]
malc_ has quit [Ping timeout: 250 seconds]
MercurialAlchemi has quit [Ping timeout: 240 seconds]
fraggle_ has quit [Remote host closed the connection]
malc_` is now known as malc_
darkf has quit [Quit: Leaving]
duncan_bayne has joined #ocaml
<duncan_bayne> Hi :) Quick question re. building from source. I'm running 'make install' but getting: cp: cannot stat ‘stdlib.cmxa’: No such file or directory
<duncan_bayne> Suspect I'm doing something daft; this is the first time I've installed ocaml from source. Any suggestions?
<malc_> duncan_bayne: make install without prior make world[.opt]?
fraggle_ has joined #ocaml
<duncan_bayne> malc: Thanks :) That solved it.
<mrvn> please file a bug so that a dependency is added in the makefile
malc_` has joined #ocaml
malc_ has quit [Ping timeout: 252 seconds]
MercurialAlchemi has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
AlexDenisov has joined #ocaml
malc_`` has joined #ocaml
malc_` has quit [Ping timeout: 240 seconds]
A19774941 has joined #ocaml
rgrinberg has joined #ocaml
A1977494 has quit [Ping timeout: 252 seconds]
ontologiae has joined #ocaml
rgrinberg has quit [Quit: WeeChat 1.5]
rgrinberg has joined #ocaml
duncan_bayne has quit [Ping timeout: 276 seconds]
MercurialAlchemi has quit [Ping timeout: 240 seconds]
fraggle_ has joined #ocaml
A19774941 has quit [Quit: Leaving.]
dwillems has joined #ocaml
malc_``` has joined #ocaml
ontologiae has quit [Ping timeout: 250 seconds]
Sorella has quit [Quit: Connection closed for inactivity]
malc_`` has quit [Ping timeout: 276 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBird_ has joined #ocaml
agarwal1975 has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 250 seconds]
vgrocha has joined #ocaml
FreeBird_ has quit [Ping timeout: 276 seconds]
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
sh0t has joined #ocaml
beginner has joined #ocaml
<beginner> what is the difference between somethin like 'a. 'a -> int and just 'a -> int? I am a bit confused about explicit polymorpism
<companion_cube> `'a. 'a -> int` is mostly used in objects and records
<companion_cube> the difference is that 'a does not occur in the object/record type
<companion_cube> e.g. type foo = { call: 'a. 'a -> 'a }
<companion_cube> here, foo does not depend on 'a
<beginner> companion_cube: thats cool, i always wondered how I can get rid of 'a foo, in some cases
<companion_cube> well this is for quite specific use cases
<beginner> companion_cube: do you use this often, and if so for what cases?
<companion_cube> no, I mostly use it for things like continuations, so it's a bit advanced
tautologico has joined #ocaml
<companion_cube> in general, you can only store very polymorphic functions this way, not data
AlexDenisov has joined #ocaml
<beginner> companion_cube: can gadts be used this way, to avoid the 'a foo?
<companion_cube> hmmm
<companion_cube> what are you actually trying to do? :p
AlexDenisov has quit [Read error: Connection reset by peer]
AlexDeni_ has joined #ocaml
<beginner> companion_cube: Get a better understanding of whats possible with OCaml features, like GADTs or this explicit polymorphism. Broaden the OCaml horizon
AlexDeni_ has quit [Read error: Connection reset by peer]
<ggole> You can use GADTs to "hide" the polymorphic result of a function in some cases
<ggole> Probably better to write some test functions to see how polymorphic arguments work first though
AlexDenisov has joined #ocaml
<beginner> i found this cambridge lecture about advanced functional programming very interesting, they have a chapter about gadts
<ggole> They're certainly a lot of fun to play with
tautologico has quit [Ping timeout: 240 seconds]
<beginner> i am always wondering what kind of language are expressable with gadts, regular languages or context free grammars
shinnya has joined #ocaml
<ggole> GADTs are just data types. You can express arbitrary graphs with them.
<beginner> data types with constraints, i was thinking about what language these constraints resamble
<companion_cube> hmmmm
<beginner> companion_cube: could you elaborate?
<companion_cube> I'm not sure it's relevant to talk about "regular languages" for GADTs
<companion_cube> they can express interesting typing constraints, is all
<beginner> maybe the other way round, when i have a constraint that i can express in a cfg or regular language would that be possible to express with gadts
<ggole> I would say that GADTs are mostly interesting because they express less, with a type level guarantee of the reduced power.
<beginner> What to you mean with "reduced power"?
<ggole> That they can represent fewer things (than the equivalent plain data type)
<beginner> why fewer?
<ggole> Well, the type constraints are constraints. They constrain.
MercurialAlchemi has joined #ocaml
tautologico has joined #ocaml
so has quit [Max SendQ exceeded]
ghtdak has quit [Max SendQ exceeded]
<ggole> In this case the GADT is interesting exactly because it rules out the example program
f- has quit [Max SendQ exceeded]
ghtdak has joined #ocaml
f- has joined #ocaml
<beginner> ggole: now i understand what you meant about fewer things, thanks
<ggole> beginner: a good GADT exercise would be to write an interpreter for each term
<beginner> ggole: i will try that
AlexDenisov has quit [Read error: Connection reset by peer]
ontologiae has joined #ocaml
AlexDenisov has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
pyon has joined #ocaml
AlexDenisov has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
AlexDenisov has joined #ocaml
Guest_84847 has joined #ocaml
<Guest_84847> Allah is doing
<Guest_84847> sun is not doing Allah is doing
<Guest_84847> moon is not doing Allah is doing
<Guest_84847> stars are not doing Allah is doing
<Guest_84847> planets are not doing Allah is doing
<Guest_84847> galaxies are not doing Allah is doing
<Guest_84847> oceans are not doing Allah is doing
<Guest_84847> mountains are not doing Allah is doing
<dave24> >kiwiirc.com
<Guest_84847> trees are not doing Allah is doing
<Guest_84847> mom is not doing Allah is doing
<Guest_84847> dad is not doing Allah is doing
<Guest_84847> boss is not doing Allah is doing
<Guest_84847> job is not doing Allah is doing
<Guest_84847> dollar is not doing Allah is doing
<Guest_84847> degree is not doing Allah is doing
<Guest_84847> medicine is not doing Allah is doing
<companion_cube> again?
<Guest_84847> customers are not doing Allah is doing
<dakk> wtf?
<Guest_84847> you can not get a job without the permission of allah
<Guest_84847> you can not get married without the permission of allah
<companion_cube> mrvn: ping
<companion_cube> flux: ping
<zozozo> seems like allah lost its capital letter...
<Guest_84847> nobody can get angry at you without the permission of Allah
<Guest_84847> light is not doing Allah is doing
<companion_cube> sense is not making Guest_84847
<mehdib> Error: Unbound constructor Allah
<Guest_84847> fan is not doing Allah is doing
<Guest_84847> businessess are not doing Allah is doing
<Guest_84847> america is not doing Allah is doing
<dave24> I was going to ask a question about ocaml, but I decided to wait because our dear guest is spamming the channel
<dave24> and now I figured it out myself anyway
<Guest_84847> fire can not burn without the permission of allah
<companion_cube> mrvn, flux: I'd suggest to appoint more ops
<ggole> /ignore is right there...
<Guest_84847> knife can not cut without the permission of allah
<ggole> But yes, more ops would probably be a good idea
<companion_cube> ops cannot kick without the permission of allah, it seems
<Guest_84847> rulers are not doing Allah is doing
<Guest_84847> governments are not doing Allah is doing
yegods has joined #ocaml
<Guest_84847> sleep is not doing Allah is doing
<Guest_84847> hunger is not doing Allah is doing
<Guest_84847> food does not take away the hunger Allah takes away the hunger
<Guest_84847> water does not take away the thirst Allah takes away the thirst
<companion_cube> ffs
<Guest_84847> seeing is not doing Allah is doing
<Guest_84847> hearing is not doing Allah is doing
<Guest_84847> seasons are not doing Allah is doing
<Guest_84847> weather is not doing Allah is doing
<Guest_84847> humans are not doing Allah is doing
<Guest_84847> animals are not doing Allah is doing
<Guest_84847> the best amongst you are those who learn and teach quran
<Guest_84847> one letter read from book of Allah amounts to one good deed and Allah multiplies one good deed ten times
<dave24> can i read the same letter repeatedly?
<Guest_84847> hearts get rusted as does iron with water to remove rust from heart recitation of Quran and rememberance of death
<Guest_84847> heart is likened to a mirror
<Guest_84847> when a person commits one sin a black dot sustains the heart
<Guest_84847> to accept Islam say that i bear witness that there is no deity worthy of worship except Allah and Muhammad peace be upon him is his slave and messenger
<Guest_84847> read book http://www.fazaileamaal.com
bruno has joined #ocaml
bruno is now known as Guest74260
<Guest_84847> read book http://www.muntakhabahadith.com
mquin has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
AlexDenisov has joined #ocaml
<Guest_84847> need spiritual teacher visit http://www.alhaadi.org.za
<Guest_84847> Allah created the sky without any pillars
<mquin> Guest_84847: knock it off, please
<Guest_84847> allah makes the sun rise from the east and Allah makes the sun set in the west
<nore> mquin: unfortulately, it's been almost 1h he's been doing that and no op is present to kick him :/
<Guest_84847> allah makes the day into the night and Allah makes the night into the day
Guest_84847 has quit [Disconnected by services]
<mehdib> thanks!
<nore> thanks!
<tobast> \o/
<ggole> dave24: what do you mean?
so has joined #ocaml
<dave24> ggole: which message are you referring to?
<ggole> <dave24> can i read the same letter repeatedly?
<dave24> the guest said reading one letter of koran is one good deed
<ggole> Oh, I thought it was an OCaml question -_-
<dave24> ;D
malc_```` has joined #ocaml
tautologico has quit [Ping timeout: 240 seconds]
malc_``` has quit [Ping timeout: 276 seconds]
dexterph has quit [Ping timeout: 276 seconds]
slash^ has joined #ocaml
Algebr`` has joined #ocaml
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tautologico has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
alpen has quit [Ping timeout: 250 seconds]
alpen has joined #ocaml
unbalancedparen has joined #ocaml
tautologico has quit [Ping timeout: 260 seconds]
Algebr`` has quit [Ping timeout: 250 seconds]
malc_```` is now known as malc_
yegods has quit [Remote host closed the connection]
dakk has quit [Ping timeout: 240 seconds]
jwatzman|work has quit [Quit: jwatzman|work]
ygrek has joined #ocaml
Algebr`` has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 272 seconds]
yegods has joined #ocaml
yomimono has quit [Ping timeout: 240 seconds]
dwillems has quit [Ping timeout: 276 seconds]
mcspud has quit [Ping timeout: 250 seconds]
yegods has quit [Ping timeout: 252 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
cloneme has joined #ocaml
<cloneme> howdy
mcspud has joined #ocaml
al-damiri has joined #ocaml
Algebr`` has quit [Ping timeout: 250 seconds]
pierpa has joined #ocaml
orbifx has joined #ocaml
gl has joined #ocaml
<gl> Guest74260 who are you?
<gl> i heard there are some spam issues in here
<ggole> There was one spammer, <Guest_84847>
<gl> alright then
<ggole> I take it you're an admin? If so, thanks for dropping by.
<gl> i'm just the owner of the chan, but i was away when i received the message
<ggole> Oh, OK
<flux> gl, perhaps you could appoint companion_cube and ggole as ops
<flux> (I don't have the access to do that)
A1977494 has joined #ocaml
<gl> sure
<gl> ggole: are you okay with that?
<gl> :)
<ggole> Sure
<flux> though am I reading it correctly that ggole is not signed in to freenode
<ggole> Oh yeah, I'd need to go through that again
tormen has joined #ocaml
<ggole> ...but not now, I'm about to head off
<gl> is ggole your registered nickname?
<ggole> It used to be, but I think it is probably lapsed
<tormen> Hi :) ... If I have the choice between using a Set and a plain list ... which one is faster/better ?
<tormen> ... list I guess ?
<companion_cube> depends on what you do
<flux> tormen, it really depends on how you are going to use them
<companion_cube> if you test for membership often, Set is much better
<ggole> iirc after 6 months or so they drop registrations to free up old nicks
<gl> companion_cube: you have +o access
<companion_cube> thanks!
<tormen> okey. I want to use it in a "fold". So "add" and then I need a "get-all" .... where with the list ... I am just answering my own question ;) ... I can just hand over the list ^^
<tormen> darn. it is too hot. How can one clearly think with this weather ... ^^
<mrvn> we can't
<tormen> :D
<flux> ac :)
<flux> fold, add and get-all are all well-suited for lists
<gl> ggole: let me know when you have a registered nickname, then
<tormen> flux: :) ... yep. Thanks!
yegods has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
<ggole> gl: will do
<ggole> All right, I gotta leave - see you around
ggole has quit []
MercurialAlchemi has joined #ocaml
<gl> well, bye
gl has left #ocaml [#ocaml]
Algebr`` has joined #ocaml
t4nk204 has joined #ocaml
ygrek has joined #ocaml
dave24 has quit [Quit: leaving]
<t4nk204> Is this the right place to ask about mysql bindings? I've been using them for a while, no problems, but trying to get a transaction to work is failing. Any known limitations regarding transactions? Didn't see any in docs. Cannot get any to work for me.
<flux> t4nk204, yes, this is the right place. though I haven't used them.
<flux> seems like bindings shouldn't bring these kind of limitations, though
<t4nk204> I'm getting complaints about sql syntax yet the same sql statement works just fine in phpMyAdmin for mysql server. Seems now that any transaction I attempt through ocaml mysql binding fails.
tmtwd has joined #ocaml
yegods has quit [Remote host closed the connection]
shinnya has quit [Ping timeout: 252 seconds]
malc_` has joined #ocaml
malc_ has quit [Ping timeout: 240 seconds]
slash^ has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
copy` has joined #ocaml
yegods has joined #ocaml
buddyholly has quit [Ping timeout: 240 seconds]
tmtwd has quit [Ping timeout: 264 seconds]
Kakadu has joined #ocaml
Algebr`` has quit [Read error: Network is unreachable]
Algebr`` has joined #ocaml
zpe has quit [Remote host closed the connection]
MercurialAlchemi has quit [Ping timeout: 276 seconds]
cdidd has quit [Ping timeout: 240 seconds]
MercurialAlchemi has joined #ocaml
jonasen has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
cdidd has joined #ocaml
jonasen has joined #ocaml
tautologico has joined #ocaml
orbifx1 has joined #ocaml
sveit has joined #ocaml
yegods has quit [Remote host closed the connection]
<sveit> yesterday I asked a question about duplicating module types in *.mli and the corresponding *.ml file. I thought a workaround was to have a *.mli file without a corresponding *.ml file. My problem is that if i have t.mli with "module type M = sig type t end" with no *.ml, then try to write a.mli with "include (module type of T)" and a.ml with "include T", all in the same directory, ocamlbuild succeeds with "ocamlbuild a.cma" (I have also
<sveit> tried a.cmo) but when I try to #load "a.cma" it fails with "reference to undefined global T". Is there a way to force "linking" of a .mli or a .cmi?
<sveit> my current workaround is just to call "t.mli -> t.ml", but that seems not to be the recommended way
tautologico has quit [Ping timeout: 244 seconds]
vgrocha has quit [Quit: Leaving]
<Kakadu> AFAIR, you can try to create .mllib file with modules which should be included into cma
<Kakadu> (I supposte that t.cmi is not in your cma. You can check it using ocamlobjinfo)
<Kakadu> Also. Folks, ICFP2016 registration fees doesn't depend on are you invited to talk or not, isn't it? http://conf.researchr.org/attending/icfp-2016/Registration
<companion_cube> if you're an invited speaker, you might not pay the fee (idk); if you have a talk accepted it's the regular fee
<Kakadu> okay, thanks
Simn has quit [Quit: Leaving]
<companion_cube> (but few people are "invited speakers")
<companion_cube> (it's a mark of prestige usually)
<Kakadu> OKay...
<Drup> kakadu: it doesn't, but you can get help to cover the costs if you have a talk.
<Drup> there are details on the website, contact them
<sveit> kakadu: thanks! i tried putting "t" and "t.cmi" into "a.mllib" and then running "ocamlbuild a.cma". again, the build succeeds but i get the same "reference to undefined global T" error
ontologiae has quit [Ping timeout: 250 seconds]
<Kakadu> sveit: btw, does it make any sense to include module type to .ml file?
Kakadu has quit []
Kakadu has joined #ocaml
yegods has joined #ocaml
<sveit> kakadu: not sure what you mean? i have tried (which works) to instead of having t.mli have t.ml
<sveit> but it seems this is not "best practice"
yegods has quit [Read error: Connection reset by peer]
yegods has joined #ocaml
<Kakadu> sveit: Basically, you want to have declaration of module type M in your .ml file, don't you?
<Kakadu> If yes you can try `include T`
<sveit> hmm. ok so what I have now is (1) t.mli : module type M = sig type t end (2) a.mli : include (module type of T) (3) a.ml : include T . are you suggesting I write t.ml : include T?
<sveit> of course the point is i have a module that I would like to export, amongst other things like functions and modules, lots of module types. the problem i am trying to avoid is that module types seem to need to be duplicated across ml and mli files
dakk has joined #ocaml
AlexDenisov has joined #ocaml
<Kakadu> Weird, I listed some modules in mllib file but they are not linked to cm[x]a
<Kakadu> It seems I don't understand something
<Kakadu> weird
<sveit> thanks for looking into it! i'll just stick with the *.ml file i guess.
<Kakadu> you can also make some noise in maillist
<sveit> new to the language, i will probably subscribe soon :)
jonasen has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tane has quit [Ping timeout: 272 seconds]
yegods has quit []
<sveit> i also have another, loosely related question. you can make a type abstract so that you can be sure invariants of the type will be maintained (i.e. hide the representation and only allow creation by certain functions and constants). is there a similar notion for modules? what i mean is suppose I have a "module type A = sig type a; val z : a; val f : a -> a -> a end" and want to have "module type B = sig module BA : A; val g : a -> a; g
<sveit> a = f z a end", i.e. somehow guarantee that g uses f in the way i specified
<sveit> sorry, "module type B = sig module BA : A; val g : BA.a -> BA.a; g a = BA.f BA.z a"
<Kakadu> I don't really understand how we can use function a->a->a wrong...
<sveit> kakadu: i guess the point is I know I can write a functor to give me a module of type B from a module of type A
<sveit> this is just like saying I can generate an instance of a type
<sveit> but I can make the type abstract to ensure "invalid" instances of the type can't be made
<Kakadu> mmm, maybe you are talking about generative functors?
<sveit> but with the setup above, a user could just write a new module that satisfies the signature of B, would be usable everywhere, but might just have "g = id"
<Kakadu> I don't think that something like you want exists
fraggle_ has quit [Read error: Connection reset by peer]
Mandus has joined #ocaml
<sveit> kakadu: thanks, i figured no :)
tane has joined #ocaml
agarwal1975 has quit [Ping timeout: 260 seconds]
Kakadu has quit []
Kakadu has joined #ocaml
t4nk204 has quit []
sveit has quit [Ping timeout: 260 seconds]
shinnya has joined #ocaml
silver has quit [Quit: rakede]
tane has quit [Quit: Leaving]
shinnya has quit [Ping timeout: 276 seconds]
MercurialAlchemi has quit [Ping timeout: 264 seconds]
AlexDenisov has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ontologiae has joined #ocaml
Kakadu has quit []
Kakadu has joined #ocaml
A1977494 has quit [Quit: Leaving.]
AltGr has left #ocaml [#ocaml]
wizeman has quit [Quit: Connection closed for inactivity]
malc_` has quit [Remote host closed the connection]
Guest74260 has quit [Quit: Lost terminal]
Kakadu has quit []
tautologico has joined #ocaml
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
darkf has joined #ocaml
zapus is now known as zapu
zapu is now known as zapus
darkf_ has joined #ocaml
darkf has quit [Disconnected by services]
darkf_ is now known as darkf
ontologiae has quit [Ping timeout: 250 seconds]
cloneme has quit [Ping timeout: 250 seconds]
madroach has quit [Ping timeout: 244 seconds]
madroach has joined #ocaml
tautologico has quit [Ping timeout: 264 seconds]
tautologico has joined #ocaml