Home liberachat/#haskell: Logs Calendar

Logs on 2022-01-29 (liberachat/#haskell)

00:00:04 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
00:02:19 Erutuon joins (~Erutuon@user/erutuon)
00:06:18 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
00:07:04 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
00:08:06 × burnsidesLlama quits (~burnsides@dhcp168-033.wadham.ox.ac.uk) (Remote host closed the connection)
00:08:38 burnsidesLlama joins (~burnsides@client-8-87.eduroam.oxuni.org.uk)
00:13:04 × burnsidesLlama quits (~burnsides@client-8-87.eduroam.oxuni.org.uk) (Ping timeout: 250 seconds)
00:13:34 RMSBach parts (~user@cpe-76-177-52-136.natcky.res.rr.com) (ERC 5.4 (IRC client for GNU Emacs 28.0.90))
00:13:48 × Gurkenglas quits (~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
00:26:29 kaph joins (~kaph@net-2-47-208-144.cust.vodafonedsl.it)
00:27:01 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:27:01 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:27:01 wroathe joins (~wroathe@user/wroathe)
00:34:37 × alp quits (~alp@user/alp) (Ping timeout: 268 seconds)
00:38:10 × mrmr quits (~mrmr@user/mrmr) (Quit: The Lounge - https://thelounge.chat)
00:38:17 × jao quits (~jao@static-68-235-44-25.cust.tzulo.com) (Ping timeout: 240 seconds)
00:38:50 Everything joins (~Everythin@37.115.210.35)
00:41:46 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
00:42:08 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
00:45:02 × dsrt^ quits (~dsrt@75-147-197-198-Atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
00:46:00 fef joins (~thedawn@user/thedawn)
00:47:49 × jgeerds_ quits (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds)
00:50:00 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
00:50:38 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds)
00:56:12 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:59:08 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Ping timeout: 256 seconds)
00:59:43 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
01:06:08 Null_A joins (~null_a@2601:645:8700:2290:8935:4edf:b32:6553)
01:13:48 zmt01 joins (~zmt00@user/zmt00)
01:16:57 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds)
01:19:37 × n3rdy1 quits (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds)
01:21:17 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 240 seconds)
01:23:33 segfaultfizzbuzz joins (~rustisafu@2602:306:cd3c:9350:59e3:db49:aa0a:46e5)
01:27:28 × tommd quits (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 256 seconds)
01:28:42 chenqisu1 joins (~chenqisu1@183.217.200.249)
01:42:12 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:46:52 dsrt^ joins (~dsrt@75-147-197-198-Atlanta.hfc.comcastbusiness.net)
01:52:57 × pieguy128 quits (~pieguy128@bas8-montreal02-65-93-195-202.dsl.bell.ca) (Ping timeout: 240 seconds)
01:54:15 wei2912 joins (~wei2912@138.75.71.147)
01:54:15 × wei2912 quits (~wei2912@138.75.71.147) (Client Quit)
01:57:13 <EvanR> what is going on in ghci when you run code which is a mix of stuff you defined and stuff from loaded libraries. Is it a mix of interpreted code and compiled code
01:57:32 <EvanR> precompled entirely and run, or entirely interpreted
01:58:56 × chele quits (~chele@user/chele) (Remote host closed the connection)
01:59:37 <Cale> It's a mix of bytecode and native compiled code
02:00:07 <Cale> I've never actually looked too carefully at the details of how that works though
02:01:41 <EvanR> the interpreter functionality is interesting, is that a built-in function of ghc
02:01:49 <geekosaur> I have to assume bytecode can call into compiled code or you wouldn't even have the Prelude
02:02:18 <geekosaur> whether compiled code can call into bytecode is another question but eith higher order functions I must assume it can
02:02:46 <geekosaur> EvanR, it's built in and used by runghc, ghci, and template haskell
02:02:56 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-37-70-24-250-178.dsl.bell.ca)
02:02:59 <geekosaur> (note that ghci is just ghc --interactive)
02:03:09 <EvanR> oh
02:03:31 <geekosaur> also ghc -e
02:10:24 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
02:13:58 tommd joins (~tommd@67-42-147-226.ptld.qwest.net)
02:16:22 merijn joins (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl)
02:19:36 × neurocyte0917090 quits (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
02:20:55 <ephemient> if you run ghci -fobject-code, it'll compile everything it loads
02:22:14 <ephemient> but otherwise, loaded source files are -fbyte-code just like expressions you enter in the repl
02:24:45 <Cale> Also generally installed packages will be object code, and if there are .o and .hi files alongside your source code, it will generally load that
02:26:28 <EvanR> ah haven't seen .o files in a while
02:27:01 <EvanR> ghci -fobject-code sounds good, what about cabal repl
02:27:31 <geekosaur> cabal repl is just a wrapper around ghci, iirc there's a way to pass ghci options which could include -fobject-code
02:30:51 <geekosaur> --repl-options
02:32:02 <geekosaur> and --repl-options=-fobject-code seems to work here
02:33:01 × xff0x quits (~xff0x@2001:1a81:529b:5400:ae89:612e:5a81:4cf8) (Ping timeout: 240 seconds)
02:35:07 xff0x joins (~xff0x@2001:1a81:52b5:2e00:620f:6b65:415e:34ea)
02:35:24 <EvanR> not only does that make everything a lot faster, but the repl loads a lot faster now
02:41:06 lavaman joins (~lavaman@98.38.249.169)
02:42:34 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
02:43:04 <ephemient> it's not just the .o files, ghc needs the .hi files to know what's in them. and the ghc docs say that ghci -fobject-code can potentially compile faster than ghc --make during reload because it keep those interfaces in memory
02:45:22 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
02:45:41 chexum joins (~quassel@gateway/tor-sasl/chexum)
02:49:33 <EvanR> fancy
02:49:57 × merijn quits (~merijn@c-001-002-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
02:51:29 califax- joins (~califax@user/califx)
02:52:28 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
02:54:20 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
02:54:44 <geekosaur> you can also usefully use -O with -fobject-code (bytecode disables optimization)
02:56:18 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
02:56:18 califax- is now known as califax
03:04:44 Techcable joins (~Techcable@168.235.93.147)
03:07:17 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Quit: leaving)
03:07:39 Maxdamantus joins (~Maxdamant@124.197.32.108)
03:10:07 × Maxdamantus quits (~Maxdamant@124.197.32.108) (Client Quit)
03:10:13 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
03:12:51 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:12:51 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:12:51 finn_elija is now known as FinnElija
03:13:34 Maxdamantus joins (~Maxdamant@user/maxdamantus)
03:15:29 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:15:42 lavaman joins (~lavaman@98.38.249.169)
03:20:37 × jespada quits (~jespada@87.74.36.188) (Ping timeout: 240 seconds)
03:23:56 jespada joins (~jespada@87.74.36.188)
03:36:58 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
03:39:03 RMSBach joins (~user@cpe-76-177-52-136.natcky.res.rr.com)
03:40:14 × RMSBach quits (~user@cpe-76-177-52-136.natcky.res.rr.com) (Remote host closed the connection)
03:42:29 zaquest joins (~notzaques@5.130.79.72)
03:48:57 × td_ quits (~td@94.134.91.203) (Ping timeout: 240 seconds)
03:50:52 td_ joins (~td@muedsl-82-207-238-224.citykom.de)
03:51:06 wei2912 joins (~wei2912@138.75.71.147)
03:53:12 × cyphase_eviltwin quits (~cyphase@user/cyphase) (Ping timeout: 250 seconds)
03:58:15 cyphase joins (~cyphase@user/cyphase)
04:07:48 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
04:08:07 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
04:09:02 jinsun__ joins (~quassel@user/jinsun)
04:09:04 fef joins (~thedawn@user/thedawn)
04:09:57 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 240 seconds)
04:15:49 × yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 240 seconds)
04:16:43 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
04:20:08 yahb joins (xsbot@user/mniip/bot/yahb)
04:34:03 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:34:20 lavaman joins (~lavaman@98.38.249.169)
04:34:27 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:34:42 lavaman joins (~lavaman@98.38.249.169)
04:34:48 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:35:03 lavaman joins (~lavaman@98.38.249.169)
04:35:11 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:35:25 lavaman joins (~lavaman@98.38.249.169)
04:35:32 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:35:37 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
04:35:46 lavaman joins (~lavaman@98.38.249.169)
04:35:54 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:36:08 lavaman joins (~lavaman@98.38.249.169)
04:36:16 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:36:30 lavaman joins (~lavaman@98.38.249.169)
04:36:38 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:36:51 lavaman joins (~lavaman@98.38.249.169)
04:36:54 × Null_A quits (~null_a@2601:645:8700:2290:8935:4edf:b32:6553) (Remote host closed the connection)
04:36:59 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:37:13 lavaman joins (~lavaman@98.38.249.169)
04:37:20 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:37:35 lavaman joins (~lavaman@98.38.249.169)
04:37:43 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:37:57 lavaman joins (~lavaman@98.38.249.169)
04:38:04 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:38:18 lavaman joins (~lavaman@98.38.249.169)
04:38:26 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:38:41 lavaman joins (~lavaman@98.38.249.169)
04:38:48 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:39:03 lavaman joins (~lavaman@98.38.249.169)
04:39:10 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:39:25 lavaman joins (~lavaman@98.38.249.169)
04:39:32 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:39:46 lavaman joins (~lavaman@98.38.249.169)
04:39:54 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:40:07 lavaman joins (~lavaman@98.38.249.169)
04:40:15 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:40:16 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:40:29 lavaman joins (~lavaman@98.38.249.169)
04:40:37 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:40:51 lavaman joins (~lavaman@98.38.249.169)
04:40:58 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:41:13 lavaman joins (~lavaman@98.38.249.169)
04:41:21 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:41:35 lavaman joins (~lavaman@98.38.249.169)
04:41:43 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:41:57 lavaman joins (~lavaman@98.38.249.169)
04:42:05 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:42:19 lavaman joins (~lavaman@98.38.249.169)
04:42:27 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:42:42 lavaman joins (~lavaman@98.38.249.169)
04:42:50 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:43:04 lavaman joins (~lavaman@98.38.249.169)
04:43:11 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:43:26 lavaman joins (~lavaman@98.38.249.169)
04:43:34 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:43:49 lavaman joins (~lavaman@98.38.249.169)
04:43:57 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:44:06 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds)
04:44:12 lavaman joins (~lavaman@98.38.249.169)
04:44:19 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:44:33 lavaman joins (~lavaman@98.38.249.169)
04:44:41 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:44:55 lavaman joins (~lavaman@98.38.249.169)
04:45:03 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:45:18 lavaman joins (~lavaman@98.38.249.169)
04:45:26 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:48:38 × vglfr quits (~vglfr@46.96.133.112) (Ping timeout: 256 seconds)
04:55:52 zebrag joins (~chris@user/zebrag)
04:59:17 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
05:02:36 Erutuon joins (~Erutuon@user/erutuon)
05:09:42 × little_mac quits (~little_ma@2601:410:4300:3ce0:a84a:183:2c1b:3735) (Remote host closed the connection)
05:13:53 little_mac joins (~little_ma@2601:410:4300:3ce0:a5db:5f46:eccb:4a78)
05:14:02 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
05:15:58 lavaman joins (~lavaman@98.38.249.169)
05:18:30 yauhsien joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
05:20:18 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
05:22:04 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
05:22:37 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
05:22:57 × yauhsien quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
05:24:54 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:25:15 mbuf joins (~Shakthi@122.162.13.98)
05:25:52 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
05:26:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:29:45 <segfaultfizzbuzz> i just learned my first little bit of x86 assembly and noticed that a lot of the basic operations mutate the registers
05:30:17 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:30:31 <segfaultfizzbuzz> so, i don't want to get in too far over my head here but,... does haskell de-mutate things then, or..?
05:32:42 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
05:32:42 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
05:32:42 wroathe joins (~wroathe@user/wroathe)
05:33:14 <segfaultfizzbuzz> and does that mean that a more immutability-friendly ISA would make sense to have...?
05:34:18 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
05:35:44 × raym quits (~raym@user/raym) (Quit: kernel update, rebooting...)
05:42:17 raym joins (~raym@user/raym)
05:46:03 <EvanR> a lot of mutation goes on behind the scenes in haskell. For example, when a thunk is evaluated it's contents are overwritten with the answer, which can then be used again later
05:46:12 jao joins (~jao@68.235.43.13)
05:46:55 <EvanR> ST programs can literally mutate variables and arrays in a type safe way
05:46:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
05:47:10 <EvanR> even within a pure computation
05:49:04 lavaman joins (~lavaman@98.38.249.169)
05:50:10 georgy joins (~bc8147f2@cerf.good1.com)
05:53:48 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
05:55:15 <segfaultfizzbuzz> hmm... bbl srry
05:55:20 <ephemient> basically all our actual hardware is https://en.wikipedia.org/wiki/Von_Neumann_architecture
05:56:09 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
05:56:09 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
05:56:09 wroathe joins (~wroathe@user/wroathe)
05:57:08 × tommd quits (~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 250 seconds)
05:59:17 × segfaultfizzbuzz quits (~rustisafu@2602:306:cd3c:9350:59e3:db49:aa0a:46e5) (Ping timeout: 240 seconds)
06:00:21 deadmarshal joins (~deadmarsh@95.38.117.123)
06:00:44 curtis joins (~curtis@76.208.249.124)
06:00:50 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
06:02:24 Jing joins (~hedgehog@240e:390:7c53:a7e1:247f:ed9b:32f9:1faf)
06:03:50 × little_mac quits (~little_ma@2601:410:4300:3ce0:a5db:5f46:eccb:4a78) (Remote host closed the connection)
06:06:51 × curtis quits (~curtis@76.208.249.124) (Quit: leaving)
06:17:09 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
06:19:34 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:24:57 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
06:25:08 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
06:28:20 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:30:04 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 250 seconds)
06:32:53 Erutuon joins (~Erutuon@user/erutuon)
06:33:13 × phma quits (phma@2001:5b0:212a:9da8:6f5b:6926:b319:62a2) (Read error: Connection reset by peer)
06:34:34 phma joins (phma@2001:5b0:2172:8d38:d8c9:6275:aa70:e454)
06:35:21 × nunggu quits (~q@user/nunggu) (Ping timeout: 276 seconds)
06:41:40 × mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer)
06:44:31 cynomys joins (~cynomys@user/cynomys)
06:44:56 mcglk joins (~mcglk@131.191.49.120)
06:47:49 thevishy joins (~Nishant@2405:201:f005:c007:60d1:4243:e46a:fb96)
06:53:25 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
06:54:56 JuanMiguel joins (~juanmi@72.red-79-158-14.dynamicip.rima-tde.net)
06:56:13 × JuanMiguel quits (~juanmi@72.red-79-158-14.dynamicip.rima-tde.net) (Client Quit)
07:01:44 nunggu joins (~q@user/nunggu)
07:13:49 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
07:17:18 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
07:20:14 fef joins (~thedawn@user/thedawn)
07:21:57 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds)
07:26:47 × rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
07:27:16 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
07:27:40 rembo10 joins (~rembo10@remulis.com)
07:33:24 alp joins (~alp@user/alp)
07:35:37 Feuermagier joins (~Feuermagi@user/feuermagier)
07:36:12 × cynomys quits (~cynomys@user/cynomys) (Quit: Lost terminal)
07:36:56 × jao quits (~jao@68.235.43.13) (Remote host closed the connection)
07:38:16 × alp quits (~alp@user/alp) (Ping timeout: 268 seconds)
07:40:11 × thevishy quits (~Nishant@2405:201:f005:c007:60d1:4243:e46a:fb96) (Quit: Leaving)
07:44:33 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
07:52:27 max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
07:57:36 × Akiva quits (~Akiva@user/Akiva) (Ping timeout: 250 seconds)
07:59:07 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
08:00:27 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
08:00:52 fef joins (~thedawn@user/thedawn)
08:01:20 × kaph quits (~kaph@net-2-47-208-144.cust.vodafonedsl.it) (Read error: Connection reset by peer)
08:07:11 mikoto-chan joins (~mikoto-ch@213.177.151.239)
08:08:09 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
08:08:47 Feuermagier joins (~Feuermagi@user/feuermagier)
08:09:36 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
08:12:30 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
08:12:36 geekosaur joins (~geekosaur@xmonad/geekosaur)
08:14:19 Feuermagier joins (~Feuermagi@user/feuermagier)
08:16:00 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
08:16:06 Gurkenglas joins (~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de)
08:16:25 Feuermagier joins (~Feuermagi@user/feuermagier)
08:21:33 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
08:26:48 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
08:27:22 Feuermagier joins (~Feuermagi@user/feuermagier)
08:29:46 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
08:31:16 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
08:32:41 vysn joins (~vysn@user/vysn)
08:33:31 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:35:17 × max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 250 seconds)
08:35:25 × vysn quits (~vysn@user/vysn) (Client Quit)
08:37:50 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
08:44:00 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
08:44:48 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
08:47:09 alp joins (~alp@user/alp)
08:48:35 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
08:48:55 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
08:54:48 Feuermagier joins (~Feuermagi@user/feuermagier)
08:56:26 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
08:57:53 Inst joins (~delicacie@2601:6c4:4080:3f80:89ce:900e:7230:cda2)
08:59:50 Erutuon joins (~Erutuon@user/erutuon)
09:00:55 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
09:04:42 × megaTherion quits (~therion@unix.io) (Read error: Connection reset by peer)
09:07:33 × alp quits (~alp@user/alp) (Ping timeout: 250 seconds)
09:08:57 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
09:12:07 lavaman joins (~lavaman@98.38.249.169)
09:15:51 Tuplanolla joins (~Tuplanoll@91-159-68-166.elisa-laajakaista.fi)
09:16:32 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:16:37 mc47 joins (~mc47@xmonad/TheMC47)
09:16:39 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
09:17:36 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
09:17:38 allbery_b joins (~geekosaur@xmonad/geekosaur)
09:17:41 allbery_b is now known as geekosaur
09:19:59 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:20:54 gehmehgeh joins (~user@user/gehmehgeh)
09:20:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:21:18 max22- joins (~maxime@2a01cb0883359800ceae7201b4b629dd.ipv6.abo.wanadoo.fr)
09:23:51 Guest9864 joins (~Guest98@82.212.122.61)
09:24:53 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
09:25:20 <Guest9864> Hi guys, I am trying to write a haskell website for fun using yesod but im running into an issue where I am trying to use System,random, it says its hidden, I try to add it to my .cabal file but whenever i try to save that file with random added in the build-depends, the added line literally dissappears
09:25:50 <Guest9864> any thoughts on what this might me ? :) Thanks
09:26:32 <polyphem> are you using hpack ?
09:26:38 <Guest9864> i dont know what is
09:26:50 <Guest9864> what that is**
09:26:52 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:27:51 <polyphem> it regenerates your .cabal file everytime you build , from a file called package.yaml , do you have package.yaml ?
09:27:58 <Guest9864> let me check
09:28:05 <Guest9864> yes i do
09:29:22 <polyphem> i havent used hpack , but i think you either have to add your dependency to package.yaml , or delete(rename) package.yaml so your .cabal file won't get regenerated
09:29:25 <Guest9864> I added there and it seems to be working, I have another error though so let me try to solve it
09:37:16 × jespada quits (~jespada@87.74.36.188) (Ping timeout: 250 seconds)
09:39:01 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
09:39:27 jespada joins (~jespada@87.74.36.188)
09:41:02 yauhsien joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
09:45:00 <Guest9864> Why is it saying that variable is not in scope for uniformR ? https://paste.tomsmeding.com/GsEG1xVQ
09:45:12 <Guest9864> this is how it is used here :> https://hackage.haskell.org/package/random-1.2.1/docs/System-Random.html#v:uniformR
09:45:37 × yauhsien quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
09:45:53 <Rembane> Guest9864: Is it pureGen that's not in scope?
09:45:59 <Guest9864> nope, uniformR
09:47:15 <Guest9864> exact error : https://paste.tomsmeding.com/JXwn2fkx
09:47:18 <Rembane> Guest9864: Which version of random are you using?
09:47:32 <Guest9864> I didnt specify
09:48:09 <Rembane> Are you using a cabal project or stack or have you installed things in another way?
09:48:23 <Guest9864> im using stack
09:49:11 <Rembane> Which release are you using?
09:49:26 <Guest9864> of stack ? the most recent one, just downloaded it a few days ago
09:49:55 <Guest9864> 2.7.3
09:51:02 <Rembane> Sorry, I used the wrong word. Snapshot was the one I was looking for. LTS 18.23 is the latest snapshot, which one are you using?
09:51:44 <Rembane> My hypothesis is that you are using a version of the package random that's older than 1.2.
09:55:33 <Guest9864> i am
09:55:35 <Guest9864> I am using 1.1
10:00:16 × jinsun__ quits (~quassel@user/jinsun) (Read error: Connection reset by peer)
10:00:32 Feuermagier joins (~Feuermagi@user/feuermagier)
10:01:09 <Rembane> Guest9864: That explains why you don't have uniformR, uniformR is introduced in version 1.2.
10:01:47 jinsun joins (~quassel@user/jinsun)
10:01:49 <Rembane> Guest9864: https://hackage.haskell.org/package/random-1.2.1/docs/System-Random.html#v:uniformR At the documentation for uniformR there's a small note about it.
10:02:37 <Guest9864> I see
10:02:38 <Guest9864> thanks
10:03:19 <Rembane> No worries. :)
10:04:25 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
10:04:42 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
10:05:00 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
10:05:57 flipchan joins (~filip@188-169-255-31.dsl.utg.ge)
10:07:02 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
10:07:13 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:21:20 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
10:22:34 <Guest9864> whats wrong here ? https://paste.tomsmeding.com/Rmub1shC I keep getting an error telling me to use a let in a do block
10:23:01 <Guest9864> but my understanding is that i can use one let and write a bunch of statements on the same level of indentation
10:23:16 <Guest9864> as long as its inside a do block
10:23:32 <ski> indent the next line
10:23:49 <Guest9864> which next line ?
10:24:09 <ski> let pureGen = mkStdGen 137
10:24:11 <ski> (randNum, _) = randomR (1 :: Int, 5 :: Int) pureGen
10:24:32 <Guest9864> shouldn't it be okay that they are on the same level of indentation since they are in a do block ??
10:24:52 <Guest9864> it worked but i dont understand why
10:24:56 <ski> your definitions inside the `let' should all be on the same level of indentation, yes
10:25:00 coot joins (~coot@213.134.190.95)
10:25:16 <ski> `pureGen = ...' should start in the same column as `(randNum, _) = ...'
10:25:37 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Ping timeout: 240 seconds)
10:26:32 <ski> you had `(randNum, _) = ...' on the same level as the `let' itself, which means that it was not inside the `let', it was at the level of the commands inside the `do'
10:26:49 <ski> (and there's no `... = ...'-commands in a `do'-expression)
10:27:54 <ski> btw, just so you know
10:27:57 <ski> let
10:28:01 <ski> pureGen = mkStdGen 137
10:28:06 <ski> (randNum, _) = randomR (1 :: Int, 5 :: Int) pureGen
10:28:12 <ski> would have worked just as well
10:28:26 <ski> (perhaps here you can more easily see that they're on the same level)
10:28:46 <Guest9864> i guess i understand
10:28:47 <Guest9864> thanks
10:29:47 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
10:29:58 <ski> oh, and i'd not use `mkStdGen'
10:30:21 <ski> (unless you do want this to be deterministic)
10:33:45 dyeplexer joins (~dyeplexer@user/dyeplexer)
10:33:53 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
10:36:12 × Inst quits (~delicacie@2601:6c4:4080:3f80:89ce:900e:7230:cda2) (Ping timeout: 250 seconds)
10:36:43 __monty__ joins (~toonn@user/toonn)
10:37:23 Inst joins (~delicacie@2601:6c4:4080:3f80:c4e7:d723:91db:1b9f)
10:40:48 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:43:56 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Ping timeout: 256 seconds)
10:44:10 × Inst quits (~delicacie@2601:6c4:4080:3f80:c4e7:d723:91db:1b9f) (Ping timeout: 260 seconds)
10:44:17 × xff0x quits (~xff0x@2001:1a81:52b5:2e00:620f:6b65:415e:34ea) (Ping timeout: 240 seconds)
10:44:26 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 250 seconds)
10:50:26 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:51:17 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
10:53:18 Lord_of_Life_ is now known as Lord_of_Life
10:54:26 × Guest9864 quits (~Guest98@82.212.122.61) (Quit: Client closed)
10:56:46 xff0x joins (~xff0x@2001:1a81:52b5:2e00:620f:6b65:415e:34ea)
11:05:29 nightbreak joins (~nightbrea@victors-mbp.dyndns.rice.edu)
11:08:40 arjun joins (~arjun@user/arjun)
11:08:46 <arjun> hi
11:08:59 <geekosaur> o/
11:09:31 <arjun> any way i can tell ghci to load the language extensions in language pragmas from the file being loaded
11:09:37 <arjun> o/ geekosaur
11:09:41 <geekosaur> no
11:10:12 <geekosaur> think about it, if you have multiple files loaded and switch between them, which pragmas if any should (not) be in effect?
11:10:48 <arjun> automagic switching, wooosh :p
11:11:18 <arjun> i get it. it's by design, thanks
11:12:12 <arjun> btw, i did get those tabs working geekosaur
11:12:44 <arjun> i know now what you meant by "they behave like titlebars" : p
11:13:05 <geekosaur> my screenshot showed it on the right hand screen, even
11:13:09 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:13:22 <geekosaur> that was a large opart of why I made the screenshot
11:13:38 <geekosaur> someday we need a less hacky tab mechanism
11:13:42 <arjun> i was hoping they'd switch like i3's
11:13:51 <arjun> a tab allows it's own sublayout
11:14:08 <arjun> and then you can switch between those
11:14:21 <arjun> pretty handy
11:14:47 <geekosaur> there's a module for that too, iirc
11:14:55 <arjun> >.<
11:15:02 <arjun> ofc there is : p
11:15:31 <arjun> i still have some things i am struggling with. i'll see if you're around tonight
11:15:36 × max22- quits (~maxime@2a01cb0883359800ceae7201b4b629dd.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
11:15:55 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.17.0/docs/XMonad-Layout-SubLayouts.html#v:subTabbed
11:16:18 <geekosaur> also did you see liskin and myself discussing your dpms question?
11:16:25 max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
11:16:41 <geekosaur> you really need a scriptable acpid, you can't do it from xmonad or any other window manager
11:17:10 <geekosaur> debianoids at least package a scriptable acpid and you could edit the scripts for lid open/close to reconfigure xrandr
11:21:18 schuelermine joins (~schuelerm@user/schuelermine)
11:26:00 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:26:28 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:27:59 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:28:09 Vajb joins (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e)
11:38:08 × nightbreak quits (~nightbrea@victors-mbp.dyndns.rice.edu) (Quit: Signing off for now...)
11:41:40 lavaman joins (~lavaman@98.38.249.169)
11:46:46 × byorgey quits (~byorgey@155.138.238.211) (Quit: leaving)
11:51:45 byorgey joins (~byorgey@155.138.238.211)
11:56:12 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:56:26 lavaman joins (~lavaman@98.38.249.169)
11:56:34 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:56:48 lavaman joins (~lavaman@98.38.249.169)
11:56:55 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:57:09 lavaman joins (~lavaman@98.38.249.169)
11:57:17 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:57:31 <liskin> also it's quite likely that something (probably upower) would emit a dbus signal when the lid is closed
11:57:32 lavaman joins (~lavaman@98.38.249.169)
11:57:39 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:57:53 lavaman joins (~lavaman@98.38.249.169)
11:58:00 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:58:14 lavaman joins (~lavaman@98.38.249.169)
11:58:22 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:58:35 lavaman joins (~lavaman@98.38.249.169)
11:58:43 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:58:58 lavaman joins (~lavaman@98.38.249.169)
11:59:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:59:21 lavaman joins (~lavaman@98.38.249.169)
11:59:22 <arjun> liskin, i have upower
11:59:28 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:59:41 lavaman joins (~lavaman@98.38.249.169)
11:59:49 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
11:59:50 <liskin> I kind of expected systemd-logind to emit a PropertyChanged as well, since there is a LidClosed property on /org/freedesktop/login1, but it doesn't :-/
12:00:03 lavaman joins (~lavaman@98.38.249.169)
12:00:05 <geekosaur> lavaman, you're bouncing
12:00:11 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:00:18 ChanServ sets mode +o geekosaur
12:00:25 lavaman joins (~lavaman@98.38.249.169)
12:00:33 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:00:34 <arjun> when i run gnome, this done exactly right (probably by gnome itself)
12:00:47 lavaman joins (~lavaman@98.38.249.169)
12:00:49 geekosaur sets mode +b *!*@98.38.249.169
12:00:55 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:01:16 geekosaur sets mode -o geekosaur
12:01:26 <liskin> (we should probably move this to #xmonad)
12:03:07 lionhairdino joins (~jacoo@121.131.39.82)
12:03:16 kaph joins (~kaph@net-2-47-208-144.cust.vodafonedsl.it)
12:06:42 boxscape_ joins (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de)
12:08:22 × Gurkenglas quits (~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
12:10:18 <boxscape_> Any idea what might drive GHC to produce this error? It seems nonsensical. https://paste.tomsmeding.com/LAGAbg5P
12:10:19 <boxscape_> I'm hoping that someone has encountered a similar "Could not deduce x from context x" error and remembers why it ocurred.
12:10:38 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
12:11:03 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
12:11:25 Feuermagier joins (~Feuermagi@user/feuermagier)
12:11:28 <boxscape_> oh hm I suppose probably the kinds are different somehow
12:12:02 <geekosaur> hm, do you need ScopedTypeVariables for that second x to be in scope?
12:12:32 <geekosaur> or is that automatic in instance definitions? I forget
12:12:37 <boxscape_> I don't think I do, but I already had it enabled
12:13:24 <boxscape_> I think adding a kind signature will help, if I can figure out what it should be. Though I suspect the kinds are need are only exported from hidden modules -.-
12:13:39 <boxscape_> s/are/I
12:14:40 <boxscape_> geekosaur turns out you do need ScopedTypeVariables for this after all, though it's not the cause of this particular error
12:15:11 × schuelermine quits (~schuelerm@user/schuelermine) (Ping timeout: 250 seconds)
12:15:47 <geekosaur> maybe a type signature on getField would help clarify which x? (you probably do need explicit forall there)
12:16:01 <geekosaur> might require an extension
12:17:06 <geekosaur> InstanceSigs?
12:17:55 <geekosaur> apparently not
12:18:07 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
12:18:25 Feuermagier joins (~Feuermagi@user/feuermagier)
12:18:36 <geekosaur> actually yes, I just got my search wrong
12:19:54 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
12:20:49 <boxscape_> Adding an instance sig doesn't help, unfortunately. I think it knows what `x` it is, but wrapping it in `Name` introduces an additional kind variable that's currently likely filled with `Any`. I'll have to look at the FIR source to see what kind I'll need to give it.
12:21:02 ChanServ sets mode +o litharge
12:21:02 litharge sets mode -bo *!*@98.38.249.169 litharge
12:21:15 lavaman joins (~lavaman@98.38.249.169)
12:21:20 Feuermagier joins (~Feuermagi@user/feuermagier)
12:21:21 <geekosaur> sigh
12:21:23 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:21:25 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
12:21:29 ChanServ sets mode +o geekosaur
12:21:36 lavaman joins (~lavaman@98.38.249.169)
12:21:44 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:21:59 lavaman joins (~lavaman@98.38.249.169)
12:22:04 geekosaur sets mode +b *!*@98.38.249.169$##fix-your-connection
12:22:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:25:27 <boxscape_> using -fprint-explicit-kinds helps and show that the kinds indeed don't match
12:27:08 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
12:28:10 <boxscape_> this code (same but added kind signature) works :) https://paste.tomsmeding.com/eJBmYiMs
12:29:24 geekosaur sets mode -o geekosaur
12:29:25 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
12:31:41 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:33:36 Andrew joins (andrew@andrewyu.org)
12:35:42 × Vajb quits (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Read error: Connection reset by peer)
12:35:55 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
12:42:20 ChanServ sets mode +o litharge
12:42:21 litharge sets mode -bo *!*@98.38.249.169$##fix-your-connection litharge
12:44:45 × deadmarshal quits (~deadmarsh@95.38.117.123) (Ping timeout: 268 seconds)
12:46:13 AlexNoo_ is now known as AlexNoo
13:05:42 Gurkenglas joins (~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de)
13:06:06 × georgy quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
13:08:11 × max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 268 seconds)
13:10:08 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
13:11:24 <Andrew> I've literally seen people writing in Haskell IMPERATIVELY, i.e. putting everything in IO() and do
13:12:12 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
13:12:17 lavaman joins (~lavaman@98.38.249.169)
13:12:26 yauhsien_ joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
13:12:27 <boxscape_> kinda doing that in the project I'm writing right now because every second line (might be hyperbole) is an FFI call to Vulkan
13:12:28 × yauhsien_ quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Remote host closed the connection)
13:12:29 <polyphem> Andrew : sure
13:12:51 <Andrew> I mean, I'm not sure if Haskell is the right language to do that in
13:13:00 yauhsien_ joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
13:13:25 <boxscape_> I don't really see any disadvantages compared to doing it in a different language. Except for the part where Haskell is missing idris' !-notation.
13:13:26 <Andrew> ~~there are no purely functional languages, as much as I like lambdas)
13:13:41 <Andrew> True though
13:13:56 <Andrew> Also, anyone knows of any alternative compilers?
13:16:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
13:17:03 machinedgod joins (~machinedg@24.105.81.50)
13:17:37 <polyphem> Andrew: there have been other implementations/compilers for haskell , however i think only ghc is activly maintained
13:17:58 <Andrew> Yeah I noticed that
13:18:14 <Andrew> I'm pretty happy with GHC, except for that fact that compiling Hello World takes like a few seconds
13:18:18 <polyphem> Andrew: there is also eta/frege targeting the jvw
13:18:29 <Andrew> JVW?
13:18:36 <boxscape_> jvm?
13:18:38 <polyphem> jvm , sorry
13:19:11 <boxscape_> I think among non-GHC haskell compilers Frege has had the most recent commit
13:19:11 Andrew doesn't like Java, so that doesn't matter to him :D
13:19:13 <boxscape_> in May last year
13:21:10 CHUD joins (~CHUD@host-80-41-89-108.as13285.net)
13:22:02 georgy joins (~bc8147f2@cerf.good1.com)
13:23:08 <polyphem> Andrew: have you optimizatiions -O2 turned on , that increases compile time consideratly
13:23:53 <Andrew> polyphem: Seems so lol
13:23:56 × shailangsa quits (~shailangs@host86-185-98-37.range86-185.btcentralplus.com) (Remote host closed the connection)
13:24:32 <polyphem> its almost never necessary to have it turned on, it increases compile time though
13:24:42 <georgy> Andrew, it is common to use interpreter (ghci) when developing, and then compile a final product
13:24:50 <Andrew> I'm used to that since I used gcc before
13:24:58 <Andrew> georgy: Yes, that's what I do rn
13:25:01 <polyphem> check out ghcid, it reduces compile time while developing to give fast feed back
13:25:46 <boxscape_> though VS Code with HLS is a more popular solution these days I believe
13:25:57 <boxscape_> (...or another editor with HLS)
13:26:00 Andrew uses emacs instead of VS code
13:26:03 <Andrew> let's see...
13:26:37 <polyphem> HLS however doesnt support latest ghc though ...
13:26:38 <Andrew> I do have haskell packages installed, but I haven't utilized it... i'm just opening vterms and running ghci there
13:26:53 <boxscape_> polyphem it does since yesterday
13:27:18 <polyphem> ok, then i am nnot up to date :)
13:27:37 <boxscape_> (though of course if that's something that matters you'd face the same issue for a few months once 9.4 is released)
13:27:40 deadmarshal joins (~deadmarsh@95.38.117.123)
13:29:45 <polyphem> Andrew: when you use vterms , ghcid is for you , also check out hdc : https://github.com/lazamar/haskell-docs-cli
13:30:33 <Andrew> Nah, I'll check out haskell-mode and haskell-emacs, because using vterm to run ghc and other stuff seems silly, since I'll want my code in a file afterwards anyways, but I'll check those out
13:31:00 lavaman joins (~lavaman@98.38.249.169)
13:34:18 × Gurkenglas quits (~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
13:35:36 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
13:37:38 <jackdk> Andrew: I use dante with ghcid and am reasonably happy
13:38:15 <Andrew> I used to yank and paste code from emacs into the repl, which is reasonably stupid
13:38:52 <polyphem> Andrew: ghcid recompiles your file automatically upon file save
13:39:14 <polyphem> Andrew: no need to copy paste
13:39:35 <Andrew> polyphem: while true; do inotifywait -e close_write program.hs; make program; ./program; done
13:40:37 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 240 seconds)
13:42:04 <polyphem> Andrew: yeah, but ghcid , also runs linter can handle stack and cabal and gives you errors ...
13:44:00 <Andrew> that's nice
13:47:47 forell_ is now known as forell
13:48:17 × forell quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host)
13:48:17 forell joins (~forell@user/forell)
13:51:58 × jespada quits (~jespada@87.74.36.188) (Ping timeout: 268 seconds)
13:53:03 jespada joins (~jespada@87.74.36.188)
13:56:58 max22- joins (~maxime@2a01cb088335980091c6fbcd4fea35f7.ipv6.abo.wanadoo.fr)
14:00:02 segfaultfizzbuzz joins (~rustisafu@2602:306:cd3c:9350:59e3:db49:aa0a:46e5)
14:03:43 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
14:06:14 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
14:08:01 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
14:08:58 Codaraxis joins (~Codaraxis@user/codaraxis)
14:08:59 kuribas joins (~user@ptr-25vy0iaa493etjqvp1u.18120a2.ip6.access.telenet.be)
14:09:16 o-90 joins (~o-90@gateway/tor-sasl/o-90)
14:12:51 × mestre quits (~mestre@191.177.181.194) (Quit: Lost terminal)
14:17:09 pwug joins (~pwug@user/pwug)
14:26:33 zer0bitz joins (~zer0bitz@2001:2003:f444:a000:ec86:7a91:dddd:e8c7)
14:27:46 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds)
14:31:15 × yauhsien_ quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Remote host closed the connection)
14:31:48 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Ping timeout: 276 seconds)
14:32:44 × kimjetwav quits (~user@2607:fea8:2363:8f00:79e4:1253:5b58:4ecf) (Remote host closed the connection)
14:34:34 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 256 seconds)
14:42:05 yauhsien_ joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
14:42:10 × boxscape_ quits (~boxscape_@p4ff0b9d5.dip0.t-ipconnect.de) (Quit: Connection closed)
14:47:02 × yauhsien_ quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
14:48:05 × deadmarshal quits (~deadmarsh@95.38.117.123) (Ping timeout: 268 seconds)
14:49:29 ph88 joins (~ph88@2a02:8109:9e00:71d0:48e1:be0c:b23c:dea9)
14:49:37 emad joins (~emad@156.214.92.21)
14:49:59 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
15:01:20 ProfSimm joins (~ProfSimm@87.227.196.109)
15:03:04 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
15:03:12 dyeplexer joins (~dyeplexer@user/dyeplexer)
15:08:51 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
15:14:24 × chenqisu1 quits (~chenqisu1@183.217.200.249) (Ping timeout: 250 seconds)
15:15:56 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
15:17:47 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
15:17:57 son0p joins (~ff@2800:484:1d81:b700:d40b:900:b387:320)
15:18:27 zmt01 joins (~zmt00@user/zmt00)
15:22:37 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 240 seconds)
15:26:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
15:29:08 <georgy> hi
15:29:33 <georgy> how can I pass haskell function as a callback to a C function that accepts function pointer as void*?
15:30:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Ping timeout: 240 seconds)
15:35:30 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
15:36:45 × coot quits (~coot@213.134.190.95) (Quit: coot)
15:37:25 <georgy> ok, let me step back a bit, how would I pass haskell function to a C function that accepts function pointer? is this still up to date example/
15:37:28 <georgy> http://wiki.haskell.org/GHC/Using_the_FFI#Callbacks_into_Haskell_from_foreign_code
15:37:36 califax joins (~califax@user/califx)
15:37:44 <georgy> I'm not sure I understand this: foreign import ccall "wrapper" wrap :: (CDouble -> CDouble) -> IO (FunPtr (CDouble -> CDouble))
15:38:10 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
15:38:51 lbseale joins (~ep1ctetus@user/ep1ctetus)
15:42:13 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Client Quit)
15:43:13 <[exa]> georgy: have to say the "wrapper" there isn't really documented
15:44:42 <[exa]> it seems like it is the thing that adds the necessary bits into the haskell notion of function (closure data + recipe for evaluating them) to the void*; you get a void pointer that you can pass to C and call as if it was a plain old ccall, then you clean the wrapper with freeHsFunPtr
15:46:51 <geekosaur> it's semi-documented in the language report
15:47:25 <geekosaur> (which I just noticed has a bad example for a different case, it treats errno as an actual variable)
15:48:12 <[exa]> oh here https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/rts/ffi#foreign-import-wrapper
15:48:42 <[exa]> "adjustor thunk", wow.
15:50:48 <geekosaur> that's what you get for looking in the commentary :)
15:50:57 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:52:53 <int-e> geekosaur: well, if you don't like guts you shouldn't ask what the sausage is made of :)
15:53:16 <geekosaur> that was more or less my point :)
15:53:30 <int-e> oh
15:53:54 <int-e> (I'm mixing up nicks as usual, [exa] would've be the correct target)
15:54:25 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
15:54:54 × wei2912 quits (~wei2912@138.75.71.147) (Remote host closed the connection)
16:00:11 little_mac joins (~little_ma@2601:410:4300:3ce0:b1c1:7d23:9565:94df)
16:03:06 bob joins (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
16:05:01 bob is now known as soxen
16:15:34 × soxen quits (~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Quit: Leaving)
16:16:13 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:18:25 wombat875 joins (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net)
16:19:03 <georgy> it took me 15 minutes to figure out why this failed to compile: ptr <- castUINTPtrToPtr (fromIntegral x)
16:19:17 × georgy quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Error))
16:19:23 fef joins (~thedawn@user/thedawn)
16:19:56 georgy joins (~bc8147f2@83.167.180.121)
16:20:01 <georgy> Couldn't match type 'Ptr' with 'IO' Expected type: IO () Actual type: Ptr ()
16:21:08 zer0bitz_ joins (~zer0bitz@2001:2003:f444:a000:319a:8ff4:9a9c:6a36)
16:21:21 <ski> yeh, you wanted `let ptr = ...'
16:21:45 <georgy> yes
16:22:00 slowButPresent joins (~slowButPr@user/slowbutpresent)
16:22:00 <ski> (also, is `UINT_PTR' in `Num' ?)
16:22:03 <Andrew> Unsafe stuff
16:22:31 <ski> the cast ?
16:22:35 <Andrew> By the way, just curious, what are you trying to achieve with callbacks?
16:22:48 <Andrew> Pointers are unsafe to me :)
16:23:03 × kaph quits (~kaph@net-2-47-208-144.cust.vodafonedsl.it) (Read error: Connection reset by peer)
16:23:18 × zer0bitz quits (~zer0bitz@2001:2003:f444:a000:ec86:7a91:dddd:e8c7) (Ping timeout: 250 seconds)
16:23:20 Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
16:23:30 <geekosaur> they're inevitable if you're doing FFI
16:23:40 <geekosaur> one could of course argue the FFI is unsafe though
16:23:50 <georgy> I am calling C function that accepts a callback, and it passes pointer to callback as integral value
16:24:00 <ski> (is it `void *' or `void (*)()' ?)
16:24:10 <Andrew> ~~everything not-purely-functional is unsafe, so all programs that do things are unsafe~~
16:24:26 <georgy> callback is a function pointer
16:24:27 <Andrew> I'd argue that haskells that contain Monads feel a bit chunky
16:24:52 × CHUD quits (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds)
16:24:54 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds)
16:25:55 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
16:25:55 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
16:25:55 wroathe joins (~wroathe@user/wroathe)
16:26:23 soxen joins (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
16:26:31 gehmehgeh joins (~user@user/gehmehgeh)
16:26:46 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 250 seconds)
16:27:00 <ski> chunky ?
16:27:20 <Andrew> Human feelings are weird and unsafe
16:27:21 <ski> how're lists chunky ?
16:27:23 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
16:27:30 × Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
16:28:03 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
16:28:07 <Andrew> lists aren't chunky
16:28:09 zmt01 joins (~zmt00@user/zmt00)
16:28:10 <Andrew> "do" is chunky
16:28:11 × soxen quits (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Client Quit)
16:28:30 ski still has no idea what "chunky" is intended to mean
16:29:00 Andrew cannot define it, either
16:29:02 random-jellyfish joins (~random-je@user/random-jellyfish)
16:29:07 <ski> georgy : does it really accept a plain `void *' ("anonymous data pointer", not a function pointer) ?
16:30:21 soxen joins (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
16:30:38 yauhsien_ joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
16:30:40 <maerwald> Andrew: you mean most programs are (>>) and thus don't really need the monad interface?
16:30:49 <Andrew> maerwald: No?
16:30:58 Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
16:31:19 <Andrew> they're needed, but they're just not pure-feeling enough for me, maybe I'm a jerk
16:31:23 <random-jellyfish> I'm trying to model a Discrete Event System Specification in Haskell https://en.wikipedia.org/wiki/DEVS, and I'm not sure whether to include the delta, ta and lambda functions as fields of the DEVS data type or to put them in a type class and then create and instance of that for DEVS, any thoughts on this?
16:31:52 shailangsa joins (~shailangs@host86-185-98-37.range86-185.btcentralplus.com)
16:32:33 <geekosaur> Andrew, or maybe you'd prefer themathematical side to the CS side
16:32:48 <Andrew> That's true
16:32:59 <random-jellyfish> or as a more general question, when should have functions as fields of records and when should you have them in type classes?
16:33:19 × mbuf quits (~Shakthi@122.162.13.98) (Quit: Leaving)
16:34:02 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
16:34:06 <geekosaur> random-jellyfish, type classes are for when you have conceptually similar operations on different types
16:34:51 <geekosaur> if you have only the type DEVS to deal with, a typeclass is pointless and may slow things down
16:35:54 <random-jellyfish> good point
16:36:15 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:36:25 <random-jellyfish> I'll make them fields of DEVS then
16:36:50 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
16:37:31 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
16:39:06 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
16:40:36 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
16:40:48 denbrahe joins (~denbrahe@2001:470:69fc:105::19c0)
16:41:02 jakalx joins (~jakalx@base.jakalx.net)
16:43:17 Gurkenglas joins (~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de)
16:43:40 × denbrahe quits (~denbrahe@2001:470:69fc:105::19c0) (Quit: Reconnecting)
16:43:57 denbrahe joins (~denbrahe@2001:470:69fc:105::19c0)
16:48:20 × unmanbearpig quits (~unmanbear@user/unmanbearpig) (Quit: WeeChat 3.3)
16:49:03 fef joins (~thedawn@user/thedawn)
16:50:16 × denbrahe quits (~denbrahe@2001:470:69fc:105::19c0) (Quit: Reconnecting)
16:50:26 <Andrew> geekosaur: I'm actually quite new to haskell though
16:50:39 denbrahe joins (~denbrahe@2001:470:69fc:105::19c0)
16:50:40 <Andrew> Barely scratched the surface of Monads
16:51:23 <ski> monads are quite diverse
16:51:56 <geekosaur> poke at the state monad for a simple example (and a demonstration that monads by themselves do not mean impurity)
16:51:57 <random-jellyfish> I'd recommend to start with the list monad, that's where I first understood the power of monads
16:52:08 <geekosaur> list would be next, yes
16:52:11 × kuribas quits (~user@ptr-25vy0iaa493etjqvp1u.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
16:52:20 <geekosaur> but state's easier to figure out if you're new
16:52:37 <geekosaur> list will twist your brain a bit, but thereby show you what monads bring to the table
16:53:03 <ski> (and `do'-notation is just some pretty syntactic sugar. to understand monads, you should get a feel for particular examples of monads, what they do / what they're about, how they work. how the basic operations `return' and `(>>=)' work for that monad)
16:53:29 <geekosaur> (and IO barely uses monads tbh, it just does sequencing via them)
16:53:37 <ski> `Maybe' might be a nice starting-point, before lists
16:54:26 <random-jellyfish> I how to use StateT monad transformer from this example of 99 bottles of beer : https://www.99-bottles-of-beer.net/language-haskell-1360.html
16:54:33 <random-jellyfish> I learned how to use StateT monad transformer from this example of 99 bottles of beer : https://www.99-bottles-of-beer.net/language-haskell-1360.html
16:55:34 <random-jellyfish> I think intuitive examples are always good for learning
16:56:04 <Andrew> Thanks
16:56:26 <Andrew> I assume IO monads just use lambda nesting to achieve "sequences"?
16:56:49 <Andrew> That's the only functional way of doing it that I can understand
16:57:07 <random-jellyfish> they use the the bind operator, like all other monads
16:57:26 <ski> before tackling monads, you should be comfortable with polymorphism, higher-order functions, `data' types (including parameterized ones), and type classes
16:57:39 Andrew has 100MB of free memory running some homemade AI stuff in the background, he wonders if there are machine learning haskell libs
16:58:08 <Andrew> Forgot the name, I think I'm okay with typeclasses and polymorphism thereof
16:58:19 <Andrew> I tackled Lisp before, so higher-order is okay
16:58:29 <Andrew> I'm not doing well in monoids and semigroups, so mehh
16:58:38 <Andrew> Probably should review thhat first
16:59:00 <ski> yea, it's probably a good idea to have some idea how those work. also functors
16:59:12 <Andrew> That, I never touched
16:59:33 <random-jellyfish> monoids are isomorphic to strings endowed with concatenation - that's all I need to know about monoids
16:59:34 <ski> all monads are functors. but functors are simpler to understand, so you should cover those first
17:00:03 <random-jellyfish> and I have no idea what semigroups are and what they do, are they important?
17:00:16 <Andrew> I do know what semigroups are from math
17:00:42 <Andrew> (I'm from China and 8th-grade math class doesn't include that, but people talk about group theory)
17:00:45 <ski> > sortBy (comparing length <> compare) (words "The quick brown fox jumps over the lazy dog)" -- cute monoid example, effecting sorting primarily by length and secondarily by the usual lexicographic ordering (among words of the same length here)
17:00:46 <lambdabot> <hint>:1:244: error:
17:00:46 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
17:01:01 <ski> > sortBy (comparing length <> compare) (words "The quick brown fox jumps over the lazy dog)") -- eh, missing bracket :)
17:01:02 <lambdabot> ["The","fox","the","dog)","lazy","over","brown","jumps","quick"]
17:01:25 <Andrew> I might know what functors are without knowing (i.e. I don't know the name), but whatever, I'll learn on them, I don't think I know them
17:01:30 <ski> ah, that's nice, Andrew
17:01:34 <Andrew> thanks all!
17:01:37 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 240 seconds)
17:02:48 <ski> semigroups and monoids are almost the same. both have a (binary) operation (which should be associative). monoids also have a "neutral element / identity / unit" (combining another element with the neutral element, using the binary operation, gives back the other element)
17:03:48 <ski> and groups are monoids in which each element has an inverse (iow, you have a unary operation which gives the inverse of its operand), where the combination of an element and its inverse gives the neutral element
17:03:50 <random-jellyfish> semigroupt don't have the unit?
17:03:56 <random-jellyfish> semigroups*
17:04:03 <ski> they don't need to
17:04:17 <ski> (but all monoids are semigroups, so those do have unit)
17:04:42 <random-jellyfish> are there any intuitive examples of semigroups?
17:04:44 burnsidesLlama joins (~burnsides@dhcp168-016.wadham.ox.ac.uk)
17:04:48 <ski> the operation `(+)' with neutral element `0' and inverse `negate' is a group
17:05:30 <ski> the operation `(*)' with neutral element `1' and inverse `recip' is a group .. if we discount non-invertible elements, like `0'
17:05:44 <ski> the operation `(++)' with neutral element `[]' is a monoid
17:05:56 <ski> the operation `max' is a semigroup, and so is `min'
17:06:07 froduck joins (~froduck@cpc101088-sgyl37-2-0-cust22.18-2.cable.virginm.net)
17:06:18 <ski> > recip 2
17:06:19 <lambdabot> 0.5
17:06:24 <ski> (that's `1/2')
17:06:52 <geekosaur> [29 16:56:26] <Andrew> I assume IO monads just use lambda nesting to achieve "sequences"? <-- it's the state monad with a minimal state token, thus setting up a trivial data dependency between calls enforcing a sequence
17:07:10 <ski> `(&&)' with `True', and `(||)' with `False', are also monoids
17:07:24 <Andrew> That sounds hacky
17:07:31 <ski> hm, and `gcd' with `0', and `lcm' with `1'
17:07:37 <Andrew> But I think I'm almost to the point on that one, yay
17:07:51 <Andrew> *Why am I not in b ed yet*
17:08:04 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
17:08:22 ski . o O ( isn't it morning over there ? )
17:08:30 <Andrew> I think there are also closures, which are just binary operations that result in something inside the set
17:08:39 <Andrew> 01:48
17:08:47 <froduck> maybe you folded your sheets wrong, and spacetime is preventing you from smoothing them or something
17:08:51 <ski> ah, ok
17:09:28 SummerSonw joins (~The_viole@203.77.49.232)
17:09:33 <froduck> probably if you had some gravity magnets to make your bed with...
17:09:54 <random-jellyfish> I would assume all natural numbers >0 with addition form a semigroup?
17:09:54 × yauhsien_ quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Remote host closed the connection)
17:10:04 <ski> yes
17:10:40 <random-jellyfish> and could it be that is where the prefix semi comes from? because you're basically throwing away half the elements of a group to get a semigroup?
17:10:56 <ski> hm .. never thought of that before
17:11:03 <ski> i guess it could be plausible
17:11:31 <ski> (usually i think of "semi-" as meaning roughly "not quite" or "somewhat less than")
17:11:32 × soxen quits (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds)
17:11:54 <froduck> rndom-jellyfish: half the axioms
17:12:19 × froduck quits (~froduck@cpc101088-sgyl37-2-0-cust22.18-2.cable.virginm.net) (Quit: Connection closed)
17:12:23 <random-jellyfish> perfect, now I know what semigroups are
17:12:30 ski . o O ( "Half would have been just right, said the girl who got triplets." )
17:12:42 <random-jellyfish> that's how I like to learn math, from examples
17:13:03 <random-jellyfish> I trust the Phd folks with the proofs
17:13:22 <ski> i guess maximum and minimum are my immediate go-to examples
17:13:41 <Andrew> I like to learn stuff via examples, and think of a definition/proof through that
17:13:46 <Andrew> Whatever, afk
17:13:52 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
17:15:09 <random-jellyfish> Andrew when you get to learning about lenses...just learn how to use them first
17:16:05 <random-jellyfish> don't try to go down the rabbit hole with understanding what's behind them
17:16:06 romesrf joins (~romes@44.190.189.46.rev.vodafone.pt)
17:16:13 × SummerSonw quits (~The_viole@203.77.49.232) (Quit: Leaving)
17:16:17 <random-jellyfish> you'll risk your sanity
17:16:48 <random-jellyfish> I'm joking of course...but I did find lenses to be very complicated
17:17:59 yauhsien_ joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
17:18:29 <lagash> And whatever you do, do NOT use lenses under direct sunlight, it'll burn!
17:20:08 <romesrf> random-jellyfish: there is a great talk by simon peyton jones on lenses
17:20:15 <romesrf> it did it for me
17:22:32 × yauhsien_ quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
17:23:43 <random-jellyfish> thanks, I'll put it on my watch later list
17:24:05 soxen joins (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
17:30:25 alt-romes joins (~romes@44.190.189.46.rev.vodafone.pt)
17:30:39 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
17:32:12 × romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 250 seconds)
17:34:08 lavaman joins (~lavaman@98.38.249.169)
17:35:42 emf_ joins (~emf@2620:10d:c090:400::5:29d7)
17:35:45 RFV joins (~Thunderbi@111.red-88-5-241.dynamicip.rima-tde.net)
17:38:16 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
17:38:57 × emf quits (~emf@2601:602:9400:8f0:435:b386:5ad4:6eb2) (Ping timeout: 240 seconds)
17:39:06 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 245 seconds)
17:39:10 × RFV quits (~Thunderbi@111.red-88-5-241.dynamicip.rima-tde.net) (Client Quit)
17:40:18 × alt-romes quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4)
17:41:10 econo joins (uid147250@user/econo)
17:42:44 zer0bitz joins (~zer0bitz@2001:2003:f444:a000:f8f2:a6ee:f8f:27a0)
17:44:08 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:45:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
17:46:58 × zer0bitz_ quits (~zer0bitz@2001:2003:f444:a000:319a:8ff4:9a9c:6a36) (Ping timeout: 260 seconds)
17:47:15 RMSBach joins (~guygastin@137.184.131.156)
17:47:19 lavaman joins (~lavaman@98.38.249.169)
17:47:44 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
17:48:04 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
17:49:31 zincy joins (~zincy@host86-151-99-97.range86-151.btcentralplus.com)
17:49:47 <EvanR> if you think lens is complicated, you can read this instead which is simular http://conal.net/blog/posts/semantic-editor-combinators
17:50:03 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
17:52:42 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
17:53:44 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
17:54:02 × zincy quits (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
17:54:07 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:54:08 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:54:08 wroathe joins (~wroathe@user/wroathe)
17:56:37 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
17:56:49 deadmarshal joins (~deadmarsh@95.38.117.123)
17:57:50 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:58:30 <dolio> I don't think there's anything that complicated about lenses. The complication is people explaining and relating different ways of implementing them.
17:58:38 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
17:58:45 coot joins (~coot@213.134.190.95)
18:00:20 <dolio> And getting the type system to automatically accept various subtyping relationships based on the implementation details.
18:00:50 × wombat875 quits (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
18:02:07 zincy joins (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
18:02:10 kaph joins (~kaph@net-2-47-208-144.cust.vodafonedsl.it)
18:02:55 wombat875 joins (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net)
18:04:00 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
18:08:11 <random-jellyfish> does ghc 8.6.5 support DuplicateRecordFields?
18:10:16 <random-jellyfish> nvm found it, it's from 8.0.1
18:11:27 × Jing quits (~hedgehog@240e:390:7c53:a7e1:247f:ed9b:32f9:1faf) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:14:05 × soxen quits (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Read error: Connection reset by peer)
18:16:06 Null_A joins (~null_a@2601:645:8700:2290:6509:ee11:ea28:47c)
18:16:53 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
18:17:56 × orcus quits (~orcus@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
18:17:56 × dispater- quits (~dispater@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
18:19:11 jao joins (~jao@66.63.167.119)
18:20:17 × lionhairdino quits (~jacoo@121.131.39.82) (Ping timeout: 240 seconds)
18:20:43 dispater joins (~dispater@user/brprice)
18:21:14 orcus joins (~orcus@user/brprice)
18:22:51 alp joins (~alp@user/alp)
18:25:02 vglfr joins (~vglfr@88.155.52.56)
18:25:20 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
18:28:35 × pwug quits (~pwug@user/pwug) (Quit: Leaving)
18:29:27 × jao quits (~jao@66.63.167.119) (Ping timeout: 260 seconds)
18:31:22 jao joins (~jao@68.235.43.172)
18:41:36 × beaky quits (~beaky@2a03:b0c0:0:1010::1e:a001) (Ping timeout: 245 seconds)
18:42:29 beaky joins (~beaky@2a03:b0c0:0:1010::1e:a001)
18:44:04 justsomeguy joins (~justsomeg@user/justsomeguy)
18:47:10 <justsomeguy> In GHCi, why does alpha = ['a'..'z']; l [] = 0; l (_:xs) = 1 + l xs; l alpha; :sprint alpha result in l = _, but if I change the definitino of l to l t = case t of { [] -> 0; (_:xs) -> 1 + l xs }, then :sprint alpha prints alpha = "abcdefghijklmnopqrstuvwxyz"?
18:47:14 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
18:48:19 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:49:00 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
18:50:32 asivitz joins (uid178348@id-178348.tinside.irccloud.com)
18:50:46 <EvanR> alpha resets to egg state if nothing is holding onto it
18:50:59 Sgeo joins (~Sgeo@user/sgeo)
18:51:01 <EvanR> to avoid using a lot of memory when doing ghci stuff
18:52:59 <justsomeguy> What is egg state? Do you mean a thunk? The part that confuses me is that the new definition of l forces evaluation of the values in alpha in the first place. I was expecting the same result of alpha = _.
18:53:07 <mrianbloom> What is the most developed library for frontend gui development for Haskell on linux?
18:53:14 <EvanR> the original thunk if you will, before it was evauated
18:54:13 <justsomeguy> Before the figurative egg was cracked open :)
18:54:13 <geekosaur> mrianbloom, gi-gtk probably
18:54:23 <geekosaur> unless by "frontend" you mean web
18:54:28 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
18:54:48 <monochrom> I guess "linux" means not web. :)
18:54:58 <mrianbloom> no I mean linux desktop
18:55:16 <EvanR> that's my theory and it could be wrong, for instance, I don't know if resetting a thunk to egg state makes any sense. Because you can't really do it normally, even if that would be nice
18:55:54 <mrianbloom> Could also mean windows etc, but right now it's just Ubuntu.
18:56:00 <EvanR> but I know that printing out an infinite list in ghci doesn't use infinite memory
18:56:01 <geekosaur> ghci does have special support for that, but supposedly those two definitions of `l` should be identical and in fact the simplifier should generate the second fromn the first
18:56:21 <EvanR> (necessarily)
18:56:25 <polyphem> mrianbloom: there is monomer , its new but interresting , and its multiplatform
18:56:37 random-jellyfish joins (~random-je@user/random-jellyfish)
18:56:48 <mrianbloom> polyphem: cool I'll check that out
18:57:42 <monochrom> I think previous explorations of :sprint reported in this channel already established that :sprint is way more hair-splitting than a reasonable (even realistic) lazy evaluation model.
18:57:48 <polyphem> https://github.com/fjvallarino/monomer
18:58:41 <EvanR> otoh if the original question was about "most developed" then no, probably GTK
18:58:54 <EvanR> as cool as monomer looks
19:00:32 <mrianbloom> I might have phrased it, most used or most popular. But honestly a good design (functional approach) is also attractive.
19:01:34 <EvanR> most used, popular haskell GUI might either be a web browser or a fancy abuse of terminal xD
19:01:40 <monochrom> This is why every question of the form "best X" "most ___ X" should never be taken seriously.
19:02:31 <monochrom> The querents themselves aren't even honest perfectionists in the first place.
19:02:41 <mrianbloom> Gosh
19:02:54 CHUD joins (~CHUD@host-80-41-89-108.as13285.net)
19:03:00 <EvanR> back in the 90s basically *every* program written for windows had a GUI. today basically no haskell program has a GUI
19:03:02 <monochrom> Do you really need the absolutely best Haskell textbook to learn Haskell?
19:05:18 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
19:05:43 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:06:53 ski . o O ( why settle for less than perfect ? )
19:07:14 <maerwald> because you won't settle
19:07:30 × CHUD quits (~CHUD@host-80-41-89-108.as13285.net) (Ping timeout: 256 seconds)
19:09:16 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
19:12:27 <mrianbloom> Incidentally "Types And Programming Languages" is probably the best haskell textbook. No Haskell in there though ;)
19:12:44 × deadmarshal quits (~deadmarsh@95.38.117.123) (Ping timeout: 250 seconds)
19:13:12 <monochrom> It doesn't have lazy evaluation or non-strictness.
19:13:21 <random-jellyfish> I found Real World Haskell to be straight to the point
19:13:24 <monochrom> And it has infinite types which Haskell doesn't have.
19:13:50 <dolio> What if PFPL is the best Haskell textbook?
19:14:16 <mrianbloom> I'm just saying, I earned the most about Haskell there.
19:14:27 <mrianbloom> *learned
19:14:29 <monochrom> PFPL is even against lazy evaluation!
19:14:39 <dolio> Right, that would make it very ironic. :)
19:14:45 <monochrom> hahaha
19:15:55 mmalter joins (~mmalter@88.126.10.237)
19:16:53 <mrianbloom> "Structure and Interpretation of Computer Programs" is my other favorite Haskell textbook. (Again no Haskell.)
19:16:53 × orcus quits (~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
19:16:53 × dispater quits (~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
19:17:30 × coot quits (~coot@213.134.190.95) (Ping timeout: 250 seconds)
19:17:56 <mrianbloom> It does have a lambda on the cover though.
19:18:00 <monochrom> It lacks pattern matching for algebraic data types. The resulting clumsiness shows.
19:18:05 <ski> @quote rules.of.go
19:18:05 <lambdabot> sarah says: "But I don't _want_ functional programming!" -- Sarah Peyton Jones, age 11, upon hearing the rules of Go
19:18:39 dispater joins (~dispater@user/brprice)
19:19:08 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
19:19:11 orcus joins (~orcus@user/brprice)
19:19:28 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
19:20:06 <EvanR> yeah I still don't understand the rules of Go
19:20:41 <monochrom> You can view my pickiness in a positive light. If those 3 issues are all I could raise of those 3 books, that just means I'm quietly acknowledge that they are pretty good in all other aspects.
19:20:58 <monochrom> Every silver lining has tarnish.
19:27:40 <byorgey> EvanR: if you don't understand the rules of Go you haven't tried very hard
19:28:13 <byorgey> unless you're referring to the esoteric corner cases about different sorts of ko rules...
19:28:13 <EvanR> I can place the pieces and stuff but the details keep slipping
19:28:23 <EvanR> how to end the damn game
19:28:25 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:28:25 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:28:25 wroathe joins (~wroathe@user/wroathe)
19:29:03 <EvanR> you need game theory to figure out when to agree to end the game
19:29:32 <EvanR> also no I haven't tried very hard
19:29:38 <johnw> EvanR: just play to the bitter end (when you can't place any more pieces), and you'll find that there's a moment in the game when it's obvious that you'll never recover, sort of like in Monopoly.
19:29:43 <[exa]> EvanR: you need to ensure free safe space defended by pieces of your color for your own folk, that's it
19:29:53 <EvanR> I always play monopoly so long that I pass out
19:29:54 <[exa]> EvanR: whoever has the most space at the end, wins
19:30:27 <[exa]> accepting that you can't do much anymore is the end
19:30:57 byorgey is also fond of https://senseis.xmp.net/?TrompTaylorRules , though no one uses those exact rules in practice
19:31:46 <mmalter> Hello. Anyone has experience doing statistical modelling of time series in an ML inspired language? Any advice, pointer?
19:32:09 <mmalter> The Haskell situation seem not too good, the OCaml situation looks horrible.
19:33:01 <[exa]> mmalter: "statistical modeling of time series" is a pretty wide range of problems, anything specific?
19:33:18 <mmalter> well i don't want to reimplement dickey fuller for example
19:33:54 <mmalter> but something not too barebone for ARMA would be nice
19:34:08 <mmalter> and I am not dreaming too much about multivariate analysis
19:34:16 <mmalter> but I am ok doing things myself
19:34:26 <mmalter> just dont want to reimplement box jenkins
19:35:04 <mmalter> Tbh, I am pretty sure many implementations are out there. Maybe just not published
19:36:26 <[exa]> like, this is probably not a welcome advice but isn't there a R package that does exactly that?
19:36:41 <mmalter> well, you guessed where I am coming from :D
19:36:51 <[exa]> haha okay. :D
19:36:53 <geekosaur> sometimes the right tool for the job is a thing
19:37:14 <[exa]> R is underrated.
19:37:16 <mmalter> Well, I guess I'll just have to get to work then...
19:37:49 <[exa]> I had luck with writing the R package authors directly, if something didn't work or seemed cryptic
19:38:04 <[exa]> the whole ecosystem there is kinda proud of the status that they solve the problems
19:38:17 × Techcable quits (~Techcable@168.235.93.147) (Ping timeout: 240 seconds)
19:38:40 <mmalter> Meh most people use Matlab or python nowadays. It's a bit distasteful.
19:38:45 <mmalter> Not to sound snobby
19:38:51 <[exa]> you probably expected pointers to haskell packages but, well, I'm sorry, not aware of any of this
19:39:03 <mmalter> that would have been great
19:39:17 <mmalter> No but I am beggining to think it does not exist
19:39:29 <mmalter> There is hmatrix so it's not like I am completely naked
19:39:41 <[exa]> maybe idle for some time, there's 7 hundred people who might have tried the same
19:41:47 <[exa]> btw check out julia folks, they might have interesting stuff (for me often if R fails and there's not even a package for the problem in javas and parseltongues, julia has surprisingly cool libraries)
19:44:24 <mmalter> I might try that, all the cool kids talk about it. It's just that I really prefer having one general language that solves (sometimes awkwardly) all my problems. I think I'll just write something not too ambitious in Haskell.
19:44:37 <mmalter> idk I might get rich and famous doing so
19:46:58 coot joins (~coot@213.134.190.95)
19:51:24 tfeb joins (~tfb@88.98.95.237)
19:52:17 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
19:52:30 <EvanR> a silver hammer, or something
19:53:00 <EvanR> one size fits all problems solution
19:53:36 <geekosaur> every language has its turing tarpit
19:54:07 <monochrom> a gold hammer has a better chance of fitting more holes because gold is softer >:)
19:54:27 <EvanR> if all you have is a gold hammer, every problem looks like an iron hole
19:54:38 <monochrom> hee hee
19:56:25 Codaraxis_ joins (~Codaraxis@user/codaraxis)
19:56:38 <EvanR> I was so waiting to see how thor could fit into haskell somehow
19:57:04 <mmalter> Or the reverse.
19:57:06 <mmalter> Sorry
19:57:40 <monochrom> Haskell could be good at what Matlab and R are good at. Just needs someone to do library bindings. Note that it is not like Matlab and R really cares about destructive updates. (They happily clone a whole matrix and then GC the old one.)
19:58:54 <mmalter> Honnestly I can see why it's not there. It's just not fun to code.
19:59:01 <EvanR> particular algorithms can benefit from a local use of destructive updates
19:59:19 <mmalter> Well in that case most algo
19:59:33 <mmalter> But anyway, everybody do these algo in fortran
19:59:48 <EvanR> in before a haskell to fortran DSL
19:59:56 <mmalter> he
19:59:57 × Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
20:00:35 <EvanR> or perhaps a corresponding decompiler to turn fortran into haskell code (which can be sent back to fortran 1 to 1, like a lens)
20:00:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
20:01:08 <EvanR> fortran lens
20:01:34 <EvanR> put your haskell goggles on
20:02:30 vicfred joins (~vicfred@user/vicfred)
20:04:19 × Codaraxis_ quits (~Codaraxis@user/codaraxis) (Quit: Leaving)
20:04:26 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
20:04:56 × wombat875 quits (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
20:06:31 wombat875 joins (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net)
20:06:51 <segfaultfizzbuzz> monochrom: actually i've done some high performance matlab programming. you're right that if you are doing a crap paper napkin calculation you do GC but if you are doing any kind of even somewhat performance sensitive calculation you annotate which matrices are references to avoid allocation/deallocation
20:07:04 <segfaultfizzbuzz> if the matrices are large that is
20:07:22 <random-jellyfish> I just realized I never wrote anything useful in Haskell in my entire life...only small experiments and unfinished work...so embarrassing
20:07:56 <polyphem> mmalter: haven't used it but perhaps : https://tweag.github.io/HaskellR/
20:08:30 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
20:09:16 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
20:09:16 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
20:09:16 wroathe joins (~wroathe@user/wroathe)
20:10:50 <mmalter> polyphem: damn, I don't know how I missed it. Thanks a lot, really helpful
20:14:00 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
20:14:10 × Null_A quits (~null_a@2601:645:8700:2290:6509:ee11:ea28:47c) (Remote host closed the connection)
20:17:58 × wombat875 quits (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
20:18:01 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
20:18:45 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:18:47 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
20:22:00 <polyphem> mmalter: np
20:24:26 × bendo quits (~bendo@ip5f5bebbb.dynamic.kabel-deutschland.de) (Quit: leaving)
20:29:39 <sm> random-jellyfish: good, time to fix that!
20:29:43 × alp quits (~alp@user/alp) (Ping timeout: 268 seconds)
20:33:20 × zincy quits (~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Remote host closed the connection)
20:33:23 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
20:33:43 ProfSimm joins (~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
20:40:26 × ProfSimm quits (~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
20:45:45 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
20:45:51 <sm> make a script that lists your haskell projects and their status
20:47:22 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
20:47:34 <sm> with a Map k a, I'm not finding a way to get the k if I have an a. I guess that's not normally done. Is there a standard way to "invert" a map, to get Map a k ?
20:47:34 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
20:48:17 <dsal> :t Map.fromList . fmap swap . Map.assocs
20:48:18 <lambdabot> error:
20:48:18 <lambdabot> Not in scope: ‘Map.fromList’
20:48:18 <lambdabot> Perhaps you meant one of these:
20:48:24 <dsal> :t M.fromList . fmap swap . M.assocs
20:48:25 <lambdabot> Ord k => M.Map a k -> M.Map k a
20:48:31 <geekosaur> maybe you want a bimap?
20:48:49 ProfSimm joins (~ProfSimm@87.227.196.109)
20:49:12 <sm> cool, thanks both
20:49:35 pavonia joins (~user@user/siracusa)
20:49:55 <EvanR> it would be at least Map a [k]
20:50:07 <EvanR> rather, Map a (NonEmpty k) if you are fancy
20:50:34 <sm> I have actually Map k [a], which I think Bimap won't handle well
20:50:52 <sm> to go from a to k. I should hand roll it I think
20:50:56 <ski> a binary relation ?
20:51:02 <EvanR> I was going to say this is a poor man's SQL add index, but now you went full relational
20:51:49 <EvanR> Rel k a
20:51:53 MatthiasG2 joins (~matthias@i6DFA01BB.versanet.de)
20:51:58 × johnw quits (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Ping timeout: 250 seconds)
20:52:11 <monochrom> For full relational, just use [(k, a)] and do exhaustive search by list comprehension :)
20:52:43 <EvanR> it's sad that often SQL does just that
20:52:51 <ski> depends on which modes you plan to use
20:53:33 Null_A joins (~null_a@2601:645:8700:2290:6509:ee11:ea28:47c)
20:53:37 ski . o O ( magic sets )
20:55:09 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Remote host closed the connection)
20:57:41 × justGhost quits (~justache@user/justache) (Remote host closed the connection)
20:58:40 justGhost joins (~justache@user/justache)
20:58:41 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
20:58:48 <sm> hmm, let me make this concrete. I have accountsbytype :: Map AccountType [AccountName], and I want a accounttypebyn :: Map AccountName AccountType, or a lookupaccounttype :: AccountName -> Maybe AccountType. accountsbytype's AccountName values are disjoint (every account has only one type) but a Map doesn't make that apparent.
20:59:21 <sm> which is making it a bit harder to reverse, I think
20:59:59 Erutuon joins (~Erutuon@user/erutuon)
21:01:17 lavaman joins (~lavaman@98.38.249.169)
21:02:33 <Clint> i'd say you could use ixset-typed, but that's undermaintained
21:02:34 <byorgey> sm: yeah, if I were you I would just handroll my own custom data type that stores both a Map AccountType [AccountName] and a Map AccountName AccountType, and provide operations which automatically keep them in sync
21:04:00 <georgy> @hoogle [a] -> Maybe a
21:04:01 <lambdabot> Data.Maybe listToMaybe :: [a] -> Maybe a
21:04:01 <lambdabot> Test.Framework.Providers.API listToMaybeLast :: [a] -> Maybe a
21:04:01 <lambdabot> Distribution.Compat.Prelude.Internal listToMaybe :: [a] -> Maybe a
21:04:10 <georgy> hmm, I don't have listToMaybe?
21:04:24 <geekosaur> import Data.Maybe
21:04:28 <georgy> I did
21:04:35 <geekosaur> uh
21:04:38 <sm> thanks
21:04:46 <geekosaur> it's been there since at least 6.6, pretty sure
21:05:10 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
21:05:24 lavaman joins (~lavaman@98.38.249.169)
21:05:31 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
21:05:45 lavaman joins (~lavaman@98.38.249.169)
21:05:46 <geekosaur> % :i listToMaybe
21:05:47 <yahb> geekosaur: listToMaybe :: [a] -> Maybe a -- Defined in `Data.Maybe'
21:05:52 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
21:06:08 lavaman joins (~lavaman@98.38.249.169)
21:06:15 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
21:06:23 <georgy> ok I figured it out. if there's an error, ghci won't have functions included in the file it loaded
21:08:45 <EvanR> yeah it's a bit annoying the ghci reload isn't "transactional" and puts you back in a safe zone if reload files
21:08:47 <EvanR> fails
21:10:02 Inst joins (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
21:10:50 <EvanR> though if your file is now broken, there's in some sense nothing to go back to
21:13:11 × xff0x quits (~xff0x@2001:1a81:52b5:2e00:620f:6b65:415e:34ea) (Ping timeout: 250 seconds)
21:13:58 xff0x joins (~xff0x@2001:1a81:52b5:2e00:330a:176:fd58:7823)
21:21:38 × zer0bitz quits (~zer0bitz@2001:2003:f444:a000:f8f2:a6ee:f8f:27a0) (Ping timeout: 260 seconds)
21:24:12 jgeerds_ joins (~jgeerds@55d4a547.access.ecotel.net)
21:30:57 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 240 seconds)
21:36:31 × Null_A quits (~null_a@2601:645:8700:2290:6509:ee11:ea28:47c) (Remote host closed the connection)
21:36:46 lavaman joins (~lavaman@98.38.249.169)
21:37:58 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
21:42:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
21:45:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Remote host closed the connection)
21:54:49 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
21:57:57 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
21:58:06 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
21:58:15 × xff0x quits (~xff0x@2001:1a81:52b5:2e00:330a:176:fd58:7823) (Ping timeout: 250 seconds)
21:59:03 Guest25 joins (~Guest25@187.17.40.22)
21:59:09 xff0x joins (~xff0x@2001:1a81:52b5:2e00:a456:ec27:982:79c1)
22:06:24 Topsi joins (~Tobias@dyndsl-095-033-090-071.ewe-ip-backbone.de)
22:10:41 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:12:57 yauhsien_ joins (~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
22:15:49 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
22:16:37 × Inst quits (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
22:17:03 × emad quits (~emad@156.214.92.21) (Quit: Leaving)
22:17:32 × yauhsien_ quits (~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
22:19:42 × Guest25 quits (~Guest25@187.17.40.22) (Quit: Client closed)
22:22:49 merijn joins (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
22:25:08 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
22:27:07 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:27:28 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:28:07 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 268 seconds)
22:28:19 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
22:31:12 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 250 seconds)
22:31:31 × burnsidesLlama quits (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
22:32:03 burnsidesLlama joins (~burnsides@dhcp168-016.wadham.ox.ac.uk)
22:32:53 Techcable joins (~Techcable@168.235.93.147)
22:33:22 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:33:47 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
22:34:15 Erutuon joins (~Erutuon@user/erutuon)
22:36:14 × burnsidesLlama quits (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
22:46:06 kaskal joins (~kaskal@213-147-165-60.nat.highway.webapn.at)
22:46:22 × kaskal quits (~kaskal@213-147-165-60.nat.highway.webapn.at) (Client Quit)
22:46:38 kaskal joins (~kaskal@2001:4bb8:2cc:5073:e1cf:a3ef:264a:1e80)
22:47:12 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:50:14 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
22:51:20 deadmarshal joins (~deadmarsh@95.38.113.75)
22:52:40 × merijn quits (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
22:55:37 × deadmarshal quits (~deadmarsh@95.38.113.75) (Ping timeout: 240 seconds)
23:09:28 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
23:09:55 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
23:10:30 burnsidesLlama joins (~burnsides@dhcp168-016.wadham.ox.ac.uk)
23:13:45 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
23:14:36 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
23:14:39 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
23:15:46 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
23:15:57 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
23:16:14 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
23:16:26 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
23:17:02 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds)
23:20:37 × burnsidesLlama quits (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
23:30:41 soxen joins (~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
23:30:44 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:33:36 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 250 seconds)
23:39:09 burnsidesLlama joins (~burnsides@dhcp168-016.wadham.ox.ac.uk)
23:40:12 × max22- quits (~maxime@2a01cb088335980091c6fbcd4fea35f7.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
23:43:40 × burnsidesLlama quits (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
23:44:52 × madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 250 seconds)
23:45:05 madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net)
23:47:14 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
23:47:15 burnsidesLlama joins (~burnsides@dhcp168-016.wadham.ox.ac.uk)
23:48:38 × burnsidesLlama quits (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
23:49:05 burnsidesLlama joins (~burnsides@dhcp168-016.wadham.ox.ac.uk)
23:49:20 slowButPresent joins (~slowButPr@user/slowbutpresent)
23:50:48 notzmv joins (~zmv@user/notzmv)
23:52:45 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
23:53:50 × burnsidesLlama quits (~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
23:55:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Remote host closed the connection)
23:59:26 CHUD joins (~CHUD@host-80-41-89-108.as13285.net)

All times are in UTC on 2022-01-29.