Home liberachat/#haskell: Logs Calendar

Logs on 2021-09-13 (liberachat/#haskell)

00:04:02 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd) (Remote host closed the connection)
00:05:57 hyiltiz joins (~quassel@31.220.5.250)
00:08:23 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd)
00:12:26 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
00:12:39 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
00:12:39 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Client Quit)
00:12:47 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
00:19:25 × pbrisbin quits (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) (Ping timeout: 252 seconds)
00:21:09 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 265 seconds)
00:21:35 × euandreh quits (~euandreh@2804:14c:33:9fe5:293c:729f:ef0:fde4) (Ping timeout: 260 seconds)
00:26:23 × alx741 quits (~alx741@181.196.69.212) (Quit: alx741)
00:27:42 roboguy_ joins (~roboguy_@cpe-98-156-4-161.kc.res.rr.com)
00:33:16 daylily joins (~daylily@104.225.146.73.16clouds.com)
00:34:10 × retro_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
00:37:51 <dsal> ldlework: monoids seem really dumb until you realize how much of programming is just monoids.
00:37:58 <dsal> The next big chunk is functors.
00:38:41 Erutuon joins (~Erutuon@user/erutuon)
00:40:25 <Axman6> % let i = Identity in ("Hello", i "Am", Just "a complex", ["data", "structure"]) & partsOf template %~ (reverse @Char) -- dsal weird stuff you say?
00:40:25 <yahb> Axman6: ("erutc",Identity "ur",Just "tsatadxel",["pmoc"," amAolleH"])
00:40:35 <Axman6> % let i = Identity in ("Hello", i "Am", Just "a complex", ["data", "structure"]) & partsOf template %~ (reverse @[Char])
00:40:35 <yahb> Axman6: ("structure",Identity "data",Just "a complex",["Am","Hello"])
00:41:24 <dsal> Yeah… though I've used `deep` a couple of times. for good.
00:44:10 <Axman6> ldlework: the 5 second summary of Alternativ is: Applicative lets you sau do this AND this, where as Alternative lets you say do this Or if it failed do that
00:44:26 <Axman6> > (,) <$> Just 1 <*> Just "Hello"
00:44:27 <lambdabot> Just (1,"Hello")
00:44:32 <Axman6> > (,) <$> Just 1 <*> Nothing
00:44:33 <lambdabot> Nothing
00:44:44 <Axman6> > Just 1 <|> Just 2
00:44:45 <lambdabot> Just 1
00:44:51 <Axman6> > Nothing <|> Just 2
00:44:52 <lambdabot> Just 2
00:45:13 <Axman6> > [1,2,3] <|> [4,5,6] -- possibly confusing at first
00:45:14 <lambdabot> [1,2,3,4,5,6]
00:46:52 retroid_ joins (~retro@176.255.22.194)
00:47:42 no-n joins (~ed@101.53.218.157)
00:49:11 × daylily quits (~daylily@104.225.146.73.16clouds.com) (Remote host closed the connection)
00:50:17 × normsaa quits (~normsaa@101.175.64.73) (Quit: Client closed)
00:50:46 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
00:51:57 hyiltiz joins (~quassel@31.220.5.250)
00:55:19 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
01:00:00 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1)
01:02:22 daylily joins (~daylily@104.225.146.73.16clouds.com)
01:08:02 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
01:09:02 hyiltiz joins (~quassel@31.220.5.250)
01:09:29 × tdsltl^ quits (~tdsltl@68.101.54.227) (Remote host closed the connection)
01:12:55 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:14:02 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:14:58 × jespada quits (~jespada@90.254.245.194) (Ping timeout: 252 seconds)
01:16:11 <dsal> I've used `asum` for "I have a collection of actions that might blow up and throw exceptions or something, but I'd really like the value of the first one that doesn't."
01:16:22 <dsal> :t asum
01:16:22 <lambdabot> (Foldable t, Alternative f) => t (f a) -> f a
01:16:38 <dsal> I feel like that's a bit of a sketchy use of `asum`, but it's convenient.
01:17:53 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
01:18:06 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
01:18:07 nctcf^ joins (~nctcf@68.101.54.227)
01:18:26 jespada joins (~jespada@90.254.245.194)
01:18:43 × xff0x quits (~xff0x@2001:1a81:5374:7800:9550:4329:f93b:bad7) (Ping timeout: 252 seconds)
01:20:08 euandreh joins (~euandreh@2804:14c:33:9fe5:465d:5cb1:ddd:5058)
01:20:43 xff0x joins (~xff0x@2001:1a81:53ae:3300:dc85:5fb:77a4:62d3)
01:24:28 × daylily quits (~daylily@104.225.146.73.16clouds.com) (Remote host closed the connection)
01:24:40 daylily joins (~daylily@104.225.146.73.16clouds.com)
01:28:55 × daylily quits (~daylily@104.225.146.73.16clouds.com) (Remote host closed the connection)
01:29:16 daylily joins (~daylily@104.225.146.73.16clouds.com)
01:29:35 dajoer joins (~david@user/gvx)
01:29:51 × thyriaen quits (~thyriaen@dynamic-089-012-060-128.89.12.pool.telefonica.de) (Remote host closed the connection)
01:33:45 no-n parts (~ed@101.53.218.157) (WeeChat 2.8)
01:36:58 × daylily quits (~daylily@104.225.146.73.16clouds.com) (Ping timeout: 252 seconds)
01:37:42 lavaman joins (~lavaman@98.38.249.169)
01:38:00 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
01:41:55 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
01:42:21 hyiltiz joins (~quassel@31.220.5.250)
01:43:20 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
01:43:46 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
01:58:12 favonia joins (~favonia@user/favonia)
02:01:19 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
02:03:13 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
02:03:28 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
02:04:47 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
02:06:35 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 260 seconds)
02:06:35 × euandreh quits (~euandreh@2804:14c:33:9fe5:465d:5cb1:ddd:5058) (Ping timeout: 260 seconds)
02:08:54 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
02:11:21 × td_ quits (~td@muedsl-82-207-238-026.citykom.de) (Ping timeout: 265 seconds)
02:13:11 td_ joins (~td@94.134.91.246)
02:16:08 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
02:18:24 lavaman joins (~lavaman@98.38.249.169)
02:19:04 sneedsfeed joins (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com)
02:20:14 <sneedsfeed> I have this function "strIsIn s1 s2 = (>0) (on count pack s1 s2)" that tells if a string is contained in another string. And its just kind of bothering me that I can't figure out how to do it fully as a composition. Anyone have any ideas how I can take the s1 and s2 out and just make it a simple composition?
02:20:21 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
02:21:03 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
02:21:16 parafactual joins (~celeste@2600:8803:9403:b600::b6f)
02:22:49 × parafactual quits (~celeste@2600:8803:9403:b600::b6f) (Quit: Leaving)
02:24:39 <awpr> > let (.:) = (.) . (.)
02:24:40 <lambdabot> <no location info>: error:
02:24:40 <lambdabot> not an expression: ‘let (.:) = (.) . (.)’
02:25:02 <awpr> @let (.:) = (.) . (.)
02:25:03 <lambdabot> Defined.
02:25:08 __celeste joins (~celeste@2600:8803:9403:b600::b6f)
02:25:09 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd) (Remote host closed the connection)
02:25:13 <awpr> :t (>0) .: on count pack
02:25:14 <lambdabot> error:
02:25:14 <lambdabot> • Variable not in scope: count :: b0 -> b0 -> a0
02:25:14 <lambdabot> • Perhaps you meant one of these:
02:27:25 × benin03693230 quits (~benin@183.82.24.227) (Ping timeout: 252 seconds)
02:30:19 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
02:33:02 <sneedsfeed> its so hard to tell with haskell when i'm being dumb and when the problem is actually hard
02:33:23 justsomeguy joins (~justsomeg@user/justsomeguy)
02:33:24 <sneedsfeed> I really dont know which one of those this is.
02:34:36 <awpr> that `.:` operator is a relatively common trick for making point-free definitions, but it's definitely not obvious if you haven't seen it before
02:37:34 <c_wraith> No one really is interested in putting it in base because... well... the standard position is that encouraging too many things to be done point-free is bad. liftA2 might even be going too far
02:39:19 <sneedsfeed> what do you mean by point free?
02:39:52 <awpr> just a term for exactly the thing you were trying to do: get rid of variable names and write functions by composition
02:47:23 daylily joins (~daylily@104.225.146.73.16clouds.com)
02:48:35 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
02:48:40 <shachaf> I certainly wouldn't encourage people to use (.:).
02:49:43 <sneedsfeed> interesting. so if i'm inlining it just just a lambda would be more advised?
02:49:46 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd)
02:49:58 × roboguy_ quits (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) (Remote host closed the connection)
02:51:24 <shachaf> A lambda is simple and readable.
02:52:20 × __celeste quits (~celeste@2600:8803:9403:b600::b6f) (Quit: Leaving)
02:53:07 × ozzymcduff quits (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection)
02:53:53 × daylily quits (~daylily@104.225.146.73.16clouds.com) (Ping timeout: 265 seconds)
02:54:47 __celeste joins (~celeste@2600:8803:9403:b600::b6f)
02:54:58 ozzymcduff joins (~mathieu@81-234-151-21-no94.tbcn.telia.com)
02:55:40 roboguy_ joins (~roboguy_@cpe-98-156-4-161.kc.res.rr.com)
02:56:53 × roboguy_ quits (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) (Remote host closed the connection)
03:00:00 × Taneb quits (~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.)
03:00:10 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds)
03:00:36 roboguy_ joins (~roboguy_@cpe-98-156-4-161.kc.res.rr.com)
03:01:07 Taneb joins (~Taneb@runciman.hacksoc.org)
03:01:07 × Cale quits (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
03:01:59 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:03:34 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
03:03:56 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
03:04:07 <dsal> sneedsfeed: I'm kind of dumb right now, but isn't that `strIsIn s1 s2 = on count pack s1 s2 > 0` which seems a bit more readable.
03:04:54 × roboguy_ quits (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) (Ping timeout: 260 seconds)
03:04:56 <awpr> also I think `on` is designed to be used in backquotes so the argument order makes sense: "count `on` pack"
03:05:17 <dsal> :t isInfixOf
03:05:17 <sneedsfeed> yea I was so hung up on making it pointfree that when I gave up and added the variables back in I didnt really think about optimizing that
03:05:18 <lambdabot> Eq a => [a] -> [a] -> Bool
03:05:23 <dsal> the description sounds like that ^
03:05:46 <dsal> @src isInfixOf
03:05:46 <lambdabot> isInfixOf needle haystack = any (isPrefixOf needle) (tails haystack)
03:06:11 <dsal> @pl \needle haystack -> any (isPrefixOf needle) (tails haystack)
03:06:11 <lambdabot> (. tails) . any . isPrefixOf
03:06:21 <dsal> There. Perfectly readable.
03:06:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
03:08:51 falafel joins (~falafel@2603-8000-d801-2d68-1d6d-bf72-eba2-a20e.res6.spectrum.com)
03:09:15 pony joins (~ed@101.53.218.157)
03:09:48 falafel_ joins (~falafel@2603-8000-d801-2d68-d829-f87a-f631-a582.res6.spectrum.com)
03:10:20 Cale joins (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com)
03:11:39 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd) (Remote host closed the connection)
03:12:21 × jrm quits (~jrm@156.34.187.65) (Quit: ciao)
03:12:44 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
03:13:46 × falafel quits (~falafel@2603-8000-d801-2d68-1d6d-bf72-eba2-a20e.res6.spectrum.com) (Ping timeout: 260 seconds)
03:13:54 jrm joins (~jrm@156.34.187.65)
03:14:01 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
03:14:05 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
03:14:22 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
03:17:27 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
03:19:01 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
03:21:42 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd)
03:22:20 × vk3wtf_ quits (~doc@194-193-188-29.tpgi.com.au) (Quit: WeeChat 3.2)
03:25:14 <justsomeguy> I honestly don't think I can desugar that off the top of my head.
03:25:49 <justsomeguy> (I know you're joking though; It was just a good reminder for me to read (.)'s definition, again.)
03:27:04 <lechner> Hi, could someone please help with Lucid once more? I had a similar issue last week with String (and was able to use fromString) but now with Text -> Html () Thanks! https://paste.tomsmeding.com/Fut2vfev#file-2
03:27:53 <lechner> it somehew seems related to the logic here https://stackoverflow.com/questions/52019797/how-to-convert-scotty-parameter-as-string
03:28:48 cheater joins (~Username@user/cheater)
03:29:10 × sm2n quits (~sm2n@user/sm2n) (Ping timeout: 265 seconds)
03:29:16 <awpr> `toHtml` will have that type, since `Text` has a `ToHtml` instance
03:31:15 <lechner> awpr: yay. thank you!
03:31:46 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:31:58 sm2n joins (~sm2n@user/sm2n)
03:32:41 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
03:33:22 × jess quits (~jess@libera/staff/jess) (Quit: i'm going to start going to bed)
03:33:30 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
03:34:28 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
03:34:41 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
03:34:41 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Client Quit)
03:34:51 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
03:39:42 roboguy_ joins (~roboguy_@cpe-98-156-4-161.kc.res.rr.com)
03:43:28 × zmt01 quits (~zmt00@user/zmt00) (Quit: Gone.)
03:45:08 zmt00 joins (~zmt00@user/zmt00)
03:57:11 <jle`> (\(_,_) -> True) undefined -- surprised me a bit
03:57:45 <jle`> is there any difference between (\(x,y) -> ..) and (\t -> case t of (x,y) -> ...) ?
04:02:15 <Cale> nope
04:02:50 theproffesor joins (~theproffe@2601:282:847f:8010:818b:10e4:707d:e026)
04:02:50 × theproffesor quits (~theproffe@2601:282:847f:8010:818b:10e4:707d:e026) (Changing host)
04:02:50 theproffesor joins (~theproffe@user/theproffesor)
04:03:17 × sneedsfeed quits (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Ping timeout: 256 seconds)
04:03:30 theproffesor parts (~theproffe@user/theproffesor) ()
04:05:04 <pavonia> > (\(_,_) -> True) undefined
04:05:06 <lambdabot> *Exception: Prelude.undefined
04:05:19 <awpr> and yet:
04:05:40 <awpr> > (\x -> let (_, _) = x in True) undefined
04:05:42 <lambdabot> True
04:06:03 × urdh quits (~urdh@user/urdh) (*.net *.split)
04:06:03 × sky_lounge[m] quits (~skylounge@2001:470:69fc:105::efa6) (*.net *.split)
04:06:03 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (*.net *.split)
04:06:03 × perro quits (~user@072-191-245-069.res.spectrum.com) (*.net *.split)
04:06:03 × conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (*.net *.split)
04:06:03 × jackdk quits (sid373013@cssa/jackdk) (*.net *.split)
04:06:04 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (*.net *.split)
04:06:04 × masaeedu[m] quits (~masaeedum@2001:470:69fc:105::e256) (*.net *.split)
04:06:04 × adamse quits (sid72084@user/adamse) (*.net *.split)
04:06:04 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
04:06:04 × erinvanderveen[m quits (~erinvande@2001:470:69fc:105::e8f3) (*.net *.split)
04:06:04 × welterde quits (welterde@thinkbase.srv.welterde.de) (*.net *.split)
04:06:04 × zzz quits (~yin@user/yin) (*.net *.split)
04:06:04 × Xe quits (~cadey@tailscale/xe) (*.net *.split)
04:06:04 × hubvu quits (sid495858@user/hubvu) (*.net *.split)
04:06:04 × dpratt_ quits (sid193493@id-193493.helmsley.irccloud.com) (*.net *.split)
04:06:04 × soft quits (~soft-matr@2001:470:69fc:105::c75) (*.net *.split)
04:06:04 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (*.net *.split)
04:06:04 × schuelermine[m] quits (~schuelerm@user/schuelermine) (*.net *.split)
04:06:04 × peddie quits (~peddie@2001:470:69fc:105::25d) (*.net *.split)
04:06:04 × siraben quits (~siraben@user/siraben) (*.net *.split)
04:06:04 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (*.net *.split)
04:06:04 × heath quits (~heath@user/heath) (*.net *.split)
04:06:04 × oats quits (~thomas@user/oats) (*.net *.split)
04:06:04 × nonzen quits (~nonzen@user/nonzen) (*.net *.split)
04:06:04 × sajith quits (~sajith@user/sajith) (*.net *.split)
04:06:04 × Ekho quits (~Ekho@user/ekho) (*.net *.split)
04:06:04 × rookie101 quits (~rookie@207.154.204.166) (*.net *.split)
04:06:04 × jassob1 quits (~jassob@korrob.vth.sgsnet.se) (*.net *.split)
04:06:04 × Guest6153 quits (~deni@mail.denibertovic.com) (*.net *.split)
04:06:04 × anoe quits (~anoe@delanoe.org) (*.net *.split)
04:06:04 × sshine quits (~simon@hubris.eta.solutions) (*.net *.split)
04:06:04 × kaol quits (~kaol@178.62.241.234) (*.net *.split)
04:06:04 × taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (*.net *.split)
04:06:04 × ski quits (~ski@remote12.chalmers.se) (*.net *.split)
04:06:04 × yorick quits (~yorick@user/yorick) (*.net *.split)
04:06:04 × Jon quits (jon@dow.land) (*.net *.split)
04:06:04 × rawles quits (~o@user/rawles) (*.net *.split)
04:06:06 <awpr> which is to say, let/where bindings are different from those other two constructs
04:06:12 ski joins (~ski@remote12.chalmers.se)
04:06:14 Jon joins (jon@dow.land)
04:06:15 anoe joins (~anoe@delanoe.org)
04:06:17 perro joins (~user@072-191-245-069.res.spectrum.com)
04:06:19 Guest6153 joins (~deni@mail.denibertovic.com)
04:06:20 <pavonia> awpr: That never evaluates the pattern
04:06:22 kaol joins (~kaol@178.62.241.234)
04:06:23 jackdk joins (sid373013@cssa/jackdk)
04:06:23 dpratt_ joins (sid193493@id-193493.helmsley.irccloud.com)
04:06:25 jassob1 joins (~jassob@korrob.vth.sgsnet.se)
04:06:33 <awpr> right, that's what I was showing
04:06:37 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
04:06:40 yorick joins (~yorick@pennyworth.yori.cc)
04:06:41 Xe joins (~cadey@lufta.cetacean.club)
04:06:43 <Cale> I wish I could say it never evaluates the pattern, but now there are bang patters
04:06:45 Raito_Bezarius joins (~Raito@2a01:e0a:5f9:9681:58c:8b9f:30df:bb6b)
04:06:45 <Cale> ns*
04:06:47 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
04:06:53 S11001001 joins (sid42510@2a03:5180:f:3::a60e)
04:06:56 welterde joins (welterde@thinkbase.srv.welterde.de)
04:06:57 × Xe quits (~cadey@lufta.cetacean.club) (Changing host)
04:06:57 Xe joins (~cadey@tailscale/xe)
04:06:57 urdh joins (~urdh@user/urdh)
04:07:01 erinvanderveen[m joins (~erinvande@2001:470:69fc:105::e8f3)
04:07:03 oats_ joins (~thomas@user/oats)
04:07:05 <Cale> Which hold the mysterious power of transforming let into case
04:07:09 taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com)
04:07:15 conjunctive joins (sid433686@id-433686.helmsley.irccloud.com)
04:07:17 adamse joins (sid72084@id-72084.lymington.irccloud.com)
04:07:18 hubvu joins (sid495858@user/hubvu)
04:07:19 × adamse quits (sid72084@id-72084.lymington.irccloud.com) (Changing host)
04:07:19 adamse joins (sid72084@user/adamse)
04:07:26 yorick is now known as Guest4308
04:07:28 sajith joins (~sajith@user/sajith)
04:07:31 zzz joins (~yin@user/yin)
04:07:32 nonzen joins (~nonzen@user/nonzen)
04:07:50 heath joins (~heath@user/heath)
04:08:12 sshine joins (~simon@hubris.eta.solutions)
04:08:15 soft joins (~soft-matr@2001:470:69fc:105::c75)
04:08:15 rookie101 joins (~rookie@207.154.204.166)
04:09:15 <pavonia> > (\x -> let !(_, _) = x in True) undefined
04:09:16 <lambdabot> *Exception: Prelude.undefined
04:09:31 <pavonia> Okay, this is surprising
04:10:03 masaeedu[m] joins (~masaeedum@2001:470:69fc:105::e256)
04:10:11 peddie joins (~peddie@2001:470:69fc:105::25d)
04:10:23 <awpr> I think it turns into something like `\x -> case x of x1 { _default -> True }` in core
04:10:24 Ekho joins (~Ekho@user/ekho)
04:10:34 siraben joins (~siraben@user/siraben)
04:10:43 <Cale> It's a bit of perlish dwim-ism
04:10:44 × ski quits (~ski@remote12.chalmers.se) (Ping timeout: 265 seconds)
04:11:12 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
04:11:12 schuelermine[m] joins (~schuelerm@user/schuelermine)
04:11:34 <Cale> Well, let's try this:
04:11:43 sky_lounge[m] joins (~skylounge@2001:470:69fc:105::efa6)
04:11:47 <Cale> > (\x -> let ~(!(_, _)) = x in True) undefined
04:11:49 <lambdabot> True
04:12:09 <pavonia> :)
04:12:42 <Cale> Yep. So, even though all pattern bindings in let are supposed to implicitly be wrapped in ~ this doesn't happen for bang patterns at the top level only
04:15:45 the_proffesor joins (~theproffe@2601:282:847f:8010::bd6d)
04:15:45 × the_proffesor quits (~theproffe@2601:282:847f:8010::bd6d) (Changing host)
04:15:45 the_proffesor joins (~theproffe@user/theproffesor)
04:17:35 the_proffesor is now known as theproffesor
04:17:57 oats_ is now known as oats
04:19:16 × nckx quits (~nckx@tobias.gr) (*.net *.split)
04:19:16 × shailangsa quits (~shailangs@host86-186-132-44.range86-186.btcentralplus.com) (*.net *.split)
04:19:16 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (*.net *.split)
04:19:16 × Deewiant quits (~deewiant@2001:470:69fc:105::2fd3) (*.net *.split)
04:19:16 × zfnmxt quits (~zfnmxtzfn@user/zfnmxt) (*.net *.split)
04:19:16 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (*.net *.split)
04:19:16 × kar1 quits (~kar1@2001:470:69fc:105::c308) (*.net *.split)
04:19:16 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (*.net *.split)
04:19:16 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (*.net *.split)
04:19:16 × wallymathieu[m] quits (~wallymath@2001:470:69fc:105::16ae) (*.net *.split)
04:19:16 × maralorn quits (~maralorn@2001:470:69fc:105::251) (*.net *.split)
04:19:17 × Teohehim[m] quits (~teocmatri@2001:470:69fc:105::d327) (*.net *.split)
04:19:17 × monadfritz[m] quits (~ahdytmatr@2001:470:69fc:105::e1f1) (*.net *.split)
04:19:17 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (*.net *.split)
04:19:17 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (*.net *.split)
04:19:17 × rednaZ[m] quits (~r3dnazmat@2001:470:69fc:105::ba70) (*.net *.split)
04:19:17 × SimonWeiss[m] quits (~weiss-dma@2001:470:69fc:105::bebd) (*.net *.split)
04:19:17 × taeaad quits (~taeaad@user/taeaad) (*.net *.split)
04:19:17 × mrkajetanp quits (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (*.net *.split)
04:19:17 × Papa quits (~papa@user/papa) (*.net *.split)
04:19:17 × ddb quits (~ddb@2607:5300:61:c67::196) (*.net *.split)
04:19:17 × mikko quits (~mikko@2a02:7b40:d418:6a61::1) (*.net *.split)
04:19:17 × bollu quits (~bollu@139.59.46.74) (*.net *.split)
04:19:17 × mmaruseacph2 quits (~mihai@198.199.100.72) (*.net *.split)
04:19:17 × duckonomy quits (~duckonomy@177.ip-144-217-84.net) (*.net *.split)
04:19:17 × st quits (~ts@46.101.20.9) (*.net *.split)
04:19:17 × w1gz quits (~do@159.89.11.133) (*.net *.split)
04:19:17 × Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split)
04:19:17 × samebchase quits (~thelounge@51.15.68.182) (*.net *.split)
04:19:17 × PigDude quits (~PigDude@159.203.16.199) (*.net *.split)
04:19:17 × SIben quits (~SIben@ns3106586.ip-5-135-191.eu) (*.net *.split)
04:19:17 × pie_ quits (~pie_bnc@user/pie/x-2818909) (*.net *.split)
04:19:17 × [exa] quits (exa@user/exa/x-3587197) (*.net *.split)
04:19:17 × dy quits (~dy@user/dy) (*.net *.split)
04:19:17 × dibblego quits (~dibblego@haskell/developer/dibblego) (*.net *.split)
04:19:17 × madnight_ quits (~madnight@static.59.103.201.195.clients.your-server.de) (*.net *.split)
04:19:17 × tinco quits (~tinco@tinco.nl) (*.net *.split)
04:19:17 × dixie quits (~dixie@real.wilbury.sk) (*.net *.split)
04:19:17 × absence quits (torgeihe@hildring.pvv.ntnu.no) (*.net *.split)
04:19:17 × siers quits (~ij@user/ij) (*.net *.split)
04:19:17 × pippijn quits (~pippijn@ra.xinutec.org) (*.net *.split)
04:19:17 × djanatyn quits (~djanatyn@vps-7f49a6b0.vps.ovh.ca) (*.net *.split)
04:19:17 × arkanoid quits (~arkanoid@2-238-151-49.ip244.fastwebnet.it) (*.net *.split)
04:19:17 × aji quits (~alex@prickle.ajitek.net) (*.net *.split)
04:19:17 × reda quits (~reda@user/reda) (*.net *.split)
04:19:17 × bah quits (~bah@l1.tel) (*.net *.split)
04:19:17 × Ankhers quits (~Ankhers@ec2-54-196-233-138.compute-1.amazonaws.com) (*.net *.split)
04:19:20 SIben_ joins (~SIben@ns3106586.ip-5-135-191.eu)
04:19:21 dixie_ joins (~dixie@real.wilbury.sk)
04:19:22 [exa]_ joins (exa@srv3.blesmrt.net)
04:19:23 absence_ joins (torgeihe@hildring.pvv.ntnu.no)
04:19:23 pippijn_ joins (~pippijn@ra.xinutec.org)
04:19:26 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com)
04:19:26 reda_ joins (~reda@user/reda)
04:19:26 bah_ joins (~bah@l1.tel)
04:19:28 PigDude_ joins (~PigDude@159.203.16.199)
04:19:29 samebchase joins (~thelounge@51.15.68.182)
04:19:36 djanatyn joins (~djanatyn@vps-7f49a6b0.vps.ovh.ca)
04:19:36 tinco joins (~tinco@tinco.nl)
04:19:37 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
04:19:37 bollu joins (~bollu@139.59.46.74)
04:19:37 mikko joins (~mikko@2a02:7b40:d418:6a61::1)
04:19:39 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
04:19:39 dibblego joins (~dibblego@haskell/developer/dibblego)
04:19:41 mmaruseacph2 joins (~mihai@198.199.100.72)
04:19:47 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
04:19:50 Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi)
04:19:50 ddb joins (~ddb@ipv6two.tilde.club)
04:19:56 pie_ joins (~pie_bnc@user/pie/x-2818909)
04:20:11 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:20:12 mrkajetanp joins (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88)
04:20:14 siers joins (~ij@user/ij)
04:20:14 taeaad joins (~taeaad@user/taeaad)
04:20:18 dy joins (~dy@user/dy)
04:20:18 nckx_ joins (~nckx@tobias.gr)
04:20:19 nckx_ is now known as nckx
04:20:20 st joins (~ts@46.101.20.9)
04:20:21 w1gz joins (~do@159.89.11.133)
04:20:21 aji joins (~alex@prickle.ajitek.net)
04:20:22 Ankhers joins (~Ankhers@ec2-54-196-233-138.compute-1.amazonaws.com)
04:20:35 duckonomy joins (~duckonomy@177.ip-144-217-84.net)
04:20:50 Papa joins (~papa@user/papa)
04:20:52 × Garbanzo quits (~Garbanzo@2602:304:6eac:dc10::46) (Read error: Connection reset by peer)
04:20:52 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
04:21:00 Deewiant joins (~deewiant@2001:470:69fc:105::2fd3)
04:21:55 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 260 seconds)
04:22:33 <lechner> Hi, did the wiki always have such a weird, dark gray half-footer? https://wiki.haskell.org/Cookbook/Pattern_matching
04:23:02 <__celeste> it doesn't look that weird to me
04:23:19 <__celeste> i might be alone
04:23:33 theproffesor parts (~theproffe@user/theproffesor) (Leaving)
04:23:38 wallymathieu[m] joins (~wallymath@2001:470:69fc:105::16ae)
04:23:41 arkanoid joins (~arkanoid@2-238-151-49.ip244.fastwebnet.it)
04:23:47 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
04:23:49 <lechner> me too
04:23:51 jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae)
04:24:04 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
04:24:09 kar1 joins (~kar1@2001:470:69fc:105::c308)
04:24:16 jaror[m] joins (~jaror@2001:470:69fc:105::265)
04:24:34 <lechner> do you see a bright white square in the bottom left?
04:24:44 SimonWeiss[m] joins (~weiss-dma@2001:470:69fc:105::bebd)
04:25:18 rednaZ[m] joins (~r3dnazmat@2001:470:69fc:105::ba70)
04:27:30 benin03693230 joins (~benin@183.82.24.227)
04:27:37 maralorn joins (~maralorn@2001:470:69fc:105::251)
04:30:48 afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b)
04:31:17 hyiltiz joins (~quassel@31.220.5.250)
04:31:19 Teohehim[m] joins (~teocmatri@2001:470:69fc:105::d327)
04:31:19 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
04:31:20 monadfritz[m] joins (~ahdytmatr@2001:470:69fc:105::e1f1)
04:41:37 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
04:41:46 × benin03693230 quits (~benin@183.82.24.227) (Ping timeout: 268 seconds)
04:42:38 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
04:45:06 nicbk joins (~nicbk@user/nicbk)
04:45:11 × roboguy_ quits (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) ()
04:46:01 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 252 seconds)
04:47:12 mikoto-chan joins (~mikoto-ch@83.137.2.250)
04:53:39 shailangsa joins (~shailangs@host86-186-132-44.range86-186.btcentralplus.com)
04:57:41 pony is now known as lua
05:02:55 lua is now known as pony
05:04:52 <ldlework> Applicatives are weird
05:05:21 <Axman6> Applicatives turn up everywhere in programming and are extremely useful
05:06:24 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
05:06:25 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
05:09:25 geekosaur joins (~geekosaur@xmonad/geekosaur)
05:10:36 <Axman6> it's so common that we write code which is "Get this thing, then get this thing, then get this thing, then this next thing, and now put all of those into some constructor" Applicative just generalises that
05:12:18 × __celeste quits (~celeste@2600:8803:9403:b600::b6f) (Ping timeout: 260 seconds)
05:13:17 <Axman6> and, like, a lot of other things. for loops are just applicatives in many cases
05:13:24 <Axman6> nested for loops*
05:13:58 <Axman6> so is "gather all these maybe null values and if none of them are null, do something with them, otherwise return null"
05:19:27 <dmj`> still weird tho
05:20:20 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
05:27:44 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
05:28:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:29:30 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:33:13 <dibblego> yeah but what about enterprise null
05:34:19 <dmj`> enterprise null keeps us employed
05:39:05 Gurkenglas joins (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de)
05:39:32 <dsal> Maybe
05:39:40 × mikoto-chan quits (~mikoto-ch@83.137.2.250) (Ping timeout: 240 seconds)
05:39:50 <Axman6> heh
05:41:42 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
05:45:25 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
05:46:02 × falafel_ quits (~falafel@2603-8000-d801-2d68-d829-f87a-f631-a582.res6.spectrum.com) (Remote host closed the connection)
05:46:17 falafel_ joins (~falafel@2603-8000-d801-2d68-d829-f87a-f631-a582.res6.spectrum.com)
05:49:49 <nitrix> That what Haskell made sure to also have _|_.
05:50:18 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 265 seconds)
05:51:10 falafel__ joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
05:54:45 × falafel_ quits (~falafel@2603-8000-d801-2d68-d829-f87a-f631-a582.res6.spectrum.com) (Ping timeout: 268 seconds)
05:54:55 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
05:55:08 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
05:55:08 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Client Quit)
05:55:14 <Axman6> "Avoid success at all costs, by learning from most of the mistakes of the past"
05:55:18 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
05:55:21 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Client Quit)
05:55:28 daylily joins (~daylily@104.225.146.73.16clouds.com)
05:55:35 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
05:57:40 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:00:56 × daylily quits (~daylily@104.225.146.73.16clouds.com) (Ping timeout: 265 seconds)
06:02:29 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
06:03:13 fendor joins (~fendor@178.165.199.123.wireless.dyn.drei.com)
06:03:29 hyiltiz joins (~quassel@31.220.5.250)
06:05:41 Pickchea joins (~private@user/pickchea)
06:10:52 Akronymus joins (~Akronymus@85.31.8.180)
06:10:54 × cjb quits (~cjbayliss@user/cjb) ()
06:12:41 michalz joins (~michalz@185.246.204.57)
06:14:26 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
06:15:01 jpds joins (~jpds@gateway/tor-sasl/jpds)
06:18:57 binape joins (~binape@154.197.27.149)
06:25:57 <dmj`> Got a couple bottoms, but a couple ain't enough.
06:26:49 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
06:26:56 Erutuon joins (~Erutuon@user/erutuon)
06:39:03 × welterde quits (welterde@thinkbase.srv.welterde.de) (Quit: WeeChat 3.0.1)
06:39:09 × falafel__ quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 268 seconds)
06:39:11 welterde joins (welterde@thinkbase.srv.welterde.de)
06:40:50 AndrewIRC is now known as AndrewYu
06:41:24 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
06:41:41 max22- joins (~maxime@2a01cb0883359800d694c3dbfe2877e7.ipv6.abo.wanadoo.fr)
06:47:05 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
06:51:57 × sleblanc quits (~sleblanc@user/sleblanc) (Quit: Leaving)
06:55:23 × peterhil quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds)
07:02:20 hyiltiz joins (~quassel@31.220.5.250)
07:07:53 [exa]_ is now known as [exa]
07:08:04 × [exa] quits (exa@srv3.blesmrt.net) (Changing host)
07:08:04 [exa] joins (exa@user/exa/x-3587197)
07:11:59 × nctcf^ quits (~nctcf@68.101.54.227) (Remote host closed the connection)
07:14:08 on^ joins (~on@68.101.54.227)
07:15:41 chomwitt joins (~chomwitt@2a02:587:dc14:5d00:12c3:7bff:fe6d:d374)
07:16:19 lavaman joins (~lavaman@98.38.249.169)
07:16:21 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 276 seconds)
07:18:11 acidjnk_new joins (~acidjnk@p200300d0c7203034c44d9fe177fb36b1.dip0.t-ipconnect.de)
07:18:28 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:21:05 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
07:21:57 × binape quits (~binape@154.197.27.149) (Quit: Client closed)
07:23:05 cfricke joins (~cfricke@user/cfricke)
07:25:24 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:29:29 × Guest4308 quits (~yorick@pennyworth.yori.cc) (Changing host)
07:29:29 Guest4308 joins (~yorick@user/yorick)
07:29:34 Guest4308 is now known as yorick
07:35:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:35:34 × son0p quits (~ff@181.136.122.143) (Ping timeout: 260 seconds)
07:39:36 × kimjetwav quits (~user@2607:fea8:235f:9730:2829:edb2:f2b7:f87c) (Remote host closed the connection)
07:40:09 hannessteffenhag joins (~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
07:43:15 benin03693230 joins (~benin@183.82.24.227)
07:45:54 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
07:52:01 <dminuoso> Axman6: Im not convinced this is truly an applicative thing.
07:52:35 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
07:53:20 <dminuoso> In your language you said "then get this thing", which already implies a kind of sequencing that's simply not part of the language of Applicative.
07:54:11 <dminuoso> It's just that most Applicative instances for types that also have a Monad instance are required to have coherence with Monad, but then the sequencing behavior really comes from Monad.
07:55:10 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
07:55:44 <Axman6> it is part of the language of _some_ applicatives
07:56:06 <dminuoso> Conceptually I think of Applicative rather as a diamond than sequencing, where the branches are - in principle - independent, and it's just that in case of instances that are coherent with Monad, that these branches are trivially sequenced after one another.
07:58:24 <dminuoso> With some signature method `parallel :: Applicative f => f a -> f b -> f (a, b)`
07:58:52 <dminuoso> And a trivial `unit :: Applicative f => f ()` that acts as unit wrt to parallel.
07:59:31 <dminuoso> Axman6: Is this still matching the "first this, then that", if that thing trivially sequences the second after the first for some instances?
07:59:48 dminuoso is not sure
08:01:32 __monty__ joins (~toonn@user/toonn)
08:04:47 kayprish joins (~kayprish@46.240.130.158)
08:06:18 hendursa1 joins (~weechat@user/hendursaga)
08:06:50 neurocyte joins (~neurocyte@92.119.10.38)
08:06:50 × neurocyte quits (~neurocyte@92.119.10.38) (Changing host)
08:06:50 neurocyte joins (~neurocyte@user/neurocyte)
08:08:31 Chai-T-Rex joins (~ChaiTRex@user/chaitrex)
08:09:00 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:09:11 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
08:11:48 <awpr> the operations of Applicative permit ordering but don't require it, in the same way the operations of Monoid permit ordering -- you can have `Monoid String` that's ordered, and `Monoid (Sum Int)` that's not ordered
08:12:25 <awpr> and that's no coincidence, since `Applicative` is a (lax) monoidal functor
08:13:31 <dminuoso> Sure.
08:17:44 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:44 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:47 allbery_b is now known as geekosaur
08:28:18 × azeem quits (~azeem@2a00:801:3c7:c672:c46:3e15:33ac:e08b) (Read error: Connection reset by peer)
08:28:32 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
08:30:25 Lycurgus joins (~juan@98.4.112.204)
08:30:45 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:32:25 × on^ quits (~on@68.101.54.227) (Remote host closed the connection)
08:33:24 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
08:33:52 jpds joins (~jpds@gateway/tor-sasl/jpds)
08:36:17 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:37:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Lost terminal)
08:37:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd) (Remote host closed the connection)
08:39:35 × max22- quits (~maxime@2a01cb0883359800d694c3dbfe2877e7.ipv6.abo.wanadoo.fr) (Quit: Leaving)
08:39:59 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
08:40:29 max22- joins (~maxime@2a01cb08833598005158d0acd05c15c9.ipv6.abo.wanadoo.fr)
08:43:07 <mniip> Cale, that really made me think. Is abstraction (function introduction) an effect?
08:44:43 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
08:44:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:45:10 nctcf^ joins (~nctcf@68.101.54.227)
08:49:53 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
08:50:40 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
08:50:53 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
08:53:00 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 265 seconds)
08:53:13 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
08:55:31 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
08:56:37 × shailangsa quits (~shailangs@host86-186-132-44.range86-186.btcentralplus.com) ()
09:00:08 × jkachmar quits (~jkachmar@2001:470:69fc:105::c72d) (Quit: You have been kicked for being idle)
09:04:52 × Flow quits (~none@salem.informatik.uni-erlangen.de) (Quit: WeeChat 3.2)
09:05:07 Flow joins (~none@gentoo/developer/flow)
09:09:22 × xff0x quits (~xff0x@2001:1a81:53ae:3300:dc85:5fb:77a4:62d3) (Ping timeout: 260 seconds)
09:18:38 × xsperry quits (~as@user/xsperry) ()
09:19:38 × favonia quits (~favonia@user/favonia) (Ping timeout: 260 seconds)
09:21:32 xsperry joins (~as@user/xsperry)
09:23:53 burnsidesLlama joins (~burnsides@dhcp168-010.wadham.ox.ac.uk)
09:26:08 gehmehgeh joins (~user@user/gehmehgeh)
09:28:08 tfeb joins (~tfb@host81-129-8-142.range81-129.btcentralplus.com)
09:28:10 × burnsidesLlama quits (~burnsides@dhcp168-010.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
09:28:44 zmt01 joins (~zmt00@user/zmt00)
09:29:02 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:29:05 burnsidesLlama joins (~burnsides@dhcp168-010.wadham.ox.ac.uk)
09:29:14 sheddow joins (~sheddow@84-52-255.245.3p.ntebredband.no)
09:30:50 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
09:30:54 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
09:31:09 shailangsa joins (~shailangs@host86-186-132-44.range86-186.btcentralplus.com)
09:32:11 × tfeb quits (~tfb@host81-129-8-142.range81-129.btcentralplus.com) (Read error: Connection reset by peer)
09:32:37 favonia joins (~favonia@user/favonia)
09:33:40 geekosaur joins (~geekosaur@xmonad/geekosaur)
09:35:23 × phma quits (~phma@host-67-44-209-52.hnremote.net) (Read error: Connection reset by peer)
09:36:58 phma joins (~phma@host-67-44-208-7.hnremote.net)
09:38:10 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd)
09:38:36 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
09:39:25 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:41:21 xff0x joins (~xff0x@2001:1a81:53ae:3300:dc85:5fb:77a4:62d3)
09:42:42 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2dc7:70f:65a6:fbdd) (Ping timeout: 268 seconds)
09:45:26 badwoman joins (~badwoman@221.239.55.46)
09:48:29 × burnsidesLlama quits (~burnsides@dhcp168-010.wadham.ox.ac.uk) (Remote host closed the connection)
09:50:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
09:50:43 × acidjnk_new quits (~acidjnk@p200300d0c7203034c44d9fe177fb36b1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
09:51:00 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
09:51:13 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
09:52:44 euandreh joins (~euandreh@2804:14c:33:9fe5:44da:bf98:4cf1:2d8d)
10:07:02 pmk joins (~user@2a02:587:9416:c4cd:a38a:dea2:e28e:646d)
10:12:55 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 268 seconds)
10:13:17 azeem joins (~azeem@2a00:801:230:bf5f:d20c:8e6b:10b9:3ab2)
10:13:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:15:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:16:57 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:20:19 × azeem quits (~azeem@2a00:801:230:bf5f:d20c:8e6b:10b9:3ab2) (Read error: Connection reset by peer)
10:20:45 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
10:23:38 × davetapley quits (sid666@id-666.highgate.irccloud.com) ()
10:23:53 davetapley joins (sid666@id-666.uxbridge.irccloud.com)
10:24:16 × etrepum quits (sid763@id-763.highgate.irccloud.com) ()
10:24:32 etrepum joins (sid763@id-763.uxbridge.irccloud.com)
10:24:34 burnsidesLlama joins (~burnsides@dhcp168-010.wadham.ox.ac.uk)
10:24:47 spruit11_ joins (~quassel@2a02:a467:ccd6:1:bdee:99d8:9af:602f)
10:25:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:26:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:28:16 × spruit11 quits (~quassel@2a02:a467:ccd6:1:a09c:5ae1:45f8:7ffe) (Ping timeout: 252 seconds)
10:29:29 × vito quits (sid1962@user/vito) ()
10:29:45 vito joins (sid1962@user/vito)
10:31:28 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
10:31:38 × burnsidesLlama quits (~burnsides@dhcp168-010.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
10:32:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:32:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:41:29 × SrPx quits (sid108780@id-108780.highgate.irccloud.com) ()
10:41:43 SrPx joins (sid108780@id-108780.uxbridge.irccloud.com)
10:42:44 × alanz quits (sid110616@id-110616.highgate.irccloud.com) ()
10:43:00 alanz joins (sid110616@id-110616.uxbridge.irccloud.com)
10:43:08 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:44:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:47:29 × favonia quits (~favonia@user/favonia) (Remote host closed the connection)
10:47:45 × b20n quits (sid115913@id-115913.highgate.irccloud.com) ()
10:47:50 favonia joins (~favonia@user/favonia)
10:48:01 b20n joins (sid115913@id-115913.uxbridge.irccloud.com)
10:49:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:50:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:55:04 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 252 seconds)
10:55:41 ubert joins (~Thunderbi@178.115.54.21.wireless.dyn.drei.com)
10:56:10 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:56:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:56:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:56:41 azeem joins (~azeem@2a00:801:230:bf5f:d20c:8e6b:10b9:3ab2)
10:57:05 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Remote host closed the connection)
10:57:39 × azeem quits (~azeem@2a00:801:230:bf5f:d20c:8e6b:10b9:3ab2) (Read error: Connection reset by peer)
10:58:11 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
10:58:12 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
11:00:55 alx741 joins (~alx741@181.196.69.212)
11:01:14 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
11:07:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
11:08:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:10:16 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Read error: Connection reset by peer)
11:10:33 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
11:11:31 hololeap_ joins (~hololeap@user/hololeap)
11:12:36 × pony quits (~ed@101.53.218.157) (Quit: WeeChat 2.8)
11:13:36 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
11:13:59 × stevenxl quits (sid133530@id-133530.highgate.irccloud.com) ()
11:14:14 stevenxl joins (sid133530@id-133530.uxbridge.irccloud.com)
11:14:54 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
11:15:14 cheater joins (~Username@user/cheater)
11:18:07 lavaman joins (~lavaman@98.38.249.169)
11:18:31 Guest89 joins (~Guest89@45.33.134.45)
11:19:56 × ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Ping timeout: 265 seconds)
11:20:24 × Guest89 quits (~Guest89@45.33.134.45) (Client Quit)
11:20:40 ph88 joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de)
11:21:49 ByronJohnson joins (~bairyn@mail.digitalkingdom.org)
11:22:35 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
11:22:50 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
11:25:53 fendor_ joins (~fendor@178.165.201.14.wireless.dyn.drei.com)
11:27:50 × kayprish quits (~kayprish@46.240.130.158) (Remote host closed the connection)
11:28:59 × fendor quits (~fendor@178.165.199.123.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
11:31:09 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
11:31:15 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:31:51 gehmehgeh joins (~user@user/gehmehgeh)
11:32:45 hyiltiz joins (~quassel@31.220.5.250)
11:34:05 burnsidesLlama joins (~burnsides@dhcp168-010.wadham.ox.ac.uk)
11:37:58 fendor_ is now known as fendor
11:39:37 × burnsidesLlama quits (~burnsides@dhcp168-010.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
11:40:04 <badwoman> q
11:40:10 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:40:20 × badwoman quits (~badwoman@221.239.55.46) (Quit: leaving)
11:41:45 Pickchea joins (~private@user/pickchea)
11:44:34 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
11:46:34 <Akronymus> ⪒ someone suggested that haskellers are bound to use this as a operator at some point.
11:46:47 <Akronymus> I personally don't see how.
11:47:20 <merijn> Easy
11:47:37 <merijn> > let x ⪒ y = x^2 + y^2 in 3 ⪒ 5
11:47:39 <lambdabot> 34
11:47:43 bah_ is now known as bah
11:47:48 <merijn> Like, how would that even be a challenge?
11:48:30 <Akronymus> But that doesn't really make much sense to use that symbol specifically.
11:48:42 <Akronymus> I meant it more as in where that is the most appropriate symbol.
11:48:48 <int-e> let (⪒) = compare in ...
11:49:00 <merijn> I mean any unicode symbol can be used as operator
11:49:06 <Akronymus> Well, duh.
11:49:11 <merijn> > generalCategory '⪒'
11:49:13 <lambdabot> MathSymbol
11:49:39 <merijn> Akronymus: arahael was just joking about the number of custom operators defined
11:50:00 <arahael> Ha.
11:50:01 <Akronymus> I just don't really see a use for `greater than above less than above equals` as an operator
11:50:13 <Akronymus> arahael you are seemingly everywhere
11:50:28 <int-e> > let ꙮ = 6 in ꙮ * (ꙮ + 1)
11:50:29 <lambdabot> 42
11:50:36 <arahael> Akronymus: And on 5 chat networks.
11:50:42 <Akronymus> Oh, nice.
11:50:52 <merijn> > generalCategory 'ꙮ'
11:50:53 <Akronymus> Not on #fsharp though
11:50:53 <lambdabot> OtherLetter
11:50:55 <merijn> hah
11:51:17 <Akronymus> > generalCategory '᠎'
11:51:18 <lambdabot> <hint>:1:18: error:
11:51:18 <lambdabot> lexical error in string/character literal at character '\6158'
11:51:32 <Akronymus> > generalCategory ''
11:51:33 <lambdabot> <hint>:1:17: error:
11:51:33 <lambdabot> Parser error on `''`
11:51:33 <lambdabot> Character literals may not be empty
11:51:40 <Akronymus> HAHAHAHA
11:51:46 <Akronymus> I broke it.
11:51:49 <int-e> > generalCategory '\6158'
11:51:50 <lambdabot> Format
11:52:04 <Akronymus> Mongolian vowel separator
11:52:17 <arahael> Akronymus: I got tired of that language years ago.
11:52:24 <arahael> Got fed up with .NET in general.
11:52:32 <Akronymus> Fair nuff
11:52:37 <merijn> F# <- you mispelled "Business OCaml" ;)
11:52:49 Akronymus goes back to lithping
11:53:16 <Akronymus> Which I somehow like
11:54:58 <arahael> To be fair, I started with F# back when they were still figuring out this "null" detail.
11:55:20 <arahael> You could explicitly check for nulls, and the compiler would elide it since they're "never nulls" - unless you call it from C#, which can pass a null.
11:55:21 <Akronymus> Ewww, naked nulls.
11:58:07 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
11:59:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:00:21 arjun joins (~Srain@user/arjun)
12:00:36 <arjun> i can't (x:xs) pattern match on Text values right?
12:00:37 × max22- quits (~maxime@2a01cb08833598005158d0acd05c15c9.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
12:00:43 <arjun> like i can on String
12:01:03 × nckx quits (~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>)
12:01:17 <arjun> how do we do that for Text, if we have to?
12:01:51 <Hecate> arjun: uncosn
12:01:54 <Hecate> *uncons sorry
12:02:23 <merijn> That's the technically correct, but probably also wrong answer >.>
12:02:33 <merijn> What kinda matching do you want to do?
12:03:04 <arjun> 1. if it's empty, i can probably do a null check there
12:03:11 nckx joins (~nckx@tobias.gr)
12:03:16 <arjun> 2. get the first letter of a Text string
12:03:20 <merijn> If you wanna check for empty, use T.null yes
12:03:22 <arjun> in a variable
12:03:43 <arjun> basically a safe `head` for Text
12:04:09 <merijn> If you want longer prefix than 1 character you'll want stripPrefix. You can use uncons for the first character, but wanting the first character seems like it has rather limited use, tbh
12:04:55 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
12:05:07 <arjun> there's a head for Text, i just saw, is it infamous like the list head?
12:06:22 <arjun> Hecate: huh, seems that way, i didn't knew about uncons
12:06:28 × bradparker quits (sid262931@id-262931.highgate.irccloud.com) ()
12:06:44 bradparker joins (sid262931@id-262931.uxbridge.irccloud.com)
12:07:03 × nckx quits (~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>)
12:07:13 × systemfault quits (sid267009@id-267009.highgate.irccloud.com) ()
12:07:29 systemfault joins (sid267009@id-267009.uxbridge.irccloud.com)
12:08:41 max22- joins (~maxime@2a01cb08833598008d61d5f6a7875e9a.ipv6.abo.wanadoo.fr)
12:09:43 × td_ quits (~td@94.134.91.246) (Ping timeout: 265 seconds)
12:11:00 × yaroot quits (~yaroot@125.30.3.6) (Quit: The Lounge - https://thelounge.chat)
12:11:13 nckx joins (~nckx@tobias.gr)
12:11:46 yaroot joins (~yaroot@6.3.30.125.dy.iij4u.or.jp)
12:13:59 dyeplexer joins (~dyeplexer@user/dyeplexer)
12:21:51 × nckx quits (~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>)
12:26:44 × ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Ping timeout: 268 seconds)
12:27:56 × fendor quits (~fendor@178.165.201.14.wireless.dyn.drei.com) (Remote host closed the connection)
12:29:30 ByronJohnson joins (~bairyn@mail.digitalkingdom.org)
12:30:26 × arjun quits (~Srain@user/arjun) (Ping timeout: 268 seconds)
12:31:13 TranquilEcho joins (~grom@user/tranquilecho)
12:34:18 × m5zs7k quits (aquares@web10.mydevil.net) (Remote host closed the connection)
12:34:54 m5zs7k joins (aquares@web10.mydevil.net)
12:35:19 nckx joins (~nckx@tobias.gr)
12:38:21 arjun joins (~Srain@user/arjun)
12:38:41 maxime_ joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
12:40:04 <sshine> arjun, Text don't have the (:) constructor, no.
12:40:18 × max22- quits (~maxime@2a01cb08833598008d61d5f6a7875e9a.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
12:40:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
12:45:32 ystael joins (~ystael@user/ystael)
12:45:51 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Ping timeout: 268 seconds)
12:46:47 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
12:47:20 <Hecate> arjun: maybe use of the offered folds in Text if you feel like your manual recursion can be implemented as a fold :)
12:48:00 <arjun> im just writing a simple parser by hand (for the first time)
12:48:01 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Read error: Connection reset by peer)
12:48:10 <Hecate> :)
12:48:12 <Hecate> congratulations
12:48:14 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
12:48:27 cheater joins (~Username@user/cheater)
12:48:39 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
12:48:52 <arjun> learn haskell the `idk how this works, but how hard can it be` way
12:48:59 <Hecate> :D
12:50:06 slowButPresent joins (~slowButPr@user/slowbutpresent)
12:51:17 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 265 seconds)
12:54:42 × totbwf__ quits (sid402332@highgate.irccloud.com) ()
12:54:51 pbrisbin joins (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net)
12:54:57 totbwf__ joins (sid402332@id-402332.uxbridge.irccloud.com)
12:55:09 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 265 seconds)
12:55:42 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 260 seconds)
12:55:52 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:57:10 <maerwald> arjun: you can use patternsynonyms
12:57:15 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
12:57:42 <arjun> oh, hey maerwald \o
12:57:54 <arjun> hang on, let me google that
12:58:11 <maerwald> https://stackoverflow.com/a/66162066
12:59:29 <arjun> maerwald: those would fit right in
12:59:34 <arjun> lovely
13:01:16 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
13:01:50 burnsidesLlama joins (~burnsides@client-8-90.eduroam.oxuni.org.uk)
13:02:45 peterhil joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
13:02:51 × burnsidesLlama quits (~burnsides@client-8-90.eduroam.oxuni.org.uk) (Read error: Connection reset by peer)
13:03:17 burnsidesLlama joins (~burnsides@client-8-90.eduroam.oxuni.org.uk)
13:03:20 × favonia quits (~favonia@user/favonia) (Ping timeout: 268 seconds)
13:05:37 × obviyus quits (sid415299@user/obviyus) ()
13:05:53 obviyus joins (sid415299@user/obviyus)
13:06:39 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
13:06:57 aman joins (~aman@user/aman)
13:20:05 lavaman joins (~lavaman@98.38.249.169)
13:21:19 td_ joins (~td@94.134.91.92)
13:23:32 nicbk joins (~nicbk@user/nicbk)
13:24:42 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
13:25:43 hyiltiz joins (~quassel@31.220.5.250)
13:28:17 acidjnk_new joins (~acidjnk@p200300d0c7203034c44d9fe177fb36b1.dip0.t-ipconnect.de)
13:28:48 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 276 seconds)
13:29:49 × aman quits (~aman@user/aman) (Quit: aman)
13:36:19 × aarchi quits (sid486183@id-486183.highgate.irccloud.com) ()
13:36:35 aarchi joins (sid486183@id-486183.uxbridge.irccloud.com)
13:37:58 Pickchea joins (~private@user/pickchea)
13:40:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:40:03 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
13:40:03 wroathe joins (~wroathe@user/wroathe)
13:40:24 slack1256 joins (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
13:41:20 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
13:41:33 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
13:49:23 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2.1)
13:49:46 × ubert quits (~Thunderbi@178.115.54.21.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
14:00:55 ubert joins (~Thunderbi@77.119.166.250.wireless.dyn.drei.com)
14:01:45 rekahsoft joins (~rekahsoft@52.129.35.150)
14:02:49 × rekahsoft quits (~rekahsoft@52.129.35.150) (Remote host closed the connection)
14:03:31 rekahsoft joins (~rekahsoft@52.129.35.150)
14:05:43 × rekahsoft quits (~rekahsoft@52.129.35.150) (Remote host closed the connection)
14:07:54 × ubert quits (~Thunderbi@77.119.166.250.wireless.dyn.drei.com) (Remote host closed the connection)
14:08:11 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
14:08:12 ubert joins (~Thunderbi@77.119.166.250.wireless.dyn.drei.com)
14:13:56 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
14:14:06 justsomeguy joins (~justsomeg@user/justsomeguy)
14:15:30 Sgeo joins (~Sgeo@user/sgeo)
14:19:10 bin_ joins (~bin@user/bin/x-1583188)
14:19:43 × _bin quits (~bin@user/bin/x-1583188) (Ping timeout: 252 seconds)
14:20:28 × qbt quits (~edun@user/edun) (Quit: WeeChat 3.2)
14:21:16 kilolympus joins (~kilolympu@31.205.200.235)
14:22:08 ec_ joins (~ec@gateway/tor-sasl/ec)
14:29:42 × T_S_ quits (sid501726@id-501726.highgate.irccloud.com) ()
14:30:01 T_S_ joins (sid501726@id-501726.uxbridge.irccloud.com)
14:30:53 jcat joins (~jeicher@102.132.229.54)
14:31:17 × Akronymus quits (~Akronymus@85.31.8.180) (Quit: getting ready for night school.)
14:31:32 jcat parts (~jeicher@102.132.229.54) ()
14:36:40 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
14:36:54 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
14:42:17 × nctcf^ quits (~nctcf@68.101.54.227) (Remote host closed the connection)
14:42:42 Ariakenom joins (~Ariakenom@h-81-170-208-30.A163.corp.bahnhof.se)
14:45:27 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:45:33 hyiltiz joins (~quassel@31.220.5.250)
14:47:00 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
14:47:03 nvmd joins (~nvmd@user/nvmd)
14:47:16 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
14:47:28 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
14:48:40 <adamCS> Megaparsec question: I have a string which could be anything ascii and then, at the end will have "(XXX)" where XXX could be any letters. The part preceding the "(XXX)" could also have things in parentheses so "someTill_" isn't working. I need something like "someTill_" but where the end parser only matches if the parenthetical thing is at the end of the input. I tried "parseAtEnd p = p >>= \res -> do { eof; return res}"
14:48:40 <adamCS> with someTill_ but that didn't work either.
14:50:27 <adamCS> The parseAtEnd thing fails the same way, "unexpected space, expecting end of input" after any parenthesized thing before the final one.
14:51:15 favonia joins (~favonia@user/favonia)
14:52:16 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
14:55:14 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
14:55:24 × Ariakenom quits (~Ariakenom@h-81-170-208-30.A163.corp.bahnhof.se) (Read error: Connection reset by peer)
14:55:55 × burnsidesLlama quits (~burnsides@client-8-90.eduroam.oxuni.org.uk) (Remote host closed the connection)
14:57:00 × ubert quits (~Thunderbi@77.119.166.250.wireless.dyn.drei.com) (Quit: ubert)
14:57:14 ubert joins (~Thunderbi@77.119.166.250.wireless.dyn.drei.com)
14:57:54 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
14:58:27 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
15:00:05 <dminuoso> adamCS: The only option I can see is to simply parse until the end of the line, and then take the string apart at the end and manually call parseError conditionally.
15:00:46 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
15:00:53 <adamCS> dminuoso: Huh. I think I just got it to work by adding "try" to "parseAtEnd p" but now you have me worried...
15:00:54 <dminuoso> Or you try and do an earlier lexing pass that split along that line
15:01:12 <merijn> tbh it just sounds like incorrect backtracking?
15:01:36 <adamCS> What do you mean? I am new to parsing so I am guessing a lot...
15:02:20 × ubert quits (~Thunderbi@77.119.166.250.wireless.dyn.drei.com) (Read error: Connection reset by peer)
15:02:20 <dminuoso> If you try the naive approach, this will cause high amounts of backtracking
15:02:33 <merijn> adamCS: Well, the "correct" final parens are followed by a newline, yes?
15:02:37 ubert joins (~Thunderbi@77.119.166.250.wireless.dyn.drei.com)
15:02:49 <merijn> And presumably newlines are not allowed in the preceding part?
15:02:53 <adamCS> merijn: end of input, but yes.
15:03:07 <dminuoso> If its eof, that might be even worse.
15:03:23 <adamCS> I'm only parsing "YYYYYYYYYYYYYYYYY (XXX)" where the Y can each be anything as can the X
15:03:24 <merijn> actually, rewind
15:03:36 <merijn> pastebin minimal parser + input + error
15:03:48 <dminuoso> I would simply strip off 4 characters at the end, and deal with it separately. :p
15:04:02 <dminuoso> rather than backtracking the hell out of this
15:04:53 <adamCS> dminuoso, merijn: Fair enough. If my solution with "try" works, is the only issue performance? Because this is more or less a one-off. I am parsing a badly formatted csv and then caching the result once parsed as something nicer.
15:05:31 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:06:10 <sshine> adamCS, if this were regex, would /^.* \(.*\)$/ match your string?
15:06:46 <adamCS> sshine: yes
15:07:41 × ubert quits (~Thunderbi@77.119.166.250.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
15:08:48 pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
15:09:24 <sshine> adamCS, parser combinators are really neat for LL(k) languages, meaning if you can decide by looking k characters ahead if you should parse one thing or the other. an efficient regex would use non-greedy matching. not sure how that translates into megaparsec.
15:09:26 <myShoggoth> HF Office Hours in 50 minutes: https://www.twitch.tv/myshoggoth
15:10:12 fendor joins (~fendor@178.165.201.14.wireless.dyn.drei.com)
15:10:26 <adamCS> merijn: https://pastebin.com/cKUgZ1qj
15:11:10 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 240 seconds)
15:12:02 <adamCS> sshine: Yeah. I don't need this to be efficient and I was originally just making do with things in Data.Text but that got out of hand. I'm using cassava to parse most of it and then using megaparsec to handle the messy fields.
15:12:28 <sshine> adamCS, it'd be "everything until the '(', then either a last "(YYY)" or a '(' and a recursive call to one-self"... or something.
15:15:50 <raehik> Troubleshooting a C FFI bug that only shows up on Windows. Thinking it's down to integer type sizing differences
15:16:07 <raehik> %sizeOf @CLong undefined
15:16:33 <raehik> > sizeOf @CLong undefined
15:16:35 <lambdabot> error:
15:16:35 <lambdabot> Pattern syntax in expression context: sizeOf@CLong
15:16:35 <lambdabot> Did you mean to enable TypeApplications?
15:16:47 <raehik> > sizeOf (undefined :: CLong)
15:16:48 <lambdabot> error:
15:16:48 <lambdabot> Not in scope: type constructor or class ‘CLong’
15:16:56 <merijn> Querying CLong in lambdabot isn't gonna do much useful, tbh
15:17:04 <merijn> raehik: Are you using the right foreign calling convention?
15:17:12 <raehik> agh I don't know how to use the bots here. That returns 8 on Linux, but 4 on my Windows platforms (VM, hardware)
15:17:12 <merijn> Windows has, like, 3 doesn't it?
15:17:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:17:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:17:16 wroathe joins (~wroathe@user/wroathe)
15:17:48 <raehik> merijn: is that not something the GHC runtime handles? it's the same C library on both Windows and Linux
15:18:10 <merijn> raehik: foreign imports specify calling convention
15:18:37 <merijn> raehik: GHC can't magically handle that for you, because it's not psychic
15:18:48 <merijn> Can you link to the relevant foreign imports?
15:20:27 <raehik> of course ty for help https://github.com/camfort/camfort/blob/f7241ebcc6ab9c8721ebdb6c283a3fea0ea08940/src/Camfort/Specification/Units/InferenceBackendFlint.hs#L69
15:20:54 <raehik> I've only ever seen `foreign import ccall unsafe` (and successfully used it in crossplatform libs)
15:21:13 <merijn> ok, first off
15:21:21 <merijn> Find out whoever added "unsafe" and hit them for me
15:21:38 <raehik> hahaha dang he's not in the channel xD
15:22:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
15:22:11 waleee joins (~waleee@student-223-182.eduroam.uu.se)
15:22:23 <merijn> I continuously see people adding unsafe to foreign imports and 90% of the time the person doing so doesn't realise how ridiculously dangerous that is
15:22:45 <merijn> Also, pretty sure ccall is always wrong on windows
15:23:27 <raehik> ooer. well, it compiles and successfully calls the linked lib. but runtime errors
15:23:38 proofofkeags_ joins (~proofofke@205.209.28.54)
15:24:09 <raehik> I wanted to get some insight on GHC on Window, specifically if it's a 32-bit platform and how that impacts the FFI
15:24:59 × sheddow quits (~sheddow@84-52-255.245.3p.ntebredband.no) (Ping timeout: 256 seconds)
15:25:00 <raehik> Since the linking lib is definitely built with MinGW 64-bit and uses 8-byte longs. but CLong is apparently 4-bytes in GHC?
15:25:25 <merijn> Well, is your GHC built with MinGW?
15:25:45 <merijn> Using a different toolchain for GHC and C code is a recipe for sadness
15:25:51 <raehik> tentative yes -- I used ghcup
15:26:18 <raehik> I think its installation process for Windows is a bit messy, and I think I remember seeing the path mingw32 somewhere which set off alarm bells
15:26:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
15:26:22 <merijn> Then there's also the difference between stdcall and ccall on Windows
15:27:36 <merijn> raehik: GHC determines sizes of CLong, etc. at compile time and pretty sure that depends on the C toolchain used during GHC build
15:28:05 asivitz joins (uid178348@id-178348.tinside.irccloud.com)
15:28:06 <sshine> adamCS, could X and Y be parentheses?
15:28:36 × dajoer quits (~david@user/gvx) (Quit: leaving)
15:28:50 <raehik> merijn: great, that helps a lot
15:31:46 <raehik> ah there's a ghcup channel. I'll check in with them, because it defo looks like ghcup is 32-bit on Windows and that is a probable cause
15:32:21 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
15:32:21 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
15:32:25 cheater1__ joins (~Username@user/cheater)
15:32:29 cheater1__ is now known as cheater
15:32:34 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
15:37:59 <sshine> adamCS, I'm probably missing some detail: https://gist.github.com/sshine/1a62e4225dc9df9612ffb908b1898310
15:42:03 × Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds)
15:42:46 × waleee quits (~waleee@student-223-182.eduroam.uu.se) (Ping timeout: 260 seconds)
15:42:52 ph88^ joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de)
15:43:48 Chai-T-Rex joins (~ChaiTRex@user/chaitrex)
15:44:48 waleee joins (~waleee@student-223-182.eduroam.uu.se)
15:46:08 × ph88 quits (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
15:48:53 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
15:49:20 × jespada quits (~jespada@90.254.245.194) (Quit: Textual IRC Client: www.textualapp.com)
15:49:46 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds)
15:50:35 × ehamberg quits (sid18208@stonehaven.irccloud.com) ()
15:50:51 ehamberg joins (sid18208@id-18208.hampstead.irccloud.com)
15:53:32 × Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds)
15:54:07 × amir quits (sid22336@user/amir) ()
15:54:23 amir joins (sid22336@user/amir)
15:55:11 pzanco joins (~pzanco@2804:14c:3ba1:42d:2204:fff:feff:44a0)
15:57:30 × pzanco quits (~pzanco@2804:14c:3ba1:42d:2204:fff:feff:44a0) (Client Quit)
16:00:11 × boxscape quits (~boxscape@user/boxscape) (Quit: You have been kicked for being idle)
16:00:53 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
16:02:08 × jakesyl quits (sid56879@id-56879.stonehaven.irccloud.com) ()
16:02:31 oats is now known as germaneZed
16:02:41 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
16:02:42 jakesyl joins (sid56879@id-56879.hampstead.irccloud.com)
16:02:54 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
16:03:02 germaneZed is now known as oats
16:03:19 × tritlo quits (sid58727@user/tritlo) ()
16:03:34 tritlo joins (sid58727@user/tritlo)
16:05:55 fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
16:07:47 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
16:08:03 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
16:09:17 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:09:25 × arjun quits (~Srain@user/arjun) (Remote host closed the connection)
16:09:44 × dmj` quits (sid72307@stonehaven.irccloud.com) ()
16:09:59 dmj` joins (sid72307@id-72307.hampstead.irccloud.com)
16:23:06 × fendor quits (~fendor@178.165.201.14.wireless.dyn.drei.com) (Read error: Connection reset by peer)
16:25:55 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2)
16:27:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:28:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:30:44 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:31:09 × waleee quits (~waleee@student-223-182.eduroam.uu.se) (Ping timeout: 268 seconds)
16:31:53 fendor joins (~fendor@178.165.201.14.wireless.dyn.drei.com)
16:34:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:34:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:35:28 × xff0x quits (~xff0x@2001:1a81:53ae:3300:dc85:5fb:77a4:62d3) (Ping timeout: 268 seconds)
16:35:55 xff0x joins (~xff0x@2001:1a81:53ae:3300:c6aa:b7ee:2ee7:d7f8)
16:40:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
16:41:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:45:56 × abrar_ quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Quit: WeeChat 2.9)
16:46:23 abrar joins (~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
16:46:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:47:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:48:21 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
16:52:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:52:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:52:52 maxime__ joins (~maxime@2a01cb0883359800e03cdee15bbb1cbf.ipv6.abo.wanadoo.fr)
16:53:21 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
16:54:47 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:55:51 × maxime_ quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds)
16:57:13 econo joins (uid147250@user/econo)
16:58:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:59:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:00:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
17:03:14 nicbk joins (~nicbk@user/nicbk)
17:04:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:05:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:08:01 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
17:08:15 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:10:30 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
17:10:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:11:18 pavonia joins (~user@user/siracusa)
17:11:35 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:11:51 × acidjnk_new quits (~acidjnk@p200300d0c7203034c44d9fe177fb36b1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
17:13:30 Erutuon joins (~Erutuon@user/erutuon)
17:15:35 ubert joins (~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
17:16:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:16:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:19:02 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds)
17:19:33 geekosaur joins (~geekosaur@xmonad/geekosaur)
17:22:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:22:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:24:06 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 276 seconds)
17:24:41 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Quit: ran away)
17:27:11 <adamCS> sshine: Yes, X could be parentheses.
17:27:31 mikoto-chan joins (~mikoto-ch@83.137.2.243)
17:28:22 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
17:28:35 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:28:35 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Client Quit)
17:28:38 <adamCS> sshine: I think my version works, but I can see that it will have to backtrack (if that's the right term here) on the cases where there are parentheses among the Xs. But that's okay, I think.
17:28:42 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:28:57 <adamCS> (Not the version I pasted, but that with "try" before "atEnd")
17:31:59 lavaman joins (~lavaman@98.38.249.169)
17:32:43 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
17:33:00 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:33:00 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:33:00 wroathe joins (~wroathe@user/wroathe)
17:33:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:34:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:35:38 Pickchea joins (~private@user/pickchea)
17:36:41 nctcf^ joins (~nctcf@68.101.54.227)
17:39:24 × ikex quits (ash@user/ikex) (Quit: ZNC - https://znc.in)
17:39:44 ikex joins (~ash@user/ikex)
17:40:33 <Franciman> how can I enable the Strict pragma?
17:40:38 <Franciman> it does not seem to work
17:40:47 <Franciman> because when I mark {-# UNPACK #-} the fields of my record
17:40:51 <Franciman> ghc cries
17:40:54 <Franciman> saying it is unusable
17:41:00 <Franciman> what am I doing wrong, ziocan?
17:41:17 × arahael quits (~arahael@203.221.121.242) (Ping timeout: 245 seconds)
17:41:32 <Franciman> https://bpa.st/XK3A
17:41:34 <Franciman> here is my code
17:41:37 pony joins (~ed@101.53.218.157)
17:44:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:44:49 × nctcf^ quits (~nctcf@68.101.54.227) (Remote host closed the connection)
17:45:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:46:55 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
17:48:07 × mikoto-chan quits (~mikoto-ch@83.137.2.243) (Ping timeout: 252 seconds)
17:48:49 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
17:49:00 × pjlsergeant quits (sid143467@id-143467.stonehaven.irccloud.com) ()
17:49:03 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:49:16 pjlsergeant joins (sid143467@id-143467.hampstead.irccloud.com)
17:50:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:50:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:52:03 cemerick joins (sid54985@id-54985.uxbridge.irccloud.com)
17:52:14 cemerick parts (sid54985@id-54985.uxbridge.irccloud.com) ()
17:53:47 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
17:54:09 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
17:54:26 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:55:01 × bin_ quits (~bin@user/bin/x-1583188) (Ping timeout: 268 seconds)
17:56:44 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
18:00:08 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
18:01:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:02:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:03:53 <geekosaur> IIRC you cannot UNPACK an ADT with multiple alternatives like that
18:04:26 <geekosaur> also I think LANGUAGE Strict is going to make you very unhappy with that Y combinator
18:04:53 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 268 seconds)
18:05:29 <Franciman> geekosaur: i don't care
18:05:32 <Franciman> I don't use it
18:06:05 <Franciman> if I could get a more understandable performance, I'd be happy
18:06:14 <Franciman> probably haskell is not the right language for my task I know
18:06:20 <Franciman> but it makes for excellent prototyping ^^
18:07:42 × rubin55 quits (sid175221@id-175221.stonehaven.irccloud.com) ()
18:07:58 rubin55 joins (sid175221@id-175221.hampstead.irccloud.com)
18:08:45 arahael joins (~arahael@203.221.121.242)
18:09:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
18:12:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
18:12:51 sheddow joins (~sheddow@84-52-255.245.3p.ntebredband.no)
18:13:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:13:43 azeem joins (~azeem@2a00:801:3c7:fe55:ef64:2dcc:d00c:3ee5)
18:16:27 awschnap joins (~lavaman@98.38.249.169)
18:16:27 × lavaman quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer)
18:17:09 nicbk joins (~nicbk@user/nicbk)
18:18:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:19:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:20:50 × amk quits (~amk@109.255.169.126) (Remote host closed the connection)
18:21:50 × bjobjo quits (~bjobjo@user/bjobjo) (Quit: moar hardware)
18:22:12 <Franciman> help
18:22:16 <Franciman> cabal is trying to kill me
18:22:31 <Franciman> it says that my .cabal file says base >=^4.14.2.0
18:22:32 <Franciman> but it is false
18:22:35 <Franciman> it won't compile
18:22:42 <Franciman> what di I do?
18:22:48 <Franciman> I just tried enable profiling
18:22:52 <Franciman> and it got crazy
18:22:59 <Franciman> https://bpa.st/D7JQ
18:23:01 <Franciman> first this
18:23:08 <Franciman> now the
18:26:14 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 265 seconds)
18:28:24 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
18:28:44 geekosaur joins (~geekosaur@xmonad/geekosaur)
18:29:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
18:30:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:32:23 amk joins (~amk@109.255.169.126)
18:33:58 × awschnap quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
18:34:17 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
18:35:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
18:36:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:38:23 kenran joins (~kenran@200116b82bd65b0032a5b04a485f27fe.dip.versatel-1u1.de)
18:40:31 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
18:41:10 hexfive joins (~eric@50.35.83.177)
18:41:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
18:41:54 × hexfive quits (~eric@50.35.83.177) (Client Quit)
18:42:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:42:51 × astra` quits (sid289983@user/amish) ()
18:43:10 astra` joins (sid289983@user/amish)
18:46:19 renzhi joins (~xp@2607:fa49:6500:b100::5845)
18:47:30 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:47:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:48:36 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 276 seconds)
18:49:23 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
18:50:49 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
18:54:00 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
18:56:49 × Firedancer quits (sid336191@id-336191.stonehaven.irccloud.com) ()
18:57:04 Firedancer joins (sid336191@id-336191.hampstead.irccloud.com)
18:57:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:58:16 <adamse> Franciman: p_dyn isn't supported (either not at all or no base with that combination distributed, can't remember which), you'll want to do a static link
18:59:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:00:35 sneedsfeed joins (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com)
19:01:10 × retroid_ quits (~retro@176.255.22.194) (Read error: Connection reset by peer)
19:02:54 mikoto-chan joins (~mikoto-ch@83.137.2.243)
19:03:19 hyiltiz joins (~quassel@31.220.5.250)
19:05:41 × mikoto-chan quits (~mikoto-ch@83.137.2.243) (Client Quit)
19:06:37 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
19:09:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
19:10:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:11:32 × fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
19:15:31 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
19:15:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:16:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:17:36 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
19:18:51 <sneedsfeed> Is there a way to pattern match literals in a lambda?
19:19:18 <maerwald> You mean LambdaCase?
19:19:24 <sneedsfeed> yea
19:19:29 <sneedsfeed> that sounds right
19:19:32 <maerwald> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/lambda_case.html
19:20:05 <sneedsfeed> neat
19:21:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:21:33 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
19:21:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:22:09 × hamishmack quits (sid389057@stonehaven.irccloud.com) ()
19:22:24 hamishmack joins (sid389057@id-389057.hampstead.irccloud.com)
19:29:26 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:29:27 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
19:29:27 wroathe joins (~wroathe@user/wroathe)
19:31:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
19:33:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:41:25 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) ()
19:41:49 hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com)
19:43:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
19:45:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:49:06 × fendor quits (~fendor@178.165.201.14.wireless.dyn.drei.com) (Remote host closed the connection)
19:50:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:51:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:51:44 justsomeguy joins (~justsomeg@user/justsomeguy)
19:52:28 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
19:53:49 × nvmd quits (~nvmd@user/nvmd) (Ping timeout: 268 seconds)
19:55:33 nvmd joins (~nvmd@user/nvmd)
19:56:06 wrengr_away is now known as wrengr
19:56:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
19:56:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:57:35 × acertain quits (sid470584@id-470584.stonehaven.irccloud.com) ()
19:57:50 acertain joins (sid470584@id-470584.hampstead.irccloud.com)
19:59:15 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
19:59:22 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
20:00:46 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:02:24 × SanchayanMaity quits (sid478177@id-478177.stonehaven.irccloud.com) ()
20:02:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
20:02:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:02:39 SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com)
20:02:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
20:05:02 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 260 seconds)
20:05:22 acidjnk_new joins (~acidjnk@p200300d0c720309498f6e7a7a92d4c02.dip0.t-ipconnect.de)
20:06:47 juhp joins (~juhp@128.106.188.220)
20:08:27 System12_ joins (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
20:11:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
20:11:35 × pmk quits (~user@2a02:587:9416:c4cd:a38a:dea2:e28e:646d) (Remote host closed the connection)
20:11:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:12:19 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
20:14:37 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:21:16 × mustafa quits (sid502723@rockylinux/releng/mustafa) ()
20:21:32 mustafa joins (sid502723@rockylinux/releng/mustafa)
20:27:37 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:30:46 × maxime__ quits (~maxime@2a01cb0883359800e03cdee15bbb1cbf.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
20:30:55 × chomwitt quits (~chomwitt@2a02:587:dc14:5d00:12c3:7bff:fe6d:d374) (Remote host closed the connection)
20:31:54 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
20:33:04 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:33:05 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
20:33:05 wroathe joins (~wroathe@user/wroathe)
20:33:53 zebrag joins (~chris@user/zebrag)
20:34:32 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
20:34:45 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
20:35:13 Cajun joins (~Cajun@user/cajun)
20:38:12 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:38:18 max22- joins (~maxime@2a01cb0883359800c3e0f756754ec9b4.ipv6.abo.wanadoo.fr)
20:39:01 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
20:42:52 <ldlework> Am I thinking about applicatives correctly? The way that <$> and <*> work together, is when you are fmapping a binary function, because the fmap ends up replacing the lhs of <*> with a partially applied function, which <*> then applies?
20:43:21 <ldlework> In otherwords, by combining <$> and <*> you can lift a binary function
20:43:22 × doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 268 seconds)
20:43:46 × peterhil quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 260 seconds)
20:45:05 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
20:45:27 <dibblego> pretty much right; just remember that all functions take one argument, always
20:46:32 <ldlework> dibblego: your point is that any function on the lhs of <*> will do, the way it comfortably works out when fmapping "binary" functions, is just coincidentally useful?
20:47:02 <awpr> yep, that sounds about right. `<*>` wants the function in the Applicative, and if you have a pure function, it has to end up in the Applicative somehow. `pure f <*> x <*> y` is potentially a first attempt at doing that, but using `<$>` nicely fuses the `pure` and first `<$>` into one step
20:47:22 <awpr> re the initial question, that is
20:47:55 <dibblego> if you take function f :: a -> b -> c, whose argument has type a, and fmap it across x :: f a, then you will have a value :: f (b -> c)
20:47:58 <awpr> IMO if "multi argument functions" aren't a thing that exists formally, then there's no harm in using it as a consistent shorthand for "function that returns a function"
20:48:48 <ldlework> that's what i was thinking at the time, i haven't forgotten what actually happens
20:48:56 lavaman joins (~lavaman@98.38.249.169)
20:49:01 <ldlework> i figured maybe others would be reminded though
20:49:12 <dibblego> in fp-course, we don't use it as a shorthand until it is fully understood, by exactly this exercise
20:50:56 <awpr> a bit of a tangent, but I wonder if it's more misleading that we use the same pseudo-syntax for "some particular type" as we use for implicitly quantified variables
20:51:31 <awpr> `f :: a -> b -> c` in the above is intended to mean something very different from `f :: forall a b c. a -> b -> c`, which is what it means in Haskell syntax
20:52:06 <ldlework> understanding `f` as "Maybe" (in cases where it's Maybe, and friends) has been confusing.
20:52:09 <dibblego> yes, I agree this can cause issues in explanation
20:52:32 <ldlework> "Provided the 𝑓 is a type with a Monoid instance.."
20:52:33 <awpr> sadly I don't know of a better syntax. sometimes I use uppercased standin type names
20:52:55 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:52:56 <ldlework> It took me a while to realize they meant `Maybe`
20:53:00 <ldlework> And not some function
20:53:14 <ldlework> But to HFFP's credit this is all explained in meticulous detail in previous chapters
20:53:18 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Read error: Connection reset by peer)
20:53:32 <ldlework> It's just that at some point you move on in a book not having perfectly internalized every notion along the way
20:53:51 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
20:53:54 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
20:54:46 <ldlework> `f a` really means, "some wrapped value" rather than, "the result of some function f applied to a"
20:57:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
20:58:34 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 268 seconds)
20:58:59 <geekosaur> so you don't like type level using the syntax as term level
20:59:06 × psilospore quits (uid517704@id-517704.stonehaven.irccloud.com) ()
20:59:20 <geekosaur> where `f a` means a type level function applied to the type a
20:59:26 psilospore joins (uid517704@id-517704.hampstead.irccloud.com)
20:59:33 <geekosaur> (`Maybe` being such a function)
21:00:24 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
21:00:59 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
21:01:46 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
21:03:42 Lord_of_Life_ is now known as Lord_of_Life
21:03:54 <ldlework> geekosaur: I get it now just conveying my confusion along the way :P
21:05:11 <awpr> hmm, just throwing ideas out there, maybe learning materials would benefit from annotating syntax examples as type-level or value-level syntax (or module-level)
21:05:36 <dibblego> we do that in fp-course
21:05:45 <awpr> awesome
21:06:45 × kenran quits (~kenran@200116b82bd65b0032a5b04a485f27fe.dip.versatel-1u1.de) (Quit: WeeChat info:version)
21:09:03 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
21:10:12 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:12:30 × michalz quits (~michalz@185.246.204.57) (Remote host closed the connection)
21:24:52 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
21:25:07 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
21:25:42 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
21:26:00 <ldlework> Another benefit to this applicative stuff, is that it can shortcircuit right?
21:26:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:26:20 <ldlework> Like you might have a bunch of applicative operations chained together, and if any of them go wrong, you get back a Nothing, Left, etc
21:27:30 <dibblego> for Maybe yeah
21:27:38 <ldlework> It reminds me of when I ported the examples from Reppy's Concurrent Programming in ML to F# using Hopac. It had all of these crazy channel operators which could short circuit in various ways.
21:27:46 × xff0x quits (~xff0x@2001:1a81:53ae:3300:c6aa:b7ee:2ee7:d7f8) (Ping timeout: 268 seconds)
21:28:06 xff0x joins (~xff0x@2001:1a81:53ae:3300:503:d23a:62d3:e8da)
21:28:47 <janus> infinity0: why do you suggest using IO to seed the hash function for unordered-containers? why can't it be RandomGen?
21:29:10 ldlework takes a guess
21:29:22 <ldlework> Because it wont really be random unless you use some actual randomness from outside the program?
21:29:31 <ldlework> "really be random" you know what I mean
21:30:11 <c_wraith> does it need to be?
21:30:46 <ldlework> dunno. i thought it was actually pretty cool that graphics program always did the same thing
21:30:58 <ldlework> but I could see for a game or something you might want a random seed
21:31:11 <ldlework> that graphics program I made*
21:31:13 <sshine> RandomGen is a class, so I suppose the instance decides where the (pseudo-/actual) randomness comes from?
21:31:15 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
21:31:50 <c_wraith> even with StdGen, for a lot of use cases you only need to use IO to get the seed. You don't need it for anything after that.
21:32:24 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
21:32:37 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:33:19 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
21:35:34 × slack1256 quits (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Ping timeout: 268 seconds)
21:35:39 <ldlework> Why does <*> produce a product?
21:36:19 <dibblego> it doesn't though
21:37:23 <ldlework> > (,) <$> [1, 2] <*> [10, 20]
21:37:24 <lambdabot> [(1,10),(1,20),(2,10),(2,20)]
21:37:45 <dibblego> that is (,) producing a product
21:37:59 <dibblego> or maybe you mean the [] Applicative producing a product
21:38:07 <ldlework> So it's the instance's implementation
21:38:19 <ldlework> that decides the behavior
21:38:25 <ldlework> because of course it is
21:38:26 <dibblego> Yes.
21:38:27 <ldlework> ok
21:38:57 <sshine> > [(+1), (+2)] <*> [0, 5, 10]
21:38:59 <lambdabot> [1,6,11,2,7,12]
21:39:23 <ldlework> ok that's confusing
21:39:27 <ldlework> wait no it's not
21:39:29 <ldlework> ok
21:39:33 <sshine> kinda looks like a product
21:39:35 <dibblego> yeah it is
21:39:48 <ldlework> it's still the [] Applicative at play
21:40:12 <dibblego> you may approximately think of the [] Applicative as "loops within loops" where the total number of loops is the number of (<*>) + 1
21:40:20 <ldlework> soon i will be able to mold my brain into an arm chair and recline upon it
21:40:36 <dibblego> (,) means: "make a tuple within the inner loop"
21:40:40 <janus> sshine: exactly, i feel like people are throwing out the baby with the bathwater by suggesting IO. because a pure hashable with no seeding is exploitable, now suddently everything has to be impure? no! we can have both, that is the point of haskell, we have type classes, not everything needs to be in IO. we have RandomGen to provide randomness , of course you'd need IO to get the StdGen if that's what you
21:40:46 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
21:40:46 <janus> wanna use
21:40:49 × jonatan quits (~nate@h85-8-60-194.cust.a3fiber.se) (Ping timeout: 252 seconds)
21:41:04 <sshine> ldlework, your brain already did that to itself; it's called a spine :-D
21:42:05 <janus> i was wondering, is it maybe some dependency graph problem? can't unordered containers depend on the 'random' package?
21:42:34 × xff0x quits (~xff0x@2001:1a81:53ae:3300:503:d23a:62d3:e8da) (Ping timeout: 268 seconds)
21:43:06 <awpr> seems like one of the bigger factors is that it's nearly insurmountable to update all users of aeson to plumb either an explicit random seed or IO into all JSON deserialization sites
21:43:16 xff0x joins (~xff0x@2001:1a81:53ae:3300:d2cc:9d43:abd1:db1a)
21:43:59 <janus> phadej's solution was to make Aeson opaque in how it stores the object, that will be a breaking change, i think it sounds reasonable. i don't really see a way around it
21:44:05 <awpr> likewise with unordered-containers. I guess the existing API could stay in place unchanged and a salted API could be added alongside it
21:44:25 × System12_ quits (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com) (Ping timeout: 268 seconds)
21:44:45 <janus> awpr: right, but if aeson becomes opaque and defaults to Map instead of HashMap, then the unordered-containers problem is separate, which is fine
21:44:48 <awpr> but that doesn't fix anyone, and would result in most users still using the vulnerable version by default
21:44:53 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
21:44:54 <awpr> I mean my suggestion
21:45:39 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
21:45:46 <awpr> yeah, if we're allowed to break backwards compat, there are lots of ways to avoid it
21:46:25 <janus> i really hope we won't give up on values like referential transparency just because people can't be bothered to upgrade
21:47:27 <janus> but i guess that everybody can decide for themselves, libraries will show their values. i just hope we won't be reading the random seed from an envrionment variable like an engineer from leapyear is actually suggesting!
21:47:32 <awpr> I doubt anyone's willing to break referential transparency.
21:47:59 <janus> awpr: wouldn't it be amounting to that if you read the seed from the unix env?
21:48:14 <sshine> :t System.IO.Unsafe.unsafePerformIO
21:48:15 <lambdabot> IO a -> a
21:48:29 <awpr> if the program explicitly reads in in `main` and plumbs it around, no
21:48:42 <sshine> I think that's perfectly agreeable, if we just prefix every combinator with 'unsafe'. :-D
21:48:50 <awpr> if it's implicitly read by a pure function inside unsafePerformIO, then yes, mostly
21:49:38 <awpr> if it's in a global that's evaluated once and shared by all hash maps, ... maybe, still seems sketchy, but I'm not sure it's strictly breaking referential transparency
21:51:12 <janus> awpr: hashable has a function called "hash :: a -> Int". the function will give you a different number based on the environment variable, right?
21:51:19 <sshine> awpr, you'd have programs that behave differently depending on the iteration in which you run them.
21:51:27 _bin joins (~bin@user/bin/x-1583188)
21:51:31 <awpr> without thinking about it too deeply, I'd be inclined to have hash-based containers take their salt as an extra parameter, and have "legacy" apis that take no salt
21:51:46 <awpr> janus: no, there should be a hashWithSalt function (there is, isn't there?)
21:52:05 <awpr> sshine: yes, that seems like a bad thing, but I'm not sure referential transparency is exactly what it breaks
21:54:41 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
21:54:41 <janus> awpr: ok, so i guess you want only the HashMap itself to use the env variable? what if i call toList on it? won't it have a different order based on the salt used?
21:54:50 <awpr> I didn't propose using an environment variable.
21:55:31 <janus> well, you said "i doubt anyone's willing to break referential transparency" and i see on the github that somebody suggested using the environment variable
21:55:36 <[exa]> there should be a general guideline that people either use the maps in insertion/deletion-efficient mode or hash-stuff-eficient-mode, and explicitly switch between the modes
21:55:43 <janus> so i am just trying to understand how it would not constitute breaking referential transparency
21:56:31 <sshine> janus, I'm not so afraid they'll pick an unsafe solution. I am a little concerned they'll pick a "they should've read the disclaimer" solution. :)
21:57:22 <awpr> sort of depends on your definition of referential transparency. certainly invocation-varying "values" are sketchy, and I'd rather not have them. but they're much less of a violation than e.g. putting mutable state behind a "pure" value
21:58:10 <awpr> anyway maybe I just have too much faith in the general public. sounds like some people are willing to break referential transparency for convenience. at least I doubt that will win out
21:58:37 <janus> ok, i guess sshine is right
21:59:42 <janus> sounds like we may be moving to wargonaut anyway, which seemed like the nuclear solution. but hey, sounds exciting to try out a new json library, why not, i am not complaining :)
22:00:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
22:01:26 <sshine> janus, which one do you have in mind?
22:01:29 <[exa]> man is there really no alternative of kinda-better-than-hashtable performance? no reasonable array-packed tries or some other stuff?
22:02:00 <sshine> [exa], bloom filters? >;)
22:02:25 <janus> sshine: i think it sounds reasonable to 1. make Object in opaque in aeson, release breaking new version that uses Map internally and requires Ord
22:02:56 <janus> 2. add newHashMapWithSalt :: RandomGen m => m (HashMap a b) to unordered-containers
22:03:00 <[exa]> sshine: bloom filters are kinda constant by default, no need to break referential transparency there
22:04:12 <sshine> janus, yeah, I suppose. but I don't know how subscribers feel about it. it's either that or changing the way you inject a seed, which is gonna be super messy because there isn't one effect system to rule them all.
22:04:22 acidjnk_new3 joins (~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de)
22:04:39 hololeap_ is now known as hololeap
22:04:44 <awpr> `Word64 -> HashMap a b`?
22:04:45 <sshine> janus, right
22:05:15 wroathe joins (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
22:05:16 × wroathe quits (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host)
22:05:16 wroathe joins (~wroathe@user/wroathe)
22:05:20 <awpr> no need to bake the random number generation into unordered-containers, as far as I can tell, just let callers choose how to get their salt
22:05:23 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 268 seconds)
22:05:41 <sshine> awpr, right.
22:05:46 <janus> awpr: yeah that one too, sure, but RandomGen is an interface, you can make your own randomGen that always returns 4 ;) so not strictly needed.
22:06:19 hyiltiz joins (~quassel@31.220.5.250)
22:06:23 <awpr> not a fan of needing to define fake random number generators to pass in a number
22:06:31 <sshine> awpr, it's not a fake one.
22:06:44 <awpr> it sure violates the concept of the class, though
22:07:02 <janus> awpr: what is your use case? reproducability? there is loads of infrastructure already that let's you reproduce easily
22:07:10 <awpr> what the hash map needs to be constructed isn't a random number generator, it's a number
22:07:20 <sshine> awpr, no. randomness with a known seed is still pseudo-random.
22:07:31 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:07:52 <awpr> all of the randomness we're talking about is pseudo-random
22:08:01 <ldlework> generated randomness from an unknown seed is still pseudo-ranom
22:08:03 <ldlework> heh yeah
22:08:15 × acidjnk_new quits (~acidjnk@p200300d0c720309498f6e7a7a92d4c02.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
22:08:23 <janus> well i just fear that people talking about IO do that because they think that IO is somehow 'more random' than a PRNG
22:08:24 <sshine> I suppose having a basic data type with a big, fat disclaimer that says "don't put 'user' data into this one" isn't so good. :) so that warrants breaking the module API.
22:08:24 <ldlework> i mean we can get philosophical and say randomness is epistemological, but heh
22:08:34 <hpc> even /dev/random uses seeded prng values
22:08:38 <janus> similar to how people used /dev/random because they were afraid that /dev/urandom wasn't enough
22:09:43 <janus> hpc: only does that because people coded against random when they didn't really need it , right?
22:09:48 <hpc> janus: the thing that ultimately snapped me out of it was "we're afraid of using less than one bit of entropy per one bit of randomness, but not afraid of using 2048 bits of entropy to secure unknown gigs of https traffic"
22:10:44 <hpc> janus: as of i-forget-when, /dev/random is the same as /dev/urandom iirc
22:10:54 <janus> right, only because people were irrationally afraid
22:11:03 <sshine> I recall that, too
22:11:27 <janus> doesn't make sense to work around kernel bugs, futile endavour.... i respect defence in depth, but come on...
22:11:31 <hpc> anyhoo that was more at awpr's notion of "fake randomness"
22:11:47 <sshine> I somehow, in my brain, always defaulted to /dev/urandom unless I had a reason not to, and I never did have a reason not to.
22:12:06 <awpr> the thing I called "fake randomness" is `newtype UseThisSalt = UseThisSalt Word64; instance RandomGen UseThisSalt`
22:12:31 <hpc> i had an alias to force entropy by doing wc -l recursively over /
22:12:49 <hpc> for when something was using /dev/random and being slow about it
22:13:09 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
22:14:11 <[exa]> oh fun, I remmeber when taking stuff from /dev/random actually blocked
22:14:24 × max22- quits (~maxime@2a01cb0883359800c3e0f756754ec9b4.ipv6.abo.wanadoo.fr) (Quit: Leaving)
22:15:01 <sshine> I recently generated a GPG key. it went sadly fast.
22:15:39 <hpc> somehow it's more satisfying when it takes forever lol
22:16:03 <sshine> yes, it gave a perception of fortitude.
22:16:15 <janus> i saw my tormented childhood in the ascii art of my gpg key. so i hacked my kernel to disable its randomness, now i feel better.
22:17:00 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
22:17:12 <hpc> go full xkcd, make /dev/random a pipe to $(yes 4)
22:17:13 <hpc> :D
22:17:37 <hpc> this is rapidly getting -offtopic
22:18:36 × ubert quits (~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Quit: ubert)
22:18:52 ubert joins (~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
22:19:22 VoidNoir0 joins (~VoidNoir0@72.80.203.52)
22:19:36 acidjnk_new joins (~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de)
22:23:16 × acidjnk_new3 quits (~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
22:23:25 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
22:23:42 cjb joins (~cjbayliss@user/cjb)
22:23:52 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:23:53 × ubert quits (~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
22:25:54 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:26:37 × xsperry quits (~as@user/xsperry) (Remote host closed the connection)
22:27:47 sm2n_ joins (~sm2n@user/sm2n)
22:28:09 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:29:06 ubert joins (~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
22:29:20 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
22:30:10 × sm2n quits (~sm2n@user/sm2n) (Ping timeout: 260 seconds)
22:32:30 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 260 seconds)
22:34:19 mentAI joins (~mentAI@2001:67c:2628:647:12::3c2)
22:38:43 × sm2n_ quits (~sm2n@user/sm2n) (Remote host closed the connection)
22:39:09 sm2n_ joins (~sm2n@user/sm2n)
22:40:13 × sm2n_ quits (~sm2n@user/sm2n) (Remote host closed the connection)
22:40:46 sm2n_ joins (~sm2n@user/sm2n)
22:41:43 × sm2n_ quits (~sm2n@user/sm2n) (Remote host closed the connection)
22:41:58 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
22:42:58 hendursaga joins (~weechat@user/hendursaga)
22:43:12 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
22:43:34 × TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8)
22:48:22 × ubert quits (~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Remote host closed the connection)
22:54:06 × favonia quits (~favonia@user/favonia) (Ping timeout: 268 seconds)
22:57:18 aerona joins (~aerona@2600:6c54:4600:f300:d963:2c18:9947:74cf)
22:57:48 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
23:01:26 nicbk joins (~nicbk@user/nicbk)
23:02:13 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
23:02:57 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:04:41 xsperry joins (~as@user/xsperry)
23:08:07 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:13:57 slack1256 joins (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
23:17:56 × acidjnk_new quits (~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
23:20:29 jacks2 joins (~bc8165b6@217.29.117.252)
23:20:30 × sheddow quits (~sheddow@84-52-255.245.3p.ntebredband.no) (Quit: Client closed)
23:21:50 hyiltiz joins (~quassel@31.220.5.250)
23:24:56 × slack1256 quits (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Ping timeout: 268 seconds)
23:26:44 Cajun joins (~Cajun@user/cajun)
23:27:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
23:31:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:31:40 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1)
23:36:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
23:38:37 × m4lvin quits (~m4lvin@w4eg.de) (Ping timeout: 252 seconds)
23:38:44 m4lvin joins (~m4lvin@w4eg.de)
23:40:03 hololeap mashes the keyboard like a monkey
23:41:13 × Gurkenglas quits (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
23:41:30 <monochrom> Ah, so you use Shakespeare's works for passwords!
23:41:40 <haskl> What are the advantages of using groundhog over simply persistent and vice versa?
23:43:13 aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
23:46:42 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 260 seconds)
23:48:07 wroathe joins (~wroathe@user/wroathe)
23:49:05 × pony quits (~ed@101.53.218.157) (Quit: WeeChat 2.8)
23:53:20 × brettgilio quits (~brettgili@137.184.3.255) (Ping timeout: 256 seconds)
23:56:08 × dave_uy quits (~dave_uy@108.61.193.26) (Quit: The Lounge - https://thelounge.chat)
23:57:24 × aplainze1akind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 268 seconds)

All times are in UTC on 2021-09-13.