Home liberachat/#haskell: Logs Calendar

Logs on 2022-06-24 (liberachat/#haskell)

00:12:42 × alp quits (~alp@user/alp) (Ping timeout: 264 seconds)
00:13:15 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) (Remote host closed the connection)
00:13:49 <jackdk> raehik: it's called gogol and it's not especially well-maintained
00:14:09 <raehik> jackdk: I just finished looking at it. fantastic internals
00:14:35 <jackdk> raehik: I'm helping out with the maintenance of amazonka, but work is an AWS shop; I have no energy to do the same to gogol
00:15:13 <raehik> it doesn't support the Identity Platform which I need
00:16:08 <raehik> if I do upload something it will be specifically just for authentication (since that will help folks who want to interface with apps based on gcloud)
00:18:31 <jackdk> There are a few non-amazonka AWS libraries, so there's precedent for that sort of thing
00:18:32 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
00:20:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e)
00:20:26 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
00:21:13 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
00:22:10 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
00:23:15 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:23:16 <raehik> apparently Identity Platform doesn't have an entry in Google's magical API JSON schema directory. so gogol doesn't gen bindings. guess I'll have a look
00:26:11 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:27:58 × _xor quits (~xor@74.215.182.83) (Ping timeout: 240 seconds)
00:30:16 _xor joins (~xor@74.215.182.83)
00:32:08 × gurkenglas quits (~gurkengla@dslb-002-207-014-022.002.207.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
00:43:34 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5)
00:44:24 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
00:44:41 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds)
00:46:20 × xff0x quits (~xff0x@2405:6580:b080:900:6f91:670e:f20c:cfe) (Ping timeout: 268 seconds)
00:49:53 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) (Remote host closed the connection)
00:50:29 sebastiandb joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net)
00:51:39 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
00:52:18 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
00:55:18 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
00:58:58 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e)
01:02:40 × simeon quits (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Ping timeout: 244 seconds)
01:08:32 × sebastiandb quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
01:12:00 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:18:07 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:24:54 nunggu joins (~q@user/nunggu)
01:28:50 nate4 joins (~nate@98.45.169.16)
01:29:31 frost joins (~frost@user/frost)
01:31:29 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
01:31:56 dsrt^ joins (~dsrt@50.237.44.186)
01:34:20 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:36:17 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
01:40:24 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
01:41:51 simeon joins (~pi@dslb-088-071-128-104.088.071.pools.vodafone-ip.de)
01:43:18 × mvk quits (~mvk@2607:fea8:5ce3:8500::4588) (Ping timeout: 264 seconds)
01:45:21 Batzy_ is now known as Btayz
01:45:24 Btayz is now known as Batzy
01:45:51 z0k joins (~z0k@206.84.141.12)
01:46:42 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
01:47:00 slack1256 joins (~slack1256@191.125.99.212)
01:49:48 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
01:50:40 sebastiandb joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net)
01:59:26 × Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
02:09:42 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 264 seconds)
02:10:41 slac55811 joins (~slack1256@186.11.81.205)
02:11:12 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
02:12:28 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection)
02:13:09 × slack1256 quits (~slack1256@191.125.99.212) (Ping timeout: 256 seconds)
02:17:37 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
02:19:04 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:19:04 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:19:04 finn_elija is now known as FinnElija
02:21:05 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
02:21:36 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
02:23:09 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
02:23:58 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
02:27:02 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:30:43 × zebrag quits (~chris@user/zebrag) (Ping timeout: 256 seconds)
02:33:06 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
02:40:19 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
02:43:11 × sebastiandb quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Quit: Leaving)
02:59:30 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds)
03:00:09 × td_ quits (~td@94.134.91.184) (Ping timeout: 268 seconds)
03:01:14 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
03:01:18 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
03:01:34 td_ joins (~td@muedsl-82-207-238-027.citykom.de)
03:06:02 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
03:08:53 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
03:18:18 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
03:21:45 × nunggu quits (~q@user/nunggu) (Ping timeout: 268 seconds)
03:25:00 nunggu joins (~q@user/nunggu)
03:31:29 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:33:28 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
03:34:16 nunggu joins (~q@user/nunggu)
03:37:07 Alleria joins (~AllahuAkb@68.65.161.35)
03:45:55 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
03:47:15 coot joins (~coot@213.134.190.95)
03:47:39 razetime joins (~quassel@49.207.193.240)
03:48:05 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
03:48:10 × Alleria quits (~AllahuAkb@68.65.161.35) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:48:40 Alleria joins (~AllahuAkb@68.65.161.35)
03:49:07 nate4 joins (~nate@98.45.169.16)
03:53:38 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
03:54:06 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
03:57:38 <hololeap> I can't figure out if a Monad instance for SomeParseResult is possible. I'm thinking not. http://sprunge.us/oADV0I
04:01:30 × Alleria quits (~AllahuAkb@68.65.161.35) (Quit: Textual IRC Client: www.textualapp.com)
04:09:05 leeb joins (~leeb@KD106154144179.au-net.ne.jp)
04:09:27 <hololeap> possibly for the same reason that you can't make a monad out of: Monad m => Maybe (m a)
04:10:25 <hololeap> you can't make the inner computation within 'm' affect the outer constructor
04:10:53 <hololeap> or maybe I'm totally wrong here
04:12:54 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
04:20:46 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
04:21:36 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
04:24:38 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds)
04:24:58 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
04:26:36 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
04:27:30 gentauro joins (~gentauro@user/gentauro)
04:40:13 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
04:40:44 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
04:43:05 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
04:43:28 <mon_aaraj> huh... weird, i've decided to try out the Optics library instead of lens, but it seemz like it doesn't have any `worded` alternative.. I've looked everywhere, any idea what it could be?
04:56:38 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
04:57:06 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
05:05:18 <dsal> :t worded
05:05:19 <lambdabot> (Indexable Int p, Applicative f) => p String (f String) -> String -> f String
05:05:43 <dsal> Can you just use `words`?
05:05:44 <dsal> :t words
05:05:46 <lambdabot> String -> [String]
05:08:35 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:15:27 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:15:28 × mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
05:16:32 mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001)
05:24:04 michalz joins (~michalz@185.246.204.97)
05:25:16 × phma quits (~phma@2001:5b0:211f:4838:bc99:a0da:9cf3:c583) (Read error: Connection reset by peer)
05:26:14 phma joins (~phma@host-67-44-209-11.hnremote.net)
05:29:23 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
05:29:40 img joins (~img@user/img)
05:32:15 vglfr joins (~vglfr@88.155.8.225)
05:36:25 × leeb quits (~leeb@KD106154144179.au-net.ne.jp) (Ping timeout: 248 seconds)
05:38:24 leeb joins (~leeb@KD106154144157.au-net.ne.jp)
05:45:49 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
05:47:32 × moet quits (~moet@mobile-166-171-249-250.mycingular.net) (Ping timeout: 272 seconds)
05:53:54 <mon_aaraj> i can, but it isn't an optic that focuses pieces of the full structure
05:54:10 <mon_aaraj> which `worded` is, and it allows me to program in an entirely optical manner
06:02:21 liz joins (~liz@host86-159-158-175.range86-159.btcentralplus.com)
06:06:47 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
06:07:38 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 240 seconds)
06:07:52 nunggu joins (~q@user/nunggu)
06:11:19 × dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 268 seconds)
06:11:58 × liz quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Ping timeout: 240 seconds)
06:17:27 dyeplexer joins (~dyeplexer@user/dyeplexer)
06:18:54 dsrt^ joins (~dsrt@50.237.44.186)
06:20:09 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
06:25:36 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:26:00 <dsal> You could write worded atop words pretty easily in that case. The lens implementation is `worded f = fmap unwords . conjoined traverse (indexing traverse) f . words`
06:26:20 <dsal> microlens is `worded f = fmap unwords . traverse f . words`
06:28:18 × z0k quits (~z0k@206.84.141.12) (Ping timeout: 264 seconds)
06:30:09 z0k joins (~z0k@206.84.143.68)
06:30:31 gmg joins (~user@user/gehmehgeh)
06:30:36 × frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds))
06:36:19 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
06:38:28 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
06:38:50 × z0k quits (~z0k@206.84.143.68) (Ping timeout: 272 seconds)
06:39:19 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:39:20 azimut joins (~azimut@gateway/tor-sasl/azimut)
06:40:04 mastarija joins (~mastarija@2a05:4f46:e02:8c00:8952:fd3b:3e41:ddea)
06:40:55 × dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 268 seconds)
06:47:01 chomwitt joins (~chomwitt@2a02:587:dc0d:e600:8f05:e6fa:1178:1d79)
06:54:16 jakalx parts (~jakalx@base.jakalx.net) ()
06:55:44 acidjnk joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
06:56:27 alp joins (~alp@user/alp)
07:00:16 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
07:00:34 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
07:00:56 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
07:01:01 azimut joins (~azimut@gateway/tor-sasl/azimut)
07:01:16 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
07:05:59 <Axman6> That's an unlawful traversal right?
07:09:58 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds)
07:10:09 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
07:11:57 zeenk joins (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
07:13:51 <Axman6> > let worded f = fmap unwords . traverse f . words in worded (const "") "Hello, world"
07:13:53 <lambdabot> error:
07:13:53 <lambdabot> • Couldn't match type ‘Char’ with ‘[Char]’
07:13:53 <lambdabot> Expected type: String -> [String]
07:14:20 <Axman6> > let worded f = fmap unwords . traverse f . words in worded (Just . const "") "Hello, world"
07:14:21 <lambdabot> Just " "
07:14:45 <Axman6> > let worded f = fmap unwords . traverse f . words in worded (Just) "Hello, world"
07:14:46 <lambdabot> Just "Hello, world"
07:15:06 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
07:16:29 acidjnk_new joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
07:16:41 × acidjnk quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
07:18:37 jakalx joins (~jakalx@base.jakalx.net)
07:21:52 Pickchea joins (~private@user/pickchea)
07:22:46 dyeplexer joins (~dyeplexer@user/dyeplexer)
07:26:21 acidjnk_new3 joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
07:29:08 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
07:29:55 nunggu joins (~q@user/nunggu)
07:30:06 × acidjnk_new quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 264 seconds)
07:31:25 ubert joins (~Thunderbi@p200300ecdf0da5c0c858ae0629519002.dip0.t-ipconnect.de)
07:31:58 <dminuoso> mon_aaraj: Use `ifolding words`
07:33:05 chele joins (~chele@user/chele)
07:34:10 <dminuoso> (Or `folding` if you dont care about indices)
07:35:35 × ubert quits (~Thunderbi@p200300ecdf0da5c0c858ae0629519002.dip0.t-ipconnect.de) (Remote host closed the connection)
07:35:53 ubert joins (~Thunderbi@p200300ecdf0da5c0b08d08d51a120a85.dip0.t-ipconnect.de)
07:36:25 <dminuoso> Incidentally this works in plain `lens` as well
07:36:30 <dminuoso> :t folding words
07:36:31 <lambdabot> (Contravariant f, Applicative f) => (String -> f String) -> String -> f String
07:40:14 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
07:41:11 eod|fserucas joins (~eod|fseru@193.65.114.89.rev.vodafone.pt)
07:41:14 eod|fserucas_ joins (~eod|fseru@193.65.114.89.rev.vodafone.pt)
07:42:30 MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl)
07:48:37 × tzh_ quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:50:54 machinedgod joins (~machinedg@66.244.246.252)
07:51:30 nate4 joins (~nate@98.45.169.16)
07:52:00 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
07:52:27 × vglfr quits (~vglfr@88.155.8.225) (Ping timeout: 268 seconds)
07:53:41 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:56:33 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
07:59:01 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
07:59:15 × coot quits (~coot@213.134.190.95) (Quit: coot)
07:59:51 __monty__ joins (~toonn@user/toonn)
08:03:55 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
08:09:58 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) (Remote host closed the connection)
08:18:58 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
08:19:13 × acidjnk_new3 quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
08:19:26 acidjnk_new3 joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
08:20:39 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
08:31:37 ccntrq joins (~Thunderbi@2a01:c23:9556:e100:66b1:7f27:4ed9:da23)
08:31:40 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:32:35 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
08:32:57 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
08:35:44 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
08:40:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
08:40:32 gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
08:41:52 × shriekingnoise quits (~shrieking@201.212.175.181) (Quit: Quit)
08:43:35 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 256 seconds)
08:43:53 cfricke joins (~cfricke@user/cfricke)
08:44:24 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:44:35 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
08:45:29 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Ping timeout: 268 seconds)
08:45:42 × acidjnk_new3 quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
08:46:01 acidjnk joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
08:46:26 acidjnk_new joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
08:47:13 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
08:50:20 × acidjnk quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
08:53:08 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection)
08:56:25 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection)
08:56:25 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
08:57:17 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:57:22 Guest3 joins (~Guest3@43.21.135.77.rev.sfr.net)
09:00:13 × thonoht[m] quits (~thonohtma@2001:470:69fc:105::d7be) (Quit: You have been kicked for being idle)
09:00:18 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Quit: You have been kicked for being idle)
09:00:19 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection)
09:00:24 <Guest3> hello, i have a function f that sends arguments to g or h functions with many arguments (a1, a2, a3…) and a case of pattern matching (Case1, case2) where i would like not to repeat the arguments for conciseness :
09:00:25 <Guest3> f C1 a1 a2 a3 … = g a1 a2 a3 …
09:00:25 <Guest3> f C2 a1 a2 a3 … = h a1 a2 a3 …
09:00:26 <Guest3> is there a way to write something like :
09:00:26 <Guest3> f C1 = g
09:00:27 <Guest3> f C2 = h
09:00:32 × amongas666[m] quits (~amongas66@2001:470:69fc:105::2:fea) (Quit: You have been kicked for being idle)
09:00:44 <Guest3> or should i refactor it all into something more idiomatic?
09:00:53 amongas666[m] joins (~amongas66@2001:470:69fc:105::2:fea)
09:01:03 × elfi2125[m] quits (~elfi2125m@2001:470:69fc:105::2:13d6) (Quit: You have been kicked for being idle)
09:01:06 thonoht[m] joins (~thonohtma@2001:470:69fc:105::d7be)
09:01:16 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:01:18 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
09:01:25 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
09:01:26 <merijn> Guest3: You can't quite do what you suggest, but you can simplify it a bit (in case you have many more cases than C1 and C2
09:01:39 elfi2125[m] joins (~elfi2125m@2001:470:69fc:105::2:13d6)
09:01:48 <Guest3> i have more cases but they are different from these two first cases
09:02:03 <merijn> Ah, then it probably won't quite work out
09:02:16 <Guest3> yes i am not sure what to do :s
09:02:31 thonoht[m] parts (~thonohtma@2001:470:69fc:105::d7be) ()
09:02:43 <merijn> Guest3: This is what I had in mind: https://paste.tomsmeding.com/1oJEODy1
09:02:52 marinelli[m] parts (~marinelli@2001:470:69fc:105::2d8) ()
09:03:01 <merijn> (obviously this assumes g and h have the same type
09:03:03 <merijn> )
09:03:18 <Guest3> they have
09:03:35 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
09:03:38 <Guest3> this is good ty
09:03:38 amongas666[m] parts (~amongas66@2001:470:69fc:105::2:fea) ()
09:04:18 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
09:04:38 <merijn> Guest3: It's a common trick to factor out the "different" part of a repeat expression like that
09:05:10 elfi2125[m] parts (~elfi2125m@2001:470:69fc:105::2:13d6) ()
09:05:24 <Guest3> ok, it's funny i am getting really comfortable with advanced concepts like writer monads and all, but still sometimes i can't think of such tricks
09:06:15 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
09:06:27 <merijn> Guest3: Practice makes perfect ;)
09:06:44 coot joins (~coot@213.134.190.95)
09:08:02 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:10:05 <_________> Guest3: did you try writing 'f C1 = g', 'f C2 = h' ? why it doesn't work for you ?
09:10:06 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:10:53 <Guest3> I got an error which was like : "different number of arguments in pattern matching" because i have more cases i guess
09:12:29 <_________> and you don't get this error with case ? weird
09:13:01 <Guest3> i need to refactor yes
09:13:05 <[Leary]> If you wrote bespoke functions like g and h for the other cases too, the error would go away.
09:13:27 <Guest3> yes i would need to avoid having to specify the arguments
09:13:48 <[Leary]> Equivalently, you can transform f x = y to f = \x -> y.
09:15:43 <Guest3> why would that help?
09:16:30 <_________> hmm, if you don't want to handle all cases, you could add `f _ = error`
09:17:02 <[Leary]> Just to equalise the args. That's a generic f; in your case I meant f C3 = \a1 a2 ... -> ...
09:17:14 <Guest3> oh ok yes
09:18:41 <Guest3> i have to handle all cases and i return Maybe a, so that Nothing means it did not make sense to compute
09:19:02 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:19:32 <Guest3> thx for the help all of you
09:23:47 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
09:24:35 nunggu joins (~q@user/nunggu)
09:25:28 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
09:31:48 jakalx joins (~jakalx@base.jakalx.net)
09:33:06 Hemmo joins (~IceChat95@2001:999:48c:6368:7048:df38:ec8b:cf65)
09:34:11 misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
09:35:01 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:35:09 <Hemmo> Hey! Any tips on why this won't compile?? The first one is the function that won't work and below it is the error message. The function checkList works though and it's a similar situation??
09:35:10 <Hemmo> https://paste.tomsmeding.com/pr5DcDfX
09:35:38 <Hemmo> I tried changing String to [Char] too with no difference :s
09:37:09 <[Leary]> You've shadowed `name`.
09:37:58 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
09:42:47 <Hemmo> Oh my. How simple. Thanks!
09:46:02 × zeenk quits (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
09:48:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:49:34 × Kaiepi quits (~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
09:50:32 × acidjnk_new quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
09:50:41 Infinite joins (~Infinite@49.39.122.144)
09:53:04 frost joins (~frost@user/frost)
09:57:18 nate4 joins (~nate@98.45.169.16)
10:01:29 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
10:03:37 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
10:03:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:05:14 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
10:05:35 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
10:06:49 acidjnk_new joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de)
10:07:22 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:10:15 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
10:19:10 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer)
10:19:13 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:23:20 mc47 joins (~mc47@xmonad/TheMC47)
10:23:21 × mima quits (~mmh@aftr-62-216-210-68.dynamic.mnet-online.de) (Ping timeout: 248 seconds)
10:24:50 × gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
10:27:46 Kaiepi joins (~Kaiepi@156.34.47.253)
10:30:03 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
10:31:56 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
10:41:35 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
11:01:03 × coot quits (~coot@213.134.190.95) (Quit: coot)
11:02:58 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
11:04:38 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:05:16 Vajb joins (~Vajb@85-76-45-218-nat.elisa-mobile.fi)
11:06:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:08:14 dsrt^ joins (~dsrt@50.237.44.186)
11:08:22 × Infinite quits (~Infinite@49.39.122.144) (Ping timeout: 252 seconds)
11:12:27 × Vajb quits (~Vajb@85-76-45-218-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
11:12:56 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:14:22 <Hemmo> Oh my. How simple. Thanks!
11:14:31 <Hemmo> Ewops.
11:16:12 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:16:27 Vajb joins (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06)
11:17:25 xff0x joins (~xff0x@2405:6580:b080:900:9d54:6002:d2f9:ffa6)
11:17:39 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
11:23:12 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
11:27:46 Kaipei joins (~Kaiepi@156.34.47.253)
11:28:19 <Hemmo> How could I make it so that, if my month or day is under 10, then it inputs a 0 before the number of the day or month? E.g I have "2020-02-02" instead of "2020-2-2"
11:28:22 <Hemmo> https://paste.tomsmeding.com/DVX34MsE
11:28:44 <Hemmo> First one is the one I have now and the second is an attempt at inputting a 0 there
11:29:22 <Hemmo> I did something similar before by pattern matching the Show instance in a different context, but not sure how to proceed with this
11:29:35 mima joins (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de)
11:30:08 <Hemmo> Heres an edited one though https://paste.tomsmeding.com/eLe204gk
11:30:26 <Hemmo> With data type decl for month and functions for them
11:30:48 × dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 272 seconds)
11:31:22 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 268 seconds)
11:31:40 <sm> if you want to depend on time, you can use https://hackage.haskell.org/package/time-1.13/docs/Data-Time-Format.html#v:formatTime
11:31:58 <sm> otherwise, you could use printf "%2d" ...
11:32:02 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 246 seconds)
11:32:33 <sm> otherotherwise, you could write special cases for < 10
11:35:53 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:37:00 fweht joins (uid404746@id-404746.lymington.irccloud.com)
11:41:58 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:42:32 <Hemmo> I would probably have to write special cases. You mean using case expressions in the show instance?
11:43:05 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds)
11:43:30 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
11:49:48 × mastarija quits (~mastarija@2a05:4f46:e02:8c00:8952:fd3b:3e41:ddea) (Quit: Leaving)
11:52:24 alexhandy joins (~trace@user/trace)
11:53:11 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:53:34 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds)
11:53:35 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:54:59 geekosaur joins (~geekosaur@xmonad/geekosaur)
11:56:38 <sm> or if then else
11:58:34 dyeplexer joins (~dyeplexer@user/dyeplexer)
12:00:40 × Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Quit: ZNC - http://znc.in)
12:01:03 <lisbeths> is haskell based off of pure lambda calculus?
12:01:44 <hpc> if you go back far enough, sure
12:01:52 <hpc> it's closer to system f
12:02:27 Ram-Z joins (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
12:02:38 nate4 joins (~nate@98.45.169.16)
12:03:12 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
12:03:28 shiraeeshi joins (~shiraeesh@109.166.57.222)
12:07:18 z0k joins (~z0k@206.84.143.59)
12:10:19 × Hemmo quits (~IceChat95@2001:999:48c:6368:7048:df38:ec8b:cf65) (Quit: Pull the pin and count to what?)
12:11:00 dsrt^ joins (~dsrt@50.237.44.186)
12:12:42 × mima quits (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de) (Ping timeout: 264 seconds)
12:12:53 cfricke joins (~cfricke@user/cfricke)
12:15:36 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
12:15:47 × acidjnk_new quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
12:19:58 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
12:21:47 Infinite joins (~Infinite@49.39.122.144)
12:22:34 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:29:45 <dminuoso> System FC now, even
12:34:50 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
12:35:17 motherfsck joins (~motherfsc@user/motherfsck)
12:39:14 mima joins (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de)
12:46:16 pleo joins (~pleo@user/pleo)
12:49:02 × dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 246 seconds)
12:49:54 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
12:55:23 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:57:27 zeenk joins (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
12:58:01 × koz quits (~koz@121.99.240.58) (Ping timeout: 256 seconds)
12:59:27 koz joins (~koz@121.99.240.58)
13:01:40 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:12:08 × alp quits (~alp@user/alp) (Remote host closed the connection)
13:12:18 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
13:12:27 alp joins (~alp@user/alp)
13:12:40 × Infinite quits (~Infinite@49.39.122.144) (Ping timeout: 252 seconds)
13:22:29 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
13:25:26 × Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer)
13:25:48 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
13:32:28 dsrt^ joins (~dsrt@50.237.44.186)
13:43:27 BusConscious joins (~martin@ip5f5bdf01.dynamic.kabel-deutschland.de)
13:44:00 jakalx parts (~jakalx@base.jakalx.net) ()
13:46:13 × wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
13:46:41 wagle joins (~wagle@quassel.wagle.io)
13:46:51 jakalx joins (~jakalx@base.jakalx.net)
13:48:00 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
13:48:21 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
13:49:38 zaquest joins (~notzaques@5.130.79.72)
13:51:38 coot joins (~coot@213.134.190.95)
13:59:37 <lisbeths> is it possible to implement haskell atop pure lambda calculus?
13:59:58 <geekosaur> pure lambda calculus has no notion of values
14:00:26 <merijn> lisbeths: eh, you're gonna have to give a more concrete definition of "possible", "implement", "haskell" and "pure lambda calculus" :p
14:00:39 jafarlihi joins (~user@188.253.231.49)
14:03:09 <geekosaur> you can use church encoding to encode values as functions, but at some point you have to inject something into it and the untyped lambda calculus doesn't give you anything to inject except more functions
14:04:15 <geekosaur> there are also questions about laziness (pure LC is lazy but in a mathematical fashion instead of a computable one)
14:04:35 <dminuoso> lisbeths: System F(C) already is very close to lambda calculus already.
14:04:57 <dminuoso> The intermediate language GHC compiles to, called Core, is essentially just System FC
14:05:32 <dminuoso> So you could imagine your wish being fulfilled already.
14:05:49 × Guest3 quits (~Guest3@43.21.135.77.rev.sfr.net) (Quit: Client closed)
14:06:09 <geekosaur> depending on your definition of "pure"
14:06:49 <geekosaur> (also which lambda calculus? untyped? simply typed? some other elaboration on it, like system fc or f(omega) or etc.?)
14:08:26 mjan22640 joins (~Srain@212.17.33.215)
14:08:55 <[exa]> lisbeths: lambda calculus forms a turing-complete system so you can literally implement anything in it
14:09:03 <[exa]> but that's the answer you didn't want to hear I guess
14:10:50 werneta joins (~werneta@137.79.203.93)
14:12:28 × werneta quits (~werneta@137.79.203.93) (Remote host closed the connection)
14:16:05 × xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
14:16:08 × even4void quits (even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com)
14:16:12 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
14:18:38 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 272 seconds)
14:23:32 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 246 seconds)
14:24:20 × jafarlihi quits (~user@188.253.231.49) (Ping timeout: 272 seconds)
14:27:07 <merijn> [exa]: Correction *some* lambda calculi form Turing complete systems :p
14:28:45 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
14:29:47 × ccntrq quits (~Thunderbi@2a01:c23:9556:e100:66b1:7f27:4ed9:da23) (Remote host closed the connection)
14:30:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
14:32:14 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds)
14:32:30 × slac55811 quits (~slack1256@186.11.81.205) (Ping timeout: 264 seconds)
14:32:40 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
14:34:07 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
14:34:23 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 246 seconds)
14:35:25 <BusConscious> can I make Bool an instance of Num
14:36:49 <[exa]> BusConscious: why not
14:36:57 dyeplexer joins (~dyeplexer@user/dyeplexer)
14:37:14 shriekingnoise joins (~shrieking@201.212.175.181)
14:38:12 Vajb joins (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06)
14:38:13 jinsun__ joins (~jinsun@user/jinsun)
14:38:13 × jinsun quits (~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services)))
14:38:13 jinsun__ is now known as jinsun
14:38:25 <[exa]> you might have some semantic trouble with producing a reasonable lawful (-) and negate, but you may as well choose not to care that much about the semantics
14:40:08 <geekosaur> Num's laws are a bit dubious anyway
14:40:29 <[exa]> +1 ^
14:40:43 <geekosaur> the main problem with making Bool an instance of Num is it increases the sphere of possible logic errors the compiler will no longer catch for you
14:41:01 jinsun__ joins (~jinsun@user/jinsun)
14:41:01 jinsun is now known as Guest2644
14:41:01 × Guest2644 quits (~jinsun@user/jinsun) (Killed (osmium.libera.chat (Nickname regained by services)))
14:41:01 jinsun__ is now known as jinsun
14:41:09 <BusConscious> mhmm while possible i don't think making Bool an instance of Num is going to help me
14:41:29 <geekosaur> so what's your actual problem?
14:42:02 even4void joins (even4void@came.here.for-some.fun)
14:42:55 <BusConscious> So I'm implemenenting a parser for arithmetic expressions as in 1.7.2 of https://pubs.opengroup.org/onlinepubs/009604499/utilities/xcu_chap01.html#tag_01_07_02_01
14:43:58 <BusConscious> here the boolean operators && || and ! operate on Integers instead of bools in the way that 2 && 3 ==1 and !0 =1 !2=0 ..
14:44:32 <geekosaur> sounds like yiou really want Data.Bits
14:44:44 × jinsun quits (~jinsun@user/jinsun) (Client Quit)
14:44:49 <BusConscious> Now I could write some function bool2IntF:: (Bool -> Bool -> Bool) -> (Int -> Int -> Int)
14:45:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
14:45:17 <geekosaur> and your "not" is (/= 0)
14:45:45 <BusConscious> but maybe there is some type voodoo I could do to make haskell's boolean operators these kind of "boolean operators"
14:46:08 <BusConscious> geekosaur: ok that's reasonably short
14:46:10 <geekosaur> not really, I just wouldn't use them. as I said, you want Data.Bits
14:46:18 <geekosaur> > 2 .&. 3
14:46:20 <lambdabot> 2
14:46:35 <BusConscious> that's not logical but bitwise and
14:46:52 <BusConscious> I also do that, but for & not &&
14:47:23 pavonia joins (~user@user/siracusa)
14:47:41 <geekosaur> oh, you want a Boolean class. that's been done by others but isn't in base
14:47:49 <geekosaur> it gets brought up occasionally
14:48:15 <geekosaur> kinda the opposite of what you initially asked for, it'd be Instance Boolean Int where ...
14:48:48 <BusConscious> yeah but Bool is not a type class .. or is Boolean?
14:49:09 <geekosaur> as I said, it's been done but isn't in base
14:49:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Ping timeout: 268 seconds)
14:50:15 <geekosaur> https://hackage.haskell.org/package/heyting-algebras
14:50:38 <geekosaur> in math terms you want a Boolean algebra over Int
14:52:19 <dolio> Probably not a proper boolean algebra, strictly speaking.
14:52:56 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
14:54:21 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
14:54:54 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
14:55:44 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 246 seconds)
14:56:24 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds)
14:57:04 <geekosaur> in any case, for this I'm not sure I'd even bother with classes or whatever, just define my own "boolean" operators
14:57:08 Sgeo joins (~Sgeo@user/sgeo)
14:57:24 <geekosaur> there's no particular reason to reuse the Haskell ones
14:57:42 <BusConscious> ok
14:57:50 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
14:58:09 <BusConscious> Can I name these like the Haskell ones. Is there "overloading" in haskell?
14:58:28 <geekosaur> "overloading" is via typeclasses, otherwise no
14:59:25 <geekosaur> > let x .&&. y = fromEnum $ (x /= 0) && (y /= 0) in 2 .&&. 3
14:59:27 <lambdabot> 1
14:59:30 <merijn> BusConscious: You can't overload exist ones, but you can shadow them (i.e. hide them and define new ones with the same name)
14:59:41 <geekosaur> kinda cheating with fromEnum but it does the right thing
14:59:55 xacktm joins (xacktm@user/xacktm)
15:00:10 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
15:01:10 <geekosaur> > let x .||. y = fromEnum $ x /= 0 || y /= 0 in 2 .||. 3
15:01:11 <lambdabot> 1
15:02:14 <geekosaur> could do those /='s with toEnum instead, which makes it a bit clearer what's going on perhaps
15:02:29 <BusConscious> ah so I can't really get around the additional dots
15:02:40 <geekosaur> > let x .||. y = fromEnum $ toEnum x || toEnum y in 2 .||. 3
15:02:41 <lambdabot> *Exception: Prelude.Enum.Bool.toEnum: bad argument
15:02:43 lyle joins (~lyle@104.246.145.85)
15:02:56 <geekosaur> whoops, right, checks range. stick with /= 0
15:03:07 <BusConscious> I mean I could try to hide the usual boolean operators, but that would not make my code any simpler
15:03:16 <geekosaur> you could define your own Boolean typeclass, but I wouldn't bither, just use custom operators
15:03:19 <geekosaur> it's not worth it
15:05:30 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
15:05:31 <int-e> . o O ( I like how you put the "bit" into "bother" )
15:07:18 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
15:07:18 × nunggu quits (~q@user/nunggu) (Remote host closed the connection)
15:08:13 nunggu joins (~q@user/nunggu)
15:08:14 <lyle> I'm stuck on how to share an environment amongst functions. Code here: https://paste.tomsmeding.com/wo12L2Ev
15:08:18 gmg joins (~user@user/gehmehgeh)
15:08:35 dyeplexer joins (~dyeplexer@user/dyeplexer)
15:10:11 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:10:12 <int-e> you'll need another runReaderT inside the forkIO
15:11:03 jafarlihi joins (~user@188.253.231.49)
15:11:15 <geekosaur> also, if you're just retrieving it into a variable and using it, might as well just pass it as a parameter instead of using Reader
15:12:27 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
15:13:25 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:13:44 <shiraeeshi> given this equality:
15:13:49 <shiraeeshi> t = 2 * O(n/2) + O(log n)
15:14:00 <shiraeeshi> can I say that
15:14:04 <shiraeeshi> t = O(n)
15:14:06 <shiraeeshi> ?
15:15:35 <shiraeeshi> in other words, if you add something sub-linear to something linear, the result is still linear, right?
15:16:11 <dolio> Yes.
15:16:34 <shiraeeshi> good
15:16:58 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds)
15:18:29 <shiraeeshi> it means that I managed to solve the problem I was asking about yesterday, using induction
15:18:55 × jafarlihi quits (~user@188.253.231.49) (Ping timeout: 268 seconds)
15:19:27 <dolio> Oh, nice.
15:19:38 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
15:21:11 jafarlihi joins (~user@188.253.234.203)
15:22:30 leib joins (~leib@2405:201:900a:f088:e9cb:3827:2e7e:6775)
15:23:36 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:25:31 × even4void quits (even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com)
15:25:42 × xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
15:26:27 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
15:27:04 N3r1um joins (~igloo@122.sub-174-205-34.myvzw.com)
15:28:59 dyeplexer joins (~dyeplexer@user/dyeplexer)
15:31:26 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
15:33:21 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:34:30 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
15:37:25 × N3r1um quits (~igloo@122.sub-174-205-34.myvzw.com) (Ping timeout: 268 seconds)
15:39:12 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
15:40:10 misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
15:42:02 jinsun joins (~jinsun@user/jinsun)
15:42:27 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
15:44:08 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
15:45:37 geekosaur joins (~geekosaur@xmonad/geekosaur)
15:49:12 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 272 seconds)
15:51:53 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
15:54:49 × jafarlihi quits (~user@188.253.234.203) (Quit: WeeChat 3.5)
15:58:34 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
16:00:12 × Ash[m] quits (~signal-wa@2001:470:69fc:105::1:2318) (Quit: You have been kicked for being idle)
16:02:19 × hinny[m] quits (~hinnymatr@2001:470:69fc:105::2:18ed) (Quit: You have been kicked for being idle)
16:03:13 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
16:04:06 Infinite joins (~Infinite@49.39.124.23)
16:05:28 <lyle> int-e, geekosaur: Thanks for checking it out!
16:05:49 hinny[m] joins (~hinnymatr@2001:470:69fc:105::2:18ed)
16:07:50 × misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 246 seconds)
16:08:31 hinny[m] parts (~hinnymatr@2001:470:69fc:105::2:18ed) ()
16:09:13 even4void joins (even4void@came.here.for-some.fun)
16:09:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
16:10:38 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
16:12:29 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
16:13:49 × nunggu quits (~q@user/nunggu) (Ping timeout: 268 seconds)
16:15:02 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 268 seconds)
16:18:42 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 264 seconds)
16:18:50 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
16:20:23 nate4 joins (~nate@98.45.169.16)
16:23:30 andreas303 joins (~andreas30@ip227.orange.bnc4free.com)
16:24:38 × MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 240 seconds)
16:27:20 xacktm joins (xacktm@user/xacktm)
16:27:42 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
16:30:58 × shiraeeshi quits (~shiraeesh@109.166.57.222) (Ping timeout: 240 seconds)
16:31:19 dyeplexer joins (~dyeplexer@user/dyeplexer)
16:33:32 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
16:35:05 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:36:58 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
16:38:55 slack1256 joins (~slack1256@191.126.227.81)
16:39:19 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
16:40:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:40:41 × pleo quits (~pleo@user/pleo) (Quit: quit)
16:41:33 shiraeeshi joins (~shiraeesh@109.166.57.222)
16:48:18 × mima quits (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de) (Ping timeout: 240 seconds)
16:58:19 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:58:35 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
17:00:38 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
17:06:45 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
17:08:45 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection)
17:09:00 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 272 seconds)
17:11:28 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
17:12:56 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
17:13:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:14:25 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
17:14:59 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
17:16:36 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
17:16:49 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:17:41 gmg joins (~user@user/gehmehgeh)
17:19:14 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
17:19:14 moet joins (~moet@lib-02-subnet-194.rdns.cenic.net)
17:19:16 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
17:20:22 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
17:24:08 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
17:35:14 × ubert quits (~Thunderbi@p200300ecdf0da5c0b08d08d51a120a85.dip0.t-ipconnect.de) (Remote host closed the connection)
17:36:18 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 240 seconds)
17:41:56 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
17:43:18 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
17:44:45 arj0019 joins (~arj0019@162.218.254.7)
17:51:53 <arj0019> Given a list La = [n, n1, n2, ..., n100], and Lb = [[n], [n, n1], [n, n1, n2], ..., [n, n1, n2, ..., n100]], does Lb grow exponentially large? I am attempting to process timeseries data where at each point in time, the presented data is all data avaliable up to that date. It is assumed that the data is complete, and constant resolution, so there is no actual time index (just the list index).
17:53:20 × dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 272 seconds)
17:57:46 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
17:58:03 arj0019 joins (~arj0019@162.218.254.7)
17:58:10 werneta joins (~werneta@137.78.30.207)
17:58:26 <hololeap> you'll most likely want to use something other than a regular list for that, probably vectors so you have O(1) lookups
17:59:25 <hololeap> but this is hard to say without knowing more and why you're building something like Lb
18:01:00 <hololeap> if Lb grows exponentially large depends on how you are processing it and how that interacts with lazy evaluation
18:01:17 notzmv joins (~zmv@user/notzmv)
18:04:18 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:04:29 <arj0019> It is not my intention to support lookups. The consumers of this timeseries data are not given access to the relevant timestamps. Instead, it is my intention to provide the data to consumers with the assumption that the data is complete. The first item in the list is the most recent, and consumers can do operations such as 'take 10' to get the 10 most recent points. Do you still think that a list is the incorrect data structure? The data is only aggregated
18:06:09 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
18:06:26 arj0019 joins (~arj0019@162.218.254.7)
18:06:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
18:07:08 <arj0019> now that I think about it, a fold may be better for what I am doing. I can slowly grow the accumulator by prepending the next data point. The only complication is that I would need to figure out how to have two accumulators; one for my output, and one to hold the growing input. Maybe I use a nested fold???
18:07:49 briandaed joins (~briandaed@109.95.143.14.r.toneticgroup.pl)
18:08:30 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds)
18:10:58 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
18:11:09 <monochrom> One single foldr/foldl that returns a tuple. Then a fst/snd to pick out the final answer.
18:11:15 arj0019 joins (~arj0019@162.218.254.7)
18:11:34 dsrt^ joins (~dsrt@50.237.44.186)
18:11:42 × leib quits (~leib@2405:201:900a:f088:e9cb:3827:2e7e:6775) (Ping timeout: 272 seconds)
18:12:06 <ski> arj0019 : the size of `Lb' is quadratic in the size of `La'
18:12:35 <ski> <monochrom> One single foldr/foldl that returns a tuple. Then a fst/snd to pick out the final answer.
18:15:00 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
18:15:17 arj0019 joins (~arj0019@162.218.254.7)
18:15:42 <ski> arj0019 : are you aware that you're quitting and rejoining repeatedly ?
18:16:04 × slack1256 quits (~slack1256@191.126.227.81) (Read error: Connection reset by peer)
18:17:37 slack1256 joins (~slack1256@186.11.81.205)
18:18:32 mima joins (~mmh@aftr-62-216-210-207.dynamic.mnet-online.de)
18:18:56 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
18:21:01 pleo joins (~pleo@user/pleo)
18:21:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:23:51 × slack1256 quits (~slack1256@186.11.81.205) (Remote host closed the connection)
18:24:42 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 264 seconds)
18:26:21 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
18:26:23 <ski> if you want to represent `Lb', it may be better to represent the lists reversed, that way they can share tails; or you could use vector slices ..
18:27:21 × razetime quits (~quassel@49.207.193.240) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:27:35 <ski> .. but it's not really clear to me what you're doing / you want to do, whether you actually want/need to represent `Lb' at all, where the timeseries data points are coming from, how you get a hold of them
18:28:38 <ski> arj0019 : at this point, perhaps showing some code might help. ior trying to explain the context more
18:29:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:30:12 × Infinite quits (~Infinite@49.39.124.23) (Ping timeout: 252 seconds)
18:31:08 alexhandy2 joins (~trace@user/trace)
18:32:40 AndChat-624225 joins (~trace@user/trace)
18:33:04 <BusConscious> Say I have function f a -> b -> c and I have a tuple (a,b) : Whats the most idiomatic way to obtain the function f' (a,b) = f a b ?
18:33:07 × alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer)
18:33:31 <ski> f' = uncurry f
18:33:41 <BusConscious> ah ok thanks
18:33:51 <BusConscious> gotta remember that
18:34:43 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
18:34:47 <ski> f `uncurry` (a,b) -- you can also write it like this, if you'd want to
18:35:32 × alexhandy2 quits (~trace@user/trace) (Ping timeout: 246 seconds)
18:35:56 alexhandy joins (~trace@user/trace)
18:36:08 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
18:37:23 <arj0019> Unfortunately I do not have code yet; I am trying to get a map of how to solve the problem first. The data that I am processing is financial data; only price for the first iteration of my system (price vs time for a large number of assets). I will only be looking at price data. I intend to have a type called `factor`, of which instances must implement two functions: `rank` and `rate`. For example, a `factor` can be used to rank the various assets by their
18:38:00 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
18:38:11 <arj0019> oof on msg length limit...
18:38:52 <arj0019> For example, a `factor` can be used to rank the various assets by their price data series.
18:39:18 × AndChat-624225 quits (~trace@user/trace) (Ping timeout: 240 seconds)
18:39:27 <arj0019> When running a historical analysis, I need to have snapshots that represent all data that was known at a point in time.
18:40:20 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
18:41:02 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
18:42:15 <ski> "a type called `factor`, of which instances must implement two functions: `rank` and `rate`" -- this sounds like OO-speak, to me. iiuc, we'd say it contains two components/fields `rank' and `rate', being functions (or maybe it contains the result of performing those operations ?)
18:44:11 <ski> (in the former case, the functions in a `Factor' would be applied to some data to compute rank and rate. in the latter case, you'd apply a function of the data to compute the `Factor' containing the rank and rate results)
18:44:41 × kimjetwav quits (~user@2607:fea8:2340:da00:59a1:33be:cb76:515a) (Ping timeout: 248 seconds)
18:45:38 <arj0019> Yea, sorry. My only real experience is with OOP. I'm a mechanical engineer, so I don't have much of a background in this stuff. Hopefully changing that soon with a CSSE degree.
18:45:40 <ski> "I need to have snapshots that represent all data that was known at a point in time." -- so far, it sounds like using a tail, perhaps with `take'/`drop'/`splitAt', or during incremental processing, would provide you with those snapshots
18:46:23 <ski> arj0019 : no worry, just pointing out the differing terminologies, in order to help smooth communication
18:47:35 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
18:47:48 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
18:49:28 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
18:49:45 arj0019 joins (~arj0019@162.218.254.7)
18:50:11 Infinite joins (~Infinite@49.39.124.23)
18:50:11 × coot quits (~coot@213.134.190.95) (Quit: coot)
18:50:27 <BusConscious> yay! Arithmetic expansion works on first try!
18:51:03 <BusConscious> honestly the thing i like most about haskell is that when eventually I get all the types right it just works
18:51:59 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
18:52:11 <arj0019> I think I understand what you mean by tail. I first analyze the full list, then grab the tail and run analysis on that, and just continue down the 'loop' with each new tail. this correctly avoids look ahead bias, as the analysis only sees the data avaliable at that index and futher back (since data is sorted with most recent at the begining).
18:53:51 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
18:54:08 arj0019 joins (~arj0019@162.218.254.7)
18:54:10 <arj0019> That allows my analysis functions to analyze a data series and output a single analysis output, and I can do historical tests by doing the recursive tail analysis.
18:54:43 <ski> yes
18:55:27 <arj0019> Can you explain more about list vs vectors, or provide a reference? thanks for the help. Sorry I am probably filling the chat with DC/RC messages, not sure why I have connection problems.
18:55:43 <ski> however, it could be that the analysis of the data series could reuse the result of the analysis of the tail of the data series, thereby avoiding redoing computations multiple times
18:56:00 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
18:56:03 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
18:56:20 <ski> if this is the case, with the analysis you're aiming for, you should probably try to take advantage of this
18:57:15 <ski> "not sure why I have connection problems" -- well, one situation in which this happens often is people chatting on a mobile
18:57:26 <ski> anyway, list tails
18:57:36 <ski> > inits [0,1,2,3,4,5,6,7]
18:57:37 <lambdabot> [[],[0],[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4],[0,1,2,3,4,5],[0,1,2,3,4,5,6],[0...
18:58:23 <ski> in this case, each of the result lists are allocated separately, so the amount of memory space that's required to store all these elements at the same time is quadratic in the size of the original list
18:58:27 <ski> however, with
18:58:30 <ski> > tails [0,1,2,3,4,5,6,7]
18:58:32 <lambdabot> [[0,1,2,3,4,5,6,7],[1,2,3,4,5,6,7],[2,3,4,5,6,7],[3,4,5,6,7],[4,5,6,7],[5,6,...
18:59:20 <ski> each list is the tail of the previous list, so the lists share almost all their space (apart from the first element / cons cell). so, in this case, the stoage space is only linear
18:59:43 <ski> (this was why i was suggesting representing `LB' with the individual lists reversed)
19:00:04 <arj0019> i assume this is an optimization inside GHC? since fundamentally i dont see a difference in the contents.
19:01:11 <arj0019> or is it because the 'inits' uses concatenation, and the 'tails' uses prepending?
19:02:00 <ski> (btw, it should also be noted that, with lazy evaluation,it's quite common that not all of a list is materialized at the same time. you could walk down a list, the elements (and cons cells) you pass could be GCed (unless you hold on to a reference to them), while the elements further down to the tail hasn't been allocated and computed yet. further, fusion optimization could make it so that the cons cells are
19:02:06 <ski> never allocated, the elements passed directly from the producer, in one part of the program, to the consumer, in another part, "under the covers")
19:02:26 <ski> arj0019 : this is because lists are (right-leaning/associated) single-linked lists, in Haskell
19:02:29 <ski> @src []
19:02:29 <lambdabot> data [] a = [] | a : [a]
19:02:57 <ski> `[0,1,2,3]' means `0 : 1 : 2 : 3 : []', which means `0 : (1 : (2 : (3 : [])))'
19:03:55 <arj0019> and Haskell/GHC uses this property of lists to more efficently generate the output of tails [1,2,3..]
19:03:56 <ski> so, `tail [0,1,2,3]' just reaches into the list, and returns back to you the `1 : 2 : 3 : []' part. it doesn't allocate any new list cells/nodes
19:04:17 <arj0019> that is very neat. exactly what I needed
19:04:25 <ski> otoh, `init [0,1,2,3]' will allocate the cells in `0 : 1 : 2 : []' for you (sharing the elements (the numbers) themselves)
19:04:53 <ski> (and `inits' and `tails' are similar, except they return all initial and tail segments, not just skipping one element)
19:05:42 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
19:05:43 <ski> @src init
19:05:43 <lambdabot> init [x] = []
19:05:43 <lambdabot> init (x:xs) = x : init xs
19:05:43 <lambdabot> init [] = error "Prelude.init: empty list"
19:05:46 <ski> @src tail
19:05:46 <lambdabot> tail (_:xs) = xs
19:05:46 <lambdabot> tail [] = error "Prelude.tail: empty list"
19:05:56 <ski> note that `init' is recursively defined, while `tail' isn't
19:06:39 <ski> (and `init' does a `:' (allocation) call in the result (after the `='), while `tail' doesn't)
19:07:23 <arj0019> so `tail' benefits from being non recursive here?
19:07:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
19:08:23 <ski> well .. the point was more to show that `tail' only reaches into the first cons cell of the list, and returns whatever is stored in its "tail" component (the part after the `:', namely `xs' in the `_:xs' pattern, in the definition above)
19:08:51 machinedgod joins (~machinedg@66.244.246.252)
19:09:03 <ski> while `init', otoh, actually (recursively) traverses the whole list that you give to it (while allocating new cons cells for each cons cell that it passes by, except for the last one)
19:09:47 <ski> arj0019 : anyway, vector slicing, docs are here : <https://hackage.haskell.org/package/vector-0.13.0.0/docs/Data-Vector.html#g:6>
19:10:58 × zeenk quits (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
19:12:52 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection)
19:13:28 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
19:13:38 <arj0019> I found a neat package called "ghc-datasize", and I was able to verify that using `tails' results in lower memory consumption than `inits'
19:13:39 <ski> a list is not (necessarily) contiguously allocated. a vector is basically an array, so is contiguously allocated, except that apart from keeping track of the contiguous chunk of memory, it also keeps track of an offset and a length for that (equivalent to a start and end), so that you can slice out parts of a vector, and still share the storage chunk
19:16:17 <ski> (vectors also have powerful loop fusion, meaning that often you'll actually not materialize intermediate vectors in your computations, they'll be optimized away)
19:16:33 <arj0019> if you want to see my highly scientific testing of the data sizes from `init' and `tails', you can review it here https://paste.tomsmeding.com/6oOInWHP .
19:17:38 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
19:18:06 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
19:18:08 <arj0019> Thanks for all the help. The IRC here has a great reputation, and you did not disappoint. Hopefully I can assist others eventually.
19:18:18 <ski> you should use `$!!'
19:18:38 <arj0019> i tried, and GHCI complained...
19:18:47 <ski> you need to import `Control.DeepSeq'
19:19:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:19:23 <ski> ghci> :m + Control.DeepSeq
19:19:33 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:20:34 <geekosaur> actually "import Control.Deepseq" works too
19:20:49 <geekosaur> unimporting still requires :m
19:21:19 <ski> well, i guess there's `recursiveSizeNF' you could use, as well
19:21:38 <ski> geekosaur : yea, i know .. still not used to that :)
19:22:18 × td_ quits (~td@muedsl-82-207-238-027.citykom.de) (Ping timeout: 264 seconds)
19:23:41 <arj0019> You can see the '$!!' analysis here: https://paste.tomsmeding.com/miJzVUVw . It better shows the size difference. I am surprised how significant it is for such a small list.
19:23:47 td_ joins (~td@94.134.91.109)
19:24:04 <geekosaur> lists are pretty wasteful, yeh
19:24:36 <geekosaur> under the right ciircumstances they compile down to *very* tight loops, but are otherwise probably best avoided
19:26:08 liz_ joins (~liz@host86-159-158-175.range86-159.btcentralplus.com)
19:26:42 <arj0019> I need to research 'vectors' as mentioned by SKI. I am still very new to Haskell.
19:27:22 <ski> @quote is.more.of.a.control.structure
19:27:22 <lambdabot> elliott says: ... [a] is more of a control structure than a data structure.
19:28:07 <geekosaur> I've been saying that for a while ("a loop encoded as data")
19:28:25 <arj0019> is `tails' just a fold of `tail'? and a fold of `tail' to get the same result as `tails', would be equally efficient?
19:28:28 <ski> yea, it's old folklore
19:30:05 <ski> hm, basically every list-consuming function could be defined in terms of `foldr' .. so that doesn't tay too much
19:30:24 Kaiepi joins (~Kaiepi@156.34.47.253)
19:31:39 <ski> i guess it's a `scanr', or an `unfoldr'
19:31:55 <arj0019> I guess my question is does `tails' have some special super-efficient logic, or is it no different than using `tail' a bunch of times
19:32:20 <arj0019> the type signature does not answer my question
19:32:25 <arj0019> > :t tails
19:32:27 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
19:32:31 <geekosaur> :t tails
19:32:32 <lambdabot> [a] -> [[a]]
19:32:53 <geekosaur> it just loops over the list returning the "xs" part of each cons cell
19:33:03 <geekosaur> no special logic needed
19:33:06 × Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 264 seconds)
19:33:12 <ski> > tails [0,1,2,3]
19:33:13 <lambdabot> [[0,1,2,3],[1,2,3],[2,3],[3],[]]
19:33:16 <ski> > scanr (:) [] [0,1,2,3]
19:33:17 <lambdabot> [[0,1,2,3],[1,2,3],[2,3],[3],[]]
19:33:21 <ski> > unfoldr (\xs0 -> case xs0 of [] -> Nothing; _:xs -> Just (xs0,xs)) [0,1,2,3] -- not quite
19:33:23 <lambdabot> [[0,1,2,3],[1,2,3],[2,3],[3]]
19:33:58 <ski> > [0,1,2,3] : unfoldr (\case [] -> Nothing; _:xs -> Just (xs,xs)) [0,1,2,3]
19:34:00 <lambdabot> [[0,1,2,3],[1,2,3],[2,3],[3],[]]
19:34:16 <ski> @src tails
19:34:16 <lambdabot> tails [] = [[]]
19:34:16 <lambdabot> tails xxs@(_:xs) = xxs : tails xs
19:34:27 <ski> arj0019 : ^ that's the logic of `tails'
19:34:41 <ski> it's just a plain recursion, traversing the list, while building a new list
19:35:24 <ski> (the `xxs@(_:xs)' pattern names the whole list input `xxs', while also naming its tail `xs')
19:36:35 <arj0019> it is interesting that `tails' does not use `tail' in it's definition
19:36:38 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:36:56 <ski> > foldr (\x xss@(xs:_) -> (x:xs):xss) [[]] [0,1,2,3] -- this implementation, via `foldr', doesn't share tails, though :(
19:36:57 <geekosaur> "tail" is just the "xs" pattern match
19:36:58 <lambdabot> [[0,1,2,3],[1,2,3],[2,3],[3],[]]
19:37:01 <geekosaur> @src tail
19:37:02 <lambdabot> tail (_:xs) = xs
19:37:02 <lambdabot> tail [] = error "Prelude.tail: empty list"
19:37:47 <ski> arj0019 : instead of `tails xxs@(_:xs) = xxs : tails xs', it could say `tails xxs = xxs : tails (tail xxs)' .. but there's not much point, when a pattern-match gives you the same
19:40:26 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
19:40:43 arj0019 joins (~arj0019@162.218.254.7)
19:41:20 × z0k quits (~z0k@206.84.143.59) (Ping timeout: 246 seconds)
19:43:25 <ski> arj0019 : in general, accessors like `fst',`snd',`head',`tail' (especially partial ones, like the latter two) (also predicates like `null') tend to not be used that often, since when one could replace them with a pattern-match that's approximately as clear (often it is clearer, at least with a little practice reading Haskell), and better due to exhaustiveness/completeness checking
19:43:31 <ski> (`-Wincomplete-uni-patterns',`-Wincomplete-patterns'), one tends to do that
19:43:43 alexhandy2 joins (~trace@user/trace)
19:46:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:47:43 × alexhandy quits (~trace@user/trace) (Ping timeout: 256 seconds)
19:49:05 MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net)
19:49:20 acidjnk_new joins (~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de)
19:51:04 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
19:51:21 arj0019 joins (~arj0019@162.218.254.7)
19:51:43 <arj0019> I see that you have referred to two language extensions. It is my understanding, that language extensions exist to allow for language research and development. Would you agree that a Haskell beginner should avoid language extensions? IMO, the Haskell devs know better than me, and I am probably better off working within the structure that they have defined for now. Do you agree?
19:52:34 <ski> two ?
19:52:43 × pleo quits (~pleo@user/pleo) (Quit: quit)
19:55:12 <ski> i'd say some extensions are pretty benign, like `FlexibleInstances',`FlexibleContexts' .. and, yes, `LambdaCase' (and some other syntactical ones)
19:56:26 <hololeap> arj0019: I was scared of language extensions when I first started learning and thought that learning base haskell would be hard enough, but quite a few of them add some very minor quality of life improvements
19:57:58 <ski> i'd still be very wary of code using `OverlappingInstances' or `IncoherentInstances', though (or the equivalent pragmas)
19:58:42 <arj0019> I have seen some used for type constrains that look very useful. I just want to avoid engaging in bad habits early on. When I am more experienced, I think I will be able to better assess the cost/benefit of implementing a language extension
19:58:44 × MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 272 seconds)
19:59:25 <hololeap> arj0019: also, I think you're mistaking e.g. `-Wincomplete-uni-patterns' as a language extension. it actually turns on a specific type of warning
19:59:36 <ski> ah .. that's why i was confused
19:59:57 <arj0019> oh, I was unaware that was a feature. sorry for the confusion
20:00:22 <hololeap> arj0019: what version of GHC are you using?
20:01:17 <arj0019> my GHCI presents version 8.10.7 . Is it safe to assume GHC has a matching version?
20:01:50 <arj0019> I can confirm that GHC is also 8.10.7
20:01:50 × Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer)
20:02:00 <arj0019> Glasgow Haskell Compiler, Version 8.10.7, stage 2 booted by GHC version 8.8.3
20:02:07 <dolio> I think the truth is that with only one Haskell implementation, there isn't a lot of motivation to codify a lot of things that are GHC extensions relative to the official report. However, you can't necessarily tell which extensions are just things you might as well turn on as a new user.
20:02:14 <ski> (btw, `-Wall' will turn on those two warnings above, and a bunch more)
20:03:03 <dolio> I guess GHC is fixing that by defining sets of GHC extensions that are more 'blessed'.
20:03:11 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
20:03:56 <ski> arj0019 : you can probably ask in here, for a particular extension, whether it's considered pretty basic and benign, or more advanced, or possibly dangerous in some way
20:04:55 <arj0019> I see many of you are adding my tag as a context in your message. There is also a purple highlight. Is that still a message that others can see, and am I replying correctly?
20:05:41 <ski> (btw, lurking in here, to see what other people are talking about, possibly learning stuff, is a good excuse to stay connected to the channel)
20:06:04 <hololeap> most irc clients highlight a message with your nick in it
20:06:10 <darkling> arj0019: I saw that question, and many people prefixing with your nick, so yes, that's normal and correct.
20:06:10 <hololeap> that's all it is
20:07:39 <ski> i see every message in white, in my IRC client. different irc clients may display things differently, e.g. auto-colorizing nicknames in front of messages, or the whole message, and possibly highlighting messages that is directed to you, or possibly mentions your nickname
20:07:41 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
20:07:55 <arj0019> ski : yes, I plan to listen to what others discuss with the goal of learning best practices and development processes.
20:08:24 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
20:09:44 jakalx joins (~jakalx@base.jakalx.net)
20:09:52 <hololeap> arj0019: this is a pretty good reference for which language extensions are "benign" or not: https://web.archive.org/web/20220513191346/dev.stephendiehl.com/hask/#language-extensions
20:09:56 <ski> there's also private messaging. you could try `/msg someone message here ..' or `/query someone' (without the quotes) .. however, if it's about a general question/comment that the other people in the channel could gain from seeing, or could possibly respond to as well, it's probably better to not do it privately
20:11:04 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
20:11:14 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
20:11:42 econo joins (uid147250@user/econo)
20:11:53 <arj0019> Sounds like the benign extensions are safe for beginners: "Benign implies both that importing the extension won’t change the semantics of the module if not used and that enabling it makes it no easier to shoot yourself in the foot."
20:12:25 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
20:12:30 <hololeap> yeah, exactly
20:15:06 <hololeap> but here's the full list/docs for 8.10.7 : https://downloads.haskell.org/ghc/8.10.7/docs/html/users_guide/glasgow_exts.html
20:15:34 <hololeap> and the docs for -W : https://downloads.haskell.org/ghc/8.10.7/docs/html/users_guide/using-warnings.html
20:15:57 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
20:17:12 <ski> arj0019 : anyway, i was confused before, since i only thought i used one extension, namely `LambdaCase', in the second `unfoldr' example. specifically, `\case [] -> Nothing; _:xs -> Just (xs,xs)' means the same thing as `\xs0 of case xs0 of [] -> Nothing; _:xs -> Just (xs,xs)', it just avoids the tedium of having to invent a name `xs0' for the input of the lambda function, also reduces clutter (mental, and
20:17:18 <ski> syntactical)
20:17:37 <hololeap> ski, it looks like -Wall does _not_ turn on -Wincomplete-uni-patterns, at least that's what the docs for 8.10.7 say
20:17:50 <geekosaur> correct, it defaults off
20:18:15 <ski> (if you try that example in the GHC interactor, it'll suggest the `LambdaCase' extension for you)
20:20:02 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
20:20:16 <hololeap> this is also a pretty good beginner-friendly reference for some language extensions: https://blog.ocharles.org.uk/pages/2014-12-01-24-days-of-ghc-extensions.html
20:20:19 arj0019 joins (~arj0019@162.218.254.7)
20:21:03 <ski> hololeap : i checked <https://www.haskell.org/ghc/docs/latest/html/users_guide/using-warnings.html>, which is apparently 9.2.2, and also tried it out (apparently 9.2.3)
20:23:03 <ski> <hololeap> this is also a pretty good beginner-friendly reference for some language extensions: https://blog.ocharles.org.uk/pages/2014-12-01-24-days-of-ghc-extensions.html
20:23:06 <ski> arj0019 ^
20:23:07 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:24:15 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
20:24:33 nate4 joins (~nate@98.45.169.16)
20:24:42 arj0019 joins (~arj0019@162.218.254.7)
20:24:43 <hololeap> it looks like they changed it at some point after 8.10.7, ski, because it says in the docs for that version: "Turns on all warning options that indicate potentially suspicious code. The warnings that are _not_ enabled by -Wall are ... -Wincomplete-uni-patterns ..."
20:26:03 × ncf quits (~n@monade.li) (Quit: Fairfarren.)
20:26:12 ncf joins (~n@monade.li)
20:26:48 <ski> i see. ty for the checking
20:28:11 <hololeap> I'm not sure those docs are 100% accurate
20:29:15 <hololeap> in the latest version of the docs, it doesn't mention -Wprepositive-qualified-module as one of the ones not enabled -Wall, which I find unlikely
20:29:34 <hololeap> and it doesn't even mention -Wprepositive-qualified-module in the docs for 9.0.2 which I know for a fact is there
20:29:38 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
20:30:04 <hololeap> s/not enabled -Wall/not enabled by -Wall
20:33:08 <hololeap> yeah, the warning has been there since 8.10.1, but didn't show up in the "warnings" section of the docs until sometime after 9.0.2
20:34:45 yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
20:37:16 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
20:37:33 arj0019 joins (~arj0019@162.218.254.7)
20:39:51 × yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
20:40:41 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
20:41:10 × shiraeeshi quits (~shiraeesh@109.166.57.222) (Ping timeout: 272 seconds)
20:44:40 gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
20:45:32 × brettgilio quits (~brettgili@c9yh.net) (Remote host closed the connection)
20:46:00 × sjanssen quits (~sjanssenm@2001:470:69fc:105::1:61d8) (*.net *.split)
20:46:00 × edmundnoble quits (sid229620@id-229620.helmsley.irccloud.com) (*.net *.split)
20:46:00 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
20:46:00 × parseval quits (sid239098@id-239098.helmsley.irccloud.com) (*.net *.split)
20:46:00 × grfn quits (sid449115@id-449115.helmsley.irccloud.com) (*.net *.split)
20:46:00 × lottaquestions quits (~nick@2607:fa49:5041:a200:f103:73aa:e770:b5d1) (*.net *.split)
20:46:00 × bitonic quits (~bitonic@2001:470:69fc:105::1812) (*.net *.split)
20:46:00 × Nate[m] quits (~m52957mat@2001:470:69fc:105::1:591a) (*.net *.split)
20:46:00 × steve[m] quits (~stevetrou@2001:470:69fc:105::e0b) (*.net *.split)
20:46:00 × gdd1 quits (~gdd@2001:470:1f13:187:7f5b:6c09:f7ed:fdf0) (*.net *.split)
20:46:00 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (*.net *.split)
20:46:00 × tapas quits (sid467876@id-467876.ilkley.irccloud.com) (*.net *.split)
20:46:01 × feetwind quits (~mike@user/feetwind) (*.net *.split)
20:46:01 × tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split)
20:46:01 × berberman quits (~berberman@user/berberman) (*.net *.split)
20:46:01 × yahb2 quits (~yahb2@2a01:4f8:c0c:5c7b::2) (*.net *.split)
20:46:01 × mcfrdy quits (~mcfrdy@user/mcfrdy) (*.net *.split)
20:46:01 × teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split)
20:46:01 × ozkutuk quits (~ozkutuk@176.240.173.153) (*.net *.split)
20:46:01 × goran[m] quits (~goranoour@2001:470:69fc:105::2:1b44) (*.net *.split)
20:46:01 × AWizzArd_ quits (~code@gehrels.uberspace.de) (*.net *.split)
20:46:01 × koolazer quits (~koo@user/koolazer) (*.net *.split)
20:46:01 × romes[m] quits (~romesmatr@2001:470:69fc:105::2:1660) (*.net *.split)
20:46:01 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (*.net *.split)
20:46:01 × mzan quits (~quassel@mail.asterisell.com) (*.net *.split)
20:46:01 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (*.net *.split)
20:46:01 × nerdypepper quits (~nerdypepp@user/nerdypepper) (*.net *.split)
20:46:01 × sloorush quits (~sloorush@52.187.184.81) (*.net *.split)
20:46:01 × wrengr quits (~wrengr@249.189.233.35.bc.googleusercontent.com) (*.net *.split)
20:46:01 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split)
20:46:01 × supersven quits (sid501114@id-501114.ilkley.irccloud.com) (*.net *.split)
20:46:01 × Trattue quits (~Trattue@152.70.182.158) (*.net *.split)
20:46:01 × lyxia quits (~lyxia@poisson.chat) (*.net *.split)
20:46:01 × pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) (*.net *.split)
20:46:01 × APic quits (apic@apic.name) (*.net *.split)
20:46:01 × noctux quits (~noctux@user/noctux) (*.net *.split)
20:46:01 × polux quits (~polux@51-15-169-172.rev.poneytelecom.eu) (*.net *.split)
20:46:08 AWizzArd joins (~code@gehrels.uberspace.de)
20:46:10 supersven joins (sid501114@id-501114.ilkley.irccloud.com)
20:46:11 noctux joins (~noctux@user/noctux)
20:46:14 APic joins (apic@apic.name)
20:46:16 sloorush joins (~sloorush@52.187.184.81)
20:46:17 tapas joins (sid467876@id-467876.ilkley.irccloud.com)
20:46:17 lyxia joins (~lyxia@poisson.chat)
20:46:19 teddyc joins (theodorc@cassarossa.samfundet.no)
20:46:21 polux joins (~polux@51-15-169-172.rev.poneytelecom.eu)
20:46:27 parseval joins (sid239098@id-239098.helmsley.irccloud.com)
20:46:32 feetwind joins (~mike@2406:d501::79ae:5f3e)
20:46:32 mzan joins (~quassel@mail.asterisell.com)
20:46:34 wrengr joins (~wrengr@249.189.233.35.bc.googleusercontent.com)
20:46:36 koolazer joins (~koo@user/koolazer)
20:46:48 × feetwind quits (~mike@2406:d501::79ae:5f3e) (Signing in (feetwind))
20:46:48 feetwind joins (~mike@user/feetwind)
20:46:54 ozkutuk joins (~ozkutuk@176.240.173.153)
20:47:07 edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com)
20:47:08 tomboy64 joins (~tomboy64@user/tomboy64)
20:47:11 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca)
20:47:17 cbarrett joins (sid192934@id-192934.helmsley.irccloud.com)
20:47:19 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
20:47:22 mcfrdy joins (~mcfrdy@user/mcfrdy)
20:47:22 lottaquestions joins (~nick@2607:fa49:5041:a200:d970:339e:3d32:94d)
20:47:26 gdd1 joins (~gdd@129.199.146.230)
20:47:27 berberman joins (~berberman@user/berberman)
20:47:36 grfn joins (sid449115@id-449115.helmsley.irccloud.com)
20:47:50 Trattue joins (~Trattue@152.70.182.158)
20:47:52 nate4 joins (~nate@98.45.169.16)
20:48:17 nerdypepper joins (~nerdypepp@user/nerdypepper)
20:48:27 romes[m] joins (~romesmatr@2001:470:69fc:105::2:1660)
20:48:31 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:48:55 sjanssen joins (~sjanssenm@2001:470:69fc:105::1:61d8)
20:49:18 × inversed quits (~inversed@97e3d74e.skybroadband.com) (Ping timeout: 240 seconds)
20:49:35 pleo joins (~pleo@user/pleo)
20:50:26 inversed joins (~inversed@97e3d74e.skybroadband.com)
20:50:53 × lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5)
20:51:10 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
20:51:17 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
20:51:38 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
20:51:49 brettgilio joins (~brettgili@c9yh.net)
20:54:27 steve[m] joins (~stevetrou@2001:470:69fc:105::e0b)
20:54:30 Nate[m] joins (~m52957mat@2001:470:69fc:105::1:591a)
20:55:30 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
20:56:57 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
20:58:04 moonsheep joins (~user@user/moonsheep)
20:58:15 k`` joins (~user@152.1.137.158)
20:59:25 goran[m] joins (~goranoour@2001:470:69fc:105::2:1b44)
21:01:07 bitonic joins (~bitonic@2001:470:69fc:105::1812)
21:01:30 × k` quits (~user@152.1.137.158) (Ping timeout: 240 seconds)
21:02:21 <moonsheep> Hi there! Is there a way to do a data-parallel iterate in accelerate?
21:02:36 <moonsheep> I'm looking for an equivalent for the Exp iterate but in Acc
21:02:55 <moonsheep> I've tried to use awhile, but I'm not sure how should I implemented the counter
21:03:03 <moonsheep> *implement
21:04:50 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:08:29 <mon_aaraj> dminuoso: thank you so very much for that `worded` alternative! it works perfectly!
21:10:12 <moonsheep> By the way, I've also tried good ol' recursion, but for some reason it eats up all of my video memory.
21:10:24 <moonsheep> I think the array gets copied each time instead of being reused.
21:10:26 × Infinite quits (~Infinite@49.39.124.23) (Ping timeout: 252 seconds)
21:12:35 <hololeap> @hackage derivingvia-extras -- this is kinda cool
21:12:35 <lambdabot> https://hackage.haskell.org/package/derivingvia-extras -- this is kinda cool
21:13:54 × pleo quits (~pleo@user/pleo) (Ping timeout: 264 seconds)
21:16:30 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
21:16:34 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
21:16:47 arj0019 joins (~arj0019@162.218.254.7)
21:17:56 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
21:19:41 × winny quits (~weechat@user/winny) (Ping timeout: 268 seconds)
21:21:04 × acidjnk_new quits (~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de) (Ping timeout: 272 seconds)
21:22:44 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
21:23:01 arj0019 joins (~arj0019@162.218.254.7)
21:24:36 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:25:13 × alp quits (~alp@user/alp) (Ping timeout: 268 seconds)
21:25:38 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
21:25:55 <mon_aaraj> I have another issue, HLS seems to be complaining about non-existent issues. It errors on some lines but if I try to run the program it runs perfectly. Here's the entirety of the code, and the response of HLS: https://bpa.st/Y5TQ
21:26:29 pleo joins (~pleo@user/pleo)
21:27:32 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:27:52 <hololeap> I'm not sure HLS is stable on ghc 9.2
21:28:36 <hololeap> you can try generating a hie.yaml and see if that helps: `gen-hie | tee hie.yaml`
21:29:28 alp joins (~alp@user/alp)
21:29:55 <hololeap> also, when you say "run the program" do you mean run "cabal build" ?
21:30:02 winny joins (~weechat@user/winny)
21:30:54 × some02 quits (~cat@user/sudden) (Ping timeout: 276 seconds)
21:31:07 sudden joins (~cat@user/sudden)
21:31:42 <hololeap> Completed (1 file worked, 0 files failed) -- this looks like a success to me. what editor are you using?
21:33:42 × xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
21:33:43 × andreas303 quits (~andreas30@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
21:34:17 × even4void quits (even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com)
21:35:57 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
21:36:14 arj0019 joins (~arj0019@162.218.254.7)
21:36:16 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 272 seconds)
21:36:34 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:39:58 × arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection)
21:40:15 arj0019 joins (~arj0019@162.218.254.7)
21:41:04 arj0019 parts (~arj0019@162.218.254.7) ()
21:43:21 × son0p quits (~ff@181.136.122.143) (Ping timeout: 248 seconds)
21:49:13 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
21:49:18 zeenk joins (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
21:49:45 × michalz quits (~michalz@185.246.204.97) (Remote host closed the connection)
21:49:48 <mon_aaraj> hololeap: I mean `cabal build` and `cabal run` both work, and the program functions as expected. I'm using doom emacs with lsp and emacs enabled, withh GHCUP using the last version that supports ghc 9.2.2 (which is the version that i use)
21:50:15 <mon_aaraj> yes, it succeeded error-checking the file, the issue is that it's errors are wrong, because they're not errors a all
21:52:49 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
21:52:56 × briandaed quits (~briandaed@109.95.143.14.r.toneticgroup.pl) (Ping timeout: 246 seconds)
21:53:44 <maerwald> sounds like it could be hlint
21:54:11 even4void joins (even4void@came.here.for-some.fun)
21:57:25 × BusConscious quits (~martin@ip5f5bdf01.dynamic.kabel-deutschland.de) (Quit: Lost terminal)
22:00:07 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:00:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:02:23 × werneta quits (~werneta@137.78.30.207) (Ping timeout: 246 seconds)
22:02:56 <geekosaur> hlint doesn't understand types
22:03:14 <geekosaur> it looks for questionable code, it does not typecheck
22:03:25 <hololeap> I don't think those are hlint-related errors
22:03:54 <hololeap> HLS seems to work better for me when I generate hie.yaml in the root of the project (next to *.cabal)
22:03:56 xacktm joins (xacktm@user/xacktm)
22:10:05 × dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 246 seconds)
22:10:22 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:10:42 <hololeap> also, friendly reminder that #haskell-language-server exists
22:11:03 <hololeap> it's kinda low traffic, though
22:12:09 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
22:12:09 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
22:13:06 <maerwald> geekosaur: oh, there was a link? :>
22:13:35 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
22:13:59 <maerwald> yeah, add a hie.yaml
22:16:29 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:18:15 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds)
22:20:38 <EvanR> this stackexchange hot question looks pretty good: since accessing an array is O(1) then the key type has to be finite, so traversing any array must be O(1). but in question form
22:21:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:24:10 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
22:25:44 <mon_aaraj> ah, nice. i'll try haskell-language-server. thank you all so much for the helf already
22:27:38 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
22:29:32 stackdroid18 joins (14094@user/stackdroid)
22:33:04 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
22:48:20 × liz_ quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal)
22:53:08 × moet quits (~moet@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 246 seconds)
22:54:47 dsrt^ joins (~dsrt@50.237.44.186)
22:58:24 × chele quits (~chele@user/chele) (Remote host closed the connection)
23:01:31 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
23:04:25 <AndreasK> EvanR: A good case of technically correct being the best kind of correct?
23:04:41 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
23:05:36 <AndreasK> Comparing a pointer against every address in 64bit address space is also technically O(1) in the same way. Not quite fast though
23:06:55 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
23:06:56 × zeenk quits (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
23:07:28 <darkling> If all your inputs are bounded, everything's O(1), right? :)
23:08:05 × pleo quits (~pleo@user/pleo) (Quit: quit)
23:09:18 <AndreasK> If your algorithm is terminating I guess so
23:10:31 <EvanR> in this case it seems better to be incorrect
23:15:11 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
23:17:20 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
23:24:14 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
23:24:46 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
23:26:16 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
23:26:28 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
23:28:56 Lord_of_Life_ is now known as Lord_of_Life
23:31:01 × AlexZenon quits (~alzenon@178.34.160.206) (Ping timeout: 268 seconds)
23:31:01 × Alex_test quits (~al_test@178.34.160.206) (Ping timeout: 268 seconds)
23:33:49 Alex_test joins (~al_test@178.34.160.206)
23:33:52 AlexZenon joins (~alzenon@178.34.160.206)
23:35:20 × chomwitt quits (~chomwitt@2a02:587:dc0d:e600:8f05:e6fa:1178:1d79) (Ping timeout: 272 seconds)
23:39:48 oats is now known as boats
23:42:52 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
23:43:05 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
23:44:57 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
23:45:45 nate4 joins (~nate@98.45.169.16)
23:47:11 liz_ joins (~liz@host86-159-158-175.range86-159.btcentralplus.com)
23:48:19 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
23:48:38 × moonsheep quits (~user@user/moonsheep) (Remote host closed the connection)
23:48:47 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 246 seconds)
23:48:55 moet joins (~moet@mobile-166-177-248-140.mycingular.net)
23:50:15 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
23:50:30 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds)
23:50:57 boats is now known as oats
23:51:22 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
23:52:25 × gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
23:53:35 son0p joins (~ff@181.136.122.143)
23:54:23 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:55:07 cdsmith63 joins (~cdsmith@c-73-184-127-183.hsd1.ga.comcast.net)
23:58:17 × even4void quits (even4void@came.here.for-some.fun) (Ping timeout: 248 seconds)
23:58:46 × xacktm quits (xacktm@user/xacktm) (Ping timeout: 272 seconds)
23:59:38 × superz quits (~superegg@user/superegg) (Ping timeout: 246 seconds)

All times are in UTC on 2022-06-24.