Home liberachat/#haskell: Logs Calendar

Logs on 2023-12-16 (liberachat/#haskell)

00:00:03 <dminuoso_> This has the added beauty, that your integerParser because simply `many integerParser` where `integerParser = token $ ...`
00:00:46 <monochrom> My course notes https://www.cs.utoronto.ca/~trebla/CSCC24-2023-Summer/08-parsing.html#token explains this strategy. (A later section covers leading spaces.)
00:01:54 <prasad> so I changed my integerParser to integerParser = (read <$> many1 digit) <* many space  & in listsParser char '|' <* many space & it worked like a charm
00:02:02 <prasad> Thanks a bunch guys
00:03:06 <prasad> :here is the updated code https://paste.tomsmeding.com/sYO9QRga
00:05:11 × Guest28 quits (~Guest28@c-73-194-110-178.hsd1.nj.comcast.net) (Quit: Client closed)
00:06:16 <dminuoso_> prasad: https://paste.tomsmeding.com/1Trf1otw I was thinking along those lines.
00:07:38 <dminuoso_> prasad: I think the core point here is to not use: `sepBy` space
00:07:48 <dminuoso_> See monochrom's link above.
00:10:05 × ystael quits (~ystael@user/ystael) (Ping timeout: 256 seconds)
00:21:33 pavonia joins (~user@user/siracusa)
00:32:12 OscarZ joins (~oscarz@mobile-access-b04821-89.dhcp.inet.fi)
00:36:06 × OscarZ quits (~oscarz@mobile-access-b04821-89.dhcp.inet.fi) (Client Quit)
00:37:08 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
00:37:37 ugupta_ joins (~ugupta@h135-135-187-62.mdsnwi.broadband.dynamic.tds.net)
00:38:37 × ugupta_ quits (~ugupta@h135-135-187-62.mdsnwi.broadband.dynamic.tds.net) (Client Quit)
00:39:56 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
00:46:21 mechap joins (~mechap@user/mechap)
00:50:22 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 276 seconds)
00:56:49 × kilolympus quits (~kilolympu@31.205.200.246) (Quit: See you later! :))
00:58:41 cursedcode78 joins (~cursedcod@209.54.101.166)
01:01:47 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
01:03:36 tomboy64 joins (~tomboy64@user/tomboy64)
01:05:18 rosco joins (~rosco@175.136.152.56)
01:06:51 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:06:53 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 240 seconds)
01:07:53 × myme quits (~myme@2a01:799:d60:e400:f494:822d:598a:260f) (Ping timeout: 256 seconds)
01:08:56 myme joins (~myme@2a01:799:d60:e400:6489:87d4:bbd5:b8cc)
01:17:18 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
01:17:43 califax joins (~califax@user/califx)
01:23:06 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
01:34:38 <EvanR> >Initial space, final junk
01:34:53 <EvanR> or
01:35:02 <EvanR> Space: the final junk
01:38:50 <monochrom> Space: The Final Junkyard. :)
01:38:56 × araujo quits (~araujo@45.146.54.162) (Ping timeout: 256 seconds)
01:39:44 <monochrom> These are the voyages of entropy increase. To boldly go where no life can survive. >:)
01:44:58 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 276 seconds)
01:50:29 × cursedcode78 quits (~cursedcod@209.54.101.166) (Quit: Client closed)
01:57:40 rovaughn joins (~rovaughn@066-065-097-119.res.spectrum.com)
01:58:09 <EvanR> life: a somewhat more efficient way to max out entropy
02:02:05 × CiaoSen quits (~Jura@2a05:5800:2b7:6a00:ca4b:d6ff:fec1:99da) (Ping timeout: 240 seconds)
02:07:25 × rovaughn quits (~rovaughn@066-065-097-119.res.spectrum.com) (Excess Flood)
02:12:30 rovaughn joins (~rovaughn@066-065-097-119.res.spectrum.com)
02:23:02 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
02:27:25 × rovaughn quits (~rovaughn@066-065-097-119.res.spectrum.com) (Remote host closed the connection)
02:28:15 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
02:34:05 × arkoinad quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
02:36:46 × prasad quits (~prasad@2601:243:c001:3f07::54) (Quit: Client closed)
02:51:10 bilegeek joins (~bilegeek@2600:1008:b0af:15b4:4193:db31:a8f0:db75)
03:02:14 cursedcode joins (~cursedcod@209.54.101.166)
03:05:01 kritty joins (~crumb@c-76-155-235-153.hsd1.co.comcast.net)
03:07:35 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc52:bab0:d69e:7e9e) (Remote host closed the connection)
03:07:50 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc52:bab0:d69e:7e9e)
03:17:19 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
03:21:43 × kritty quits (~crumb@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Leaving)
03:22:04 × nahawand quits (~nahawand@176.254.244.83) (Ping timeout: 255 seconds)
03:23:41 tornato joins (uid197568@id-197568.tinside.irccloud.com)
03:32:03 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
03:32:49 × td_ quits (~td@i53870901.versanet.de) (Ping timeout: 256 seconds)
03:34:21 td_ joins (~td@i53870901.versanet.de)
03:36:38 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
03:41:30 × edr quits (~edr@user/edr) (Quit: Leaving)
03:55:29 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:55:29 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:55:29 finn_elija is now known as FinnElija
03:56:44 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:57:12 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:01:51 nahawand joins (~nahawand@176.254.244.83)
04:10:55 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
04:19:11 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
04:22:14 prasad80 joins (~prasad@2601:243:c001:3f07::54)
04:33:13 trev joins (~trev@user/trev)
04:33:22 aforemny joins (~aforemny@2001:9e8:6cdf:e100:887b:7deb:8e79:d944)
04:33:41 × aforemny_ quits (~aforemny@2001:9e8:6cf8:1100:2b89:5b54:fffc:6f71) (Ping timeout: 240 seconds)
04:35:36 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
04:50:57 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:59:23 not_reserved joins (~not_reser@154.16.157.99)
05:01:16 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
05:01:16 <albet70> in if-then-else, is there a way to break in then branch to run else branch?
05:01:49 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:09:39 <probie> You can do something like `let f = ... in if p then (do { something; if q then ... else f }) else f`
05:11:49 <albet70> right
05:17:01 <ski> do you have monadic actions ?
05:21:40 × not_reserved quits (~not_reser@154.16.157.99) (Quit: Client closed)
05:23:33 <albet70> yes, there's IO actions in it
05:27:43 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
05:29:03 not_reserved joins (~not_reser@154.16.157.99)
05:29:27 <ski> @hoogle Monad m => m Bool -> m Bool -> m Bool
05:29:28 <lambdabot> System.Directory.Internal andM :: Monad m => m Bool -> m Bool -> m Bool
05:29:28 <lambdabot> Control.Monad.Extra (||^) :: Monad m => m Bool -> m Bool -> m Bool
05:29:28 <lambdabot> Control.Monad.Extra (&&^) :: Monad m => m Bool -> m Bool -> m Bool
05:29:41 × phma quits (phma@2001:5b0:211f:ca48:659b:29e6:dda5:53ee) (Read error: Connection reset by peer)
05:30:37 phma joins (phma@2001:5b0:2144:9b8:80e2:c70c:189:5704)
05:42:40 × anon1123 quits (~anon1123@2a02:ab88:282:b00:da3a:ddff:fe3a:947c) (Ping timeout: 268 seconds)
05:43:24 × tornato quits (uid197568@id-197568.tinside.irccloud.com) (Quit: Connection closed for inactivity)
05:43:32 anon1123 joins (~anon1123@2a02:ab88:282:b00:da3a:ddff:fe3a:947c)
06:09:40 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
06:22:31 harveypwca joins (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b)
06:44:09 waldo joins (~waldo@user/waldo)
06:45:10 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:53:16 × nahawand quits (~nahawand@176.254.244.83) (Quit: Connection error?!)
06:54:07 starlight joins (~starlight@176.254.244.83)
07:04:12 <cheater> https://github.com/Matthew-Mosior/fasta-region-inspector/blob/main/src/Linear/UtilityLinear.hs
07:15:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:17:02 × waldo quits (~waldo@user/waldo) (Ping timeout: 260 seconds)
07:24:50 × cursedcode quits (~cursedcod@209.54.101.166) (Ping timeout: 250 seconds)
07:27:00 waldo joins (~waldo@user/waldo)
07:30:46 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 276 seconds)
07:31:09 acidjnk joins (~acidjnk@p200300d6e72b93746955d227447c985a.dip0.t-ipconnect.de)
07:32:08 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
07:54:44 alp__ joins (~alp@2001:861:e3d6:8f80:5927:5ec3:fb09:589c)
08:06:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
08:16:02 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
08:21:20 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
08:25:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:27:58 × waldo quits (~waldo@user/waldo) (Ping timeout: 276 seconds)
08:34:13 × bilegeek quits (~bilegeek@2600:1008:b0af:15b4:4193:db31:a8f0:db75) (Quit: Leaving)
08:35:07 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
08:43:33 waldo joins (~waldo@user/waldo)
08:46:49 × mikess quits (~sam@user/mikess) (Ping timeout: 276 seconds)
08:54:11 danza joins (~danza@151.57.228.124)
09:03:05 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
09:03:31 ChaiTRex joins (~ChaiTRex@user/chaitrex)
09:05:21 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc52:bab0:d69e:7e9e) (Remote host closed the connection)
09:07:34 CiaoSen joins (~Jura@2a05:5800:281:7400:ca4b:d6ff:fec1:99da)
09:08:47 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
09:08:55 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
09:13:23 × Square quits (~Square@user/square) (Ping timeout: 256 seconds)
09:14:48 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
09:20:21 × alp__ quits (~alp@2001:861:e3d6:8f80:5927:5ec3:fb09:589c) (Ping timeout: 268 seconds)
09:20:46 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
09:20:59 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
09:21:23 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
09:24:39 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:25:17 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
09:26:04 Lord_of_Life_ is now known as Lord_of_Life
09:26:43 × waldo quits (~waldo@user/waldo) (Ping timeout: 246 seconds)
09:28:00 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.1.2)
09:34:23 alp__ joins (~alp@2001:861:e3d6:8f80:5871:e261:32c:c3e7)
09:36:00 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:cc52:bab0:d69e:7e9e)
09:37:58 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
09:40:09 aruns joins (~aruns@user/aruns)
09:49:34 waldo joins (~waldo@user/waldo)
09:49:42 × danza quits (~danza@151.57.228.124) (Ping timeout: 256 seconds)
09:50:55 <haskellbridge> 12<C​elestial> how would one right their own prelude without having to do the "dirty" stuff?
09:50:56 <haskellbridge> 12<C​elestial> Namely keep things that are required for the language to work like `IO` and `[]/(:)` but be able to write everything else from scratch
09:51:03 <haskellbridge> 12<C​elestial> s/right/write
09:54:28 Nurda joins (~Nurda@144.214.255.102)
09:55:22 <haskellbridge> 12<C​elestial> It looks like you can re-export all the necessary things?
09:58:48 × Nixkernal quits (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
10:02:19 danza joins (~danza@151.43.252.253)
10:02:46 leungbk joins (~user@142-129-149-172.res.spectrum.com)
10:03:59 Nixkernal joins (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch)
10:04:53 Nurda_ joins (~Nurda@144.214.255.102)
10:06:00 Nurda_ is now known as noordahx
10:06:20 × noordahx quits (~Nurda@144.214.255.102) (Client Quit)
10:06:26 × Nurda quits (~Nurda@144.214.255.102) (Quit: Client closed)
10:07:50 noordahx joins (~Nurda@144.214.255.102)
10:08:30 × Nixkernal quits (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Client Quit)
10:14:24 Nixkernal joins (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch)
10:14:37 <mauke> yes, pretty much
10:19:41 × CiaoSen quits (~Jura@2a05:5800:281:7400:ca4b:d6ff:fec1:99da) (Ping timeout: 240 seconds)
10:23:29 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:25:11 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 264 seconds)
10:26:44 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
10:27:42 euleritian joins (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de)
10:27:51 × harveypwca quits (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving)
10:28:02 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:32:51 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
10:36:20 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:38:29 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
10:40:23 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
10:51:28 <haskellbridge> 12<C​elestial> hm, but what if I wanted to write an alternative to base? Would that work the same?
10:51:39 <haskellbridge> 12<C​elestial> Not just an alternate prelude
11:02:43 × leungbk quits (~user@142-129-149-172.res.spectrum.com) (Ping timeout: 268 seconds)
11:06:41 leungbk joins (~user@142-129-149-172.res.spectrum.com)
11:07:20 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
11:07:57 × euleritian quits (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
11:08:17 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:09:41 × waldo quits (~waldo@user/waldo) (Quit: waldo)
11:09:47 × xff0x quits (~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 260 seconds)
11:11:42 xff0x joins (~xff0x@178.255.149.135)
11:13:54 wootehfoot joins (~wootehfoo@user/wootehfoot)
11:19:20 xdminsy joins (~xdminsy@117.147.70.160)
11:21:01 __monty__ joins (~toonn@user/toonn)
11:21:19 alexherbo2 joins (~alexherbo@2a02-8440-3240-635d-855c-cf07-660d-fffe.rev.sfr.net)
11:22:40 × Nixkernal quits (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
11:23:00 Nixkernal joins (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch)
11:24:47 × woffs quits (3cd46299b2@woffs.de) (Quit: Gateway shutdown)
11:29:55 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 246 seconds)
11:31:19 × alp__ quits (~alp@2001:861:e3d6:8f80:5871:e261:32c:c3e7) (Ping timeout: 246 seconds)
11:31:55 xff0x joins (~xff0x@2405:6580:b080:900:bdad:1ce:360:7acb)
11:33:28 gmg joins (~user@user/gehmehgeh)
11:34:23 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
11:34:35 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:40:07 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
11:40:13 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 255 seconds)
11:41:52 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:42:05 __monty__ joins (~toonn@user/toonn)
11:45:36 × g quits (glguy@libera/staff/glguy) (Read error: Connection reset by peer)
11:46:30 g joins (g@libera/staff/glguy)
11:47:32 × glguy quits (g@libera/staff/glguy) (Read error: Connection reset by peer)
11:48:33 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
11:49:41 alp__ joins (~alp@2001:861:e3d6:8f80:9e9a:65d5:880b:617e)
11:52:40 woffs joins (3cd46299b2@woffs.de)
11:57:47 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:00:29 × danza quits (~danza@151.43.252.253) (Ping timeout: 240 seconds)
12:01:39 × rosco quits (~rosco@175.136.152.56) (Quit: Lost terminal)
12:01:49 × xff0x quits (~xff0x@2405:6580:b080:900:bdad:1ce:360:7acb) (Ping timeout: 276 seconds)
12:03:13 xff0x joins (~xff0x@ai085147.d.east.v6connect.net)
12:03:56 glguy joins (g@libera/staff/glguy)
12:06:31 × zincy quits (~tom@2a00:23c8:9705:9501:4425:940f:c2d:62c4) (Remote host closed the connection)
12:08:26 troydm joins (~troydm@user/troydm)
12:09:15 × qqq quits (~qqq@92.43.167.61) (Quit: leaving)
12:15:17 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
12:17:16 wootehfoot joins (~wootehfoo@user/wootehfoot)
12:17:44 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
12:19:57 Inst joins (~Inst@120.244.192.156)
12:22:29 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
12:22:31 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
12:22:50 euleritian joins (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de)
12:23:21 × leungbk quits (~user@142-129-149-172.res.spectrum.com) (Ping timeout: 252 seconds)
12:25:22 ht_ joins (~Thunderbi@194.110.115.49)
12:26:03 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 256 seconds)
12:26:04 ht_ is now known as _ht
12:29:04 × end quits (~end@user/end/x-0094621) (Quit: end)
12:29:04 × mosul quits (mosul@user/mosul) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
12:29:04 × bcksl quits (~bcksl@user/bcksl) (Quit: \)
12:29:59 araujo joins (~araujo@45.131.194.168)
12:31:03 × euleritian quits (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
12:31:20 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
12:37:21 leungbk joins (~user@142-129-149-172.res.spectrum.com)
12:44:39 m1dnight_ joins (~christoph@78-22-2-15.access.telenet.be)
12:45:32 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
12:45:46 [Leary] joins (~Leary]@user/Leary/x-0910699)
12:45:58 × johnw quits (~johnw@69.62.242.138) (Read error: Connection reset by peer)
12:46:08 bcksl joins (~bcksl@user/bcksl)
12:46:26 × son0p quits (~ff@181.136.122.143) (Ping timeout: 252 seconds)
12:46:42 × doyougnu quits (~doyougnu@045-046-170-068.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
12:47:19 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
12:47:58 doyougnu joins (~doyougnu@045-046-170-068.res.spectrum.com)
12:49:30 × m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1)
12:49:52 johnw joins (~johnw@69.62.242.138)
12:50:07 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
12:50:21 × m1dnight_ quits (~christoph@78-22-2-15.access.telenet.be) (Ping timeout: 245 seconds)
12:50:46 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
12:52:10 m1dnight joins (~christoph@78-22-2-15.access.telenet.be)
12:53:25 × m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Client Quit)
12:53:29 end joins (~end@user/end/x-0094621)
12:53:36 × fr33domlover quits (~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat)
12:54:09 × jjhoo quits (~jahakala@user/jjhoo) (Ping timeout: 252 seconds)
12:55:34 × elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Read error: Connection reset by peer)
12:55:42 elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
12:57:17 × noordahx quits (~Nurda@144.214.255.102) (Ping timeout: 240 seconds)
12:57:35 fr33domlover joins (~fr33domlo@towards.vision)
12:59:35 jjhoo joins (jahakala@user/jjhoo)
13:04:27 × EsoAlgo81 quits (~EsoAlgo@129.146.136.145) (Quit: Ping timeout (120 seconds))
13:04:52 × MironZ quits (~MironZ@nat-infra.ehlab.uk) (Quit: Ping timeout (120 seconds))
13:05:11 MironZ joins (~MironZ@nat-infra.ehlab.uk)
13:05:42 × finsternis quits (~X@23.226.237.192) (Ping timeout: 252 seconds)
13:06:24 finsternis joins (~X@23.226.237.192)
13:07:21 × esph quits (~weechat@user/esph) (Ping timeout: 252 seconds)
13:10:06 Inst_ joins (~Inst@120.244.192.156)
13:10:22 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
13:11:47 euleritian joins (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de)
13:12:04 EsoAlgo81 joins (~EsoAlgo@129.146.136.145)
13:12:50 × Inst quits (~Inst@120.244.192.156) (Ping timeout: 252 seconds)
13:13:03 m1dnight joins (~christoph@78-22-2-15.access.telenet.be)
13:13:25 × euleritian quits (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
13:13:44 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
13:14:36 × EsoAlgo81 quits (~EsoAlgo@129.146.136.145) (Client Quit)
13:16:46 fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
13:16:57 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
13:17:20 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
13:17:44 EsoAlgo81 joins (~EsoAlgo@129.146.136.145)
13:18:34 <albet70> how to update a filed in a record
13:20:01 esph joins (~weechat@user/esph)
13:21:25 × EsoAlgo81 quits (~EsoAlgo@129.146.136.145) (Client Quit)
13:21:46 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
13:23:10 <albet70> data Foo = Foo { a :: Foo, b :: Int, c :: String } | Bar deriving Show
13:23:14 <haskellbridge> 12<C​elestial> `record { field = updatedValue }`
13:23:27 <albet70> nf = Foo (Foo Bar 3 "hi") 9 "ok"
13:23:36 × m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1)
13:23:38 <albet70> Foo {a = Foo {a = Bar, b = 3, c = "hi"}, b = 9, c = "ok"}
13:23:38 <ski> > let t = Node {rootLabel = False,subForest = []} in t {rootLabel = True}
13:23:40 <lambdabot> Node {rootLabel = True, subForest = []}
13:23:51 m1dnight joins (~christoph@78-22-2-15.access.telenet.be)
13:23:56 <albet70> how I can update the inner a inside nf?
13:24:13 <albet70> change the Bar to something else?
13:25:10 <albet70> it's nested
13:25:11 <ski> nf { a = (a nf) {a = Foo {a = Bar,b = 15,c = "twelve"}}}
13:26:11 <ski> or use `lens'
13:26:21 EsoAlgo81 joins (~EsoAlgo@129.146.136.145)
13:28:01 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:33:10 <albet70> ok
13:33:37 Joao003 joins (~Joao003@190.108.99.222)
13:38:07 × alp__ quits (~alp@2001:861:e3d6:8f80:9e9a:65d5:880b:617e) (Ping timeout: 268 seconds)
13:41:20 <mauke> yeah, nested functional updates are the use case lenses were invented for
13:42:32 <dminuoso_> What I find very curious, is how the lens encoding just works out with the type system - and not just that - it mostly generates very efficient code.
13:44:02 <dminuoso_> In our SDN compiler we make heavy use of it to process, filter and manipulate some tens of thousands of records with very deep nesting. Some of it is 10-15 combinantors deep in - and the generated code is just very good.
13:44:37 <Rembane> That's really nice, which lens library are you using?
13:44:41 <dminuoso_> optics
13:45:50 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
13:46:05 × leungbk quits (~user@142-129-149-172.res.spectrum.com) (Ping timeout: 256 seconds)
13:46:25 euleritian joins (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de)
13:47:17 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:48:18 rosco joins (~rosco@175.136.152.56)
13:48:33 × Joao003 quits (~Joao003@190.108.99.222) (Read error: Connection reset by peer)
13:51:24 <albet70> is let-in the same let in do notaion? how to use let-in in do nation?
13:52:08 <dminuoso_> albet70: You can use let-in in do-notation if you want.
13:52:24 <dminuoso_> Do-notation also admits `let a = foo` without in
13:52:31 <dminuoso_> do { let x = 1; ... }
13:53:34 <mauke> do { let x = y; ... } is syntactic sugar for let x = y in do { ... }
13:53:59 <dminuoso_> mauke: Its a bit more complicated if you consider that the let ... can appear even inside of a do statement.
13:54:20 <mauke> that's just more desugaring from the left
13:54:54 <mauke> do { x <- y; ... } desugars to y >>= \x -> do { ... }
13:55:06 <mauke> do { y; ... } desugars to y >> do { ... }
13:55:14 <mauke> do { EXPR } desugars to EXPR
13:55:21 <mauke> I think that's the full set of rules
13:55:23 Joao003 joins (~Joao003@190.108.99.222)
13:55:54 <mauke> ok, not quite because of fail, but close enough
13:56:25 <mauke> > do { let x = 1; let y = 2; x + y }
13:56:25 <albet70> I need define a function inside a do notation and get function's return value to a variable, do { let v = f x where f = ... } is this syntax ok?
13:56:27 <lambdabot> <hint>:1:34: error: parse error on input ‘}’
13:56:36 <mauke> > do { let { x = 1 }; let { y = 2 }; x + y }
13:56:38 <lambdabot> 3
13:56:40 × euleritian quits (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
13:56:48 <Joao003> hi ´•ω•`
13:56:58 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
13:57:17 <mauke> albet70: I think so, assuming you get the indentation right
13:57:21 <mauke> or use { } everywhere
13:57:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:57:49 <albet70> or do { let v = let f = ... in f x }?
13:57:58 <mauke> that also works
13:58:09 <albet70> ok
13:58:29 <Joao003> mauke: I have a philosophy, and it is: use as least brackets as humanly readable
13:59:20 <mauke> you wouldn't like lisp
13:59:23 <haskellbridge> 14<m​aerwald> dminuoso_: tens of thousands of records?
13:59:33 <Joao003> mauke: I don't
13:59:38 <mauke> that's gotta be ... a record
13:59:58 <haskellbridge> 14<m​aerwald> What AST is this?
14:01:15 × m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Ping timeout: 256 seconds)
14:01:28 <dminuoso_> maerwald: We take a network description sourced from our DCIM/IPAM tool.
14:01:43 <ski> Joao003 : i'd add "use `$' as little as reasoable" to that
14:01:49 <dminuoso_> And because we have more than just a few switches and routers, it ends up being a lot.
14:01:59 <Joao003> ski: I do use $ when starting function chains
14:02:07 <ski> i'm sorry to hear
14:02:32 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:02:44 <Joao003> > (*4) . (+3) $ 2
14:02:45 <lambdabot> 20
14:02:48 <mauke> ZWEIG am AST, AST am BAUM, BAUM in der AU ...
14:03:31 ski 'd rather type `foo x y (bar z (...))' or `(foo x y . bar z) (...)' over `foo x y . bar z $ ...', and especially over `foo x y $ bar z $ ...'
14:03:58 <dminuoso_> ski: That "Im sorry to hear" response really made me smile. :)
14:04:10 <mauke> Joao003: ( (\x -> x * 4 + 12) 2 has fewer parens
14:04:28 <Joao003> You forgot one
14:04:39 <mauke> s/\(//
14:04:42 <Joao003> Yes
14:05:31 <Joao003> mauke: But at least my alternative is more understandable (and shorter) than that behemoth
14:05:48 <Joao003> And more functional too
14:05:54 <mauke> strong disagree
14:06:12 × rosco quits (~rosco@175.136.152.56) (Quit: Lost terminal)
14:06:22 <Joao003> More functional I mean by using more features of functional programming
14:06:37 ski isn't even sure what "functional" is supposed to mean, in this context
14:07:03 Joao003 heavily "bruh"s as they just described what they meant
14:07:51 <mauke> this is like that C++ thing where the more features you use, the more designeder your code is
14:07:53 <dminuoso_> "functional programming" is something that doesnt have a universally well accepted definition.
14:07:54 ski finds `$' usually ugly
14:08:31 Joao003 likes the $ symbol, so it's really a matter of taste
14:08:43 <mauke> so you always need to combine virtual inheritance and templates and operator overloading and conversion operators and custom allocators and exceptions
14:09:17 <ski> "if it's there, use it" ?
14:09:37 <Joao003> It's because I find the $ cooler, PERIOD.
14:10:43 <Joao003> (/_<)
14:11:06 <dminuoso_> Guess different people have different priorities. I worry about readability and maintainability. But if personal feelings of amazement are relevant to you, I guess that's okay.
14:11:35 <dminuoso_> Especially since it may be a reflection of how you use a given language.
14:11:45 <Joao003> Also I find less parentheses overall less cluttered and more readable.
14:12:02 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
14:12:40 euleritian joins (~euleritia@77.22.252.56)
14:13:00 <dminuoso_> Maybe what we really need is 3-dimensional code editors, where associativity is denoted in levels of height, such that if you navigate your code its easy to see how things associate.
14:13:29 ski usually tries to avoid redundant brackets, *and* avoid (although usually not even thinking of) `$'
14:13:52 <Joao003> dminuoso_: And a 3D language for it ´•ω•`
14:14:09 <mauke> Plankalkül++
14:14:33 <ski> (some nested nonredundant brackets not being anything to be afraid off .. when it can potentially start to become a problem is when you have multiple `)'s ending in the same place, their respective `('s being in previous lines)
14:15:09 <mauke> nil)))))))))
14:15:11 <ski> "associativity is denoted in levels of height" -- how ?
14:15:28 rovaughn joins (~rovaughn@066-065-097-119.res.spectrum.com)
14:16:08 <mauke> hah. multiple ) ending in the same place is exactly what $ solves
14:17:27 <ski> `(foo x y . bar z) (...)' works fine for that, too
14:17:52 <ski> (also `BlockArguments')
14:17:57 <haskellbridge> 14<m​aerwald> If people talk about "elegant" wrt Haskell or functional programming, it's usually a sign to walk away... far far away
14:18:35 <Joao003> Yes. But the $ is less cluttered than parentheses around both expressions... FOR ME. It is YOUR OPINION.
14:18:38 ski . o O ( "Do you align your code, in your dreams ?" )
14:18:44 <mauke> baby shark do do do do do do baby shark
14:18:44 <haskellbridge> 14<m​aerwald> Text is just a bad medium for code
14:18:53 <mauke> valid haskell code given suitable definition of baby and shark
14:18:55 ski nods to Joao003
14:20:03 Joao003 <( Let's talk about something more useful )
14:20:23 <ski> we could revert to optics
14:20:47 m1dnight joins (~christoph@78-22-2-15.access.telenet.be)
14:21:32 <Joao003> Fun fact: There are 614 people in this server, but most are nitwits who don't talk (and are probably bots)
14:21:36 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 252 seconds)
14:22:41 euleritian joins (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de)
14:23:00 <Joao003> mauke: baby shark do do do do do baby shark do do do do do baby shark do do do do do baby shark
14:23:26 <Rembane> ski: Do androids dream of aligned $?
14:24:02 × rovaughn quits (~rovaughn@066-065-097-119.res.spectrum.com) (Ping timeout: 260 seconds)
14:24:23 <Joao003> Rembane: whart
14:24:31 <Joao003> s/whart/what/
14:25:02 <Rembane> Joao003: Have you read, Do androids dream of electric sheep?
14:25:32 <Joao003> Rembane: n
14:25:35 <Joao003> Rembane: o
14:27:12 <Rembane> Joao003: Then that reference will make no sense to you. Which it didn't. It's good book, I recommend it.
14:27:21 <Joao003> Also you're all nerds🤓
14:27:37 <Rembane> Joao003: The movie Minority Report is also quite good, but a very different beast.
14:28:28 <Joao003> You RN:🤓☝️
14:32:39 target_i joins (~target_i@217.175.14.39)
14:37:11 <ski> Joao003 : eh, there's a lot more people on this server
14:37:23 <ski> (perhaps you meant "channel" ?)
14:37:35 <Joao003> yes
14:37:45 <ski> Rembane : i read a comic version of it
14:37:55 ski nods to Joao003
14:38:27 <ski> (also, thanks for the compliment)
14:38:42 <Joao003> (^_^)
14:38:48 <ski> (well, not "Minority Report"9
14:39:04 ski idly ponders condiments
14:39:16 waleee joins (~waleee@h-176-10-144-38.na.cust.bahnhof.se)
14:39:28 <Rembane> ski: Good stuff.
14:39:29 Joao003 . o O ( We should stop arguing over small things )
14:40:46 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
14:43:01 <Joao003> It irritates me that `fmap` only maps over the second component of a (,)
14:43:29 ec_ joins (~ec@gateway/tor-sasl/ec)
14:46:31 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:48:18 × m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Ping timeout: 260 seconds)
14:53:37 liamzy__ joins (~Inst@120.244.192.156)
14:53:45 × Inst_ quits (~Inst@120.244.192.156) (Read error: Connection reset by peer)
14:54:51 <ski> > first (^ 2) (5,7)
14:54:52 <lambdabot> (25,7)
14:55:15 <ski> > bimap (^ 2) (subtract 2) (5,7)
14:55:17 <lambdabot> (25,5)
14:55:54 son0p joins (~ff@181.136.122.143)
14:56:02 × not_reserved quits (~not_reser@154.16.157.99) (Quit: Client closed)
15:00:23 rovaughn joins (~alec@066-065-097-119.res.spectrum.com)
15:04:33 × alexherbo2 quits (~alexherbo@2a02-8440-3240-635d-855c-cf07-660d-fffe.rev.sfr.net) (Remote host closed the connection)
15:08:54 mosul joins (mosul@user/mosul)
15:09:56 × waleee quits (~waleee@h-176-10-144-38.na.cust.bahnhof.se) (Ping timeout: 245 seconds)
15:11:51 <__monty__> ski: Is there a `\f -> bimap f f`?
15:12:11 <ski> > join bimap (^ 2) (5,7)
15:12:11 <ncf> :t over each
15:12:12 <lambdabot> Each s t a b => (a -> b) -> s -> t
15:12:13 <lambdabot> (25,49)
15:12:39 ski . o O ( "Let's each stab the other." )
15:13:11 <ski> @quote getting.a.stab
15:13:12 <lambdabot> byorgey says: <edwardk> @type (^.) <lambdabot> s -> Getting a s t a b -> a <byorgey> I would not like to be getting a stab, thank you
15:13:25 × dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
15:13:42 not_reserved joins (~not_reser@154.16.157.88)
15:13:48 ht_ joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
15:15:06 dolio joins (~dolio@130.44.134.54)
15:16:10 × _ht quits (~Thunderbi@194.110.115.49) (Ping timeout: 276 seconds)
15:16:10 ht_ is now known as _ht
15:17:17 jargon joins (~jargon@32.sub-174-238-226.myvzw.com)
15:22:38 × dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
15:24:16 tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net)
15:25:01 rawles parts (sid630849@user/rawles) ()
15:26:12 dolio joins (~dolio@130.44.134.54)
15:28:07 <Joao003> BTW: how does Control.Lens work?
15:30:26 <ncf> what do you mean how does it work
15:30:49 <Joao003> how the f!@# does it work underneath the curtains
15:30:55 <mauke> raw, untamed magic
15:31:46 × araujo quits (~araujo@45.131.194.168) (Ping timeout: 276 seconds)
15:31:54 <mauke> and/or creative use of Applicative
15:31:59 <Joao003> like. pls spare me multiple headaches because i stumbled onto a codewars kata which f!@#ing asks me to implement Control.Lens
15:32:35 <mauke> all of it? or a carefully selected interface? :-)
15:32:54 <Joao003> the basics
15:33:10 billchenchina joins (~billchenc@103.152.35.21)
15:33:30 <mauke> so ... why not do that?
15:34:06 <Joao003> i don't understand how to f!@#ing implement view, over and set
15:34:31 <mauke> do your lenses need to be able to compose with (.)?
15:34:42 <Joao003> YES!
15:34:47 <mauke> yeah, that's the tricky part
15:35:22 <Joao003> link just so you can see what's up here: https://www.codewars.com/kata/5cd99b8af446b0000ed8e615/train/haskell (you may need to sign up)
15:35:43 <haskellbridge> 14<m​aerwald> Man the matrix bridge sucks
15:35:51 <haskellbridge> 14<m​aerwald> Awful stuff
15:36:15 <Joao003> maerwald: just download an irc client the
15:36:22 <Joao003> s/the/then/
15:36:26 harveypwca joins (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b)
15:36:27 <mauke> oh, it directly gives you the representation
15:36:31 <Joao003> yes
15:36:32 × billchenchina quits (~billchenc@103.152.35.21) (Client Quit)
15:36:47 <haskellbridge> 14<m​aerwald> All android IRC clients are TRASH
15:36:57 <mauke> Joao003: try https://www.youtube.com/watch?v=k-QwBL9Dia0
15:37:31 <Joao003> i'm too lazy to watch a 1-hour video
15:37:40 <haskellbridge> 14<m​aerwald> Oh man, I think I've seen that guy
15:37:51 <Joao003> try your best explaining
15:38:19 <Joao003> maerwald: If you think android IRC is trash, then just use your PC
15:38:34 <mauke> normally I'd agree, but I think SPJ is pretty entertaining and educational
15:38:37 <haskellbridge> 14<m​aerwald> Ok, but i can't bring my PC to the pub
15:38:38 <haskellbridge> 14<m​aerwald> What now
15:38:49 <[exa]> maerwald: folks here were pretty happy with the weechat-related one
15:39:06 <Joao003> maerwald: Don't go to the pub?
15:39:17 <haskellbridge> 14<m​aerwald> Lol dude
15:40:00 <[exa]> maerwald: https://github.com/ubergeek42/weechat-android
15:40:03 <yushyin> sure, weechat-android is fine. goguma (+ soju) seems also fine.
15:40:03 <mauke> (skip to minute 8 or so if you're already familiar with basic lenses)
15:40:31 <Joao003> mauke: of course f!@#ing not, that kata just randomly popped up
15:40:41 <haskellbridge> 14<m​aerwald> Probably a battery hog
15:42:12 <Joao003> mauke: can you skip some time and headaches for me by explaining it here
15:43:11 <mauke> no, because 1) I've never used lenses, and 2) someone's already done it, so why repeat the effort?
15:43:18 <[exa]> Joao003: short description: lens is a function unwraps a small value from the big one and then rewraps it. The problem is that to implement view, over and set, you need the "rewrapping" path to do something different everytime. So the idea of lenses is that in the middle (before rewrapping) you wrap the lens in a Functor (which is parametrizable, anyone can choose any), and apply the rewrapping through the
15:43:24 <[exa]> functor. And the functor can choose what to do with the rewrapping.
15:43:38 <yushyin> maerwald: i use weechat-android daily and it's fine. but if you want google services push support goguma + soju is better (see https://git.sr.ht/~emersion/goguma/tree/HEAD/item/doc/notifications.md )
15:44:12 <[exa]> Joao003: in turn, the Identity functor "just rewraps" and gives you a `set` (or almost equivalently `over`), Const "discards the rewrapping" and gives you a `get`, and there are some other functors that you can smash in
15:44:47 <haskellbridge> 14<m​aerwald> goguma sounds like a japanese cocktail
15:44:55 <Joao003> [exa]: how do i use Const then
15:45:23 <haskellbridge> 14<m​aerwald> My gf will ask why I'm having weird apps on my phone
15:45:50 × euleritian quits (~euleritia@dynamic-046-114-201-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
15:46:09 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
15:46:10 <Joao003> maerwald: lol XD
15:46:11 michalz joins (~michalz@185.246.207.218)
15:46:40 <yushyin> maerwald: the downside is that you have to set up a soju instance ... so yeah, not all perfect, but this is the best suggestion i can give you
15:46:54 <[exa]> > getConst $ fmap (+123) $ Const 5 -- Joao003, nothing happens to the 5 because it's constant
15:46:56 <lambdabot> 5
15:47:15 <haskellbridge> 14<m​aerwald> I'm comfortable with soju
15:47:30 <Joao003> [exa]: Yes, Const a is the functor, not Const
15:47:32 <haskellbridge> 14<m​aerwald> Can drink it all day
15:47:59 <[exa]> ah you mean, how you use it with the lenses?
15:48:05 <Joao003> YES
15:49:33 <[exa]> you literally throw it into the lens so that it's the thing that "executes on the end of unwrapping"
15:49:57 <[exa]> the usual definition is: `view somelens = getConst . somelens Const`
15:50:35 <Joao003> THX [exa]! ^_^
15:51:07 <[exa]> NOW if this looks confusing, the easiest way to wrap your head around it is to just add the arguments so that you can see how the data goes through the `somelens`
15:52:15 m1dnight joins (~christoph@78-22-2-15.access.telenet.be)
15:52:30 <[exa]> you get `view somelens obj = getConst $ somelens Const obj`, and the general (rough) type of lenses is `somelens :: Functor f => (small -> f small) -> big -> f big`
15:53:50 <[exa]> notice the 2 arguments in `somelens` type: first the "final wrapper" which smashes in the functor (that's our `Const`) and then the `big` thing (which is our `obj`). In turn you get the wrapped `big` object (which may or may not actually contain something rewrapped, depending on what functor we smashed in)
15:54:46 <[exa]> many people also get confused by how Const works -- it keeps something, but also "holds" the type of the functor argument, kinda as a proxy (BUT not the value!).
15:55:22 <[exa]> :t (++[1,2,3]) . Just . Just <$> Const 5
15:55:23 <lambdabot> error:
15:55:23 <lambdabot> • Couldn't match type ‘Maybe (Maybe a0)’ with ‘[a1]’
15:55:23 <lambdabot> Expected type: a0 -> [a1]
15:55:35 <[exa]> oh wait :D
15:55:40 <[exa]> :t (:[1,2,3]) . Just . Just <$> Const 5
15:55:41 <lambdabot> (Num a1, Num (Maybe (Maybe a2))) => Const a1 [Maybe (Maybe a2)]
15:56:17 × m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Client Quit)
15:56:35 × Joao003 quits (~Joao003@190.108.99.222) (Quit: Bye!)
15:56:38 <[exa]> it still holds the `a1` number, but tracks the type of what would normally be rewrapped (with lens, this finally reconstructs the `big` type into a `Const small big`, so the type of the `f big` on the end matches the expectation)
15:56:47 <[exa]> aaaaaaaaand they quit. :]
15:57:45 m1dnight joins (~christoph@78-22-2-15.access.telenet.be)
16:05:41 alexherbo2 joins (~alexherbo@2a02-8440-3240-635d-855c-cf07-660d-fffe.rev.sfr.net)
16:05:57 liamzy__ is now known as Inst
16:16:31 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:17:17 × nullie quits (~nullie@nuremberg.nullie.name) (Quit: WeeChat 4.1.1)
16:17:35 nullie joins (~nullie@2a01:4f8:c2c:6177::1)
16:17:48 × nullie quits (~nullie@2a01:4f8:c2c:6177::1) (Client Quit)
16:18:17 nullie joins (~nullie@2a01:4f8:c2c:6177::1)
16:18:19 ec joins (~ec@gateway/tor-sasl/ec)
16:19:16 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
16:20:01 × nullie quits (~nullie@2a01:4f8:c2c:6177::1) (Client Quit)
16:20:20 nullie joins (~nullie@nuremberg.nullie.name)
16:22:41 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
16:23:03 ec joins (~ec@gateway/tor-sasl/ec)
16:24:37 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
16:28:53 × nullie quits (~nullie@nuremberg.nullie.name) (Quit: WeeChat 4.1.1)
16:29:08 nullie joins (~nullie@2a01:4f8:c2c:6177::1)
16:33:19 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:33:26 × alexherbo2 quits (~alexherbo@2a02-8440-3240-635d-855c-cf07-660d-fffe.rev.sfr.net) (Ping timeout: 250 seconds)
16:36:08 ec joins (~ec@gateway/tor-sasl/ec)
16:38:46 igemnace joins (~ian@user/igemnace)
16:45:45 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:46:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
16:46:55 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
16:48:43 alp__ joins (~alp@2001:861:e3d6:8f80:908c:c2d9:53f8:9c71)
16:53:19 billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
16:53:26 × _xor quits (~xor@72.49.195.41) (Quit: Ping timeout (120 seconds))
16:54:06 _xor joins (~xor@72.49.195.41)
16:57:24 × billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
17:11:11 × AlexZenon quits (~alzenon@178.34.162.199) (Ping timeout: 245 seconds)
17:14:24 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
17:20:05 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
17:21:27 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 252 seconds)
17:22:08 alexherbo2 joins (~alexherbo@2a02-8440-3240-6ee4-1850-c789-5b7f-17c4.rev.sfr.net)
17:23:50 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
17:24:53 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:cc52:bab0:d69e:7e9e) (Remote host closed the connection)
17:25:12 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
17:25:48 AlexZenon joins (~alzenon@178.34.162.199)
17:30:07 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
17:32:19 × alexherbo2 quits (~alexherbo@2a02-8440-3240-6ee4-1850-c789-5b7f-17c4.rev.sfr.net) (Remote host closed the connection)
17:37:50 × todi quits (~todi@p5dca55c4.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
17:48:06 alexherbo2 joins (~alexherbo@2a02-8440-3141-087f-5955-7f2d-6267-fc6f.rev.sfr.net)
17:53:44 × harveypwca quits (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving)
17:55:51 × fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Ping timeout: 256 seconds)
17:56:17 mikess joins (~sam@user/mikess)
17:57:02 × igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.1.2)
17:59:03 Joao003 joins (~Joao003@190.108.99.222)
18:00:48 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
18:01:12 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
18:04:58 × alp__ quits (~alp@2001:861:e3d6:8f80:908c:c2d9:53f8:9c71) (Ping timeout: 256 seconds)
18:10:38 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
18:21:08 <Inst> did people really drop command line file management for gui file management?
18:25:00 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
18:25:45 × p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
18:27:01 p3n joins (~p3n@217.198.124.246)
18:29:55 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
18:35:01 <haskellbridge> 12<C​elestial> in general or ...?
18:36:53 × _xor quits (~xor@72.49.195.41) (Read error: Connection reset by peer)
18:37:50 _xor joins (~xor@72.49.195.41)
18:38:00 <nullie> both ways are useful
18:38:02 <idgaen> Inst: not anyway. I only use command line for file management. I dislike gui file managers.
18:38:12 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
18:40:42 <Inst> in general, i guess, someone said something to that effect in ##programming
18:41:01 <Inst> because I don't want to use rm, and am wondering what alternative is standard, i.e, safe-rm (npm) or rip (rust)
18:45:00 × alexherbo2 quits (~alexherbo@2a02-8440-3141-087f-5955-7f2d-6267-fc6f.rev.sfr.net) (Remote host closed the connection)
18:46:49 dunric joins (~dunric@host-46-23-50-45.maxtel.cz)
18:47:08 dunric parts (~dunric@host-46-23-50-45.maxtel.cz) ()
18:47:45 <idgaen> +me
18:48:31 <monochrom> Wildcards like "*.c" are really helpful, and I don't understand why the gui people don't incorporate it, as though they took the issue as a tribal war therefore they must unconditionally irrationally denounce everything the cmdline people do.
18:48:33 <duncan> You can alias rm to something which taps into the system file manager, i.e. ~/.Trashes
18:49:12 <monochrom> And that explains a large chunk of the cli-gui divide. The gap is largely artificial.
18:49:38 <[exa]> Inst: there's literally a single system call that you can use to remove files, and `rm` pretty much just does that systemcall for you from commandline (minus the usual syscall hassle). What's wrong with it?
18:49:41 <duncan> on the Mac there is a program called "trash" which does it
18:50:09 <monochrom> Speaking of which, some of you (and I) still remember that decades ago, search engines supported boolean expressions. I wonder why they are now banned.
18:50:22 <Joao003> monochrom: Windows Explorer can search with wildcards
18:50:56 <monochrom> The party line is "boolean expressions are not broadly known" but that's a non-sequiter.
18:50:58 <[exa]> monochrom: too complex to inject ads there
18:51:20 <[exa]> i.e. someone would need to explain boolean expressions to advertisers
18:51:25 <nullie> duncan: I think indices used do not support arbitrary boolean operations
18:51:55 <[exa]> nullie: they do quite well actually (check out e.g. elasticsearch)
18:52:02 <monochrom> Generally there are various ways humanity invents false dichotomies and gaps and divides for no reason.
18:52:40 <Inst> [exa] issue is that it's easy to screw up
18:52:45 <nullie> [exa]: I don't think that elasticsearch use such complex ranking mechanism
18:52:51 <Inst> i'm probably going to switch from rm -rf to rm -ri
18:53:18 <[exa]> nullie: ah, ok w.r.t. the magical ranking mechanism of google the expressions might be a problem, that's true
18:53:24 <[exa]> good point
18:53:32 <[exa]> Inst: have backups?
18:53:52 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
18:53:52 <monochrom> The "gio trash" command exists. :)
18:53:54 <mauke> why would I need backups when I have .trash
18:55:15 <monochrom> I wouldn't debate using rm vs using gio trash etc. Each of us have a different risk model. You use what suits you, I use mine.
18:55:19 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
18:55:35 <monochrom> But it is important to make sure both are available so everyone can choose.
18:55:44 pastly joins (~pastly@gateway/tor-sasl/pastly)
18:56:09 <int-e> . o O ( s/trash/archive/g )
18:56:32 <monochrom> And to beat the dead horse, like I said, there is no need to equate "rm = cli" and "trashcan = gui".
18:56:44 <Joao003> Isn't this #haskell
18:56:47 <int-e> (if you rely on files to still be there when you need them, that's what the "trash" becomes)
18:56:55 <EvanR> why do I need trash or backups when I can just decompress white noise to get whatever I want back
18:56:57 <Inst> ah so gio trash is built-in
18:56:59 <Inst> sorry about that
18:57:37 <int-e> EvanR: because filtering is ridiculously time consuming, and soon you'll realize that you're consuming more than the available energy in the universe in the process
18:57:59 <monochrom> My ideal would be: file system = version control system.
18:58:00 <EvanR> ok, decrypt white noise
18:58:09 <EvanR> you just need a suitable key
18:58:14 <monochrom> which was actually what VAX did.
18:58:29 <int-e> but how do you free up space
18:58:57 <EvanR> how much space does a white noise source take up
18:59:03 <EvanR> just use that for everything
18:59:21 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
18:59:35 <EvanR> answer zero because it's purely theoretical
18:59:49 <monochrom> int-e: Hey it's consistent to your s/trash/archive/g ! Let's not talk about freeing up space... >:)
19:00:08 euleritian joins (~euleritia@dynamic-046-114-203-141.46.114.pool.telefonica.de)
19:00:25 <int-e> monochrom: spoken like somebody whose partitions are not permanently 90+% full.
19:00:38 <mauke> that's why perldoc perlport still says: Don't assume that a single "unlink" completely gets rid of the file: some filesystems (most notably the ones in VMS) have versioned filesystems, and "unlink" removes only the most recent one (it doesn't remove all the versions because by default the native tools on those platforms remove just the most recent version, too).
19:00:54 <EvanR> more realistically the fact that your file used to be there and its contents is encoded on the physical state of the universe, so there's your backup
19:01:08 <mauke> and it recommends `1 while unlink "file";` for portably deleting a file
19:01:13 <EvanR> there's a no deleting theorem to go with the no cloning theorem
19:01:15 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
19:01:36 <int-e> when partitions were way smaller I grepped the raw device for what I remembered of files I deleted by accident...
19:01:55 <int-e> (smaller and not relying on dropping whole blocks as we do in the SSD world)
19:03:40 × euleritian quits (~euleritia@dynamic-046-114-203-141.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
19:03:57 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
19:05:56 juim10 joins (~juim10@2a09:5e41:678:640:85de:b6de:ee2a:5df1)
19:06:19 <nullie> monochrom: I think zfs and btrfs do this
19:10:02 <geekosaur> clearcase
19:12:37 <darkling> nullie: Not in a reliable or user-accessible manner. The "old copies" are removed/unlinked on the next transaction commit.
19:13:02 <Joao003> ISN'T THIS #haskell
19:13:05 <darkling> The logging filesystems will keep old versions, though. (f2fs, IIRC)
19:13:51 <EvanR> let's beat it it's the topic police
19:13:59 <monochrom> Yeah let's talk about binary-search-tree delete ("delete") in Haskell instead >:)
19:14:18 <EvanR> > delete 7 [1..10]
19:14:19 <lambdabot> [1,2,3,4,5,6,8,9,10]
19:14:44 <monochrom> the salient feature being it's a version control system so the original tree still exists
19:15:56 <monochrom> > let x = [1..10] in let y = delete 7 [1..10] in x
19:15:58 <lambdabot> [1,2,3,4,5,6,7,8,9,10]
19:16:38 <int-e> monochrom: that's cheating; due to lazy evaluation, the 7 is never deleted
19:16:46 <EvanR> lol
19:16:48 newsham joins (~newsham@2603-800c-2c01-6825-20cd-e102-9eaf-ced8.res6.spectrum.com)
19:16:51 <monochrom> heh
19:17:05 × newsham quits (~newsham@2603-800c-2c01-6825-20cd-e102-9eaf-ced8.res6.spectrum.com) (Client Quit)
19:17:42 <EvanR> actually deleting or inserting things into a linked list other than at the beginning seems so 1960s moon mission tech at this point
19:18:02 <EvanR> yes someone proved you can do it but it sounds crazy
19:18:41 <int-e> so you're saying it's rocket science?
19:19:36 <EvanR> if you introduce concurrency then it's a fair comparison
19:20:36 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
19:22:26 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 252 seconds)
19:24:10 <monochrom> Oh it is rocket science (even without concurrency complications) in the eyes of today's 1st-year students.
19:24:31 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
19:27:51 × robertm quits (robertm@lattice.rojoma.com) (Quit: WeeChat 3.8)
19:28:31 <idgaen> Joao003: sometimes offtopic is ok, especialy when there are not haskell question, I feel.
19:29:09 robertm joins (robertm@lattice.rojoma.com)
19:29:45 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
19:33:11 <monochrom> You won't like this but a channel is defined by community consensus not logical rules.
19:33:24 <nullie> > let x = [1..10] in let y = delete 7 [1..10] in (y, x)
19:33:26 <lambdabot> ([1,2,3,4,5,6,8,9,10],[1,2,3,4,5,6,7,8,9,10])
19:35:59 azimut joins (~azimut@gateway/tor-sasl/azimut)
19:37:06 Inst_ joins (~Inst@120.244.192.109)
19:37:34 × mikess quits (~sam@user/mikess) (Quit: leaving)
19:40:11 × Inst quits (~Inst@120.244.192.156) (Ping timeout: 264 seconds)
19:40:11 <EvanR> > let x = [1..10] in let y = delete 7 [1..10] in y `seq` x -- I guess doesn't demonstrate anything depending on who you ask
19:40:12 <lambdabot> [1,2,3,4,5,6,7,8,9,10]
19:41:14 <EvanR> rnf y `seq` x
19:42:49 h2t joins (~h2t@user/h2t)
19:45:03 <monochrom> Lazy evaluation: Evalution depends on who's asking. Lazy semantics: Meaning depends on who's asking. >:)
19:52:12 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:52:27 × madnight_ quits (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
19:54:11 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
19:57:17 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff)
20:02:24 alp__ joins (~alp@2001:861:e3d6:8f80:70a5:2518:c61b:a3f3)
20:02:41 × p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
20:09:23 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 268 seconds)
20:17:13 todi joins (~todi@p5dca55c4.dip0.t-ipconnect.de)
20:18:50 fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
20:21:19 lottaquestions joins (~nick@node-1w7jr9urnhmtoqu922t90hvvl.ipv6.telus.net)
20:21:43 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
20:26:07 × jjhoo quits (jahakala@user/jjhoo) (Ping timeout: 246 seconds)
20:26:10 × jargon quits (~jargon@32.sub-174-238-226.myvzw.com) (Read error: Connection reset by peer)
20:27:08 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
20:32:17 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
20:34:29 × trev quits (~trev@user/trev) (Quit: trev)
20:40:29 × fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
20:41:07 mechap joins (~mechap@user/mechap)
20:41:57 jjhoo joins (~jahakala@user/jjhoo)
20:51:39 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
20:51:59 × rvalue quits (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
20:53:31 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff) (Remote host closed the connection)
20:59:02 × alp__ quits (~alp@2001:861:e3d6:8f80:70a5:2518:c61b:a3f3) (Ping timeout: 268 seconds)
21:08:43 mikess joins (~sam@user/mikess)
21:13:43 <Joao003> I handmade lenses ^_^ https://play.haskell.org/saved/gHqpuT2V
21:13:47 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 264 seconds)
21:15:12 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
21:15:15 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff)
21:16:54 × not_reserved quits (~not_reser@154.16.157.88) (Quit: Client closed)
21:18:21 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
21:19:33 <haskellbridge> 12<C​elestial> the "stab" in the lens signature always seems so threatening
21:22:17 <Joao003> Celestial: lol
21:23:40 Sgeo joins (~Sgeo@user/sgeo)
21:29:16 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
21:30:11 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
21:34:26 p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
21:35:25 jargon joins (~jargon@54.sub-174-238-226.myvzw.com)
21:36:11 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff) (Remote host closed the connection)
21:41:24 Square joins (~Square@user/square)
21:46:58 × lottaquestions quits (~nick@node-1w7jr9urnhmtoqu922t90hvvl.ipv6.telus.net) (Remote host closed the connection)
21:51:48 <Joao003> What is the difference between data and newtype?
21:52:18 potatosalad joins (~potatosal@201.17.66.242)
21:52:40 leungbk joins (~user@142-129-149-172.res.spectrum.com)
21:56:15 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds)
21:56:22 akegalj joins (~akegalj@186-160.dsl.iskon.hr)
21:59:28 alexherbo2 joins (~alexherbo@2a02-8440-3340-83ed-0031-2a2f-e366-94f0.rev.sfr.net)
22:00:19 × potatosalad quits (~potatosal@201.17.66.242) (Quit: Connection closed)
22:05:48 <ski> (a) `newtype' only allows a single data constructor, with a single component; (b) that constructor is strict, but matching on it is a no-op, meaning that it effectively disappears at run-time; (c) therefore `newtype' is like `type', apart from that you have to explicitly go from representation type to type abbreviation (and back); and (d) so a `newtype' can be recursive, while a `type' synonym can't
22:08:00 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
22:08:38 <ski> use a `newtype' when you either want to hide the representation type; or when you want to attach a different type class instance
22:08:56 <ski> (or when you don't want to introduce extra bottoms)
22:09:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:12:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff)
22:17:21 × leungbk quits (~user@142-129-149-172.res.spectrum.com) (Ping timeout: 252 seconds)
22:34:07 mmhat joins (~mmh@p200300f1c702cd6eee086bfffe095315.dip0.t-ipconnect.de)
22:37:32 <Joao003> Do you use fmap or <$>?
22:37:40 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
22:38:26 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
22:39:38 <Joao003> Proving my earlier views can be composed with (.): https://play.haskell.org/saved/qPUSampH
22:39:46 <Joao003> s/views/lenses/
22:39:59 × aruns quits (~aruns@user/aruns) (Ping timeout: 260 seconds)
22:44:48 <EvanR> >Do you use fmap or <$>
22:44:50 <EvanR> yes
22:45:51 <Joao003> lol
22:45:57 <Joao003> But which do you prefer?
22:46:29 <EvanR> I use <$> with <*> chains
22:46:41 <Joao003> What does the <*> chain do?
22:46:41 <EvanR> otherwise I don't see the point
22:47:00 <Rembane> > (+) <$> Just 7 <*> Just 8
22:47:01 <lambdabot> Just 15
22:47:06 <Rembane> For instanc e
22:47:08 <Joao003> Oh
22:47:22 <EvanR> applicative programming
22:47:27 <Joao003> > (==) <$> Just 1 <*> Just 1
22:47:29 <lambdabot> Just True
22:47:45 <Joao003> > (==) <$> Just 1 <*> Nothing
22:47:46 <lambdabot> Nothing
22:47:58 <EvanR> you could have written pure (==) <*> Just 1 <*> Just 1, or pure f <*> x <*> y <*> z
22:48:13 <EvanR> which is equivalent to start with <$> and dropping the pure
22:48:19 <yushyin> if i need it infix i use <$>, if not i use fmap.
22:48:21 <Joao003> > (==) <*> Just 1 <*> Just 1
22:48:23 <lambdabot> error:
22:48:23 <lambdabot> • Couldn't match expected type ‘Maybe (a1 -> a2 -> b)’
22:48:23 <lambdabot> with actual type ‘a0 -> a0 -> Bool’
22:48:31 <Joao003> > pure (==) <*> Just 1 <*> Just 1
22:48:32 <lambdabot> Just True
22:48:44 <Joao003> > Just (==) <*> Just 1 <*> Just 1
22:48:45 <lambdabot> Just True
22:48:59 <Joao003> > Nothing <*> Just 1 <*> Just 1
22:49:00 <lambdabot> Nothing
22:50:18 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff) (Remote host closed the connection)
22:50:34 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ec86:c151:5ba6:29ff)
22:50:59 <EvanR> Employee <$> pure i <*> getName i <*> getSalary i <*> getSSN i
22:53:25 × target_i quits (~target_i@217.175.14.39) (Quit: leaving)
23:06:15 × Joao003 quits (~Joao003@190.108.99.222) (Quit: Bye!)
23:07:40 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
23:11:21 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:18:06 × michalz quits (~michalz@185.246.207.218) (Quit: ZNC 1.8.2 - https://znc.in)
23:19:47 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Remote host closed the connection)
23:24:49 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
23:36:40 <monochrom> Theoretically, I am more inclined to "pure f <*> x <*> y" because it's more uniformly "<*>". In practice, I don't always do that, I am not a weirdo. :)
23:37:02 × acidjnk quits (~acidjnk@p200300d6e72b93746955d227447c985a.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
23:38:22 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:40:58 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:52:20 alp__ joins (~alp@2001:861:e3d6:8f80:955:af0c:9e0a:aae)
23:58:12 azimut joins (~azimut@gateway/tor-sasl/azimut)

All times are in UTC on 2023-12-16.