Home freenode/#haskell: Logs Calendar

Logs on 2021-03-15 (freenode/#haskell)

00:01:56 <sm[m]> we need a live coding platform that #haskell can plug into
00:02:06 <sm[m]> plenty of feedback then!
00:03:25 <Squarism> This might be a bad/confused example but anyways. I wonder if there is a way to make some sort of abstract class that can concretized into another class? https://paste.ofcode.org/9L8PEMsqQZeDHqMaPcx7xk
00:03:41 bergey` joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
00:03:58 CoconutCrab joins (~Cua@unaffiliated/coconutcrab)
00:04:00 × tak quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
00:04:40 <Squarism> where a sub class provides detail to make a superclass less abstract so to speak.
00:04:51 atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK)
00:06:15 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:08:26 × bergey` quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
00:09:06 <koz_> Squarism: You could do that with associated types.
00:09:29 <koz_> However, you _still_ have a multi-parameter type class, so without having fundeps _as well_, you're not gonna have a fun time.
00:10:16 <Squarism> koz_, never heard of "associated types" before. What are those?
00:10:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
00:11:27 <koz_> https://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.Exts.html#IsList
00:11:30 <remal> In devdocs there is haskell 7, 8, 9 how can I determine which version I'm on?
00:11:34 <remal> is it 9 be default?
00:11:36 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
00:11:39 <koz_> See that 'type Item l' thing? That's an associated type.
00:13:56 <koz_> But for what you want to do, you're still going to have trouble, because you have a multi-parameter type class. Unless you can come up with some fundeps for that combination.
00:15:45 <Squarism> ah, i thought that was class type families.
00:15:58 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection)
00:16:13 <koz_> Squarism: Well, whatever you wanna call them, I think what you want is doable with them.
00:17:08 <Squarism> through using instances, sure. But create a class from another class? I cannot see how that would be done.
00:17:43 joebobjoe joins (~joebobjoe@unaffiliated/joebobjoe)
00:18:05 <koz_> Ah, so you want parameterized _classes_, not merely 'here's a set of classes, associate them with some types'?
00:21:59 <Squarism> koz_, yes
00:22:45 <koz_> Yeah, that's... challenging.
00:22:50 <koz_> What's the bigger context here?
00:23:14 <whataday> why call a fixed point inside a Cont do notation would create a loop?
00:23:34 × wopas32 quits (uid384704@gateway/web/irccloud.com/x-qslgkfcwyjmugmxz) (Quit: Connection closed for inactivity)
00:23:46 <whataday> http://www.vex.net/~trebla/haskell/cont-monad.xhtml
00:24:05 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
00:24:27 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
00:24:58 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
00:25:33 <Squarism> koz_, right now just trying to learn what is possible. Really i wanted to create two classes that just differ in 2 arguments. Say A and B. Then i wanted to create a mapping from B -> A. So implementing a B would give me an A.
00:25:52 <koz_> What are A and B? Types?
00:26:03 <Squarism> no, those would be the two classes
00:26:27 <koz_> The 'arguments' in which they differ are types then?
00:26:33 <Squarism> yes
00:26:51 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
00:26:53 <koz_> Depending on what you want, type families might be able to achieve it, but I would argue that you _definitely_ don't wanna go down this road.
00:27:07 <koz_> It might be doable, but it'll be impossible to work with, and the typechecker would likely turn to custard.
00:27:10 <Squarism> with arguments i mean the Started/NonStarted from my example.
00:27:34 <koz_> I dunno though - just the thought of this makes my brain protest.
00:27:59 <Squarism> =D
00:30:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:30:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:35:14 The20YearIRCloud joins (~The20Year@195.140.213.38)
00:41:18 × joebobjoe quits (~joebobjoe@unaffiliated/joebobjoe) (Ping timeout: 260 seconds)
00:41:21 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
00:41:39 joebobjoe joins (~joebobjoe@unaffiliated/joebobjoe)
00:46:40 × joebobjoe quits (~joebobjoe@unaffiliated/joebobjoe) (Ping timeout: 265 seconds)
00:49:45 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
00:52:56 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
00:53:23 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
00:54:20 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 256 seconds)
00:54:22 Tario joins (~Tario@201.192.165.173)
00:55:49 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
00:57:31 Benzi-Junior joins (~BenziJuni@88-149-67-143.du.xdsl.is)
00:57:59 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 245 seconds)
00:59:17 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
00:59:34 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
01:00:12 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 265 seconds)
01:01:39 joebobjoe joins (~joebobjoe@unaffiliated/joebobjoe)
01:02:57 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:03:14 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
01:04:17 tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:05:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:05:47 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
01:06:04 × tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
01:06:22 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:10:14 × nfd quits (~nfd9001@2601:602:77f:1820:cdd8:8342:9006:fbd2) (Ping timeout: 264 seconds)
01:10:46 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
01:11:40 xsperry joins (~as@unaffiliated/xsperry)
01:12:24 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:85cc:3a34:36cf:1a53)
01:13:02 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
01:13:36 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds)
01:14:54 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
01:18:48 <slack1256> Does anyone know a FOSS haskell program that uses the +RTS -T --RTS statistics at runtime for profiling?
01:19:38 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
01:19:39 <slack1256> That option makes available profiling info at runtime, so they can be reported or processed in the program itself. I want to know what is the standard treatment of them.
01:19:51 conal joins (~conal@64.71.133.70)
01:20:36 <infinisil> slack1256: ekg is a library that uses that: https://hackage.haskell.org/package/ekg
01:21:05 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
01:21:11 <sm[m]> it prints GC statistics, no ?
01:21:19 <slack1256> infinisil: Coool, thank you!
01:21:26 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
01:22:01 <sm[m]> well, --help says it collects them. I don't see it printing anything
01:22:27 <sm[m]> I seee
01:22:53 conal_ joins (~conal@192.145.118.101)
01:23:04 <slack1256> infinisil: This actually is better, it provides a view onto a live program, great! just great! .
01:23:14 <infinisil> :D
01:23:40 Tario joins (~Tario@200.119.187.12)
01:24:22 remal parts (~remal@d24-57-234-201.home.cgocable.net) ()
01:24:22 × conal quits (~conal@64.71.133.70) (Ping timeout: 256 seconds)
01:24:28 <slack1256> Why didn't I know this before?
01:24:35 slack1256 jumping
01:24:45 <sm[m]> nobody expects haskell tooling to be great :)
01:25:53 remal joins (~remal@d24-57-234-201.home.cgocable.net)
01:26:02 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
01:27:12 remal parts (~remal@d24-57-234-201.home.cgocable.net) ()
01:27:21 remal joins (~remal@d24-57-234-201.home.cgocable.net)
01:27:39 drbean joins (~drbean@TC210-63-209-145.static.apol.com.tw)
01:29:11 <slack1256> https://imgur.com/a/vu0AexY
01:30:02 × poscat quits (~poscat@123.112.148.153) (Ping timeout: 256 seconds)
01:30:25 poscat joins (~poscat@123.112.148.153)
01:31:39 × conal_ quits (~conal@192.145.118.101) (Quit: Computer has gone to sleep.)
01:34:02 <int-e> slack1256: I imagine it makes GHC.Stats useful
01:34:45 <int-e> but maybe there's more to it, hmm
01:36:34 <int-e> No, that's it according to the description at https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-Stats.html
01:37:05 <int-e> "These statistics are not available unless a program is run with the -T RTS flag."
01:37:06 × Tario quits (~Tario@200.119.187.12) (Read error: Connection reset by peer)
01:37:10 <slack1256> But the labels available on ekg don't seem to be the same as in GHC.Stats
01:38:00 Tario joins (~Tario@201.192.165.173)
01:41:48 <int-e> Well you can map them by looking at https://hackage.haskell.org/package/ekg-core-0.1.1.7/docs/src/System.Metrics.html#registerGcMetrics
01:43:08 <slack1256> Oooh so I have to make the mapping myself onto ekg. Fair enough.
01:43:09 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-vnbzqcslxpqrrgtm) (Quit: Connection closed for inactivity)
01:43:33 <int-e> huh, so par_tot_bytes_copied and par_avg_bytes_copied are the same? that's odd
01:44:49 rajivr joins (uid269651@gateway/web/irccloud.com/x-scfssrsbjzfzlhth)
01:45:27 kiweun joins (~kiweun@2607:fea8:2a62:9600:2584:bfd8:4ff2:6f57)
01:52:02 conal joins (~conal@64.71.133.70)
01:52:51 × conal quits (~conal@64.71.133.70) (Client Quit)
01:54:20 × gitgood quits (~gitgood@80-44-12-39.dynamic.dsl.as9105.com) (Ping timeout: 265 seconds)
01:56:44 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:57:18 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
01:58:34 × zebrag quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
01:58:55 zebrag joins (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr)
02:00:32 × slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
02:01:06 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
02:02:45 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
02:03:24 __minoru__shirae joins (~shiraeesh@46.34.207.217)
02:05:03 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 245 seconds)
02:05:15 vicfred joins (vicfred@gateway/vpn/mullvad/vicfred)
02:05:44 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
02:08:03 sayola joins (~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de)
02:09:28 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:09:30 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
02:19:53 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 260 seconds)
02:21:18 nfd joins (~nfd9001@2601:602:77f:1820:cdd8:8342:9006:fbd2)
02:21:54 nfd9001 joins (~nfd9001@2601:602:77f:1820:61ac:3926:b4ff:2973)
02:23:21 <shapr> I just realized hoogle is so successful because of purity
02:25:50 × nfd quits (~nfd9001@2601:602:77f:1820:cdd8:8342:9006:fbd2) (Ping timeout: 264 seconds)
02:26:02 geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr)
02:27:02 × nfd9001 quits (~nfd9001@2601:602:77f:1820:61ac:3926:b4ff:2973) (Ping timeout: 264 seconds)
02:29:21 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds)
02:30:43 <MarcelineVQ> what a mysterious thing to say
02:30:53 × joebobjoe quits (~joebobjoe@unaffiliated/joebobjoe) (Ping timeout: 245 seconds)
02:32:57 × mrchampion quits (~mrchampio@38.18.109.23) (Ping timeout: 246 seconds)
02:34:36 Yanze joins (32188769@50-24-135-105.bcstcmta02.res.dyn.suddenlink.net)
02:35:49 mrchampion joins (~mrchampio@38.18.109.23)
02:36:08 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
02:38:14 × Yanze quits (32188769@50-24-135-105.bcstcmta02.res.dyn.suddenlink.net) (Quit: Connection closed)
02:38:34 joebobjoe joins (~joebobjoe@unaffiliated/joebobjoe)
02:38:43 Yanze joins (32188769@50-24-135-105.bcstcmta02.res.dyn.suddenlink.net)
02:38:54 × Yanze quits (32188769@50-24-135-105.bcstcmta02.res.dyn.suddenlink.net) (Client Quit)
02:39:22 <shapr> MarcelineVQ: I realized that hoogle in OCaml might not be as useful, because more mutation is allowed
02:39:43 Yanze joins (32188769@50.24.135.105)
02:40:05 <shapr> and that the usefulness of an OCaml hoogle would depend on how well the function was described by the type signature
02:40:30 <shapr> hoogle is a confusing tool to show to people who don't know Haskell
02:40:43 × Yanze quits (32188769@50.24.135.105) (Client Quit)
02:40:53 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 260 seconds)
02:40:54 <shapr> Once I've given someone a minimal introduction to Haskell, hoogle is a wonderful surprise
02:42:24 <shapr> but you couldn't build hoogle for Python
02:42:34 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
02:42:35 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
02:43:43 × xff0x quits (~xff0x@2001:1a81:527c:ad00:a70:55a0:fd29:c4d4) (Ping timeout: 258 seconds)
02:44:15 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
02:44:35 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:45:25 xff0x joins (~xff0x@2001:1a81:52b7:0:124b:8415:a163:5525)
02:47:27 conal joins (~conal@64.71.133.70)
02:49:03 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
02:49:32 <nshepperd> type signatures are probably a bit less informative when everything's mutable yeah
02:50:52 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:52:29 × Wuzzy quits (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Quit: Wuzzy)
02:55:00 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
03:01:09 <int-e> @hoogle IO ()
03:01:10 <lambdabot> Control.Concurrent yield :: IO ()
03:01:10 <lambdabot> Control.Exception allowInterrupt :: IO ()
03:01:10 <lambdabot> Foreign.C.Error resetErrno :: IO ()
03:01:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:01:33 <int-e> (yeah that's about as useful as could be expected :-) )
03:03:13 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
03:04:56 × alx741 quits (~alx741@181.196.68.64) (Quit: alx741)
03:04:58 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
03:05:23 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds)
03:07:09 × joebobjoe quits (~joebobjoe@unaffiliated/joebobjoe) (Ping timeout: 264 seconds)
03:07:11 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:07:11 finn_elija is now known as Guest69036
03:07:11 FinnElija is now known as finn_elija
03:07:36 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 246 seconds)
03:10:28 Jd007 joins (~Jd007@162.156.11.151)
03:11:15 myShoggoth joins (~myShoggot@75.164.81.55)
03:11:29 <curiousgay> `fst $ head [(3,"four")]` -> 3, `fst . head [(3,"four")]` -> error
03:11:33 × Guest69036 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
03:12:20 <Axman6> because you've written fst . (head [(3,"four"])
03:12:34 <Axman6> uh, with the extra bracket I forgot for the tuple
03:13:48 × __minoru__shirae quits (~shiraeesh@46.34.207.217) (Ping timeout: 245 seconds)
03:13:53 <Axman6> two things to remember: function application binds the strongest, so f x means (f x), no matter which operators are around it. (.) takes in two functions, but the second argument you've provided it is not a function, it has type (Int,String) (or somerthing like it)
03:14:40 <Axman6> expanding the definition of (.) you can see we get \x -> fst (head [(3,"four)] x), which doesn't make much sense
03:15:07 <curiousgay> guh
03:15:09 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:15:15 <curiousgay> this only happens with tupples?
03:15:30 <Axman6> no, it has nothing to do with tuples
03:16:15 <curiousgay> but I usually have (.) working when function on the right has argument
03:16:39 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:85cc:3a34:36cf:1a53) (Ping timeout: 272 seconds)
03:16:52 <Axman6> what you probably meant to write was: fst . head $ [(3,"four")], which is the same as (fst . head) [(3,"four")], which expands into (\x -> fst (head x)) [(3,"four")]
03:18:55 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:19:58 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
03:20:08 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
03:20:22 Tario joins (~Tario@201.192.165.173)
03:20:40 <Axman6> curiousgay: you don;t have a function as the right argument though
03:20:44 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
03:20:46 <Axman6> head [(3,"four")] isn't a function
03:21:18 × myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 245 seconds)
03:22:12 <koz_> :t head [(3, "four")]
03:22:13 <lambdabot> Num a => (a, [Char])
03:22:20 <koz_> Confirmed, not a function.
03:22:20 × kiweun quits (~kiweun@2607:fea8:2a62:9600:2584:bfd8:4ff2:6f57) (Remote host closed the connection)
03:22:47 <curiousgay> so (.) composes functions only when I don't give the rightmost function an argument
03:23:07 <Axman6> s/only when I don't give the rightmost function an argument//
03:23:17 <Axman6> :t (.)
03:23:18 <lambdabot> (b -> c) -> (a -> b) -> a -> c
03:23:38 <Axman6> :t fst . head
03:23:40 <lambdabot> [(c, b)] -> c
03:23:57 <Axman6> :t (fst . head) [(3,"four")]
03:23:58 <lambdabot> Num c => c
03:24:03 <Axman6> > (fst . head) [(3,"four")]
03:24:05 <lambdabot> 3
03:24:11 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
03:24:13 × azure2 quits (~azure@103.154.230.130) (Ping timeout: 245 seconds)
03:24:34 <curiousgay> I mean I thought `fst . head [(3, "four")]` would translate to `fst(head [(3, "four")])`
03:24:52 <Axman6> > fst . head $ [(3,"four")] -- $ isn't magic, it just has lower precidence and the correct fixity to remove the need for brackets on the right when using (.)
03:24:54 <lambdabot> 3
03:25:05 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
03:25:08 azure2 joins (~azure@103.154.230.130)
03:25:27 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
03:25:43 <Axman6> curiousgay: nope, we've gone through that that means, fst . head [(3,"four")] means fst . (head [(3,"four")])
03:25:48 <Axman6> what that*
03:26:15 <curiousgay> ok
03:27:17 <Axman6> the invisible function application operator, whitespace, binds more tightly than any binary operator
03:27:54 <Axman6> > f $ g $ g $ x :: Expr
03:27:56 <lambdabot> error:
03:27:56 <lambdabot> • Ambiguous type variable ‘t0’ arising from a use of ‘f’
03:27:56 <lambdabot> prevents the constraint ‘(Show t0)’ from being solved.
03:28:05 <Axman6> :(
03:28:10 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
03:28:37 joebobjoe joins (~joebobjoe@unaffiliated/joebobjoe)
03:28:43 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 260 seconds)
03:32:06 × theDon quits (~td@94.134.91.134) (Ping timeout: 246 seconds)
03:34:01 theDon joins (~td@94.134.91.151)
03:34:05 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
03:34:17 <curiousgay> haha, that reminds me spending some time to verify list holding curried functions :)
03:35:03 brandly joins (~brandly@c-73-68-15-46.hsd1.ma.comcast.net)
03:35:29 <curiousgay> s/holding/of/
03:35:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
03:38:02 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
03:44:30 × geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
03:44:58 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:45:41 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
03:45:56 __minoru__shirae joins (~shiraeesh@46.34.207.217)
03:46:14 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:47:43 tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:47:43 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
03:48:38 Sgeo_ joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
03:48:40 × tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
03:50:06 arrowsvc_ joins (~arr@2.93.163.35)
03:50:45 tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:50:53 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds)
03:51:53 × tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
03:52:12 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:52:55 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
03:53:23 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:54:08 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
03:54:38 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:59:43 × joebobjoe quits (~joebobjoe@unaffiliated/joebobjoe) (Quit: Lost terminal)
04:00:58 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
04:01:43 × dfeuer quits (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
04:02:05 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
04:02:20 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:04:26 jamm_ joins (~jamm@unaffiliated/jamm)
04:05:20 bergey` joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
04:05:27 shailangsa joins (~shailangs@host86-162-150-241.range86-162.btcentralplus.com)
04:09:38 × bergey` quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
04:12:19 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
04:12:37 Kaiepi joins (~Kaiepi@47.54.252.148)
04:14:22 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds)
04:15:30 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
04:18:42 moleillish joins (~moleillis@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
04:20:01 × moleillish quits (~moleillis@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Client Quit)
04:20:59 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
04:21:50 myShoggoth joins (~myShoggot@75.164.81.55)
04:25:05 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
04:25:24 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
04:29:43 codygman__ joins (~user@47.186.207.161)
04:32:43 × vicfred quits (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
04:32:49 <molehillish> silly question, is Haskell more popular in Europe, or US ?
04:34:12 vicfred joins (vicfred@gateway/vpn/mullvad/vicfred)
04:34:57 plutoniix joins (~q@184.82.207.25)
04:36:37 × irc_user quits (uid423822@gateway/web/irccloud.com/x-nlsxajxsercntvta) (Quit: Connection closed for inactivity)
04:39:14 <glguy> I wouldn't think so
04:42:49 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
04:44:24 conal joins (~conal@64.71.133.70)
04:48:06 × codygman__ quits (~user@47.186.207.161) (Quit: ERC (IRC client for Emacs 28.0.50))
04:48:28 codygman__ joins (~user@47.186.207.161)
04:48:44 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
04:49:48 codygman__ joins (~user@47.186.207.161)
04:50:47 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
04:51:06 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:51:54 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
04:53:13 kiweun joins (~kiweun@2607:fea8:2a62:9600:4cd1:619d:db56:98e6)
04:54:08 × arrowsvc_ quits (~arr@2.93.163.35) (Ping timeout: 265 seconds)
04:55:48 × molehillish quits (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Remote host closed the connection)
04:57:51 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-woyfwvonkmfyvkag)
04:58:14 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 260 seconds)
05:00:52 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
05:02:24 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
05:02:45 × __minoru__shirae quits (~shiraeesh@46.34.207.217) (Ping timeout: 246 seconds)
05:02:45 × darjeeling_ quits (~darjeelin@122.245.218.190) (Ping timeout: 246 seconds)
05:03:00 × kiweun quits (~kiweun@2607:fea8:2a62:9600:4cd1:619d:db56:98e6) (Remote host closed the connection)
05:06:02 × molehillish quits (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Ping timeout: 264 seconds)
05:09:28 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
05:09:51 × zebrag quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
05:12:56 × elusive quits (~Jeanne-Ka@static-198-54-134-107.cust.tzulo.com) (Quit: Leaving)
05:13:48 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 245 seconds)
05:14:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:16:01 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
05:19:45 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
05:21:12 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
05:23:38 × brandly quits (~brandly@c-73-68-15-46.hsd1.ma.comcast.net) (Quit: https://github.com/brandly/Lax)
05:24:39 brandly joins (~brandly@c-73-68-15-46.hsd1.ma.comcast.net)
05:28:20 × brandly quits (~brandly@c-73-68-15-46.hsd1.ma.comcast.net) (Client Quit)
05:30:40 cheater1 joins (~user@unaffiliated/cheater)
05:31:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:32:00 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
05:32:05 cheater1 is now known as cheater
05:34:09 forgottenone joins (~forgotten@176.42.30.60)
05:37:17 × myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 245 seconds)
05:41:22 × santiweight quits (622165e4@c-98-33-101-228.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
05:44:06 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
05:44:36 kam1 joins (~kam1@83.123.154.198)
05:45:09 × kam1 quits (~kam1@83.123.154.198) (Read error: Connection reset by peer)
05:47:28 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
05:48:26 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
05:50:53 cheater joins (~user@unaffiliated/cheater)
05:51:56 myShoggoth joins (~myShoggot@75.164.81.55)
05:52:37 × average quits (uid473595@gateway/web/irccloud.com/x-syihsbtugiothwsv) (Quit: Connection closed for inactivity)
05:54:27 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:55:27 × The20YearIRCloud quits (~The20Year@195.140.213.38) (Remote host closed the connection)
06:00:04 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
06:00:22 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
06:02:30 toorevitimirp joins (~tooreviti@117.182.182.40)
06:06:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
06:09:26 × rotaerk_ quits (rotaerk@2600:3c02::f03c:91ff:fe70:4a45) (Ping timeout: 240 seconds)
06:12:30 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:22:46 × carlomagno quits (~cararell@148.87.23.6) (Quit: Leaving.)
06:24:40 rotaerk joins (~rotaerk@ender.afternet.org)
06:24:42 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:26:56 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
06:27:41 maop joins (~maop@195.140.213.38)
06:28:58 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
06:33:58 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
06:34:36 <arahael> I seem to feel that europe is more Delphi historically, and now C++.
06:36:00 Varis joins (~Tadas@unaffiliated/varis)
06:37:26 <opqdonut> most of the haskell companies I can name are in london or switzerland, I think
06:37:53 <opqdonut> of course where a company is is kinda badly defined, especially these days
06:38:00 <opqdonut> and I'm from europe, so that's a bias definitely
06:38:20 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer)
06:38:38 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
06:42:18 bitmagie joins (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de)
06:43:03 × bitmagie quits (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de) (Client Quit)
06:48:04 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:85cc:3a34:36cf:1a53)
06:51:18 <curiousgay> me from ukraine: no Haskell jobs here :(
06:52:06 × Sgeo_ quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
06:52:50 kam1 joins (~kam1@83.123.154.198)
06:56:36 × Varis quits (~Tadas@unaffiliated/varis) (Quit: Leaving)
06:57:00 × rotaerk quits (~rotaerk@ender.afternet.org) (Ping timeout: 256 seconds)
07:03:31 michalz joins (~user@185.246.204.111)
07:04:58 idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
07:06:07 × myShoggoth quits (~myShoggot@75.164.81.55) (Read error: Connection reset by peer)
07:08:37 jhrcek joins (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz)
07:10:24 rotaerk joins (~rotaerk@ender.afternet.org)
07:11:15 <jhrcek> Hello hvr_, not sure if you saw this already, but could you please check this PR? https://github.com/haskell-hvr/base-noprelude/pull/13
07:12:41 <koz_> jhrcek: HVR is pretty AWOL and has been for months. tapas - maybe you can assist?
07:13:50 __minoru__shirae joins (~shiraeesh@46.34.207.217)
07:13:54 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:13:55 <dmj`> curiousgay: you should make some haskell jobs in ukraine
07:14:24 × forgottenone quits (~forgotten@176.42.30.60) (Quit: Konversation terminated!)
07:16:13 × kam1 quits (~kam1@83.123.154.198) (Ping timeout: 260 seconds)
07:16:22 × Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Read error: Connection reset by peer)
07:16:53 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
07:17:54 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
07:18:10 malumore joins (~malumore@151.62.122.60)
07:18:29 <koz_> What should I read if I wanna understand how HM is extended with type classes?
07:18:35 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:4b06:962b:f728:a206) (Ping timeout: 272 seconds)
07:20:03 × waleee-cl quits (uid373333@gateway/web/irccloud.com/x-ajfxjvyfxwkenmku) (Quit: Connection closed for inactivity)
07:21:56 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
07:22:30 × idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
07:23:12 × xff0x quits (~xff0x@2001:1a81:52b7:0:124b:8415:a163:5525) (Ping timeout: 260 seconds)
07:23:39 xff0x joins (~xff0x@2001:1a81:52b7:0:bee:1401:3159:8dea)
07:23:54 <dmj`> koz_: typing haskell in haskell is good
07:24:05 <koz_> dmj`: Link if you got it?
07:24:23 <dmj`> @google typing haskell in haskell
07:24:24 <lambdabot> No Result Found.
07:24:38 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
07:24:49 <dmj`> koz_: http://web.cecs.pdx.edu/~mpj/thih/thih.pdf
07:24:55 <koz_> Thanks!
07:29:45 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:9289:77c9:1590:330e)
07:33:26 Hi-Angel joins (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru)
07:34:43 <Hi-Angel> Does anybody know, how to do a `cabal install` into a DESTDIR? I need to build a deb package from some software written in Haskell, so I'm trying to use `DESTDIR=deb cabal install`, but deb dir is empty
07:38:21 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:39:27 <jhrcek> Try `cabal install --help`. At the end you'll see:
07:39:30 <jhrcek> cabal install ./pkgfoo
07:39:30 <jhrcek> Install the package in the ./pkgfoo directory
07:39:50 <Hi-Angel> Thanks
07:41:20 <jhrcek> Sorry, looking at help again, this should be what you're looking for:
07:41:21 <jhrcek> --installdir=DIR Where to install (by
07:41:21 <jhrcek> symlinking or copying) the
07:41:21 <jhrcek> executables in.
07:41:35 <Hi-Angel> Cool, thanks!
07:42:04 Lycurgus joins (~niemand@98.4.115.230)
07:43:00 kuribas joins (~user@ptr-25vy0i6y98flue533si.18120a2.ip6.access.telenet.be)
07:52:03 idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
07:52:32 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 256 seconds)
07:53:20 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
07:53:26 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
07:55:30 geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr)
07:57:51 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
07:58:07 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-woyfwvonkmfyvkag) (Quit: Connection closed for inactivity)
07:59:03 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:59:45 jamm_ joins (~jamm@unaffiliated/jamm)
08:00:45 Stanley|00 joins (~stanley00@unaffiliated/stanley00)
08:01:25 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
08:01:45 zfnmxt_ is now known as znfmxt
08:01:51 znfmxt is now known as zfnmxt
08:02:07 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer)
08:02:34 Stanley00 joins (~stanley00@unaffiliated/stanley00)
08:02:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:03:04 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
08:03:18 × __minoru__shirae quits (~shiraeesh@46.34.207.217) (Ping timeout: 256 seconds)
08:03:58 × malumore quits (~malumore@151.62.122.60) (Ping timeout: 260 seconds)
08:04:14 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
08:05:49 Varis joins (~Tadas@unaffiliated/varis)
08:05:57 × Stanley|00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds)
08:05:57 cfricke joins (~cfricke@unaffiliated/cfricke)
08:07:10 bergey` joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
08:08:57 <jhrcek> tapas : for context regarding what koz_ wrote above for context: I'd like base-noprelude version compatible with base 4.14.1.0 to be released to hackage, but I'm unable to reach hvr_ to take a look at my PR (https://github.com/haskell-hvr/base-noprelude/pull/13). I'd greatly appreciate any help with moving this forward.
08:09:48 × Lycurgus quits (~niemand@98.4.115.230) (Quit: Exeunt)
08:11:00 bitmagie joins (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de)
08:11:26 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
08:11:42 asheshambasta joins (~user@ptr-e1lysaujm2qol2f684n.18120a2.ip6.access.telenet.be)
08:11:49 × bergey` quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 265 seconds)
08:12:02 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:12:58 Aquazi joins (uid312403@gateway/web/irccloud.com/x-umfzpfeguzyfkkwm)
08:13:18 malumore joins (~malumore@151.62.122.60)
08:18:39 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
08:19:02 Sorna joins (~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
08:20:18 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
08:20:18 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:20:40 × Sornaensis quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Disconnected by services)
08:20:44 Sorna is now known as Sornaensis
08:20:52 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:22:08 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
08:23:34 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:24:35 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:25:37 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:27:14 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:29:27 × m1dnight_ quits (~m1dnight@78-22-9-5.access.telenet.be) (Quit: WeeChat 2.4)
08:30:10 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:30:13 m1dnight_ joins (~m1dnight@78-22-9-5.access.telenet.be)
08:30:55 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
08:31:18 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:31:47 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:32:25 <curiousgay> dmj` how if I don't run business?
08:32:56 <curiousgay> btw, gentle introduction to haskell has broken example at page 40
08:33:30 <curiousgay> the working definition of readsTree is on page 39
08:33:43 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:34:24 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:e1d5:3025:9098:a295)
08:34:55 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
08:35:20 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:35:49 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:35:54 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:36:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
08:37:16 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
08:39:03 DTZUZU_ joins (~DTZUZO@207.81.119.43)
08:39:36 aqd joins (~aqd@84.20.147.33)
08:39:43 <curiousgay> were there incompatible changes to lex function?
08:40:55 × tomboy64 quits (~tomboy64@unaffiliated/tomboy64) (Quit: Off to see the wizard.)
08:41:07 conal joins (~conal@64.71.133.70)
08:41:18 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 265 seconds)
08:41:48 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:42:29 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
08:42:51 tomboy64 joins (~tomboy64@unaffiliated/tomboy64)
08:42:54 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
08:43:48 ukari joins (~ukari@unaffiliated/ukari)
08:45:39 DavidEichmann joins (~david@234.109.45.217.dyn.plus.net)
08:46:16 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:47:48 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 246 seconds)
08:49:06 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
08:50:09 × drbean quits (~drbean@TC210-63-209-145.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
08:51:48 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
08:53:07 fendor joins (~fendor@178.165.129.162.wireless.dyn.drei.com)
08:53:26 × xff0x quits (~xff0x@2001:1a81:52b7:0:bee:1401:3159:8dea) (Ping timeout: 264 seconds)
08:53:40 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
08:53:44 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
08:53:53 xff0x joins (~xff0x@2001:1a81:52b7:0:73fe:50f7:6050:551e)
08:55:57 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
09:00:07 × my_name_is_not_j quits (mynameisno@gateway/shell/matrix.org/x-iewfemdhthafipdk) (Quit: Idle for 30+ days)
09:02:17 jakalx joins (~jakalx@base.jakalx.net)
09:07:03 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:11:30 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
09:11:43 × mrchampion quits (~mrchampio@38.18.109.23) (Ping timeout: 260 seconds)
09:13:07 Kaiepi joins (~Kaiepi@47.54.252.148)
09:14:28 × thunderrd quits (~thunderrd@183.182.111.238) (Ping timeout: 272 seconds)
09:14:45 <curiousgay> I've figured out that the first string returned by lex can contain more than one character, this behavior was not expected by tutorial (or what its pattern condition was thinking)
09:15:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:16:12 × vicfred quits (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
09:17:47 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:22:50 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
09:22:55 <curiousgay> monochrom: I've made a workaround for that with pattern matching, the result doesn't look nice at all (warning - hindent formatted): https://pastebin.com/raw/pbbfZBEf
09:25:15 × geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
09:26:53 thunderrd joins (~thunderrd@183.182.111.116)
09:27:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection)
09:27:37 gitgood joins (~gitgood@80-44-12-39.dynamic.dsl.as9105.com)
09:27:45 × gitgood quits (~gitgood@80-44-12-39.dynamic.dsl.as9105.com) (Remote host closed the connection)
09:28:49 thaumavorio joins (~thaumavor@thaumavor.io)
09:32:18 <merijn> oof
09:33:25 mrchampion joins (~mrchampio@38.18.109.23)
09:33:43 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
09:34:15 <curiousgay> well, I use editor where tabs are easier to type than spaces
09:34:51 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
09:35:18 geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr)
09:35:39 idhugo_ joins (~idhugo@130.225.16.16)
09:35:46 <yorick> hi! I'm trying to foreign dynamic export a haskell function that uses C variadic arguments
09:35:57 <yorick> is this.. possible? or do I need cbits
09:36:44 <merijn> yorick: You need cbits
09:36:57 <merijn> yorick: variadic arguments aren't party of any portable C ABI
09:37:11 <yorick> sad, thanks
09:37:16 <merijn> s/party/part
09:37:21 <yorick> I don't know why they went for this since all everyone is gonna do is call snprintf on them
09:37:51 × rotaerk quits (~rotaerk@ender.afternet.org) (Ping timeout: 246 seconds)
09:38:21 × idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 264 seconds)
09:39:20 bahamas joins (~lucian@unaffiliated/bahamas)
09:40:33 pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
09:41:18 <merijn> yorick: Maybe they nerdsniped themselves while coding it?
09:42:50 × bitmagie quits (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de) (Quit: bitmagie)
09:42:59 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds)
09:43:26 <hololeap> i wonder why the Profunctor instance for Kleisli has a Monad constraint for m as opposed to Functor
09:43:34 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:45:44 rotaerk joins (rotaerk@2600:3c02::f03c:91ff:fe70:4a45)
09:47:10 <merijn> hololeap: Because the functor instance for Kleisli wasn't added until 8.10, apparently
09:48:38 <hololeap> huh that's surprising
09:49:13 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:50:58 alexanderdgreat joins (~alex@117.222.64.113)
09:50:59 <yorick> merijn: I bet it saves entire cycles and stack space in case you want to do printf directly
09:53:51 <alexanderdgreat> Hello. Sorry if this seems off-topic. I want to ask: (imagine) I have a toy chatbot program written in Haskell and I can run it on my system. Now I want to deploy this online but the backend server I am writing is in runs NodeJS. What is the preferred way to call my Haskell toy chatbot program from NodeJS.
09:53:58 <merijn> hololeap: Not really, because no one really uses Kleisli :p
09:55:00 <merijn> alexanderdgreat: tbh, that's probably more of a node question? The usual ways would be: Spawn it as a subprocess and talk with the bot over stdin/stdout, use a unix domain socket, or just a regular TCP socket
09:55:13 <merijn> But I have no clue how easy/hard any of those are in node.js
09:56:23 sz0 joins (uid110435@gateway/web/irccloud.com/x-tawqhplyvvjuqusl)
09:56:48 darjeeling_ joins (~darjeelin@122.245.218.190)
09:58:16 <alexanderdgreat> merijn: Thanks for answering. My problem is not NodeJS specific. I wanted to ask if I have to perform IPC from a Haskell binary on my backend server regardless of the language used in my business, can I wrap my chatbot with HTTP API using some Haskell web framework and call GET like requests from my backend business logic.
09:58:22 <alexanderdgreat> ?
10:01:33 <merijn> Sure
10:01:58 <merijn> I don't really do web stuff, so I can't recommend any libraries, but I can't see why you couldn't
10:02:31 <alexanderdgreat> merijn: Thanks a lot.
10:02:33 <alexanderdgreat> merijn++
10:03:31 × Kaiepi quits (~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
10:03:43 wopas32 joins (uid384704@gateway/web/irccloud.com/x-tpyrxxcvbruhblyb)
10:04:01 alexanderdgreat parts (~alex@117.222.64.113) ()
10:04:18 Rudd0 joins (~Rudd0@185.189.115.103)
10:04:47 Kaiepi joins (~Kaiepi@47.54.252.148)
10:05:03 __monty__ joins (~toonn@unaffiliated/toonn)
10:08:03 bergey` joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
10:12:01 son0p joins (~son0p@181.58.39.182)
10:12:46 × bergey` quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
10:12:49 × Guest14001 quits (~textual@2603-7000-3040-0000-e957-83a9-14ba-56cc.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:14:02 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
10:14:02 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
10:14:02 mouseghost joins (~draco@wikipedia/desperek)
10:14:52 × xwvvvvwx quits (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Read error: Connection reset by peer)
10:16:44 × bahamas quits (~lucian@unaffiliated/bahamas) (Quit: leaving)
10:16:53 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:17:14 × idhugo_ quits (~idhugo@130.225.16.16) (Read error: Connection reset by peer)
10:19:03 idhugo_ joins (~idhugo@80-62-116-51-mobile.dk.customer.tdc.net)
10:19:11 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
10:21:21 × teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
10:26:52 teardown joins (~user@gateway/tor-sasl/mrush)
10:28:10 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
10:28:33 xwvvvvwx joins (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx)
10:33:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds)
10:35:42 thc202 joins (~thc202@unaffiliated/thc202)
10:36:21 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
10:37:12 ubert joins (~Thunderbi@p200300ecdf25d935e6b318fffe838f33.dip0.t-ipconnect.de)
10:37:44 zaquest joins (~notzaques@5.128.210.178)
10:38:04 dhil joins (~dhil@80.208.56.181)
10:39:52 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
10:39:52 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
10:46:36 conal joins (~conal@64.71.133.70)
10:46:58 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
10:47:22 × ubert quits (~Thunderbi@p200300ecdf25d935e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:47:30 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
10:49:09 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
10:49:19 graf_blutwurst joins (~user@2001:171b:226e:adc0:f5d5:a07f:9e46:8981)
10:49:47 × asheshambasta quits (~user@ptr-e1lysaujm2qol2f684n.18120a2.ip6.access.telenet.be) (Ping timeout: 258 seconds)
10:52:29 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
10:53:47 __minoru__shirae joins (~shiraeesh@46.34.206.121)
10:56:17 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
10:59:31 Alleria joins (~textual@mskresolve-a.mskcc.org)
10:59:56 Alleria is now known as Guest54670
11:04:38 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 256 seconds)
11:08:29 × jhrcek quits (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) (Read error: Connection reset by peer)
11:09:05 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
11:09:24 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
11:10:10 jhrcek joins (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz)
11:10:23 average joins (uid473595@gateway/web/irccloud.com/x-gpzntdlygmwptuws)
11:10:39 × poscat quits (~poscat@123.112.148.153) (Ping timeout: 265 seconds)
11:13:07 idhugo__ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
11:13:52 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
11:14:12 mirrorbird joins (dwsjeid911@gateway/vpn/mullvad/dwsjeid911)
11:15:28 × idhugo_ quits (~idhugo@80-62-116-51-mobile.dk.customer.tdc.net) (Ping timeout: 245 seconds)
11:16:27 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
11:17:57 × __minoru__shirae quits (~shiraeesh@46.34.206.121) (Ping timeout: 246 seconds)
11:18:48 × geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 245 seconds)
11:19:16 × koz_ quits (~koz@121.99.240.58) (Ping timeout: 276 seconds)
11:19:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:20:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:20:57 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 264 seconds)
11:25:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
11:26:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:29:03 koz joins (~koz@121.99.240.58)
11:32:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:32:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:33:32 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
11:34:17 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
11:35:04 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
11:35:24 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
11:35:37 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Client Quit)
11:35:54 jamm_ joins (~jamm@unaffiliated/jamm)
11:36:37 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
11:37:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:37:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:37:58 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
11:39:42 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
11:40:14 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
11:40:25 × hexfive quits (~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
11:40:39 curiousgay seeing laws of monads
11:40:44 <curiousgay> my brain: that hurts
11:41:53 <mouseghost> curiousgay, everyone was there, i think
11:42:00 <jumper149> curiousgay: Specific to Monad is just the bind operator >>=
11:42:08 <mouseghost> nice username btw
11:42:21 <jumper149> curiousgay: The rest is built up on other typeclasses
11:43:04 <jumper149> Maybe that will help you distinguish the laws from one another
11:43:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:43:43 gzj joins (~gzj@unaffiliated/gzj)
11:44:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:44:14 <curiousgay> mouseghost: thanks, you're the first one commenting my nick :)
11:44:29 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 265 seconds)
11:44:59 <mouseghost> :D
11:45:52 bergey` joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
11:47:36 <curiousgay> jumper149: `xs >>= return . f = fmap f xs` is so mind blowing
11:47:46 × mirrorbird quits (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) (Quit: Leaving)
11:48:00 epstein joins (dwsjeid911@gateway/vpn/mullvad/dwsjeid911)
11:49:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:49:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:51:45 <jumper149> curiousgay: It's important to understand why that works, but from a practical perspective the lhs is kind of an antipattern.
11:52:36 <enikar> curiousgay: use lambda to understand.
11:54:12 __minoru__shirae joins (~shiraeesh@46.34.206.121)
11:54:51 <enikar> xs >>= return . f = xs >>= (\x -> return (f x))
11:55:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:55:06 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
11:55:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:55:26 gzj joins (~gzj@unaffiliated/gzj)
11:56:36 <enikar> if xs :: m a, then (\x -> return (f x)) should be 'm b', then the type of is: f :: a -> b
11:57:23 <enikar> because (>>=) :: m a -> (\a -> m b) -> m b)
11:58:53 curiousgay still thinking how it's equivalent to Functor
11:58:58 <enikar> then: f :: a -> b
11:59:04 × divVerent quits (~divVerent@xonotic/core-team/divVerent) (Quit: WeeChat 2.3)
12:00:12 usr25 joins (~usr25@unaffiliated/usr25)
12:01:15 <enikar> curiousgay: the first time, it was difficult also for me, anyway.
12:01:25 <jumper149> curiousgay: That's why I call it an antipattern. (>>=) binds monadic values (xs :: m a) to monadic functions (f :: a -> m b).
12:01:58 <jumper149> But your example with `xs >>= return . f` doesn't care what kind of function f is.
12:02:13 <jumper149> Instead you turn it into a monadic function by adding the `return`.
12:02:52 geekosaur joins (ac3a3c95@172.58.60.149)
12:02:53 <jumper149> So the `return` wasn't necessary at all. Should have just used `fmap` :p
12:04:29 <systemfault> > join . fmap (\x -> [x, x]) $ [1,2,3]
12:04:31 <enikar> we can express the type just for list. If xs :: [a], then: return (f x) = [f x] :: [b].
12:04:31 <lambdabot> [1,1,2,2,3,3]
12:06:41 jamm_ joins (~jamm@unaffiliated/jamm)
12:07:10 <curiousgay> jumper149: I'm thinking about functor instance on the left...
12:08:01 × carldd quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Ping timeout: 276 seconds)
12:08:25 carldd joins (~carldd@90-224-49-113-no56.tbcn.telia.com)
12:09:09 <curiousgay> enikar: it looks like an implicit call to map
12:09:29 <enikar> yes indeed.
12:09:30 <merijn> curiousgay: That's because "map" *is* fmap for lists :p
12:09:39 <jumper149> @src map
12:09:39 <lambdabot> map _ [] = []
12:09:39 <lambdabot> map f (x:xs) = f x : map f xs
12:09:50 <geekosaur> @src [] fmap
12:09:50 <lambdabot> fmap = map
12:10:35 × jespada quits (~jespada@90.254.243.187) (Ping timeout: 265 seconds)
12:11:26 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
12:11:59 jespada joins (~jespada@90.254.243.187)
12:13:55 codygman__ joins (~user@47.186.207.161)
12:15:00 <enikar> :t [1..3] >>= return .show
12:15:03 <curiousgay> merijn: I mean that (>>=) takes every element in the list and transforms them just like map
12:15:03 <lambdabot> [String]
12:15:17 <enikar> :t fmap show [1..3]
12:15:19 <lambdabot> [String]
12:16:55 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:17:14 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:17:22 <merijn> curiousgay: >>= is more like concatMap
12:17:25 <enikar> perhaps, it's easier to think in the other direction, I mean, write fmap with >>=
12:17:26 <merijn> :t concatMap
12:17:27 × miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
12:17:27 <lambdabot> Foldable t => (a -> [b]) -> t a -> [b]
12:17:39 <merijn> In fact, >>= *is* concatMap with a different argument order :p
12:18:07 <curiousgay> lol
12:18:32 <hpc> most useful specialized functions are secretly more useful and more abstract functions in disguise :D
12:18:55 miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
12:21:06 jamm_ joins (~jamm@unaffiliated/jamm)
12:21:15 <curiousgay> merijn: that signature and that name mean: concatMap takes a function that transforms each element into the list, then it concatenates all those lists?
12:21:18 × plutoniix quits (~q@184.82.207.25) (Quit: Leaving)
12:23:42 <curiousgay> concatenated monads... so lists are monads
12:23:42 <merijn> yes
12:23:51 × xff0x quits (~xff0x@2001:1a81:52b7:0:73fe:50f7:6050:551e) (Ping timeout: 272 seconds)
12:24:38 xff0x joins (~xff0x@2001:1a81:52b7:0:73fe:50f7:6050:551e)
12:25:34 hidedagger joins (~nate@unaffiliated/hidedagger)
12:25:43 <__minoru__shirae> if we talk in terms of kleisli arrows, then return is like id for kleisli arrows and bind is like fmap?
12:25:52 <__minoru__shirae> not sure about bind
12:26:45 <merijn> __minoru__shirae: You're thinking of the fish operator!
12:26:50 <merijn> :t (>=>)
12:26:51 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
12:27:14 <merijn> With: f >=> g = \x -> f x >>= g
12:28:18 <curiousgay> `(>>=) :: m a -> (a -> m b) -> m b` looks strange to me, because when I do something like `[1..5] >>= return . (+5)`, (+5) function doesn't generate lists
12:28:18 <merijn> Well, >=> is more like (.) for Kleisli than fmap. But then again, fmap is (.) for "regular" functions
12:28:49 <jumper149> curiousgay: Check the type of `return`
12:29:20 <curiousgay> a -> m a
12:29:29 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
12:29:36 <jumper149> What is `m` in your example
12:29:41 geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
12:29:58 <curiousgay> jumper149: "class Monad m where"
12:30:09 × bergey` quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
12:30:31 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
12:30:37 <jumper149> curiousgay: Ok, write something like `return 5` into ghci
12:30:57 forgottenone joins (~forgotten@176.42.16.157)
12:31:35 <jumper149> curiousgay: ahhhhhh, sry no that is just confusing
12:31:42 <enikar> into ghci, monad are "extracted"
12:32:03 <enikar> so 'return 5', just prints 5
12:32:30 <enikar> :t return 5
12:32:33 <lambdabot> (Monad m, Num a) => m a
12:32:34 <jumper149> What I wanted to say is: In the example `[1..5] >>= return . (+5)` the type of `return` gets unified to a concrete type
12:33:03 <jumper149> The type of return is just:
12:33:05 <jumper149> :t return
12:33:07 <lambdabot> Monad m => a -> m a
12:33:17 <geekosaur> enikar, not quite right, ghci will try to instantiate a monadic value as an IO action and if it succeeds, run the action
12:33:35 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 240 seconds)
12:33:46 isson joins (1b7769ae@27.119.105.174)
12:33:47 <enikar> geekosaur: ok.
12:34:10 <jumper149> But in the context of lists it gets unfified to `return :: a -> [a]`
12:34:29 drbean joins (~drbean@TC210-63-209-218.static.apol.com.tw)
12:34:49 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
12:34:59 <enikar> :t return @[]
12:35:00 <lambdabot> error:
12:35:00 <lambdabot> Pattern syntax in expression context: return@[]
12:35:00 <lambdabot> Did you mean to enable TypeApplications?
12:35:06 × nhs quits (~nhs@cpe-70-113-67-118.austin.res.rr.com) (Ping timeout: 260 seconds)
12:35:11 <geekosaur> % :t return @[]
12:35:11 <yahb> geekosaur: a -> [a]
12:35:21 <geekosaur> use yahb for TypeApplications
12:35:23 ukari joins (~ukari@unaffiliated/ukari)
12:35:33 <enikar> yes
12:36:41 <__minoru__shirae> I mean, there is some relationship between fmap - bind and regular functions - kleisli arrows, but I don't know what that relationship is
12:37:07 <isson> hi. i have a question. ( i am sorry i am not good to speak english.)
12:37:07 <__minoru__shirae> hmm, what if we talk about Identity monad?
12:37:40 <curiousgay> `return . f :: a -> m b` and `(>>=) -> m a -> (a -> m b) -> m b`, ah, so it's the return function being responsible for turning the result of (+5) into the list, but that means the return function itself is called many times?
12:37:45 <isson> test = f (undefined :: a -> a)
12:37:45 <isson> f :: (a -> b -> c) -> String
12:37:46 <isson> f g = "test"
12:38:13 <jumper149> __minoru__shirae: `Identity` is just a regular monad. What's the question?
12:38:13 <enikar> curiousgay: exactly.
12:38:24 <isson> [/home/isson/mynote/projs/haskell/Test/app/Main.hs:17:8-13] *Main Lib Paths_Test> :print g
12:38:24 <isson> g = (_t1::(a -> b) -> String)
12:38:50 pjb is now known as Guest83433
12:38:51 Sheilong joins (uid293653@gateway/web/irccloud.com/x-dbopwiciasztapdp)
12:38:55 <isson> i cannot understand, how id type is (a -> b) -> String ?
12:39:19 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
12:39:29 <isson> how g's type is (a -> b) -> String ?
12:39:36 <__minoru__shirae> jumper149, the question is how do you formulate (in simple terms) the relationship between fmap and regular functions and bind and kleisli arrows. Maybe they are the same?
12:40:11 <merijn> __minoru__shirae: That depends on which relationship you're thinking off?
12:40:31 arrowsvc_ joins (~arr@2.93.163.35)
12:41:05 × Guest83433 quits (~t@2a01cb04063ec500f0530f573da1cece.ipv6.abo.wanadoo.fr) (Ping timeout: 246 seconds)
12:41:24 pjb joins (~t@2a01cb04063ec50044b6cbec1ec8dc3b.ipv6.abo.wanadoo.fr)
12:41:24 <merijn> __minoru__shirae: There are several I can think of, both Kleisli and functios are instances of: Profunctor, Kleisli, and Arrow
12:41:33 <curiousgay> enikar: I remember tutorial mentioning that makes list comprehensions the syntactic sugar to these monad functions, it's just was mentioned too early
12:42:00 <merijn> __minoru__shirae: Their functor/applicative/monad instances are also similar/the same
12:42:25 <__minoru__shirae> "a monad is just a monoid in the category in which objects are functors" - I took this sentence from a book. I think it has somethig to do with the subject, and I don't yet fully understand it.
12:43:31 <merijn> __minoru__shirae: You're maybe thinking off arrows/morphisms, because both functions and Kleisli are classical examples of CT morphisms
12:44:22 <curiousgay> thanks everybody, now it's clear
12:44:28 <curiousgay> :)
12:44:28 <__minoru__shirae> and a monad is itself a functor
12:44:42 <merijn> __minoru__shirae: Define "is"
12:45:38 <__minoru__shirae> monad typeclass needs a functor constraint
12:45:45 <merijn> __minoru__shirae: A functor consists of two morphisms: one between objects of two categories and one between morphisms in both categories
12:46:40 <merijn> __minoru__shirae: ah, in that sense
12:48:12 <merijn> __minoru__shirae: The things you need to define for a monad are a superset of the things you need to define a functor, so defining a monad (implicitly) defines a functor too (as shown by "fmap f x = x >>= return . f")
12:50:12 <__minoru__shirae> fmap is like bind in which there is an implicit Identity monad
12:51:23 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
12:52:51 <geekosaur> isson, the g you show isn't in scope in ghci's top level, so I don't think you're getting a related response
12:52:53 <__minoru__shirae> you have "Id a" and a function "a -> Id b" and using fmap you get "Id b", but you omit Ids
12:53:23 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
12:53:23 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (Read error: Connection reset by peer)
12:53:24 <__minoru__shirae> no, that sounds like a regular function application
12:55:10 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
12:56:27 mirrorb2rd joins (~dwsjeid91@185.204.1.223)
12:56:31 <__minoru__shirae> no, regular function application would be when you have a function "Id a -> Id b"
12:57:40 urodna joins (~urodna@unaffiliated/urodna)
12:57:58 × geowiesnot_bis quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 245 seconds)
12:58:23 × bennofs__ quits (~quassel@dslb-188-103-037-063.188.103.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
13:00:14 × epstein quits (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) (Ping timeout: 256 seconds)
13:00:30 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
13:00:48 Tario joins (~Tario@201.192.165.173)
13:00:53 × isson quits (1b7769ae@27.119.105.174) (Quit: Connection closed)
13:01:04 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
13:01:56 bergey` joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
13:03:30 epstein joins (~dwsjeid91@2a00:801:3f8:23a5:cea1:f987:d427:ba9b)
13:03:51 bennofs_ joins (~quassel@dslb-094-222-035-180.094.222.pools.vodafone-ip.de)
13:04:27 ubert joins (~Thunderbi@p200300ecdf25d935e6b318fffe838f33.dip0.t-ipconnect.de)
13:05:12 × mirrorb2rd quits (~dwsjeid91@185.204.1.223) (Read error: Connection reset by peer)
13:05:47 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
13:06:15 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
13:06:57 mirrorb2rd joins (dwsjeid911@gateway/vpn/mullvad/dwsjeid911)
13:07:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:07:26 gzj joins (~gzj@unaffiliated/gzj)
13:07:32 ADG1089__ joins (~aditya@122.163.232.170)
13:07:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:08:05 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:08:06 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:08:27 gzj joins (~gzj@unaffiliated/gzj)
13:08:34 gitgood joins (~gitgood@80-44-12-39.dynamic.dsl.as9105.com)
13:09:45 × epstein quits (~dwsjeid91@2a00:801:3f8:23a5:cea1:f987:d427:ba9b) (Ping timeout: 265 seconds)
13:11:43 × ubert quits (~Thunderbi@p200300ecdf25d935e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
13:11:54 jumper149 joins (~jumper149@ip185225.wh.uni-hannover.de)
13:12:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
13:13:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:13:26 gzj joins (~gzj@unaffiliated/gzj)
13:14:00 bitmapper joins (uid464869@gateway/web/irccloud.com/x-sowvivaeecbildoj)
13:14:35 × ephemient quits (uid407513@gateway/web/irccloud.com/x-fipeqpvxkwvjfhxb) (Quit: Connection closed for inactivity)
13:15:39 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:16:07 <__minoru__shirae> anyway, in the meantime, while I don't have an intuition of those things, the rule of thumb is
13:16:23 <__minoru__shirae> if you have a regular value and a regular function, you apply it
13:16:45 <__minoru__shirae> if you have a functor, applicative, or a monad and a regular function, you use fmap
13:16:48 × iomonad quits (~iomonad@unaffiliated/iomonad) (Ping timeout: 265 seconds)
13:17:07 <__minoru__shirae> if you have a monad and a kleisli arrow, you use bind
13:18:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:18:27 gzj joins (~gzj@unaffiliated/gzj)
13:19:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:19:07 iomonad joins (~iomonad@unaffiliated/iomonad)
13:19:28 gzj joins (~gzj@unaffiliated/gzj)
13:20:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:20:28 gzj joins (~gzj@unaffiliated/gzj)
13:20:38 × bennofs_ quits (~quassel@dslb-094-222-035-180.094.222.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
13:21:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:21:27 gzj joins (~gzj@unaffiliated/gzj)
13:21:54 <__minoru__shirae> if you have an applicative and a regular function, you can use applicative style, it will be analogous to using fmap
13:22:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:22:11 alx741 joins (~alx741@181.196.68.64)
13:22:27 gzj joins (~gzj@unaffiliated/gzj)
13:22:58 <__minoru__shirae> if you have a monad and a regular function, you can use bind with return, but fmap is simpler
13:23:05 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
13:23:30 × ADG1089__ quits (~aditya@122.163.232.170) (Remote host closed the connection)
13:25:19 × son0p quits (~son0p@181.58.39.182) (Quit: Lost terminal)
13:25:26 <toasty_avocado[m> Can someone explain what `fold` does? I'm new to functional programming and am unfamiliar with this concept. My understanding is it i applies a function to a data structure recursively?
13:25:47 <hyperisco> toasty_avocado[m, do you know what foldr does?
13:26:06 <toasty_avocado[m> Not exactly other than it does the same thing on the right side?
13:26:28 <hyperisco> fold, foldl, and foldr are not quite the same
13:26:43 <jumper149> foldl and foldr take a function argument
13:26:48 <hyperisco> > foldr f z [1,2,3,4,5]
13:26:51 <lambdabot> f 1 (f 2 (f 3 (f 4 (f 5 z))))
13:26:58 <jumper149> fold uses a Monoid instance instead
13:27:11 <hyperisco> fold = foldr mappend mempty
13:27:24 <jumper149> @src fold
13:27:24 <lambdabot> Source not found. My brain just exploded
13:27:44 <jumper149> rip lambdabot
13:27:50 <toasty_avocado[m> T.T
13:27:58 <toasty_avocado[m> thanks for the explanation!
13:28:18 × mirrorb2rd quits (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) (Ping timeout: 260 seconds)
13:28:38 <hyperisco> > (fold (Just "hello sailor!"), fold Nothing)
13:28:40 <lambdabot> ("hello sailor!",())
13:28:45 <hyperisco> whoops
13:28:52 <hyperisco> > fold (Nothing :: Maybe String)
13:28:54 <lambdabot> ""
13:28:57 <hyperisco> a common way I use it
13:29:13 <toasty_avocado[m> Thanks!
13:30:28 <hyperisco> Maybe A is A plus one value, and if A has a Monoid instance you can take it back to simply A
13:30:44 <hyperisco> mapping Nothing to mempty and Just a to a
13:31:07 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
13:35:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds)
13:37:25 <__minoru__shirae> I think I'm getting somewhere. Let's say we created a new language, and regular functions in that language translate to kleisli arrows in haskell
13:37:56 <__minoru__shirae> then that language's fmap would translate to haskell's bind
13:38:42 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
13:38:52 berberman joins (~berberman@unaffiliated/berberman)
13:39:00 codygman__ joins (~user@47.186.207.161)
13:39:20 × seveg_ quits (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
13:39:25 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
13:39:36 × maop quits (~maop@195.140.213.38) (Remote host closed the connection)
13:40:00 seveg joins (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk)
13:40:29 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
13:42:28 nhs joins (~nhs@cpe-70-113-67-118.austin.res.rr.com)
13:43:06 <__minoru__shirae> but what would that language's bind translate to? a bind for a monad stack.
13:43:16 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
13:43:29 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:43:38 codygman__ joins (~user@47.186.207.161)
13:43:38 × drbean quits (~drbean@TC210-63-209-218.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
13:43:48 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:47:07 bergey` is now known as bergey
13:47:50 codygman` joins (~user@209.251.131.98)
13:49:13 <__minoru__shirae> no, regular function application would translate to bind, and fmap would translate to something else
13:49:40 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 265 seconds)
13:50:52 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:51:02 zebrag joins (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr)
13:51:12 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:52:26 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
13:54:08 st8less joins (~st8less@inet-167-224-197-181.isp.ozarksgo.net)
13:54:13 isson joins (1b7769ae@27.119.105.174)
13:54:41 <isson> thanks minoru_shirae
13:54:41 <isson> test = f id
13:54:42 <isson> f :: (a -> b -> c) -> String
13:54:42 <isson> f g = "test"
13:54:43 <isson> it compiles successfully.
13:54:43 <isson> id have a type a -> a
13:54:44 <isson> but f have a type it's first argument is (a -> b -> c)
13:54:44 × isson quits (1b7769ae@27.119.105.174) (Killed (Sigyn (Spam is off topic on freenode.)))
13:55:49 carlomagno joins (~cararell@148.87.23.6)
13:57:02 <mouseghost> cant "g" be very well (a -> b -> c) ?
13:57:05 <geekosaur> which becomes (b -> c) -> (b -> c)
13:57:59 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
13:58:15 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 3.1)
13:58:32 qwerty2o joins (~qwerty2o@138.199.52.69)
13:58:46 <geekosaur> which can also be written (b -> c) -> b -> c which matches a -> b -> c
13:59:00 <geekosaur> (that is, a is found to be b -> c)
14:00:07 × xff0x quits (~xff0x@2001:1a81:52b7:0:73fe:50f7:6050:551e) (Ping timeout: 272 seconds)
14:00:20 <jess> that looks like an accidental spam kline
14:00:38 <jess> i've removed it
14:00:51 xff0x joins (~xff0x@2001:1a81:52b7:0:8b9f:ee81:7bdc:f7e8)
14:01:00 × geekosaur quits (ac3a3c95@172.58.60.149) (Quit: Connection closed)
14:02:33 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8)
14:03:47 <__minoru__shirae> isson, I was thinking about what happens to fmap when you translate regular functions to kleisli arrows, it was not related to your question, but if you found it useful, that's even better
14:09:58 × chirpsalot quits (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Quit: WeeChat 1.9.1)
14:09:58 × Chobbes quits (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (Quit: WeeChat 1.9.1)
14:10:04 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
14:10:31 chirpsalot joins (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net)
14:10:35 Chobbes joins (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net)
14:11:47 yangby joins (~secret@115.199.177.193)
14:11:57 × yangby quits (~secret@115.199.177.193) (Client Quit)
14:12:38 × DTZUZU_ quits (~DTZUZO@207.81.119.43) (Ping timeout: 264 seconds)
14:14:46 <hololeap> fmap' :: Monad m => (a -> m b) -> f a -> m (f b)
14:15:58 <hololeap> :t mapM
14:16:00 <lambdabot> (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
14:16:29 <hololeap> __minoru__shirae: i think fmap would translate to mapM
14:16:57 <hololeap> maybe not quite...
14:17:08 × ukari quits (~ukari@unaffiliated/ukari) (Ping timeout: 245 seconds)
14:18:46 <hololeap> although that is interesting that fmap in a kleisli category looks _very_ similar to mapM
14:20:02 <__minoru__shirae> I think fmap would translate to nested monads, so that if you call join on them they would become one layer
14:20:28 <__minoru__shirae> there is a definition of bind in terms of fmap and join
14:20:59 × DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...)
14:21:16 epstein joins (~dwsjeid91@193.27.14.71)
14:21:26 Jd007 joins (~Jd007@162.156.11.151)
14:22:44 dminuoso_ is now known as dminuoso
14:23:17 <__minoru__shirae> I forgot that you can define a monad using only the definitions of return and join
14:24:13 <__minoru__shirae> so monad is something like a weird joinable functor
14:24:50 × dminuoso quits (~dminuoso@static.88-198-218-68.clients.your-server.de) (Changing host)
14:24:50 dminuoso joins (~dminuoso@unaffiliated/dminuoso)
14:24:58 vBm1 joins (~vBm@195.140.213.38)
14:25:23 <dminuoso> __minoru__shirae: To make a slight connection to a common joke, there's a monoid here!
14:25:35 × aarvar quits (~foewfoiew@2601:602:a080:fa0:6cfb:c91f:3c9a:a8cb) (Ping timeout: 240 seconds)
14:25:46 <dminuoso> This act of "joining" can be thought of as "combining" layers - and that happens to be monoidal (with all the laws)
14:26:43 × qwerty2o quits (~qwerty2o@138.199.52.69) (Ping timeout: 245 seconds)
14:27:03 <dminuoso> https://gist.github.com/dminuoso/d5ab4ba5d8a5142dde9f4d4c736e3ecb
14:27:08 <__minoru__shirae> dminuoso: what's the identity of that monoid? I mean, mempty
14:27:22 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
14:27:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
14:27:38 <__minoru__shirae> Identity monad?
14:27:39 <dminuoso> __minoru__shirae: the layer introduced by return.
14:27:46 <dminuoso> __minoru__shirae: Checkout my gist, I made some drawings even
14:28:11 <dminuoso> Note that :.: is type level composition. That is `(T :.: T) a` is isomorphic to `T (T a)`
14:28:38 <dminuoso> That helps you realize that `Monad` is really *just* about the these `T` layers, not the `a`
14:29:08 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
14:30:06 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:30:33 ukari joins (~ukari@unaffiliated/ukari)
14:31:20 <__minoru__shirae> hey, those are monad laws
14:31:53 <dminuoso> Cute, isnt it? :)
14:32:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 264 seconds)
14:33:07 <__minoru__shirae> I've read in some article lately, that monad laws are a specialization of some more general laws - category laws
14:33:19 <dminuoso> Well they can be stated as category laws too
14:33:35 <__minoru__shirae> so, in the category of functions, you have the same laws for functions
14:33:46 <__minoru__shirae> in the category of functors - the same
14:33:54 <__minoru__shirae> and for monads you have monad laws
14:34:53 <__minoru__shirae> so, we have functions, lifted functions and kleisli arrows
14:35:06 <dminuoso> Roughly, and this is with a bit of handwaving, a third way of expressing the above (monoid and/or monad laws) is this:
14:35:07 <__minoru__shirae> or we have regular values, functors and monads
14:35:13 <dminuoso> Kleisli composition is associative
14:35:38 <dminuoso> that is: (f >=> g) >=> h === f >=> (g >=> h)
14:35:48 <dminuoso> And `return` is both left and right identity for (>=>)
14:35:59 <dminuoso> They're all equivalent
14:36:01 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
14:36:36 <dminuoso> The interface of `=<<` has very quirky and non-elegant laws. But we have =<< because it has the right ergonomics for us as a programmer most of the time
14:36:44 <__minoru__shirae> I'm waiting for something to "click" in my head, but maybe there is nothing to click, there is just an equivalence and that's all
14:36:50 <dminuoso> That's fine, really
14:37:02 <dminuoso> Perhaps, think of associativity of having the following relevant impact:
14:37:14 <dminuoso> Say you're writing some code in do-notation
14:37:41 <dminuoso> do { f <- x; g f; h f; pure (i f) }
14:37:59 <dminuoso> Then associativity says floating any fragment out into a separate binding does not alter meaning
14:38:31 <dminuoso> So `let c t = g t >> h t in do { f <- x; c f; pure (i f) }` is the same thing
14:39:05 <dminuoso> As long as monad laws hold, you can refactor into bindings (changing how things associate implicitly) without altering meaning
14:39:19 <dminuoso> And this holds regardless of the monad
14:39:36 <dminuoso> So say for `IO`, the following two pieces have the same meaning:
14:40:18 <dminuoso> % let f = putStr "Hello" >> putStr " World" in f >> (putStrLn ", Frank")
14:40:18 <yahb> dminuoso: Hello World, Frank
14:40:45 <dminuoso> % let f = putStr " World" >> putStrLn ", Frank" in (putStr "Hello" >> f)
14:40:45 <yahb> dminuoso: Hello World, Frank
14:41:18 <dminuoso> As programmers this associativity might be intuitive and natural. Since IO is a monad, we can argue that this holds true precisely for the monad laws.
14:41:43 marinelli joins (~marinelli@gateway/tor-sasl/marinelli)
14:46:00 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
14:46:17 <__minoru__shirae> why am I thinking about this: there was a question about applying a regular function to a monad
14:46:33 <__minoru__shirae> and the first thing that came to my mind was using bind with return
14:46:56 <__minoru__shirae> I forgot about much simpler solution that uses fmap
14:47:24 <__minoru__shirae> So, now I think, why did I miss it? Maybe I'm missing some intuition here?
14:50:39 rj_ joins (~x@gateway/tor-sasl/rj)
14:50:40 <__minoru__shirae> maybe the intuition is as simple as "a monad is a functor"
14:50:51 <__minoru__shirae> nothing fancy
14:51:09 <dminuoso> Well, all monads are functors, yes.
14:52:07 <__minoru__shirae> ok, I think it takes time to get used to that idea at a subconscious level
14:52:41 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
14:52:58 <dminuoso> I think the main problem with the term "monad" is that it makes you want to understand "what is a monad" - and the question is about as useful as "what is a monoid"
14:53:09 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:53:09 <dminuoso> or "what is a semigroup"
14:53:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:53:32 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
14:53:41 <dminuoso> And while people say "the IO monad", you rarely hear people talking about "the Integer semigroup"
14:54:24 <Uniaika> (I hope not!!)
14:54:35 <merijn> dminuoso: https://blog.jle.im/entry/io-monad-considered-harmful.html :p
14:54:44 <merijn> There, saved you some typing and explanation ;)
14:55:13 <dminuoso> merijn: Yeah, that's not quite what Im getting at
14:55:22 peanut_ joins (~peanut@2a02:8388:a101:2600:6b6d:4c3f:e9f8:2601)
14:56:13 <dminuoso> It's just that, being a semigroup has no meaning other than satisfying some laws. It doesn't tell you at all what the operation means, or any other properties.
14:56:18 <dminuoso> And monad is just the same
14:56:25 jessty joins (~jessty___@180.254.160.158)
14:57:58 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
14:58:09 <codygman`> I've been hitting a wall debugging a "libpq: failed (another command is already in progress" error using Data.Pool with persistent. I was wondering if anyone here might be able to help. It seems like Data.Pool happily puts back connections that still have queries running on them. Way more detail here: https://github.com/yesodweb/persistent/issues/1199
14:58:31 × zebrag quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
14:58:52 zebrag joins (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr)
14:59:08 <dminuoso> codygman`: Did you see https://github.com/lpsmith/postgresql-simple/issues/177?
14:59:21 × Ranhir quits (~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
15:00:18 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
15:00:36 <merijn> codygman`: Are you using any of the conduit query functions from persistent?
15:00:58 <merijn> codygman`: like selectSource
15:01:07 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0.1)
15:01:18 <codygman`> We were in prod, but I reproduced without conduit here: https://github.com/codygman/persistent-postgresql-query-in-progress-repro/blob/master/src/Main.hs
15:01:18 <codygman`>
15:01:24 jamm_ joins (~jamm@unaffiliated/jamm)
15:02:14 <dminuoso> Oh nvm me
15:02:36 × malumore quits (~malumore@151.62.122.60) (Remote host closed the connection)
15:02:55 <dminuoso> codygman`: Just a random thought, but you are not using COPY are you?
15:03:18 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
15:03:44 <codygman`> We are using LISTEN in prod via oddjobs, but in that minimal repro it's just a simple rawSql query.
15:07:30 <codygman`> If interested and one has the time, it's easy to run yourself with stack and the copy-pastable docker postgres here: https://github.com/codygman/persistent-postgresql-query-in-progress-repro/blob/958e66963c0ad9761149f7ef97fd5ec0d7322f73/src/Main.hs#L21
15:07:35 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Ping timeout: 240 seconds)
15:08:03 <merijn> codygman`: Hold on
15:08:34 <merijn> codygman`: Are you *sure* the exception happens during the rawSql
15:08:51 jessty_ joins (~jessty___@180.254.160.158)
15:08:57 <merijn> codygman`: It looks to me that that exception is just from your concurrent inserts
15:10:24 Lycurgus joins (~niemand@98.4.115.230)
15:10:50 tsaka__ joins (~torstein@ppp-2-87-239-251.home.otenet.gr)
15:10:53 × jessty quits (~jessty___@180.254.160.158) (Ping timeout: 245 seconds)
15:11:03 × todda7 quits (~torstein@2a02:587:1b10:ea00:db5:2d40:d00d:cce4) (Ping timeout: 272 seconds)
15:11:31 jakalx joins (~jakalx@base.jakalx.net)
15:11:59 <codygman`> I know the error is coming from `result`: https://github.com/codygman/persistent-postgresql-query-in-progress-repro/blob/958e66963c0ad9761149f7ef97fd5ec0d7322f73/src/Main.hs#L31. Wouldn't I never get to result if an async exception in inserts happened here: https://github.com/codygman/persistent-postgresql-query-in-progress-repro/blob/958e66963c0ad9761149f7ef97fd5ec0d7322f73/src/Main.hs#L27
15:12:05 <merijn> Anyway
15:12:28 <merijn> My recommendation would be to not use persistent if you care about your transactions/cleanup/etc. actually being predictable
15:12:57 Wuzzy joins (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de)
15:13:00 <merijn> The entire API is in an entirely incoherent state and IMO cannot be used safely without spending several hours staring at the persistent internals
15:13:17 × jessty_ quits (~jessty___@180.254.160.158) (Ping timeout: 265 seconds)
15:13:47 dyeplexer joins (~lol@unaffiliated/terpin)
15:14:10 <merijn> actually
15:14:10 <codygman`> I actually spent the time to fork persistent and use unliftio everywhere. And to use the fork of Data.Pool that uses unliftio. That still didn't help :)
15:14:10 × ambiso992 quits (~ambiso@209.182.239.205) (Quit: The Lounge - https://thelounge.chat)
15:14:13 <merijn> I see the issue
15:14:25 <merijn> And it's related to my existing issue on persistent
15:14:27 aggin joins (~ecm@103.88.87.37)
15:14:32 <merijn> codygman`: The problem isn't the pool
15:14:43 <merijn> codygman`: The problem is that persistent's Statement cache is garbage
15:14:44 ambiso992 joins (~ambiso@209.182.239.205)
15:15:23 <codygman`> I saw that conversation and I was exploring that, but wasn't sure how it would affect this in particular.
15:15:28 <merijn> codygman`: https://hackage.haskell.org/package/persistent-2.11.0.2/docs/src/Database.Persist.Sql.Raw.html#rawExecute
15:16:03 <merijn> codygman`: Note how: 1) rawExecute is just rawExecuteCount and 2) "stmtReset" is not called via a bracket
15:16:41 <merijn> codygman`: That means that if you async interrupt the statement, it's not reset, but the connection is returned to the pool
15:17:15 <merijn> codygman`: I don't know postgres, but I suspect the problem is issuing a new statement while one is "still running"
15:17:25 <codygman`> It looks like for persistent the postgres stmtReset is just `return ()` lol
15:17:29 <codygman`> for postgres*
15:17:57 <merijn> ah, not sure about that
15:17:59 <codygman`> that is indeed the issue... I tried a workaround where I call PQ.cancel
15:18:02 <merijn> but that seems weird
15:18:21 <codygman`> Actually the full solution is: PQ.cancel, PQ.consumeInput, PQ.disconnect
15:18:23 <merijn> I can't imagine postgres doesn't require resetting/freeing an "in progress" statement
15:19:06 <codygman`> Okay, I think I'll try out adding that logic into reset
15:19:06 <codygman`>
15:19:13 × jrqc quits (~rofl@96.78.87.197) (Ping timeout: 245 seconds)
15:20:02 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
15:20:37 <merijn> codygman`: I stand by my earlier recommendation, though :)
15:22:25 <codygman`> Yeah, but my team is pretty heavily invested in Persistent by now.
15:22:26 <codygman`>
15:22:27 jrqc joins (~rofl@96.78.87.197)
15:22:36 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds)
15:22:43 <merijn> codygman`: I know all about sunk cost fallacy :p
15:22:48 <codygman`> :D
15:23:06 <merijn> But at least my excuse is that no one is paying me for future maintenance on my code so since it's working now it can just rot
15:23:33 <merijn> That doesn't apply if you have to maintain it long term :p
15:27:00 × aggin quits (~ecm@103.88.87.37) (Quit: WeeChat 3.0.1)
15:27:32 <peanut_> Hey I'm analyzing GHC Core expressions from GHC.compileToCoreModule and was wondering if theres a way to get a definition (Core Expression) from a vanilla global Var.Id, probably from another module
15:28:08 <merijn> peanut_: Sounds like a question with a better chance of success in #ghc? :)
15:28:21 <peanut_> Thing is, I'm not working on the GHC
15:28:28 <peanut_> I'm just using the GHC package
15:29:14 <peanut_> Is #ghc exclusively about GHC development?
15:29:33 <merijn> peanut_: tbh, any question involving GHC internals is on-topic there
15:29:54 <peanut_> alright thanks, I'll try my luck there
15:30:10 <peanut_> didn't want to disrupt GHC development
15:30:13 <merijn> peanut_: As long as they're not n00b tier beginner Haskell questions or getting too spammy
15:30:29 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
15:30:36 <merijn> peanut_: It's fine, it's a fairly quiet channel
15:30:55 <peanut_> thanks for the advice :)
15:31:32 × Guest54670 quits (~textual@mskresolve-a.mskcc.org) (Ping timeout: 256 seconds)
15:31:39 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 265 seconds)
15:32:59 DTZUZU_ joins (~DTZUZO@207.81.119.43)
15:33:26 × wopas32 quits (uid384704@gateway/web/irccloud.com/x-tpyrxxcvbruhblyb) (Quit: Connection closed for inactivity)
15:34:05 <codygman`> I was happy to see you online merijn... it's remarkably difficult to get help on issues with Async exceptions and resource finalization in Haskell. I was wondering if I'd have to jump to #ghc too :)
15:35:30 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 256 seconds)
15:36:03 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
15:36:49 Alleria joins (~textual@mskresolve-a.mskcc.org)
15:37:12 Alleria is now known as Guest53837
15:37:30 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
15:37:31 robweb joins (ac3811c3@172.56.17.195)
15:37:35 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
15:39:10 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
15:39:44 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
15:40:31 bobweb joins (ac3a1790@172.58.23.144)
15:41:49 <merijn> That's because most people aren't anywhere close to paranoid enough for async exceptions :p
15:43:08 geekosaur joins (ac3a56e4@172.58.86.228)
15:43:41 × Lycurgus quits (~niemand@98.4.115.230) (Quit: Exeunt)
15:44:09 <bobweb> Hi. I have this problem: https://paste.tomsmeding.com/cpY67dWg. Would you please help me get this QuickCheck issue from "Haskell from First Principles" resolved? Thank you.
15:45:57 <merijn> bobweb: Did the "Double -> Double" signature come from the book or from you?
15:47:01 <bobweb> merijin: from me. I got a different error with no type signiture so I added one.
15:47:06 <int-e> bobweb: you need a function that returns a Bool.
15:47:07 malumore joins (~malumore@151.62.122.60)
15:47:34 <geekosaur> right, you need a predicate, something that does a test and produces a Bool result
15:47:44 <int-e> so if the book says that
15:47:54 × toorevitimirp quits (~tooreviti@117.182.182.40) (Remote host closed the connection)
15:47:54 <geekosaur> so halfIdentity is incomplete
15:48:08 <int-e> "halfIdentity = (*2) . half" is a property then the book is wrong... but maybe you misread?
15:48:53 <bobweb> Well, @#$%! I totally didn't see that and of course it needs a Bool to test against. DUH! Thank you all.
15:48:58 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
15:49:17 Sorna joins (~Sornaensi@077213203030.dynamic.telenor.dk)
15:49:26 <bobweb> No, the book expected me to see the need for a Bool function.
15:50:00 <bobweb> int-e
15:50:05 vicfred joins (~vicfred@unaffiliated/vicfred)
15:50:32 <bobweb> Thanks again.
15:50:45 × bobweb quits (ac3a1790@172.58.23.144) (Quit: Connection closed)
15:51:45 asheshambasta joins (~user@ptr-e1lysavzjd712yoren8.18120a2.ip6.access.telenet.be)
15:51:46 ephemient joins (uid407513@gateway/web/irccloud.com/x-jereqnktqbcrezfu)
15:51:58 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
15:52:30 × aqd quits (~aqd@84.20.147.33) (Quit: Textual IRC Client: www.textualapp.com)
15:53:37 Kaiepi joins (~Kaiepi@47.54.252.148)
15:53:38 × Sornaensis quits (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 256 seconds)
15:54:46 × robweb quits (ac3811c3@172.56.17.195) (Quit: Connection closed)
15:54:54 × peanut_ quits (~peanut@2a02:8388:a101:2600:6b6d:4c3f:e9f8:2601) (Quit: Leaving)
15:55:02 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
15:55:21 tinhatcat joins (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net)
15:56:11 <codygman`> merijn: I agree... people are too lax about async exceptions. I think part of the problem is how far you can get without worrying about them. If you had to confront them earlier though... would people stick around? :D
15:56:18 × tinhatcat quits (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) (Client Quit)
15:56:29 <merijn> codygman`: I mean, they're not worse than in other languages
15:56:41 <merijn> async exceptions are just hard
15:57:24 <c_wraith> they're not a problem in Haskell if your program is allowed to just.. fail
15:57:34 <merijn> c_wraith: Then they still are
15:57:42 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
15:57:50 Ranhir joins (~Ranhir@157.97.53.139)
15:57:54 <merijn> Resource cleanup is still a mess, see persistent
15:58:05 <geekosaur> that's not "just.. fail"
15:58:31 × zebrag quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
15:58:41 × molehillish quits (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Remote host closed the connection)
15:58:51 zebrag joins (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr)
16:00:07 DataComputist joins (~lumeng@50.43.26.251)
16:00:29 <c_wraith> persistent? the database interface? What does it need to clean up that the database doesn't handle?
16:01:09 <merijn> c_wraith: I meant that the earlier example shows how it's near impossible to reliably trigger cleanups for async exceptions
16:01:16 <codygman`> For my case with postgres, it needs to destroy connections that are aborted or properly reset them before putting them back in the pool.
16:01:30 <codygman`> my case above*
16:01:36 <c_wraith> once you have a pool, you're way past just failing.
16:01:46 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (Remote host closed the connection)
16:02:06 × APic quits (apic@apic.name) (Ping timeout: 265 seconds)
16:02:07 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
16:02:21 <merijn> c_wraith: I didn't mean that persistent is an example of "can't just fail", if your application just exists the DB will recover
16:02:50 <merijn> c_wraith: My point was that persistent illustrates that simply "trigger cleanup before bailing/crashing" is already near impossible
16:04:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:05:32 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection)
16:06:49 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (Remote host closed the connection)
16:07:08 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
16:07:25 <dminuoso> merijn: Regarding persistent, Ive been handrolling a few bits and pieces for neat SQL generation.
16:07:46 <dminuoso> And every time I do it, I too stand by "dont use persistent" :)
16:09:05 <codygman`> c_wraith: I'm not sure what you mean by 'once you have a pool you're way past just failing'. The pool is supposed to help you be resilient to failure and use resources more efficiently right?
16:09:24 <merijn> codygman`: Right, so you're not itending to "just fail"
16:09:32 <c_wraith> codygman`: By "just fail", I mean the whole program. If you're recovering, you're doing way more than just failing
16:10:55 <dminuoso> 16:17:25 codygman` | It looks like for persistent the postgres stmtReset is just `return ()` lol
16:11:06 <dminuoso> codygman`: You're leaping to conclusions I think
16:11:21 <dminuoso> Staring at the persistent code, `stmtReset = return ()` *only* for prepare
16:11:44 <merijn> dminuoso: What I like is that the whole persistent API is designed around the eager resource cleanup of conduit
16:11:53 × DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...)
16:12:02 <merijn> dminuoso: "Wait, but didn't conduit stop supporting eager resource cleanup?"
16:12:09 <merijn> Why yes, yes, it did.
16:12:27 <merijn> Did the persistent API get refactored to be sensible in this new world?
16:12:34 <merijn> Well, no, duh
16:14:57 × CoconutCrab quits (~Cua@unaffiliated/coconutcrab) (Ping timeout: 264 seconds)
16:15:20 DataComputist joins (~lumeng@50.43.26.251)
16:15:37 <codygman`> dminuoso: prepare is the stmtReset that is called by Database.Persist.Sql.Raw.getStmtConnection meaning for postgres stmtReset does nothing.
16:15:49 <codygman`> I just rechecked in case though :)
16:16:18 × idhugo__ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
16:16:44 <dminuoso> codygman`: not quite
16:17:10 × epstein quits (~dwsjeid91@193.27.14.71) (Quit: Leaving)
16:17:12 <dminuoso> oh hold on
16:17:14 <dminuoso> I see
16:17:46 <dminuoso> This code looks a bit fishy
16:18:10 <codygman`> >--<>
16:18:44 <dminuoso> >=>
16:20:16 × kadoban_ quits (~mud@unaffiliated/kadoban) (Remote host closed the connection)
16:20:46 conal joins (~conal@64.71.133.70)
16:21:30 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:21:50 Sorna is now known as Sornaeniss
16:21:53 Sornaeniss is now known as Sornaensis
16:24:26 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:26:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
16:27:05 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
16:27:20 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
16:27:28 dfeuer joins (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
16:28:14 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:9289:77c9:1590:330e) (Ping timeout: 264 seconds)
16:30:26 × zar quits (~zar@fw1.ciirc.cvut.cz) (Quit: Leaving)
16:30:58 jakalx joins (~jakalx@base.jakalx.net)
16:31:54 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
16:37:08 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
16:37:12 APic joins (apic@apic.name)
16:37:51 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
16:38:55 × arrowsvc_ quits (~arr@2.93.163.35) (Quit: Konversation terminated!)
16:39:13 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
16:39:58 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Remote host closed the connection)
16:40:22 × APic quits (apic@apic.name) (Client Quit)
16:40:26 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
16:40:30 <__minoru__shirae> codygman`: "people are too lax about async exceptions. I think part of the problem is how far you can get without worrying about them. If you had to confront them earlier though... would people stick around? :D"
16:40:58 × asheshambasta quits (~user@ptr-e1lysavzjd712yoren8.18120a2.ip6.access.telenet.be) (Ping timeout: 265 seconds)
16:41:00 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:dcdc:9829:bf56:9867)
16:41:19 <__minoru__shirae> so what one to do with async exceptions?
16:41:21 <__minoru__shirae> a beginner doesn't worry about them
16:41:34 <dminuoso> [pack (tagFieldName (sumEncoding opts)) | fromTaggedSum]
16:41:38 <dminuoso> What kind of syntax is this?
16:41:41 <__minoru__shirae> a next-level beginner uses mask and bracket
16:41:47 geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
16:42:53 <dminuoso> Oh hold on, this is just a conditionally empty list.
16:42:58 <__minoru__shirae> does stm take care of async exceptions somehow? so a programmer doesn't have to worry about them.
16:43:12 <dminuoso> __minoru__shirae: The problem of async exceptions begins when you escape the haskell RTS.
16:43:22 <merijn> dminuoso: pfft
16:43:27 <merijn> dminuoso: It begins waaaaay earlier
16:43:29 <dminuoso> heh
16:43:32 <dminuoso> well thats when it gets real nasty
16:43:49 <dminuoso> Some bits I really dont get.
16:44:09 <dminuoso> Like how `mask` is named `mask` and not just `maskSometimes`
16:44:14 × texasmynsted quits (~texasmyns@99.96.221.112) (Read error: Connection reset by peer)
16:44:20 <dminuoso> Or maybe `maskButNotReally`
16:45:17 <__minoru__shirae> there is uninterruptibleMask
16:45:20 APic joins (apic@apic.name)
16:45:41 <__minoru__shirae> but the book says "
16:45:43 <__minoru__shirae> Every instance of uninterruptibleMask should be
16:45:44 <__minoru__shirae> treated with the utmost suspicion.
16:45:49 <__minoru__shirae> "
16:46:05 <merijn> Every use of mask should be treated with the utmost suspicion
16:46:17 <dminuoso> __minoru__shirae: the thing is, `mask` does not even give you the slightest hint that it doesnt really mask
16:46:24 <dminuoso> Which makes it dangerous to use
16:46:30 <merijn> All code that's not been examined should be assumed "wrong" when it comes to async exceptions
16:46:31 <dminuoso> You get a false sense of security
16:46:54 <merijn> All code that's been examined and proven "not wrong" should be assumed "only probably wrong"
16:47:03 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 265 seconds)
16:47:11 <dminuoso> __minoru__shirae: then add that `bracket` uses `mask`
16:47:22 <dminuoso> so suddenly if you use `bracket`, you're only semi protected against async exceptoins
16:47:29 <merijn> dminuoso: I already campaigned against that in 7 years ago
16:47:39 <merijn> dminuoso: Got too many complaints to go through with it
16:47:52 <dminuoso> merijn: Just go and use `unliftio` everywhere
16:47:56 <merijn> dminuoso: No
16:48:01 <dminuoso> It comes with cleaned up Control.Exception :P
16:48:08 <merijn> It does not
16:48:13 <dminuoso> Its surely better than what base comes with
16:48:30 <dminuoso> No accidentally catching async exceptions, and bracket defaults to uninterruptibleMask
16:48:36 <merijn> It comes with a Snoyman-opinionated cleaned up Control.Exception that is useless unless all your transitive dependencies use it too
16:48:46 <merijn> It also has a massive dependency footprint
16:48:59 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 265 seconds)
16:49:07 <dminuoso> a massive dependency footprint?
16:49:13 <dminuoso> dunno, most of them I depend on anyway
16:49:23 <dminuoso> and its *really* harmless
16:51:38 <dminuoso> merijn: Also I disagree with your characterization that its useless unless [...]
16:51:51 <dminuoso> It adds value the moment you use it. Every boundary that doesnt recover from an async exception is good.
16:52:25 <dminuoso> Of course it'd be great if the entirety of hackage adhered to this, but in an imperfect world I take some cleanliness over none
16:52:27 <merijn> dminuoso: I mean that it leaves all of my transitive dependencies free to have completely broken async exception handling/bracketing
16:52:36 <dminuoso> sure
16:52:46 <dminuoso> but my goal is not to make the world perfect
16:52:47 <merijn> And all in all I trust my transitive dependencies far less than *my* async code :p
16:53:09 <merijn> Because I am paranoid and have worked on async + distributed runtime systems before :p
16:53:34 <merijn> I don't need protecting from me (well, I do...but not as much as I need protecting from *everyone else*)
16:55:51 idhugo__ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
16:55:53 <__minoru__shirae> how about using stm? a transaction gets rolled back, so no need to worry about async exceptions breaking consistency, right?
16:58:16 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
16:58:17 <geekosaur> you can't do IO during an STM transaction, and if you could how would you e.g. rollback a write?
16:58:29 <fresheyeball> If Maybe = (+ 1)
16:58:31 × zebrag quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
16:58:33 <fresheyeball> what is []?
16:58:45 <fresheyeball> is [] = (+ Infinity)?
16:58:52 zebrag joins (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr)
16:58:54 <__minoru__shirae> geekosaur: yeah, was wondering about that too
16:59:50 <geekosaur> fresheyeball: look at it in terms of its definition, data List a = [] | Cons a (List a)
17:00:25 <geekosaur> so not quite (+ Inf), since it can be finite
17:01:23 <monochrom> Infinite series. [a] = 1 + a + a*a + a*a*a + ...
17:01:27 <fresheyeball> geekosaur: doesn't that just make it a larger infinite?
17:01:36 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
17:01:45 × lewky_ quits (~lewky@159.65.37.240) (Quit: ZNC 1.9.x-git-111-f2cdc3db - https://znc.in)
17:01:54 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
17:01:55 × graf_blutwurst quits (~user@2001:171b:226e:adc0:f5d5:a07f:9e46:8981) (Remote host closed the connection)
17:01:55 <codygman`> merijn: Perhaps I'll carry on your "fix bracket" torch from 7 years ago if I ever get this fixed.
17:01:55 <fresheyeball> If it can be infinite list, or a finite list, doesn't that just mean the cardinality is bigger than a countable infinity?
17:01:56 <codygman`>
17:02:15 × Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
17:02:25 <geekosaur> it's still countable
17:02:36 <monochrom> You are really better off writing out "Maybe a = 1+a" instead of trying to be pointfree with "Maybe = (1 +)". The pointfree form doesn't scale.
17:03:14 <dminuoso> monochrom: I disagree. Everybody should @pl their code to lambdabot before committing. It scales!
17:03:28 <dminuoso> Completely pointless code. Guaranteed.
17:04:01 <fresheyeball> geekosaur: how so? Does the diagonal proof not apply here? Can't I just invent a new list with a different member?
17:04:36 <geekosaur> it wouldn't describe the same type
17:04:48 <fresheyeball> [Int] ?
17:05:00 <fresheyeball> why not?
17:05:17 <fresheyeball> I don't see why the diagonal proof doesn't apply to lists
17:05:27 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 258 seconds)
17:05:36 × geowiesnot_bis quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
17:05:37 Ranhir joins (~Ranhir@157.97.53.139)
17:05:47 howdoi joins (uid224@gateway/web/irccloud.com/x-evlatajzqwspjogs)
17:05:48 <geekosaur> maybe I'm misunderstanding you. but if you added an arbitrary thing it would not then be a list of a, but a list of a plus an item of some b /= a
17:06:03 <fresheyeball> oic
17:06:15 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
17:06:21 <fresheyeball> well I then I think perhaps let's consider this
17:06:23 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 265 seconds)
17:06:23 <fresheyeball> [()]
17:06:32 <fresheyeball> because then no diagonal right?
17:06:40 <fresheyeball> but still, I can have an infinite list of [()]
17:06:47 <fresheyeball> and a finite list of arbitrary size
17:07:19 roconnor joins (~roconnor@host-45-58-230-226.dyn.295.ca)
17:07:28 <monochrom> That is still not "1 + infinity".
17:07:59 <monochrom> If [Int] were = 1 + infinity, where is "Int" in "1 + infinity"?
17:08:00 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection)
17:08:09 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
17:08:10 <monochrom> err sorry misread, nevermind.
17:08:26 <fresheyeball> I start counting like this
17:08:26 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
17:08:29 <fresheyeball> [] = 1
17:08:33 <fresheyeball> [()] = 2
17:08:34 <monochrom> But [()] is still not () + infinity. [Int] is still not Int + Infinity. (Where is the empty list?)
17:08:38 <fresheyeball> [(), ()] = 3
17:09:00 ephemient_ joins (uid407513@gateway/web/irccloud.com/x-vpzhtzbqasvuzanc)
17:09:08 <monochrom> How about [Int]? How abou [Bool]?
17:09:25 frozenErebus joins (~frozenEre@94.128.82.20)
17:09:29 <monochrom> Where is [True, False, False, True, False] in your scheme?
17:09:43 runeks__ joins (sid21167@gateway/web/irccloud.com/x-tcwtgsjwiokaatdr)
17:09:53 <fresheyeball> Well if [()] is an uncountable infinity, because of infinite lists in addition to an infinite number of finite lists.
17:10:00 RusAlex_ joins (~Chel@BSN-77-82-41.static.siol.net)
17:10:02 <fresheyeball> then I think it doesn't matter actually
17:10:17 <fresheyeball> Whatever we put in the list, it wont change the cardinality
17:10:22 <hyperisco> fresheyeball, the arithmetic interpretation is just the same as if you have a recursive arithmetic expression
17:10:39 <hyperisco> fresheyeball, so you can analyse in various ways... it is an infinite series
17:10:45 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:11:50 × dfeuer quits (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
17:12:05 <hyperisco> fresheyeball, for example you can rearrange to a polynomial and, interestingly, the derivative is the same as the zipper https://pavpanchekha.com/blog/zippers/derivative.html
17:12:11 toasty_avocado[4 joins (toastyavoc@gateway/shell/matrix.org/x-ofixjwdrwojfkcuv)
17:12:13 ntjns_ joins (~jones@167.88.120.129)
17:12:35 coddinkn_ joins (~coddinkn@octayn.net)
17:12:57 <fresheyeball> math buddy of mine in another channel is telling me it's aleph nought
17:13:07 Hanma[m]1 joins (hanmamatri@gateway/shell/matrix.org/x-dducjpohzbpbsrrp)
17:13:13 <geekosaur> there''s some questions there iirc
17:13:37 invent[m]1 joins (inventmatr@gateway/shell/matrix.org/x-lpuieaxgzfdbucdc)
17:14:00 <geekosaur> well, no, aleph0 is pretty well accepted, it's the next one up there are questions about. but they're just describing countable infinity in another way
17:14:02 × ephemient quits (uid407513@gateway/web/irccloud.com/x-jereqnktqbcrezfu) (Read error: Connection reset by peer)
17:14:02 × alanz quits (sid110616@gateway/web/irccloud.com/x-lduezzrbwnigpcym) (Read error: Connection reset by peer)
17:14:02 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:dcdc:9829:bf56:9867) (Ping timeout: 265 seconds)
17:14:02 × runeks quits (sid21167@gateway/web/irccloud.com/x-rckbkalawmplrynn) (Ping timeout: 265 seconds)
17:14:02 alanz joins (sid110616@gateway/web/irccloud.com/session)
17:14:02 × alanz quits (sid110616@gateway/web/irccloud.com/session) (Changing host)
17:14:02 alanz joins (sid110616@gateway/web/irccloud.com/x-nvhulchvfobjcadn)
17:14:03 × Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-efytsvxrhnkbgydz) (Ping timeout: 265 seconds)
17:14:03 × JSharp quits (sid4580@wikia/JSharp) (Ping timeout: 265 seconds)
17:14:03 × enya[m] quits (enyaismatr@gateway/shell/matrix.org/x-kggzrjtkshyubmxt) (Ping timeout: 265 seconds)
17:14:03 conal joins (~conal@64.71.133.70)
17:14:03 × coddinkn quits (~coddinkn@octayn.net) (Ping timeout: 265 seconds)
17:14:03 × noexcept quits (~noexcept@2a03:b0c0:3:d0::33:9001) (Ping timeout: 265 seconds)
17:14:03 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 265 seconds)
17:14:03 × toasty_avocado[m quits (toastyavoc@gateway/shell/matrix.org/x-cecwjfvchqqwsnbp) (Ping timeout: 265 seconds)
17:14:03 × megaTherion quits (~therion@unix.io) (Ping timeout: 265 seconds)
17:14:04 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Ping timeout: 265 seconds)
17:14:04 × alanz quits (sid110616@gateway/web/irccloud.com/x-nvhulchvfobjcadn) (Max SendQ exceeded)
17:14:04 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 265 seconds)
17:14:04 × invent[m] quits (inventmatr@gateway/shell/matrix.org/x-cwuovopaejsudboe) (Ping timeout: 265 seconds)
17:14:04 × sramsay64[m] quits (sramsay64p@gateway/shell/matrix.org/x-tqmoejehpjuaehyj) (Ping timeout: 265 seconds)
17:14:05 × immae quits (immaematri@gateway/shell/matrix.org/x-ddgivafyzeufmhvd) (Ping timeout: 265 seconds)
17:14:05 × rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-gnxotcamcepjeexd) (Ping timeout: 265 seconds)
17:14:05 × jjhoo quits (jahakala@dsl-trebng21-b048b5-171.dhcp.inet.fi) (Ping timeout: 265 seconds)
17:14:05 alanz joins (sid110616@gateway/web/irccloud.com/session)
17:14:05 × ntjns quits (~jones@167.88.120.129) (Ping timeout: 265 seconds)
17:14:05 JSharp joins (sid4580@gateway/web/irccloud.com/session)
17:14:05 domenkozar[m] joins (domenkozar@gateway/shell/matrix.org/session)
17:14:05 × domenkozar[m] quits (domenkozar@gateway/shell/matrix.org/session) (Changing host)
17:14:05 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
17:14:05 × JSharp quits (sid4580@gateway/web/irccloud.com/session) (Changing host)
17:14:05 JSharp joins (sid4580@wikia/JSharp)
17:14:06 × alanz quits (sid110616@gateway/web/irccloud.com/session) (Changing host)
17:14:06 alanz joins (sid110616@gateway/web/irccloud.com/x-naowehghrfohzhyt)
17:14:06 × JSharp quits (sid4580@wikia/JSharp) (Changing host)
17:14:06 JSharp joins (sid4580@gateway/web/irccloud.com/x-ezbpiqdpwygbcxhm)
17:14:06 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Changing host)
17:14:06 domenkozar[m] joins (domenkozar@gateway/shell/matrix.org/x-cjmeprkmsvghrodo)
17:14:06 ephemient_ is now known as ephemient
17:14:06 × domenkozar[m] quits (domenkozar@gateway/shell/matrix.org/x-cjmeprkmsvghrodo) (Changing host)
17:14:06 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
17:14:06 × JSharp quits (sid4580@gateway/web/irccloud.com/x-ezbpiqdpwygbcxhm) (Changing host)
17:14:06 JSharp joins (sid4580@wikia/JSharp)
17:14:07 runeks__ is now known as runeks
17:14:07 × jess quits (jess@freenode/staff/jess) (Quit: Reconnecting)
17:14:10 jess joins (jess@freenode/staff/jess)
17:14:36 noexcept joins (~noexcept@noexcept.org)
17:14:38 <hyperisco> I suspect this is liable to get lost in translation
17:14:47 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
17:14:55 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
17:15:52 immae1 joins (immaematri@gateway/shell/matrix.org/x-ckpvkldgpyouvavg)
17:16:18 enya[m] joins (enyaismatr@gateway/shell/matrix.org/x-xztdnbxlyijkfvcb)
17:16:21 × DTZUZU_ quits (~DTZUZO@207.81.119.43) (Ping timeout: 246 seconds)
17:16:21 × jespada quits (~jespada@90.254.243.187) (Ping timeout: 246 seconds)
17:16:21 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 246 seconds)
17:16:24 sramsay64[m] joins (sramsay64p@gateway/shell/matrix.org/x-ugmborfniejfujki)
17:16:37 rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-jghiowexfiqyfpvv)
17:16:42 × beka quits (~beka@gothdyke.mom) (Ping timeout: 246 seconds)
17:17:57 × michalz quits (~user@185.246.204.111) (Ping timeout: 264 seconds)
17:18:19 cfricke joins (cfricke@gateway/vpn/mullvad/cfricke)
17:18:41 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:18:54 Cthalupa joins (~cthulhu@47.186.47.75)
17:18:59 × rj_ quits (~x@gateway/tor-sasl/rj) (Quit: rj_)
17:19:25 beka joins (~beka@gothdyke.mom)
17:19:28 jespada joins (~jespada@90.254.243.187)
17:20:58 fuzzypixelz joins (2ec10464@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
17:22:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
17:22:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:22:42 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
17:23:32 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:23:48 kiweun joins (~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com)
17:24:56 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:4aab:53fc:fe7e:1057)
17:24:58 kadoban_ joins (~mud@unaffiliated/kadoban)
17:25:02 × geekosaur quits (ac3a56e4@172.58.86.228) (Ping timeout: 240 seconds)
17:25:14 × rickygee quits (~rickygee@236-53-74-65.gci.net) (Ping timeout: 265 seconds)
17:25:44 × lawid quits (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de) (Quit: lawid)
17:26:11 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
17:27:05 jjhoo joins (jahakala@dsl-trebng21-b048b5-171.dhcp.inet.fi)
17:27:53 lawid joins (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de)
17:28:41 rj_ joins (~x@gateway/tor-sasl/rj)
17:30:01 slack1256 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net)
17:32:06 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
17:32:13 × frozenErebus quits (~frozenEre@94.128.82.20) (Ping timeout: 260 seconds)
17:32:39 frozenErebus joins (~frozenEre@94.128.82.20)
17:33:05 <__minoru__shirae> so if you're paranoid about async exceptions, you can prepend everything with mask_
17:33:07 <__minoru__shirae> right?
17:33:15 <fresheyeball> ok it's been explained to me
17:33:30 <__minoru__shirae> it will make everything unresponsive to async exceptions
17:33:57 texasmynsted joins (~texasmyns@99.96.221.112)
17:34:05 <codygman`> __minoru__shirae: That doesn't catch all async exceptions :) uninterruptibleMask roughly does what you believe mask does
17:34:21 <__minoru__shirae> yeah, was about to write about that
17:35:21 <__minoru__shirae> how about emulating actors?
17:35:55 <__minoru__shirae> if you want to kill a thread, you don't throw an async exception to it, you send a PoisonPill message instead
17:36:10 <__minoru__shirae> sounds like it solves a problem of async exceptions
17:36:27 <__minoru__shirae> (those that a programmer sends)
17:36:52 <__minoru__shirae> not sure about async exceptions that a system sends
17:38:24 <__minoru__shirae> a thread handles one message at a time and eventually it will get to that PoisonPill message and terminate safely
17:38:32 conal joins (~conal@64.71.133.70)
17:40:38 <__minoru__shirae> the question is, can you be sure that since you don't throw async exceptions they won't be thrown at all
17:40:40 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
17:40:49 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
17:41:05 <codygman`> No, you have to depend on your dependencies not throwing them
17:41:05 <codygman`>
17:41:17 <__minoru__shirae> seems to me that a system can do it on its own
17:41:36 <__minoru__shirae> and dependencies too
17:44:02 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 260 seconds)
17:44:08 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
17:44:09 <__minoru__shirae> and there is a need to cancel a long-running operation
17:45:05 megaTherion joins (~therion@unix.io)
17:45:08 <__minoru__shirae> tricky
17:45:19 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
17:45:30 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
17:47:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
17:47:51 <codygman`> agreed
17:48:11 geekosaur joins (82650c7a@130.101.12.122)
17:48:13 edwardk unsafeCoerces all the things.
17:48:16 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
17:48:29 <Uniaika> edwardk: the gods are watching over you, that's cheating :P
17:49:02 <edwardk> as georgew likes to slur out almost unintelligibly "she'll be right"
17:49:42 <hyperisco> what are type systems for if not to explain valid uses of unsafeCoerce
17:49:54 Deide joins (~Deide@217.155.19.23)
17:50:12 <edwardk> hyperisco: need a better type system than haskell for these sadly
17:50:33 <edwardk> actually i only have 5 in the current codebase
17:50:40 <edwardk> so i feel i'm getting better
17:51:37 × rajivr quits (uid269651@gateway/web/irccloud.com/x-scfssrsbjzfzlhth) (Quit: Connection closed for inactivity)
17:54:51 epstein joins (~dwsjeid91@193.27.14.71)
17:56:20 Deide1 joins (~Deide@217.155.19.23)
17:56:41 alanz_ joins (sid110616@gateway/web/irccloud.com/x-atcbwlvnmzxwbozk)
17:57:05 JSharp_ joins (sid4580@wikia/JSharp)
17:57:33 SaitamaPlus_ joins (uid272474@gateway/web/irccloud.com/x-fuuiapjpwochxlja)
17:58:03 kadoban__ joins (~mud@unaffiliated/kadoban)
17:58:31 koz is now known as koz_
17:59:47 × molehillish quits (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Remote host closed the connection)
18:00:34 lawid_ joins (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de)
18:00:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:01:16 <jhrcek> Hello tapas,
18:01:16 <jhrcek> sorry for pinging your directly, but someone told me you help me with
18:01:16 <jhrcek> I have a PR (https://github.com/haskell-hvr/base-noprelude/pull/13) to one of hvr_ 's repositories that I'd like to get merged and relase to hackage. But someone told me he's been AWOL for some time and that you could maybe assit in moving this forward?
18:02:36 <__minoru__shirae> edwardk: did you mention unsafeCoerce in response to async exceptions discussion? It looks like it has nothing to do with them, but who knows?
18:02:49 <edwardk> no relevance
18:02:58 <edwardk> was just staring at a screen full of unsafeCoerces at the time
18:02:58 × idhugo__ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection)
18:03:23 idhugo__ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
18:03:51 <ephemient> ekmettCoerce = unsafeCoerce and alpha-rename throughout your codebase, now you only only have "one" reference ;)
18:03:56 × Deide quits (~Deide@217.155.19.23) (*.net *.split)
18:03:56 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (*.net *.split)
18:03:56 × lawid quits (~quassel@dslb-090-186-208-048.090.186.pools.vodafone-ip.de) (*.net *.split)
18:03:56 × jjhoo quits (jahakala@dsl-trebng21-b048b5-171.dhcp.inet.fi) (*.net *.split)
18:03:56 × kadoban_ quits (~mud@unaffiliated/kadoban) (*.net *.split)
18:03:56 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:4aab:53fc:fe7e:1057) (*.net *.split)
18:03:56 × rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-jghiowexfiqyfpvv) (*.net *.split)
18:03:56 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (*.net *.split)
18:03:56 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (*.net *.split)
18:03:56 × JSharp quits (sid4580@wikia/JSharp) (*.net *.split)
18:03:56 × alanz quits (sid110616@gateway/web/irccloud.com/x-naowehghrfohzhyt) (*.net *.split)
18:03:56 × howdoi quits (uid224@gateway/web/irccloud.com/x-evlatajzqwspjogs) (*.net *.split)
18:03:56 × SaitamaPlus quits (uid272474@gateway/web/irccloud.com/x-abijodguhnyidowb) (*.net *.split)
18:03:56 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:b44d:6014:67a8:1b64) (*.net *.split)
18:03:56 × sigmacool[m] quits (sigmacoolm@gateway/shell/matrix.org/x-zreyiugydgdstsfc) (*.net *.split)
18:03:56 × rust-rocks[m] quits (rust-rocks@gateway/shell/matrix.org/x-aebtetgfiystofjh) (*.net *.split)
18:03:56 × bitonic quits (bitonicmat@gateway/shell/matrix.org/x-jwmiqaganbdblqeb) (*.net *.split)
18:03:56 × simara[m] quits (simaramatr@gateway/shell/matrix.org/x-jyuzgnopiyccambc) (*.net *.split)
18:03:56 × siraben quits (sirabenmat@gateway/shell/matrix.org/x-fctrgxohijfkpiha) (*.net *.split)
18:03:56 × kadoban quits (kadobanemp@gateway/shell/matrix.org/x-qevyhmlpmumbzbbb) (*.net *.split)
18:03:56 × martin02 quits (silas@hund.fs.lmu.de) (*.net *.split)
18:03:56 × farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
18:03:56 × Deewiant quits (~deewiant@de1.ut.deewiant.iki.fi) (*.net *.split)
18:03:58 JSharp_ is now known as JSharp
18:03:59 SaitamaPlus_ is now known as SaitamaPlus
18:03:59 alanz_ is now known as alanz
18:04:16 <edwardk> ephemient: we used to do that in lens with 'coerce = unsafeCoerce'
18:04:27 <edwardk> then coerce got good enough we could avoid it
18:04:50 Deewiant joins (~deewiant@de1.ut.deewiant.iki.fi)
18:05:09 jjhoo joins (jahakala@dsl-trebng21-b048b5-171.dhcp.inet.fi)
18:05:09 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:4aab:53fc:fe7e:1057)
18:05:09 rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-jghiowexfiqyfpvv)
18:05:09 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
18:05:09 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
18:05:09 howdoi joins (uid224@gateway/web/irccloud.com/x-evlatajzqwspjogs)
18:05:09 ericsagn1 joins (~ericsagne@2405:6580:0:5100:b44d:6014:67a8:1b64)
18:05:09 sigmacool[m] joins (sigmacoolm@gateway/shell/matrix.org/x-zreyiugydgdstsfc)
18:05:09 rust-rocks[m] joins (rust-rocks@gateway/shell/matrix.org/x-aebtetgfiystofjh)
18:05:09 kadoban joins (kadobanemp@gateway/shell/matrix.org/x-qevyhmlpmumbzbbb)
18:05:09 siraben joins (sirabenmat@gateway/shell/matrix.org/x-fctrgxohijfkpiha)
18:05:09 bitonic joins (bitonicmat@gateway/shell/matrix.org/x-jwmiqaganbdblqeb)
18:05:09 simara[m] joins (simaramatr@gateway/shell/matrix.org/x-jyuzgnopiyccambc)
18:05:09 martin02 joins (silas@hund.fs.lmu.de)
18:05:16 × kadoban quits (kadobanemp@gateway/shell/matrix.org/x-qevyhmlpmumbzbbb) (Max SendQ exceeded)
18:05:16 × siraben quits (sirabenmat@gateway/shell/matrix.org/x-fctrgxohijfkpiha) (Max SendQ exceeded)
18:05:21 idhugo_ joins (~idhugo@80-62-116-51-mobile.dk.customer.tdc.net)
18:05:33 wickedjargon joins (~ff@2607:9880:2198:4e:fd0d:cbfa:ce9e:8708)
18:05:49 epst3in joins (~dwsjeid91@193.27.14.71)
18:06:09 <__minoru__shirae> edwardk: oh, ok lol. it's interesting how a mind tries to make sense of things that don't make sense. I tried to imagine a scenario when unsafeCoerce helps with async exceptions problem
18:06:11 farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
18:06:11 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
18:06:24 × makergrl quits (~ident@212.65.4.46.bc.googleusercontent.com) (Remote host closed the connection)
18:06:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
18:06:24 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 246 seconds)
18:06:41 <wickedjargon> Hello fellow haskellers. Has anyone read The Little Schemer?
18:06:46 <edwardk> wickedjargon: yes
18:07:22 × epstein quits (~dwsjeid91@193.27.14.71) (Read error: Connection reset by peer)
18:07:55 × Robin[m]4 quits (robinrobin@gateway/shell/matrix.org/x-rmeldrlzauncgswy) (Ping timeout: 240 seconds)
18:07:55 × Haskman[m] quits (haskmanmat@gateway/shell/matrix.org/x-dsesrypmapqljonq) (Ping timeout: 244 seconds)
18:07:57 × alexfmpe quits (alexfmpema@gateway/shell/matrix.org/x-cqsqxuawqfrndsua) (Ping timeout: 240 seconds)
18:07:57 × mud quits (kadobanmat@gateway/shell/matrix.org/x-sstqskkfxonsdequ) (Ping timeout: 240 seconds)
18:07:57 × boistordu quits (boistordum@gateway/shell/matrix.org/x-zyzebanloxokwzhg) (Ping timeout: 240 seconds)
18:07:57 × michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-pukypexbajprbsoa) (Ping timeout: 240 seconds)
18:07:57 × unclechu quits (unclechuma@gateway/shell/matrix.org/x-oolmotqymaqrqhve) (Ping timeout: 240 seconds)
18:07:57 × lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-srceybalqosrlkbm) (Ping timeout: 240 seconds)
18:07:57 × johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-cmnwolhebsskkjat) (Ping timeout: 240 seconds)
18:07:57 × darkcodi[m] quits (darkcodima@gateway/shell/matrix.org/x-inrhfypeakwpuzyp) (Ping timeout: 244 seconds)
18:07:58 × alecs[m] quits (malumorema@gateway/shell/matrix.org/x-djxjolbuzjvpmhmg) (Ping timeout: 244 seconds)
18:07:58 × meff[m] quits (meffsunado@gateway/shell/matrix.org/x-uxntguxbrhbkikcw) (Ping timeout: 244 seconds)
18:07:58 × heck-to-the-gnom quits (heck-to-th@gateway/shell/matrix.org/x-zxtltngejrmxkknu) (Ping timeout: 244 seconds)
18:07:58 × plumenator[m] quits (plumenator@gateway/shell/matrix.org/x-cpybsxhladtdobyy) (Ping timeout: 244 seconds)
18:07:58 × M53K5HUN_8[m] quits (m53k5hun8m@gateway/shell/matrix.org/x-euyfdyytbojgjnwt) (Ping timeout: 244 seconds)
18:07:58 × JaakkoLuttinen[m quits (jluttinema@gateway/shell/matrix.org/x-yhocjihmkhvylkoh) (Ping timeout: 244 seconds)
18:07:58 × anon1891[m] quits (anon1891ma@gateway/shell/matrix.org/x-lippvhyxklxhxpra) (Ping timeout: 244 seconds)
18:07:58 × themsay[m] quits (themsaymat@gateway/shell/matrix.org/x-xirgdwxbkruwrkvn) (Ping timeout: 244 seconds)
18:07:58 × loyon quits (loyonmatri@gateway/shell/matrix.org/x-arvztttiwlrfmaxa) (Ping timeout: 244 seconds)
18:07:58 × pineapples[m] quits (pineapples@gateway/shell/matrix.org/x-szevzybcigkmsgol) (Ping timeout: 244 seconds)
18:07:58 × kadobanana quits (kadoban9he@gateway/shell/matrix.org/x-drzyvrhvrhnnvqso) (Ping timeout: 244 seconds)
18:07:58 × DamienCassou quits (damiencass@gateway/shell/matrix.org/x-tlmsequqsufzwifv) (Ping timeout: 244 seconds)
18:07:58 × jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-dslktdkisegakovj) (Ping timeout: 244 seconds)
18:07:59 × Hanma[m]1 quits (hanmamatri@gateway/shell/matrix.org/x-dducjpohzbpbsrrp) (Ping timeout: 241 seconds)
18:07:59 × Lurkki[m]1 quits (lurkkifene@gateway/shell/matrix.org/x-xphwbmetgcvojjrb) (Ping timeout: 241 seconds)
18:07:59 × joe[m]1 quits (joemonoida@gateway/shell/matrix.org/x-iwrcvynwdhbrkbpy) (Ping timeout: 241 seconds)
18:08:00 × mjlbach quits (atriusmatr@gateway/shell/matrix.org/x-hqnwkbzsghjmoxpi) (Ping timeout: 241 seconds)
18:08:00 × freeman42x[m] quits (freeman42x@gateway/shell/matrix.org/x-cwwewhwtciefkezc) (Ping timeout: 241 seconds)
18:08:00 × beardhatcode quits (robbertbea@gateway/shell/matrix.org/x-vjzeowanvuthadhr) (Ping timeout: 241 seconds)
18:08:02 × AbtractSingleton quits (rasurumatr@gateway/shell/matrix.org/x-nipocthdxyoqretr) (Ping timeout: 249 seconds)
18:08:02 × a-tsioh[m] quits (a-tsiohmat@gateway/shell/matrix.org/x-zwctixdaeewiqvbp) (Ping timeout: 249 seconds)
18:08:02 × alar[m] quits (alarmxalat@gateway/shell/matrix.org/x-zrexbuctbbpkrtod) (Ping timeout: 249 seconds)
18:08:03 × maerwald[m] quits (maerwaldma@gateway/shell/matrix.org/x-ywzbwktmcsnmejyh) (Ping timeout: 249 seconds)
18:08:03 × jkaye[m] quits (jkayematri@gateway/shell/matrix.org/x-udvlgksekwmzpkrv) (Ping timeout: 249 seconds)
18:08:04 × lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-vfqoziwqnefwqyzn) (Ping timeout: 249 seconds)
18:08:04 × jerin quits (jerinmatri@gateway/shell/matrix.org/x-wykbrvrddoywvmzp) (Ping timeout: 249 seconds)
18:08:04 × CrabMan quits (phi-matrix@gateway/shell/matrix.org/x-nczsygxjwbeezjba) (Ping timeout: 249 seconds)
18:08:04 × Ericson2314 quits (ericson231@gateway/shell/matrix.org/x-tsyziegnksxmsvwe) (Ping timeout: 249 seconds)
18:08:04 × psydruid quits (psydruidma@gateway/shell/matrix.org/x-hgwbwoywnwmngtzr) (Ping timeout: 249 seconds)
18:08:04 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
18:08:08 × invent[m]1 quits (inventmatr@gateway/shell/matrix.org/x-lpuieaxgzfdbucdc) (Ping timeout: 247 seconds)
18:08:08 × dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-scnkbpqnqrebckvs) (Ping timeout: 247 seconds)
18:08:08 × Pressyware[m] quits (pressyware@gateway/shell/matrix.org/x-ddhjwpogpizdplmn) (Ping timeout: 247 seconds)
18:08:09 × Lurkki[m] quits (lurkkipriv@gateway/shell/matrix.org/x-vfafddqdjrrwvxuo) (Ping timeout: 247 seconds)
18:08:09 × VarikValefor[m] quits (varikvalef@gateway/shell/matrix.org/x-qngheqbemrlhymqo) (Ping timeout: 247 seconds)
18:08:10 × PotatoHatsue quits (berbermanp@gateway/shell/matrix.org/x-yflvdgmqjmthorbh) (Ping timeout: 247 seconds)
18:08:10 × srid quits (sridmatrix@gateway/shell/matrix.org/x-cdqpzvogolvfjmux) (Ping timeout: 247 seconds)
18:08:10 × arcontethegreat[ quits (arcontethe@gateway/shell/matrix.org/x-nwmbkmnfxfryiwwe) (Ping timeout: 247 seconds)
18:08:10 × maralorn quits (maralornma@gateway/shell/matrix.org/x-rezinnajdbsjgswd) (Ping timeout: 247 seconds)
18:08:15 × idhugo__ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
18:08:27 × sigmacool[m] quits (sigmacoolm@gateway/shell/matrix.org/x-zreyiugydgdstsfc) (Ping timeout: 265 seconds)
18:08:27 × bitonic quits (bitonicmat@gateway/shell/matrix.org/x-jwmiqaganbdblqeb) (Ping timeout: 265 seconds)
18:08:27 × simara[m] quits (simaramatr@gateway/shell/matrix.org/x-jyuzgnopiyccambc) (Ping timeout: 265 seconds)
18:08:39 × ManofLetters[m] quits (manoflette@gateway/shell/matrix.org/x-yudatyptjaytneqs) (Ping timeout: 268 seconds)
18:08:39 × speakerspivakeem quits (speakerdea@gateway/shell/matrix.org/x-qcoaaekhblbwfpsj) (Ping timeout: 268 seconds)
18:08:40 × shieru[m] quits (shierualet@gateway/shell/matrix.org/x-crtlzvguvlyzbkhj) (Ping timeout: 268 seconds)
18:08:40 × jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-lnbuotkynhkztzqa) (Ping timeout: 268 seconds)
18:08:40 × hsiktas[m] quits (hsiktasmat@gateway/shell/matrix.org/x-wtctyeobgbtycmfg) (Ping timeout: 268 seconds)
18:09:13 <wickedjargon> edwardk: Do you think it was helpful to you? I got frustarted with it after a few chapters and gave up a few years ago, but am now considering to finish reading it
18:09:15 × enya[m] quits (enyaismatr@gateway/shell/matrix.org/x-xztdnbxlyijkfvcb) (Ping timeout: 240 seconds)
18:09:15 × mly[m] quits (mlydisenco@gateway/shell/matrix.org/x-ljqtcmanvrbtjrvd) (Ping timeout: 240 seconds)
18:09:24 × sm[m] quits (simonmicma@gateway/shell/matrix.org/x-ywomzlzeficbvvff) (Ping timeout: 246 seconds)
18:09:25 × rust-rocks[m] quits (rust-rocks@gateway/shell/matrix.org/x-aebtetgfiystofjh) (Ping timeout: 265 seconds)
18:09:26 × sramsay64[m] quits (sramsay64p@gateway/shell/matrix.org/x-ugmborfniejfujki) (Ping timeout: 240 seconds)
18:09:26 × fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-friwaqabluxhmgej) (Ping timeout: 240 seconds)
18:09:26 × berberman[T] quits (berberma4@gateway/shell/matrix.org/x-krnkqaczgxqcldno) (Ping timeout: 240 seconds)
18:09:28 × immae1 quits (immaematri@gateway/shell/matrix.org/x-ckpvkldgpyouvavg) (Ping timeout: 258 seconds)
18:09:28 × ThaEwat quits (thaewraptm@gateway/shell/matrix.org/x-sinxsygzdymdglrs) (Ping timeout: 258 seconds)
18:09:53 × pqwy[m] quits (pqwymatrix@gateway/shell/matrix.org/x-tuhaqobqlcfizedi) (Ping timeout: 268 seconds)
18:09:54 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Ping timeout: 265 seconds)
18:10:29 × seveg quits (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
18:10:32 <nshepperd> the purpose of type safety is to give unsafeCoerce meaning, just as there is no joy without regret
18:11:15 × toasty_avocado[4 quits (toastyavoc@gateway/shell/matrix.org/x-ofixjwdrwojfkcuv) (Ping timeout: 240 seconds)
18:11:21 × rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-jghiowexfiqyfpvv) (Ping timeout: 265 seconds)
18:11:26 × MichaelHoffmannb quits (brisadmozi@gateway/shell/matrix.org/x-jkosmzrzdqsrpuhu) (Ping timeout: 240 seconds)
18:14:18 × kiweun quits (~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
18:14:26 × vnz quits (~vnz@unaffiliated/vnz) (Quit: ZNC - http://znc.in)
18:14:57 × lordyod quits (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
18:16:21 vnz joins (~vnz@2001:bc8:604:94f::1)
18:16:21 × vnz quits (~vnz@2001:bc8:604:94f::1) (Changing host)
18:16:21 vnz joins (~vnz@unaffiliated/vnz)
18:16:53 <wickedjargon> package install
18:16:53 <wickedjargon> learn
18:16:53 <wickedjargon> n
18:16:55 <wickedjargon> plegxe-1exfexe;;'exe;'x1exelearn o
18:17:09 × shailangsa quits (~shailangs@host86-162-150-241.range86-162.btcentralplus.com) ()
18:17:14 lordyod joins (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net)
18:18:22 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
18:20:02 crobbins_ joins (~crobbins@2601:2c1:200:ec50:a565:98e0:ff9f:df2e)
18:20:41 DTZUZU_ joins (~DTZUZO@207.81.119.43)
18:20:48 × kuribas quits (~user@ptr-25vy0i6y98flue533si.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
18:22:02 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
18:22:03 × __minoru__shirae quits (~shiraeesh@46.34.206.121) (Ping timeout: 256 seconds)
18:22:45 __minoru__shirae joins (~shiraeesh@109.166.58.121)
18:22:50 × crobbins quits (~crobbins@2601:2c1:200:ec50:c8cd:d394:be82:ebad) (Ping timeout: 264 seconds)
18:22:58 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 245 seconds)
18:23:01 <tapas> jhrcek: i'll take a look later, but this may be something to take to the hackage trustees
18:24:00 × frozenErebus quits (~frozenEre@94.128.82.20) (Quit: Lost terminal)
18:24:15 × crobbins_ quits (~crobbins@2601:2c1:200:ec50:a565:98e0:ff9f:df2e) (Ping timeout: 240 seconds)
18:24:59 jamm_ joins (~jamm@unaffiliated/jamm)
18:26:10 conal joins (~conal@64.71.133.70)
18:26:39 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:27:05 augnun joins (~augnun@2804:14c:658b:41bb:3fc6:262a:d24a:2155)
18:28:48 × epst3in quits (~dwsjeid91@193.27.14.71) (Ping timeout: 260 seconds)
18:28:56 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
18:30:11 frozenErebus joins (~frozenEre@94.128.82.20)
18:31:21 augnun_ joins (~augnun@2804:14c:658b:41bb:2619:95b9:b021:720c)
18:32:28 × augnun quits (~augnun@2804:14c:658b:41bb:3fc6:262a:d24a:2155) (Ping timeout: 258 seconds)
18:33:00 supercoven joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi)
18:35:17 <adamCS> Given two things, a and b, which may or may not be of the same type, how do I somehow get Maybe (a :~: b)? I'm trying to write an instance of GEq for something of kind (Type -> Type) but not one with constructors to distinguish the possible types.
18:35:21 × ystael quits (~ystael@209.6.50.55) (Ping timeout: 264 seconds)
18:36:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:37:07 bitmagie joins (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de)
18:37:26 × frozenErebus quits (~frozenEre@94.128.82.20) (Ping timeout: 240 seconds)
18:37:33 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 246 seconds)
18:38:18 pineapples[m] joins (pineapples@gateway/shell/matrix.org/x-cruihamqujucfumq)
18:38:27 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
18:38:40 geekosaur joins (82650c7a@130.101.12.122)
18:40:22 × bitmagie quits (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de) (Client Quit)
18:40:35 × DTZUZU_ quits (~DTZUZO@207.81.119.43) (Ping timeout: 240 seconds)
18:40:39 bitmagie joins (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de)
18:41:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
18:44:00 <adamCS> Okay. I guess I can use TestEquality (?). But now I need GCompare and that seems...not sensible. Hrm.
18:44:57 <WarzoneCommand> Can anyone give me some advice on writing a Storable instance for some sum-type? I don't really get what alignment is suposed to do/how to incorporate alignment in peek and poke.
18:47:04 <geekosaur> alignment is because Storable is about making C-compatible structs from Haskell values, and C aligns struct members
18:47:20 <WarzoneCommand> as a concrete example; I have something like 'data Node k v = Leaf v | Node {-#UNPACK #} !Int !k {-# Unpack #-} !Int. The I want a storeable instance when k and v are storeable, and I don't care about any sort of interop with C (I just want to be able to store these things in Storeable vectors).
18:47:37 ADG1089__ joins (~aditya@122.163.232.170)
18:47:59 × jhrcek quits (~jhrcek@ip-89-103-183-101.net.upcbroadband.cz) (Quit: Leaving)
18:48:40 <WarzoneCommand> so I did something like: sizeOf _ = 1 + max(sizeOf @v, 2*sizeOf @Int + sizeOf @v). But so how do I determine the alignment?
18:48:55 <WarzoneCommand> or at least that is what I would expect the size to be
18:53:51 <geekosaur> I slightly misspoke earlier, because of unaligned memory accesses which are at best slower on some CPUs and at worst throw machine exceptions; you should assume the latter.
18:55:55 geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
18:56:21 <geekosaur> and your 1 + becomes sizeOf Int + to avoid everything else being unaligned. plus I think you meant sizeOf @k for the second one? but k may not have a fixed size so that won't work anyway
18:57:06 dfeuer joins (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
18:57:13 <geekosaur> er, sizeOf @Int
18:57:33 <WarzoneCommand> euh yes I meant sizeOf @k in the second part.
18:58:17 <WarzoneCommand> hmm, but so in that case I would bascially use the amount of space for *both* options simulataneously?
18:58:22 is_null joins (~jpic@pdpc/supporter/professional/is-null)
18:59:17 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
18:59:35 geekosaur joins (82650c7a@130.101.12.122)
19:00:34 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
19:00:39 <WarzoneCommand> let me maybe clarify again, because my earlier typo was confusing. Why would: '1 + max(sizeOf @v, 2*sizeOf @Int + sizeOf @k) not suffice?
19:01:22 <WarzoneCommand> (i.e. as long as k and v are storable themselves / it is known how much space they will use beforehand that should not be an issue sholuld it?)
19:01:54 <geekosaur> the 1+ means 1 byte for a discriminator and now you get a SIGBUS or equivalent accessing the rest on almost all platforms. I suggested using a CInt instead
19:01:56 × geowiesnot_bis quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
19:02:00 × fuzzypixelz quits (2ec10464@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Connection closed)
19:02:12 usr25 joins (~usr25@unaffiliated/usr25)
19:02:47 <geekosaur> hence sizeOf @Int
19:03:28 berberman_ joins (~berberman@unaffiliated/berberman)
19:03:55 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
19:04:34 <WarzoneCommand> Hmm, I see
19:05:13 <Gurkenglas> @let VeryLazyNaturals = S VeryLazyNaturals -- All you get get out of these is a confirmation that they're in a set of form [n..].
19:05:14 <lambdabot> .L.hs:173:1: error:
19:05:14 <lambdabot> Not in scope: data constructor ‘VeryLazyNaturals’
19:05:14 <lambdabot> |
19:05:26 <Gurkenglas> @let data VeryLazyNaturals = S VeryLazyNaturals -- :(
19:05:27 <lambdabot> Defined.
19:05:46 frozenErebus joins (~frozenEre@94.128.82.20)
19:06:05 <geekosaur> The rest, if it's Storable… try it, I guess.
19:06:54 Sgeo_ joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
19:07:07 urodna_ joins (~urodna@unaffiliated/urodna)
19:07:26 <tomsmeding> Gurkenglas: can you give a terminating value of that type?
19:07:53 <Gurkenglas> tomsmeding, well no, then you can get more than such a confirmation out of them
19:08:05 × bitmagie quits (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de) (Quit: bitmagie)
19:08:13 <Gurkenglas> but i can write you a getter and a value and itll behave as i said
19:08:16 vicfred_ joins (~vicfred@unaffiliated/vicfred)
19:08:17 <tomsmeding> in the usual terminology, a type that has no terminating value is empty
19:08:30 <tomsmeding> okay that makes no sense in haskell
19:08:34 <Gurkenglas> then i would like to use the unusual terminology
19:08:35 dorkside6 joins (~tdbgamer@208.190.197.222)
19:08:39 <tomsmeding> ye s:p
19:08:40 <tomsmeding> *yes
19:08:52 Sorna joins (~Sornaensi@077213203030.dynamic.telenor.dk)
19:08:54 <dolio> Those aren't naturals.
19:09:05 <tomsmeding> okay, try 2: there is only one value of VeryLazyNaturals
19:09:08 <tomsmeding> namely 'fix S'
19:09:12 tstat_ joins (~tstat@104.131.113.212)
19:09:37 <tomsmeding> and hence it contains no information
19:09:46 valdyn_ joins (valdyn@c6a7cbb3.vpn.njalla.net)
19:10:01 nitrix_ joins (~nitrix@haskell/developer/nitrix)
19:10:03 aforemny_ joins (~aforemny@static.248.158.34.188.clients.your-server.de)
19:10:04 gekh0 joins (~gkh@thor.kevinhill.nl)
19:10:04 xarian joins (~xarian@104.236.81.162)
19:10:07 <dolio> There's only one fully defined value.
19:10:07 jluttine_ joins (~jluttine@85-23-95-149.bb.dnainternet.fi)
19:10:22 gargawel_ joins (~gael@212.83.144.58)
19:10:27 dmwit_ joins (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net)
19:10:36 Zemyla_ joins (~zemyla@ec2-54-196-11-2.compute-1.amazonaws.com)
19:10:51 drakonis- joins (~drakonis@unaffiliated/drakonis)
19:11:15 <Gurkenglas> :t (isatleast, five)
19:11:16 <lambdabot> (Int -> VeryLazyNaturals -> (), VeryLazyNaturals)
19:11:21 haskell_1 joins (~twain@168.61.46.105)
19:11:22 stux|RC-- joins (stux2@grid9.quadspeedi.net)
19:11:23 × valdyn quits (valdyn@c6a7cbb4.vpn.njalla.net) (Ping timeout: 256 seconds)
19:11:23 × jluttine quits (~jluttine@85-23-95-149.bb.dnainternet.fi) (Ping timeout: 256 seconds)
19:11:23 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (Ping timeout: 256 seconds)
19:11:23 × drakonis quits (~drakonis@unaffiliated/drakonis) (Ping timeout: 256 seconds)
19:11:23 × tstat quits (~tstat@104.131.113.212) (Ping timeout: 256 seconds)
19:11:23 × asm89 quits (~asm89@unaffiliated/asm89) (Ping timeout: 256 seconds)
19:11:23 × xarian_ quits (~xarian@104.236.81.162) (Ping timeout: 256 seconds)
19:11:23 × haskell_enthusia quits (~twain@168.61.46.105) (Ping timeout: 256 seconds)
19:11:23 × msgctl quits (~msgctl@ometochtli.centzontotochtin.org) (Ping timeout: 256 seconds)
19:11:23 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 256 seconds)
19:11:23 × urodna quits (~urodna@unaffiliated/urodna) (Ping timeout: 256 seconds)
19:11:23 × Benzi-Junior quits (~BenziJuni@88-149-67-143.du.xdsl.is) (Ping timeout: 256 seconds)
19:11:23 × dmwit quits (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
19:11:23 × gargawel quits (~gael@212.83.144.58) (Ping timeout: 256 seconds)
19:11:23 × fiddlerwoaroof quits (~fiddlerwo@unaffiliated/fiddlerwoaroof) (Ping timeout: 256 seconds)
19:11:23 × stux|RC-only quits (stux2@grid9.quadspeedi.net) (Ping timeout: 256 seconds)
19:11:23 × landonf quits (landonf@mac68k.info) (Ping timeout: 256 seconds)
19:11:23 × Zemyla quits (~zemyla@ec2-54-196-11-2.compute-1.amazonaws.com) (Ping timeout: 256 seconds)
19:11:23 × tessier quits (~treed@kernel-panic/copilotco) (Ping timeout: 256 seconds)
19:11:23 × dorkside quits (~tdbgamer@208.190.197.222) (Ping timeout: 256 seconds)
19:11:23 × vicfred quits (~vicfred@unaffiliated/vicfred) (Read error: Connection reset by peer)
19:11:23 × Hi-Angel quits (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru) (Read error: Connection reset by peer)
19:11:23 × nitrix quits (~nitrix@haskell/developer/nitrix) (Ping timeout: 256 seconds)
19:11:23 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 256 seconds)
19:11:23 × lightandlight quits (sid135476@gateway/web/irccloud.com/x-mibnuuqzjpebbkzx) (Ping timeout: 256 seconds)
19:11:23 × gekh quits (~gkh@thor.kevinhill.nl) (Ping timeout: 256 seconds)
19:11:23 × malthe quits (~mborch@46.101.103.63) (Ping timeout: 256 seconds)
19:11:23 valdyn_ is now known as valdyn
19:11:30 <Gurkenglas> > isatleast 3 five
19:11:31 tessier_ joins (~treed@kernel-panic/copilotco)
19:11:32 <lambdabot> ()
19:11:32 Hi-Angel joins (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru)
19:11:34 malthe joins (~mborch@46.101.103.63)
19:11:38 fiddlerwoaroof_ joins (~fiddlerwo@unaffiliated/fiddlerwoaroof)
19:11:46 dorkside6 is now known as dorkside
19:11:55 × Sornaensis quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 256 seconds)
19:11:55 × marek quits (~mmahut@fedora/pyxel) (Ping timeout: 256 seconds)
19:12:09 marek joins (~mmahut@209.250.249.245)
19:12:25 drakonis- is now known as drakonis
19:12:28 landonf joins (landonf@mac68k.info)
19:12:36 msgctl joins (~msgctl@ometochtli.centzontotochtin.org)
19:12:39 lightandlight joins (sid135476@gateway/web/irccloud.com/x-hvpeqcuanlcmmucf)
19:12:44 crobbins joins (~crobbins@2600:1700:48eb:8490:f076:8bfb:8043:913e)
19:12:53 Benzi-Junior joins (~BenziJuni@dsl-149-67-143.hive.is)
19:12:55 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
19:13:08 asm89 joins (~asm89@unaffiliated/asm89)
19:13:18 <tomsmeding> > isatleast 6 five
19:13:20 <lambdabot> *Exception: Prelude.undefined
19:13:36 × Guest53837 quits (~textual@mskresolve-a.mskcc.org) (Ping timeout: 246 seconds)
19:14:18 × conal quits (~conal@64.71.133.70) (Ping timeout: 246 seconds)
19:14:46 <Gurkenglas> @let type VeryLazyNegativeIntegers = VeryLazyNaturals -> () -- All you can get out of these is that they're in a set of form [-n..], where n may be infinity.
19:14:48 <lambdabot> Defined.
19:15:08 ystael joins (~ystael@26.sub-174-196-196.myvzw.com)
19:16:12 <tomsmeding> only if you consider two elements distinct even if they can be distinguished only by checking whether a computation crashes or not
19:16:24 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
19:16:25 <tomsmeding> you can, in IO
19:16:41 <tomsmeding> but I'd guess that you don't want to involve IO here
19:16:52 Alleria joins (~textual@mskresolve-a.mskcc.org)
19:17:01 conal joins (~conal@64.71.133.70)
19:17:15 Alleria is now known as Guest61706
19:18:51 × idhugo_ quits (~idhugo@80-62-116-51-mobile.dk.customer.tdc.net) (Remote host closed the connection)
19:19:05 <Gurkenglas> :t (isatleast', negativethree)
19:19:07 <lambdabot> (Int -> VeryLazyNegativeIntegers -> (), VeryLazyNaturals -> ())
19:19:18 idhugo_ joins (~idhugo@80-62-116-51-mobile.dk.customer.tdc.net)
19:19:28 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
19:20:44 <Gurkenglas> (Should have said Integral instead of Int there so you can test atleast' on infinity)
19:21:55 × __minoru__shirae quits (~shiraeesh@109.166.58.121) (Ping timeout: 240 seconds)
19:22:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:22:51 <Gurkenglas> VeryLazyNegativeIntegers prove that not every element of any type can be reached from bottom in an ordinal number of finest possible steps :(
19:23:32 frozen_burnman_ joins (~frozen_bu@80-90-135-76.static.oxid.cz)
19:24:13 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
19:24:44 amerigo joins (uid331857@gateway/web/irccloud.com/x-dbmpchvgbnfltrjd)
19:25:51 × frozen_burnman quits (~frozen_bu@80-90-135-76.static.oxid.cz) (Ping timeout: 246 seconds)
19:26:20 nfd joins (~nfd9001@2601:602:77f:1820:61ac:3926:b4ff:2973)
19:26:21 __minoru__shirae joins (~shiraeesh@109.166.58.121)
19:26:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:27:12 nitrix_ is now known as nitrix
19:27:33 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
19:28:21 justan0theruser joins (~justanoth@unaffiliated/justanotheruser)
19:29:13 Alleria__ joins (~textual@mskresolve-a.mskcc.org)
19:30:02 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
19:30:27 styledash7 joins (~styledash@157.230.173.136)
19:30:38 × Guest61706 quits (~textual@mskresolve-a.mskcc.org) (Ping timeout: 264 seconds)
19:30:38 × johnstein quits (~johnstein@192.73.239.18) (Ping timeout: 264 seconds)
19:31:07 johnsteinVPS joins (~johnstein@192.73.239.18)
19:31:09 johnsteinVPS is now known as johnstein
19:31:14 × CitizenSnips quits (~CitizenSn@irc.refl.club) (Ping timeout: 264 seconds)
19:31:22 gekh09 joins (~gkh@thor.kevinhill.nl)
19:31:50 × gekh0 quits (~gkh@thor.kevinhill.nl) (Ping timeout: 264 seconds)
19:31:50 × aforemny_ quits (~aforemny@static.248.158.34.188.clients.your-server.de) (Ping timeout: 264 seconds)
19:32:21 lewky joins (~lewky@159.65.37.240)
19:32:25 landonf_ joins (landonf@mac68k.info)
19:32:26 × landonf quits (landonf@mac68k.info) (Ping timeout: 264 seconds)
19:32:26 × Hi-Angel quits (~constanti@broadband-188-32-15-112.ip.moscow.rt.ru) (Ping timeout: 264 seconds)
19:32:26 × jluttine_ quits (~jluttine@85-23-95-149.bb.dnainternet.fi) (Ping timeout: 264 seconds)
19:32:26 × tomboy64 quits (~tomboy64@unaffiliated/tomboy64) (Ping timeout: 264 seconds)
19:32:27 × oleks quits (~oleks@188.166.34.97) (Ping timeout: 264 seconds)
19:32:27 × styledash quits (~styledash@157.230.173.136) (Ping timeout: 264 seconds)
19:32:27 × lep-delete quits (~lep@94.31.86.183) (Ping timeout: 264 seconds)
19:32:27 styledash7 is now known as styledash
19:32:46 CitizenSnips joins (~CitizenSn@irc.refl.club)
19:32:47 aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de)
19:32:52 Pickchea joins (~private@unaffiliated/pickchea)
19:33:02 × Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 264 seconds)
19:33:38 × Jonno_FTW quits (~come@api.carswap.me) (Ping timeout: 264 seconds)
19:33:38 × ent quits (entgod@kapsi.fi) (Ping timeout: 264 seconds)
19:33:59 lep-delete joins (~lep@94.31.86.183)
19:33:59 bitonic joins (bitonicmat@gateway/shell/matrix.org/x-ipickbqxisfxlldz)
19:33:59 hsiktas[m] joins (hsiktasmat@gateway/shell/matrix.org/x-temqgekgducjbrsh)
19:33:59 darkcodi[m] joins (darkcodima@gateway/shell/matrix.org/x-rhzmsthbyuqylump)
19:34:00 mly[m] joins (mlydisenco@gateway/shell/matrix.org/x-sghcilcxhnhkwjdd)
19:34:00 themsay[m] joins (themsaymat@gateway/shell/matrix.org/x-ptarvovruaurhxwp)
19:34:00 alexfmpe joins (alexfmpema@gateway/shell/matrix.org/x-nolwhhpwmbxikafc)
19:34:00 dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-otvcijywljfvbaed)
19:34:00 simara[m] joins (simaramatr@gateway/shell/matrix.org/x-chhuoljzwygcerfa)
19:34:00 loyon joins (loyonmatri@gateway/shell/matrix.org/x-mwratoiagnlssnyq)
19:34:00 rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-rdaonbrqeuwtjxsm)
19:34:01 kadobanana joins (kadoban9he@gateway/shell/matrix.org/x-fjnlfufgdsbleegm)
19:34:01 Lurkki[m]1 joins (lurkkipriv@gateway/shell/matrix.org/x-skpmtcneqlzaxmfh)
19:34:01 lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-civsnwekuzleyzwa)
19:34:01 plumenator[m] joins (plumenator@gateway/shell/matrix.org/x-ourhytalkerxbsgx)
19:34:01 srid joins (sridmatrix@gateway/shell/matrix.org/x-rijgcnldikjyzqzg)
19:34:01 heck-to-the-gnom joins (heck-to-th@gateway/shell/matrix.org/x-ghqiohudnnrsihmj)
19:34:01 jkaye[m] joins (jkayematri@gateway/shell/matrix.org/x-fepxtmokxrdmlycv)
19:34:01 michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-fmbulfuorzhwugnj)
19:34:01 maralorn joins (maralornma@gateway/shell/matrix.org/x-jnnbxzasrfbfbikw)
19:34:01 M53K5HUN_8[m] joins (m53k5hun8m@gateway/shell/matrix.org/x-spimlfphvtdpgjrd)
19:34:01 berberman[T] joins (berberma4@gateway/shell/matrix.org/x-mlboebuijvpyfcgj)
19:34:01 shieru[m] joins (shierualet@gateway/shell/matrix.org/x-xdjkjxjdwcrtmgsg)
19:34:01 alecs[m] joins (malumorema@gateway/shell/matrix.org/x-xfixxujbpdqukczd)
19:34:01 boistordu joins (boistordum@gateway/shell/matrix.org/x-adhzavlsrujzyaqb)
19:34:02 maerwald[m] joins (maerwaldma@gateway/shell/matrix.org/x-xejvrntxwtmqgyhk)
19:34:02 kadoban joins (kadobanemp@gateway/shell/matrix.org/x-cpfubhuixmbptrmi)
19:34:02 Lurkki[m] joins (lurkkifene@gateway/shell/matrix.org/x-mqydqxgjfsfhihgm)
19:34:02 arcontethegreat[ joins (arcontethe@gateway/shell/matrix.org/x-txxxgbpslkgekqok)
19:34:02 joe[m]2 joins (joemonoida@gateway/shell/matrix.org/x-ygxypwuzgvmgbeva)
19:34:02 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
19:34:02 psydruid joins (psydruidma@gateway/shell/matrix.org/x-tfyqyfjqrbnqzjln)
19:34:02 johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-yikznzlhyzrbvnbz)
19:34:02 PotatoHatsue joins (berbermanp@gateway/shell/matrix.org/x-invzcgjtdukarzux)
19:34:02 pqwy[m] joins (pqwymatrix@gateway/shell/matrix.org/x-pvxxvwuidasooizc)
19:34:03 Ericson2314 joins (ericson231@gateway/shell/matrix.org/x-pmvxuyjweiegnupz)
19:34:03 siraben joins (sirabenmat@gateway/shell/matrix.org/x-fdyejfvjphhisdvz)
19:34:03 freeman42x[m] joins (freeman42x@gateway/shell/matrix.org/x-tkncoclizmblbtxd)
19:34:03 JaakkoLuttinen[m joins (jluttinema@gateway/shell/matrix.org/x-gzujzorzbqrmauno)
19:34:04 lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-bzkoutlgvmwbkjji)
19:34:04 mjlbach joins (atriusmatr@gateway/shell/matrix.org/x-idxtsewlxoswzwgx)
19:34:04 DamienCassou joins (damiencass@gateway/shell/matrix.org/x-nsfdradfsgvmppix)
19:34:04 jerin joins (jerinmatri@gateway/shell/matrix.org/x-fwxmmxrkuyeqajhb)
19:34:04 mud joins (kadobanmat@gateway/shell/matrix.org/x-xvdyxlpvmhfdsgfh)
19:34:04 jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-jkmbbhsofbyjdeff)
19:34:04 speakerspivakeem joins (speakerdea@gateway/shell/matrix.org/x-siqwjicgmhjtsmhd)
19:34:04 toasty_avocado[m joins (toastyavoc@gateway/shell/matrix.org/x-qelmcqsxgzxxevri)
19:34:04 Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-kpgolzcdirmazavm)
19:34:04 meff[m] joins (meffsunado@gateway/shell/matrix.org/x-rwpksxtqvpkndqzd)
19:34:05 VarikValefor[m] joins (varikvalef@gateway/shell/matrix.org/x-jtxzvhexsrzjwzlt)
19:34:05 fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-ihiahjvhbvnutlcv)
19:34:05 rust-rocks[m] joins (rust-rocks@gateway/shell/matrix.org/x-bqohnijxfkxiysny)
19:34:05 beardhatcode joins (robbertbea@gateway/shell/matrix.org/x-jovouonixnxlxvtc)
19:34:05 unclechu joins (unclechuma@gateway/shell/matrix.org/x-awlwoecumntvuvlv)
19:34:05 anon1891[m] joins (anon1891ma@gateway/shell/matrix.org/x-iijrpsnxyzdwzkmq)
19:34:05 jeffcasavant[m] joins (jeffcasava@gateway/shell/matrix.org/x-pacacpixykpsrqbq)
19:34:05 ThaEwat joins (thaewraptm@gateway/shell/matrix.org/x-tqryjbcnpoqvwatf)
19:34:05 sm[m] joins (simonmicma@gateway/shell/matrix.org/x-ujfsdlwwogwlclyc)
19:34:05 immae joins (immaematri@gateway/shell/matrix.org/x-ifxuogihibrvpfqo)
19:34:05 CrabMan joins (phi-matrix@gateway/shell/matrix.org/x-itonprswumarsonx)
19:34:06 alar[m] joins (alarmxalat@gateway/shell/matrix.org/x-mybgwpghbptgmctl)
19:34:06 a-tsioh[m] joins (a-tsiohmat@gateway/shell/matrix.org/x-hzsglvxmnibrcjwd)
19:34:06 sramsay64[m] joins (sramsay64p@gateway/shell/matrix.org/x-bknpsyoyllijdxjm)
19:34:06 sigmacool[m] joins (sigmacoolm@gateway/shell/matrix.org/x-wbtiyswnbxffiblk)
19:34:07 Robin[m]4 joins (robinrobin@gateway/shell/matrix.org/x-gmvegrujqzpycakq)
19:34:10 ManofLetters[m] joins (manoflette@gateway/shell/matrix.org/x-englwmmecwrzyoqt)
19:34:10 Haskman[m] joins (haskmanmat@gateway/shell/matrix.org/x-tnrbzczkfzxhidmh)
19:34:11 invent[m] joins (inventmatr@gateway/shell/matrix.org/x-djucmvmrumafpmmw)
19:34:11 AbtractSingleton joins (rasurumatr@gateway/shell/matrix.org/x-bshxgvdkrvkrlckp)
19:34:12 oleks joins (~oleks@188.166.34.97)
19:34:12 enya[m] joins (enyaismatr@gateway/shell/matrix.org/x-jmjpjmcajmtxqdme)
19:34:12 Pressyware[m] joins (pressyware@gateway/shell/matrix.org/x-merabgrvstchiodj)
19:34:14 × nfd quits (~nfd9001@2601:602:77f:1820:61ac:3926:b4ff:2973) (Ping timeout: 264 seconds)
19:34:51 Jonno_FTW joins (~come@api.carswap.me)
19:35:04 ent joins (entgod@kapsi.fi)
19:35:12 MichaelHoffmannb joins (brisadmozi@gateway/shell/matrix.org/x-ebubrxwbqbyooquz)
19:35:48 <Gurkenglas> @let plus a b = a `lub` let S b' = b in S $ plus a b' in plus -- sadly, lambdabot doesn't support the lub library.
19:35:48 <lambdabot> Parse failed: Parse error: in
19:36:05 <Gurkenglas> (hmm, worked with ":t " instead of "@")
19:36:15 <Gurkenglas> oh, heh
19:36:24 <Gurkenglas> @let plus a b = a `lub` let S b' = b in S $ plus a b'
19:36:26 <lambdabot> Defined.
19:36:43 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
19:38:50 texasmynsted joins (~texasmyns@99.96.221.112)
19:39:30 × idhugo_ quits (~idhugo@80-62-116-51-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds)
19:39:35 tomboy64 joins (~tomboy64@unaffiliated/tomboy64)
19:40:22 Varis joins (~Tadas@unaffiliated/varis)
19:40:26 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
19:40:48 jluttine_ joins (~jluttine@85-23-95-149.bb.dnainternet.fi)
19:41:59 epstein joins (~dwsjeid91@193.27.14.135)
19:46:17 × carlomagno quits (~cararell@148.87.23.6) (Remote host closed the connection)
19:47:08 carlomagno joins (~cararell@148.87.23.6)
19:47:15 × dfeuer quits (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
19:48:35 kiweun joins (~kiweun@2607:fea8:2a62:9600:4dce:2716:8f3a:55c2)
19:50:12 × ADG1089__ quits (~aditya@122.163.232.170) (Quit: Konversation terminated!)
19:51:37 <Gurkenglas> min and max are just glb and lub, of course.
19:53:26 × kiweun quits (~kiweun@2607:fea8:2a62:9600:4dce:2716:8f3a:55c2) (Ping timeout: 264 seconds)
19:53:57 <tomsmeding> Gurkenglas: can you define subtraction?
19:54:59 <tomsmeding> (without IO)
19:56:17 <Gurkenglas> I'm afraid not - the functions i can implement are exactly the monotonously increasing functions, and (3-) is not monotonous.
19:56:34 <Gurkenglas> uh, it's called monotonic in english
19:57:25 <Gurkenglas> (i mean, i think i can do all the monotonic ones... can you find one i can't? :) )
19:57:28 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
19:57:34 waleee-cl joins (uid373333@gateway/web/irccloud.com/x-nlbmdcqymwlgkesq)
19:57:47 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
20:00:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
20:00:52 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
20:02:48 motte joins (~weechat@unaffiliated/motte)
20:02:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:04:19 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
20:04:50 × forgottenone quits (~forgotten@176.42.16.157) (Ping timeout: 264 seconds)
20:05:14 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 256 seconds)
20:05:36 <tomsmeding> Gurkenglas: floor(log(x))
20:05:48 <tomsmeding> okay perhaps floor(log(x+1))
20:05:48 notzmv joins (~zmv@unaffiliated/zmv)
20:06:39 <hololeap> i don't understand where the `source-repository` stanza is supposed to go in my cabal file
20:06:56 <tomsmeding> hololeap: what have you tried?
20:07:23 <tomsmeding> hololeap: this works for me https://github.com/tomsmeding/pastebin-haskell/blob/master/pastebin-haskell.cabal
20:07:31 <tomsmeding> though I haven't tried submitting to hackage
20:07:41 petersen joins (~petersen@redhat/juhp)
20:07:48 <hololeap> tomsmeding: https://dpaste.com/5PJ4867V2
20:09:13 <hololeap> tomsmeding: this is what it complains about https://dpaste.com/6895574ZH
20:09:44 <tomsmeding> hololeap: does that only happen for 'cabal check'? Can you 'cabal build' successfully?
20:09:51 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
20:10:01 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
20:11:21 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
20:11:51 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
20:12:24 <motte> hi, i'm trying to use yesod and for some reason terminal input isn't working when doing stack exec -- yesod devel. pressing enter should trigger a rebuild, but nothing happens (except a blank line appearing in the terminal window)
20:12:49 <hololeap> tomsmeding: no it was giving me the same for 'cabal build', but i figured out that it works if i move the stanza down near the 'library' stanza
20:13:00 <motte> any idea what's wrong with my setup? tried a different shell, a different terminal emulator, still not working
20:13:22 <tomsmeding> hololeap: and in that position cabal check still fails?
20:14:10 <hololeap> tomsmeding: there are no errors or warnings after i moved it
20:14:34 <motte> oh also, typing help should print a help text, but this also doesn't work
20:14:53 <tomsmeding> hololeap: I am somewhat disturbed that you get a linker error, of all things, but it sounds to me like you've found a solution (move the clause down)
20:14:53 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
20:15:07 <tomsmeding> motte: are you sure that 'yesod devel' should give a terminal interface?
20:15:57 <hololeap> tomsmeding: i don't think i got a linker error, did i? just a bunch of warnings
20:16:03 sdressel joins (~sdressel@pwning.de)
20:16:06 <tomsmeding> motte: https://www.yesodweb.com/page/quickstart says "Also, if you choose the "mini" scaffolding, yesod devel will not work." -- no idea about yesod, but that sounds perhaps related?
20:16:09 × sdressel_ quits (~sdressel@pwning.de) (Ping timeout: 256 seconds)
20:16:15 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds)
20:16:20 <tomsmeding> hololeap: that 'error while loading shared libraries' is a linker error
20:16:31 × sarahzrf quits (~sarahzrf_@sarahzrf.com) (Ping timeout: 256 seconds)
20:16:37 <tomsmeding> or at least, it looks like one
20:16:39 sarahzrf_ joins (~sarahzrf_@sarahzrf.com)
20:17:31 <hololeap> oh, i think i know what that is from. it isn't an error i was getting except with this `wgetpaste` utility. my global env is screwy right now and it isn't finding the env installed by ghcup
20:17:37 <ephemient> well, I see in https://github.com/yesodweb/yesod/blob/master/yesod-bin/Devel.hs that it runs stack build --fast --file-watch, so that's what would be interpreting enter to rebuild / help / etc.
20:17:40 × vicfred_ quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
20:17:40 <motte> tomsmeding: well i'm watching a tutorial of yesod, and the author demonstrates terminal input by pressing enter to rebuild, so i guess it should work
20:17:48 <ephemient> but it's unclear to me if stdin is wired up for that
20:18:00 <ephemient> it may have changed in different versions
20:18:04 <motte> tomsmeding: i'm not using the mini scaffolding so probably unrelated
20:18:21 <hololeap> tomsmeding: if that makes sense
20:18:56 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Ping timeout: 256 seconds)
20:19:03 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
20:19:17 <tomsmeding> hololeap: I don't see anything else than that error, so not sure what warnings you're getting
20:19:29 <tomsmeding> but what about moving the stanza down does not work?
20:19:37 <tomsmeding> putting it in between the header lines looks suspicious anyway
20:20:05 <hololeap> wgetpaste is a utility that can publish the output of a command, and i didn't bother to check what it had published
20:20:16 conal joins (~conal@64.71.133.70)
20:20:17 <hololeap> so that error is completely different from what i was getting
20:20:26 <hololeap> but, no, moving it _did_ fix it
20:20:53 <tomsmeding> in general, the form of a cabal file is cabal-version; further header lines; stanzas
20:21:00 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
20:21:06 <tomsmeding> as far as I know
20:21:22 <hololeap> gotcha. it does look 'better' with the stanza moved down. i will do that in the future.
20:22:01 <ephemient> motte: I'm not familiar with Yesod, but it looks like the devel server changed behavior several years ago. do you know how old the tutorial you're watching is?
20:22:06 <ephemient> https://github.com/yesodweb/yesod/pull/1305
20:22:15 × dsrt^ quits (dsrt@ip98-184-89-2.mc.at.cox.net) ()
20:22:16 × alinab quits (sid468903@gateway/web/irccloud.com/x-pnysahqquupbvvmz) (Ping timeout: 256 seconds)
20:22:38 <hololeap> i'm also a bit confused about the --documentation flag for cabal upload
20:22:45 × Squarism quits (~someone@unaffiliated/squarism) (Ping timeout: 256 seconds)
20:22:54 <hololeap> will the documentation be generated on hackage without this flag?
20:23:01 <epstein> is there a haskell evaluator here?
20:23:19 <Rembane> > 1 + 1
20:23:21 <lambdabot> 2
20:23:28 <codygman`> re: postgres connection leaking in persistent. I think my issues are because resourcet.with says "resource will be freed as soon as the inner block is exited, whether normally or via an exception." So even if a ReleaseException happens the resource goes back into the pool? Maybe freed also counts destroying a resource as freeing.
20:23:51 <motte> it's from 2020 spring, so fairly new. i'm fairly sure this *should* work as the application says on startup "Type help for available commands", 'quit' to quit etc.
20:24:56 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
20:25:13 alinab joins (sid468903@gateway/web/irccloud.com/x-rmachwsqzbwkxxoa)
20:25:31 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
20:25:36 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
20:25:36 Squarism joins (~someone@178.62.91.8)
20:25:37 × Squarism quits (~someone@178.62.91.8) (Changing host)
20:25:37 Squarism joins (~someone@unaffiliated/squarism)
20:25:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:26:01 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
20:26:22 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
20:26:48 <epstein> > zip (repeat "anal") ["slavery", "bondage", "spanking", "juicing", "domination", "nuking"]
20:26:50 <lambdabot> [("anal","slavery"),("anal","bondage"),("anal","spanking"),("anal","juicing"...
20:27:25 <geekosaur> re cabal stanzas, it looks like source-repository comes after the header but before library and executable stanzas? per https://cabal.readthedocs.io/en/3.4/cabal-package.html#source-repositories
20:27:33 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 268 seconds)
20:27:50 <epstein> > (repeat "spank") ++ "geekosaur"
20:27:52 <lambdabot> error:
20:27:52 <lambdabot> • Couldn't match type ‘Char’ with ‘[Char]’
20:27:53 <lambdabot> Expected type: [[Char]]
20:28:08 DTZUZU_ joins (~DTZUZO@207.81.119.43)
20:28:32 <tomsmeding> geekosaur: https://hackage.haskell.org/package/vector-0.12.2.0/vector.cabal does not conform to that
20:28:36 <Gurkenglas> > join (repeat "spank") ++ "geekosaur" -- it's pushed to infinity, of course
20:28:38 <lambdabot> "spankspankspankspankspankspankspankspankspankspankspankspankspankspankspank...
20:29:23 <geekosaur> but it does follow the header, at least
20:29:40 <tomsmeding> that it does :)
20:30:03 <epstein> ah
20:30:12 <epstein> huh
20:30:32 <epstein> > zip (repeat "yummy ") (repeat "geekosaur")
20:30:34 <lambdabot> [("yummy ","geekosaur"),("yummy ","geekosaur"),("yummy ","geekosaur"),("yumm...
20:30:36 mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan)
20:30:42 × Someguy123 quits (~someguy@unaffiliated/compgenius999) (Ping timeout: 256 seconds)
20:31:00 <hololeap> anyone know the answer to my question, before all this started?
20:31:06 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 268 seconds)
20:32:37 <hololeap> https://hackage.haskell.org/package/unlift-stm-0.1.0.0/candidate
20:32:50 <hololeap> this doesn't show any docs. is it because it is a candidate or do i need to upload them?
20:33:08 <hololeap> they get built fine locally with `cabal haddock`
20:33:37 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
20:33:37 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
20:33:37 mouseghost joins (~draco@wikipedia/desperek)
20:34:01 × Wuzzy quits (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
20:34:44 <geekosaur> becuase it's a candidate and it won't do a build until after it's published, iirc
20:34:58 <hololeap> ok, i'm gonna go for it then
20:34:59 Someguy123 joins (~someguy@unaffiliated/compgenius999)
20:35:07 <hololeap> first upload to hackage, woo
20:35:34 × mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 268 seconds)
20:35:34 × ystael quits (~ystael@26.sub-174-196-196.myvzw.com) (Read error: Connection reset by peer)
20:35:51 × travv0 quits (sid293381@gateway/web/irccloud.com/x-qfqftjhlfdqcrtoj) (Ping timeout: 256 seconds)
20:36:18 × Tene quits (~tene@poipu/supporter/slacker/tene) (Ping timeout: 245 seconds)
20:36:33 × ByronJohnson quits (~bairyn@unaffiliated/bob0) (Ping timeout: 260 seconds)
20:36:55 × zceejkr quits (~wintermut@cpe-92-37-88-51.dynamic.amis.net) (Ping timeout: 256 seconds)
20:37:03 travv0 joins (sid293381@gateway/web/irccloud.com/x-wgqufftjffzjttmi)
20:37:17 <epstein> > foldl ++ "" (repeat "Lube")
20:37:19 <lambdabot> error:
20:37:19 <lambdabot> • Couldn't match expected type ‘[a]’
20:37:19 <lambdabot> with actual type ‘(b0 -> a0 -> b0) -> b0 -> t0 a0 -> b0’
20:37:35 <epstein> > foldl (++) "" (repeat "Lube")
20:37:39 zceejkr joins (~wintermut@cpe-92-37-88-51.dynamic.amis.net)
20:37:41 <lambdabot> mueval-core: Time limit exceeded
20:38:04 <epstein> >foldr (++) (repeat "Lube") (++)
20:38:13 <epstein> >foldr (++) (repeat "Lube") ""
20:38:29 × frozenErebus quits (~frozenEre@94.128.82.20) (Ping timeout: 246 seconds)
20:38:44 tomsmeding wonders if there is a moderator around
20:38:57 ChanServ sets mode +q *!*@193.27.14.135
20:39:16 <tomsmeding> thank you kind person!
20:40:09 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
20:40:22 <hololeap> 🎉️
20:41:17 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:41:59 <jess> hi epstein
20:42:04 <jess> oh
20:42:05 <jess> im late
20:42:37 <Gurkenglas> @let overS f (S x) = S $ f x; eval :: (Int -> Int) -> VeryLazyNaturals -> VeryLazyNaturals; eval f = foldr (.) (overS $ eval $ subtract (f 0) . f . (+1)) $ replicate (f 0) S -- tomsmeding, this applies any monotonic Int function to a VeryLazyNatural :)
20:42:39 <lambdabot> Defined.
20:42:41 <__minoru__shirae> codygman`: whether resourcet is a source of error or not depends on whether it runs the freeing function in response to an async exception, and also depends on what is written in that freeing function
20:43:01 ByronJohnson joins (~bairyn@unaffiliated/bob0)
20:43:03 Tene joins (~tene@mail.digitalkingdom.org)
20:43:03 × Tene quits (~tene@mail.digitalkingdom.org) (Changing host)
20:43:03 Tene joins (~tene@poipu/supporter/slacker/tene)
20:44:47 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
20:46:43 × DTZUZU_ quits (~DTZUZO@207.81.119.43) (Ping timeout: 245 seconds)
20:47:36 dfeuer joins (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
20:47:53 aarvar joins (~foewfoiew@2601:602:a080:fa0:6cfb:c91f:3c9a:a8cb)
20:48:48 <tomsmeding> Gurkenglas: for which 'f' is 'eval f x' not equal to 'iterate S x !! f 0'
20:49:08 todda7 joins (~torstein@2a02:587:1b10:ea00:db5:2d40:d00d:cce4)
20:49:12 <tomsmeding> (assuming we're only talking about functions 'f' that map naturals to naturals)
20:49:17 × tsaka__ quits (~torstein@ppp-2-87-239-251.home.otenet.gr) (Read error: Connection reset by peer)
20:49:36 × supercoven quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Ping timeout: 268 seconds)
20:49:36 ByteEater joins (57cd846a@gateway/web/cgi-irc/kiwiirc.com/ip.87.205.132.106)
20:52:11 <Gurkenglas> (actually that eval is slightly wrong but not in the way you say, lemme fix)
20:54:22 <hololeap> this seems messed up as far as the docs and the links. publishing didn't seem to help: https://hackage.haskell.org/package/unlift-stm-0.1.0.0
20:54:38 <hololeap> i'd appreciate any help
20:54:39 pincel joins (~pyon@unaffiliated/pyon)
20:56:02 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
20:56:41 <hololeap> if anyone missed the context, this is my first upload to hackage and the docs and links were messed up in the candidate version. geekosaur seemed to think the docs would be built once it was fully published
20:56:45 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (*.net *.split)
20:56:45 × ent quits (entgod@kapsi.fi) (*.net *.split)
20:56:45 × oleks quits (~oleks@188.166.34.97) (*.net *.split)
20:56:45 × gekh09 quits (~gkh@thor.kevinhill.nl) (*.net *.split)
20:56:45 × styledash quits (~styledash@157.230.173.136) (*.net *.split)
20:56:45 × frozen_burnman_ quits (~frozen_bu@80-90-135-76.static.oxid.cz) (*.net *.split)
20:56:45 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (*.net *.split)
20:56:45 × dhil quits (~dhil@80.208.56.181) (*.net *.split)
20:56:45 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (*.net *.split)
20:56:45 × cheater quits (~user@unaffiliated/cheater) (*.net *.split)
20:56:45 × sudden quits (~lax@unaffiliated/laxask) (*.net *.split)
20:56:45 × quaestor quits (~quaestor@griffith.christophrauch.de) (*.net *.split)
20:56:45 × wz1000 quits (~wz1000@static.11.113.47.78.clients.your-server.de) (*.net *.split)
20:56:45 × energizer quits (~energizer@unaffiliated/energizer) (*.net *.split)
20:56:45 × cohn quits (~noone@unaffiliated/cohn) (*.net *.split)
20:56:45 × chindy_ quits (~quassel@51.15.63.78) (*.net *.split)
20:56:45 × dminuoso quits (~dminuoso@unaffiliated/dminuoso) (*.net *.split)
20:56:45 × ptrcmd_ quits (~ptrcmd@unaffiliated/petercommand) (*.net *.split)
20:56:45 × dddddd quits (~dddddd@unaffiliated/dddddd) (*.net *.split)
20:56:45 × Logio quits (em@kapsi.fi) (*.net *.split)
20:56:45 × DustyDingo quits (~nonamen@v2202001112302107134.ultrasrv.de) (*.net *.split)
20:56:45 × Aleksejs quits (~Aleksejs@haskell.lv) (*.net *.split)
20:56:45 × a3Dman quits (~3Dman@unaffiliated/a3dman) (*.net *.split)
20:56:45 × averell quits (~averell@unaffiliated/averell) (*.net *.split)
20:56:45 × TMA quits (tma@twin.jikos.cz) (*.net *.split)
20:56:45 × Sparad0x quits (~etienne@ns3123347.ip-51-68-152.eu) (*.net *.split)
20:56:45 × maerwald quits (~maerwald@mail.hasufell.de) (*.net *.split)
20:56:45 × arw quits (~arw@impulse.informatik.uni-erlangen.de) (*.net *.split)
20:56:45 × chrisosa1rus quits (chris@segfault.net.nz) (*.net *.split)
20:56:45 × brettgilio_ quits (~brettgili@brettgilio.com) (*.net *.split)
20:56:45 × ahri quits (~ahri@178.209.40.84) (*.net *.split)
20:56:45 × leothrix quits (~leothrix@elastic/staff/leothrix) (*.net *.split)
20:56:45 × absence quits (torgeihe@hildring.pvv.ntnu.no) (*.net *.split)
20:56:45 × M2tias quits (m2@seri.fi) (*.net *.split)
20:56:45 × bcoppens quits (~bartcopp@kde/coppens) (*.net *.split)
20:56:45 × connrs_ quits (~connrs@runciter.connrs.uk) (*.net *.split)
20:56:45 × sea-gull quits (~sea-gull@li1815-136.members.linode.com) (*.net *.split)
20:56:45 × tristanC quits (~tristanC@unaffiliated/tristanc) (*.net *.split)
20:56:45 × adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split)
20:56:45 × hwabyong quits (~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com) (*.net *.split)
20:56:45 × eldritch quits (~eldritch@unaffiliated/eldritch) (*.net *.split)
20:56:45 × crtschin quits (~crtschin@104.131.9.149) (*.net *.split)
20:56:45 × dilinger quits (~dilinger@spindle.queued.net) (*.net *.split)
20:56:45 × sdx23 quits (~sdx23@unaffiliated/sdx23) (*.net *.split)
20:56:45 × blackdog quits (~blackdog@198.211.112.85) (*.net *.split)
20:56:45 × iptq quits (~michael@142.93.75.170) (*.net *.split)
20:56:45 × joeytwiddle quits (~joeytwidd@162.243.115.31) (*.net *.split)
20:56:45 × mantovani quits (~mantovani@104.131.207.121) (*.net *.split)
20:56:45 × xe4 quits (~xe4@157.245.246.119) (*.net *.split)
20:56:45 × Uniaika quits (~uniaika@163.172.211.189) (*.net *.split)
20:56:45 × amosbird quits (~amosbird@13.75.119.182) (*.net *.split)
20:56:45 × mjrosenb quits (~mrosenbe@nyc.schrodinger.com) (*.net *.split)
20:56:45 × geal quits (~geal@195-154-200-217.rev.poneytelecom.eu) (*.net *.split)
20:56:45 × electrocat quits (~michiel@revan.derhaeg.be) (*.net *.split)
20:56:45 × anderson quits (~ande@159.65.95.130) (*.net *.split)
20:56:45 × deni quits (~deni@unaffiliated/deni) (*.net *.split)
20:56:45 × Eliel quits (~jojkaart@163.172.153.251) (*.net *.split)
20:57:05 <tomsmeding> hololeap: it says "Docs pending" under status; perhaps patience is in order?
20:57:16 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
20:57:16 ent joins (entgod@kapsi.fi)
20:57:16 oleks joins (~oleks@188.166.34.97)
20:57:16 gekh09 joins (~gkh@thor.kevinhill.nl)
20:57:16 styledash joins (~styledash@157.230.173.136)
20:57:16 frozen_burnman_ joins (~frozen_bu@80-90-135-76.static.oxid.cz)
20:57:16 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
20:57:16 dhil joins (~dhil@80.208.56.181)
20:57:16 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
20:57:16 cheater joins (~user@unaffiliated/cheater)
20:57:16 sudden joins (~lax@unaffiliated/laxask)
20:57:16 quaestor joins (~quaestor@griffith.christophrauch.de)
20:57:16 wz1000 joins (~wz1000@static.11.113.47.78.clients.your-server.de)
20:57:16 cohn joins (~noone@unaffiliated/cohn)
20:57:16 chindy_ joins (~quassel@51.15.63.78)
20:57:16 dminuoso joins (~dminuoso@unaffiliated/dminuoso)
20:57:16 ptrcmd_ joins (~ptrcmd@unaffiliated/petercommand)
20:57:16 dddddd joins (~dddddd@unaffiliated/dddddd)
20:57:16 Logio joins (em@kapsi.fi)
20:57:16 DustyDingo joins (~nonamen@v2202001112302107134.ultrasrv.de)
20:57:16 Aleksejs joins (~Aleksejs@haskell.lv)
20:57:16 TMA joins (tma@twin.jikos.cz)
20:57:16 Sparad0x joins (~etienne@ns3123347.ip-51-68-152.eu)
20:57:16 maerwald joins (~maerwald@mail.hasufell.de)
20:57:16 arw joins (~arw@impulse.informatik.uni-erlangen.de)
20:57:16 chrisosa1rus joins (chris@segfault.net.nz)
20:57:16 ahri joins (~ahri@178.209.40.84)
20:57:16 leothrix joins (~leothrix@elastic/staff/leothrix)
20:57:16 absence joins (torgeihe@hildring.pvv.ntnu.no)
20:57:16 M2tias joins (m2@seri.fi)
20:57:16 bcoppens joins (~bartcopp@kde/coppens)
20:57:16 connrs_ joins (~connrs@runciter.connrs.uk)
20:57:16 sea-gull joins (~sea-gull@li1815-136.members.linode.com)
20:57:16 tristanC joins (~tristanC@unaffiliated/tristanc)
20:57:16 adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
20:57:16 hwabyong joins (~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com)
20:57:16 crtschin joins (~crtschin@104.131.9.149)
20:57:16 dilinger joins (~dilinger@spindle.queued.net)
20:57:16 sdx23 joins (~sdx23@unaffiliated/sdx23)
20:57:16 mjrosenb joins (~mrosenbe@nyc.schrodinger.com)
20:57:16 blackdog joins (~blackdog@198.211.112.85)
20:57:16 iptq joins (~michael@142.93.75.170)
20:57:16 joeytwiddle joins (~joeytwidd@162.243.115.31)
20:57:16 mantovani joins (~mantovani@104.131.207.121)
20:57:16 xe4 joins (~xe4@157.245.246.119)
20:57:16 Uniaika joins (~uniaika@163.172.211.189)
20:57:16 geal joins (~geal@195-154-200-217.rev.poneytelecom.eu)
20:57:16 electrocat joins (~michiel@revan.derhaeg.be)
20:57:16 anderson joins (~ande@159.65.95.130)
20:57:16 deni joins (~deni@unaffiliated/deni)
20:57:16 Eliel joins (~jojkaart@163.172.153.251)
20:57:26 <hololeap> lol that was not obviouis
20:57:34 <hololeap> anyway, that's good
20:58:11 amosbird joins (~amosbird@13.75.119.182)
20:58:22 × nf quits (~n@monade.li) (Quit: Fairfarren.)
20:58:33 nf joins (~n@monade.li)
20:59:02 averell joins (~averell@unaffiliated/averell)
20:59:04 sdx32 joins (~sdx23@unaffiliated/sdx23)
20:59:30 a3Dman joins (~3Dman@ns334323.ip-5-196-65.eu)
20:59:30 × a3Dman quits (~3Dman@ns334323.ip-5-196-65.eu) (Changing host)
20:59:30 a3Dman joins (~3Dman@unaffiliated/a3dman)
20:59:34 <slack1256> 11
20:59:39 × conal quits (~conal@64.71.133.70) (Ping timeout: 246 seconds)
20:59:42 <slack1256> Sorry. mistyped.
20:59:43 × sdx23 quits (~sdx23@unaffiliated/sdx23) (Read error: Connection reset by peer)
21:00:23 brettgilio joins (~brettgili@brettgilio.com)
21:00:30 d joins (4cba4096@cpe-76-186-64-150.tx.res.rr.com)
21:00:54 d is now known as Guest25859
21:01:09 <Gurkenglas> @let eval' :: (Int -> Int) -> VeryLazyNaturals -> VeryLazyNaturals; eval' f = foldr (.) id (replicate (f 0) S) . (\(S x) -> eval' (subtract (f 0) . f . (+1)) x) -- that actually took a fair number of tries. turns out foo . unS is more like (\ ~(S x) -> foo x) than (\(S x) -> foo x)
21:01:11 <lambdabot> Defined.
21:01:17 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:e1d5:3025:9098:a295) (Ping timeout: 272 seconds)
21:01:17 × xe4 quits (~xe4@157.245.246.119) (Ping timeout: 256 seconds)
21:01:17 × mjrosenb quits (~mrosenbe@nyc.schrodinger.com) (Ping timeout: 256 seconds)
21:01:17 × Eliel quits (~jojkaart@163.172.153.251) (Ping timeout: 256 seconds)
21:01:23 <tomsmeding> hololeap: it says "no install-plan found" in the CI matrix: https://matrix.hackage.haskell.org/#/package/unlift-stm
21:01:32 <tomsmeding> not sure if that's temporary, but it doesn't sound good
21:01:33 energizer joins (~energizer@unaffiliated/energizer)
21:01:36 × Guest25859 quits (4cba4096@cpe-76-186-64-150.tx.res.rr.com) (Client Quit)
21:01:44 <tomsmeding> ooooo ignore that it has only checked old ghc's still
21:01:46 eldritch joins (~eldritch@unaffiliated/eldritch)
21:01:51 × absence quits (torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 256 seconds)
21:01:51 × iptq quits (~michael@142.93.75.170) (Ping timeout: 256 seconds)
21:01:51 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Read error: Connection reset by peer)
21:01:54 Eliel joins (~jojkaart@163.172.153.251)
21:01:54 xe4 joins (~xe4@157.245.246.119)
21:02:04 mjrosenb joins (~mrosenbe@104.225.243.2)
21:02:05 <Gurkenglas> tomsmeding, do you think this is right?
21:02:15 conal joins (~conal@64.71.133.70)
21:02:16 absence joins (torgeihe@hildring.pvv.ntnu.no)
21:02:25 × electrocat quits (~michiel@revan.derhaeg.be) (Ping timeout: 256 seconds)
21:02:35 iptq joins (~michael@142.93.75.170)
21:02:52 electrocat joins (~michiel@revan.derhaeg.be)
21:03:30 <hololeap> ok, cool. the docs have been built. however, the links in my description are pointing to the wrong locations
21:04:07 × cohn quits (~noone@unaffiliated/cohn) (Ping timeout: 256 seconds)
21:04:21 cohn joins (~noone@unaffiliated/cohn)
21:05:14 <hololeap> for instance, i have this in the cabal file description: ... analagous to the functionalty for the IO monad found in "Control.Monad.IO.Class" ...
21:05:50 <hololeap> but it's pointing to https://hackage.haskell.org/package/unlift-stm-0.1.0.0/docs/Control-Monad-IO-Class.html
21:06:21 <hololeap> as opposed to https://hackage.haskell.org/package/base/docs/Control-Monad-IO-Class.html
21:06:22 epst3in joins (~dwsjeid91@91.193.7.55)
21:07:30 <hololeap> how would i correct this?
21:08:05 × chrisosa1rus quits (chris@segfault.net.nz) (Ping timeout: 256 seconds)
21:08:12 chrisosaurus joins (chris@segfault.net.nz)
21:08:26 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds)
21:08:37 <Gurkenglas> > eval (+1) $ S undefined -- <tomsmeding> Gurkenglas: for which 'f' is 'eval f x' not equal to 'iterate S x !! f 0' :) although you may have been thinking "either that implementation is wrong or this equality holds"
21:08:40 <lambdabot> S (S (S *Exception: Prelude.undefined
21:08:53 <tomsmeding> Gurkenglas: I was indeed :p
21:09:58 <tomsmeding> funny how lambdabot seems to go one S too deep
21:10:01 <Gurkenglas> should have been like "there's your counterexample! wait." before talking about it being wrong
21:10:14 × epstein quits (~dwsjeid91@193.27.14.135) (Ping timeout: 264 seconds)
21:11:55 <monochrom> If foo is non-strict, foo (unS x) is non-strict in x, too, yes.
21:13:12 <__minoru__shirae> hololeap: what does unlift-stm library do?
21:13:13 <monochrom> My favourite example is "const () (unS whatever)" and generally "const () (f $!!!!! x)" it doesn't matter how many seqs and pattern matchings you have in "f $!!!! x", const simply doesn't care.
21:15:30 <monochrom> The subtle difference between "'seq x y' causes evaluation of x" and "evaluation of 'seq x y' causes evaluation of x".
21:16:04 <hololeap> __minoru__shirae: eh, i was hoping the docs would explain that... :)
21:16:22 <hololeap> do you know about MonadIO?
21:16:27 <epst3in> > (repeat "i love jess ")
21:16:27 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:16:30 <lambdabot> ["i love jess ","i love jess ","i love jess ","i love jess ","i love jess ",...
21:17:07 <hpc> yeah, a good mental model is that evaluation is always caused by something
21:17:10 <hpc> (such as execution)
21:17:16 <hpc> also, execution is always caused by something
21:17:31 × epst3in quits (~dwsjeid91@91.193.7.55) (K-Lined)
21:17:42 <dolio> Should have used `cycle`.
21:18:03 <int-e> monochrom: As Archimedes said, let me define a thunk that's is evaluated and I'll move the whole world.
21:18:11 <monochrom> hpc: I wonder if the docs of unliftio-core explains better what unliftio is about. Then unlift-stm is just an instance of that.
21:18:22 <monochrom> haha int-e.
21:18:27 Sorna is now known as Sornaensis
21:18:27 <{abby}> what's recommended for compiling haskell to javascript these days?
21:18:40 <monochrom> oops hpc sorry, wrong person
21:18:43 × maerwald quits (~maerwald@mail.hasufell.de) (Quit: gone)
21:18:48 son0p joins (~son0p@181.136.122.143)
21:18:56 <monochrom> hololeap: I wonder if the docs of unliftio-core explains better what unliftio is about. Then unlift-stm is just an instance of that.
21:19:10 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds)
21:19:17 <dolio> {abby}: The only option is GHCJS if you literally mean Haskell, I think.
21:19:28 <hololeap> __minoru__shirae: basically, it's a convenience library when working with the STM monad. so you can use the same functions for STM or (WriterT String STM) or (ReaderT Env (ExceptT String STM)), etc
21:19:43 maerwald joins (~maerwald@mail.hasufell.de)
21:19:44 <hololeap> {abby}: i recommend elm or purescript
21:19:56 <hololeap> which aren't haskell, but similar
21:20:03 <hololeap> (especially purescript)
21:20:08 <__minoru__shirae> hololeap: something like a MonadBase instance for Stm?
21:20:10 <dolio> Yeah, PureScript is pretty close.
21:20:18 <{abby}> there is no way i'm rewriting all this code
21:20:33 × dhil quits (~dhil@80.208.56.181) (Ping timeout: 256 seconds)
21:20:34 <{abby}> has there really been nothing better than ghcjs? that's 13 months out of date
21:20:57 dhil joins (~dhil@80.208.56.181)
21:21:09 <hololeap> {abby}: purescript won't be far off. it's very very similar to haskell
21:21:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:21:24 <hololeap> __minoru__shirae: it's closest to MonadIO for the IO monad
21:21:29 <maerwald> do ppl even consider maturity and ecosystem when suggesting languages? :p
21:21:35 <{abby}> hololeap: that's still rewriting ~3000 lines of code in a strict language
21:22:20 <monochrom> I think suggesting elm or purescript is precisely on consideration of ecosystem maturity.
21:22:32 <maerwald> monochrom: they are very different
21:22:34 <monochrom> I mean in the context of "compiles to javascript".
21:23:05 <monochrom> GHCJS is the ecosystemly immature one here.
21:23:23 <maerwald> I think of all of those I'd only call elm mature
21:23:32 <monochrom> or was mature, now bitrotten.
21:24:06 <maerwald> isn't obelisk using ghcjs?
21:24:18 <monochrom> "postmaturity" >:)
21:25:14 × conal quits (~conal@64.71.133.70) (Ping timeout: 260 seconds)
21:25:47 <dolio> If you mean exactly Haskell, then there is not just nothing better. There is nothing else (unless I'm misinformed).
21:25:53 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
21:26:11 <{abby}> epic
21:26:24 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
21:26:38 <hololeap> {abby}: what made you think otherwise?
21:26:56 <dolio> Oh, actually, that's not techincally true. UHC can output JavaScript, I guess.
21:29:13 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-umfzpfeguzyfkkwm) (Quit: Connection closed for inactivity)
21:30:00 conal joins (~conal@192.145.118.137)
21:30:04 <Gurkenglas> @let evalM :: Monad m => LensLike' m VeryLazyNaturals Int; evalM f x = do i <- f 0; foldr (.) id (replicate i S) <$> (\(S x) -> evalM (fmap (subtract i) . f . (+1)) x) x -- this is sure to come in handy
21:30:08 <lambdabot> Defined.
21:32:08 × malumore quits (~malumore@151.62.122.60) (Ping timeout: 245 seconds)
21:32:27 × connrs_ quits (~connrs@runciter.connrs.uk) (Ping timeout: 256 seconds)
21:32:28 esp32_prog joins (~esp32_pro@185.254.75.51)
21:32:31 × ByteEater quits (57cd846a@gateway/web/cgi-irc/kiwiirc.com/ip.87.205.132.106) (Quit: Connection closed)
21:33:36 × codygman` quits (~user@209.251.131.98) (Ping timeout: 246 seconds)
21:33:43 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
21:34:42 connrs joins (~connrs@runciter.connrs.uk)
21:34:43 × sea-gull quits (~sea-gull@li1815-136.members.linode.com) (Ping timeout: 256 seconds)
21:35:11 sea-gull joins (~sea-gull@li1815-136.members.linode.com)
21:37:07 deni_ joins (~deni@unaffiliated/deni)
21:37:14 × deni quits (~deni@unaffiliated/deni) (Ping timeout: 256 seconds)
21:37:33 × Aleksejs quits (~Aleksejs@haskell.lv) (Ping timeout: 256 seconds)
21:38:51 Aleksejs joins (~Aleksejs@haskell.lv)
21:39:15 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
21:39:45 cheater joins (~user@unaffiliated/cheater)
21:40:03 × conal quits (~conal@192.145.118.137) (Quit: Computer has gone to sleep.)
21:40:18 <hololeap> monochrom: honestly, i've been wondering if MonadIO and MonadSTM could be abstracted further into something that works on a transformer stack over any base monad
21:40:57 × dilinger quits (~dilinger@spindle.queued.net) (Ping timeout: 256 seconds)
21:41:04 dilinger joins (~dilinger@spindle.queued.net)
21:41:23 <hololeap> because unlift-stm is so damn similar to MonadIO and MonadUnliftIO
21:46:14 × slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Ping timeout: 260 seconds)
21:46:22 × nisstyre quits (~wes@python-zero/conduct-committee/nisstyre) (Quit: WeeChat 2.9)
21:46:42 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:46:54 <monochrom> I would think that things like MonadTrans, MonadReader, MonadState are doing that.
21:47:16 kiweun joins (~kiweun@2607:fea8:2a62:9600:c98d:ec81:e94d:3657)
21:48:19 × mantovani quits (~mantovani@104.131.207.121) (Ping timeout: 256 seconds)
21:48:42 conal joins (~conal@64.71.133.70)
21:48:48 mantovani joins (~mantovani@104.131.207.121)
21:49:28 <hololeap> something that says, "this action works on the base monad of the stack"
21:49:51 <hololeap> because those are not quite the same
21:50:33 × hwabyong quits (~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com) (Ping timeout: 256 seconds)
21:50:34 <Gurkenglas> @let evalA :: Traversal' VeryLazyNaturals Int; evalA f x = foldr (.) id <$> (flip replicate S <$> f 0) <*> let !(S y) = x in evalA (f . (+1)) y -- in fact, this. although now the monotonic function g must come in the format "f x = g x - g (x-1)"
21:50:36 <lambdabot> Defined.
21:50:46 hwabyong joins (~hwabyong@ec2-3-221-194-167.compute-1.amazonaws.com)
21:50:52 ystael joins (~ystael@209.6.50.55)
21:50:53 <Gurkenglas> > five ^.. evalA
21:50:55 <lambdabot> [0,1,2,3,4,5*Exception: Prelude.undefined
21:51:25 <Gurkenglas> (for every number, confirm whether you're at least that.)
21:51:33 <Gurkenglas> -whether+that
21:52:52 × Uniaika quits (~uniaika@163.172.211.189) (Ping timeout: 256 seconds)
21:53:59 <Gurkenglas> > evalA %~ (\g x -> g x - if x == 0 then 0 else g (x-1)) (*2) $ five
21:54:01 <lambdabot> S (S (S (S (S (S (S (S (S (S *Exception: Prelude.undefined
21:54:30 Uniaika joins (~uniaika@163.172.211.189)
21:54:37 bitmagie joins (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de)
21:54:38 × esp32_prog quits (~esp32_pro@185.254.75.51) (Ping timeout: 260 seconds)
21:55:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
21:55:41 × DustyDingo quits (~nonamen@v2202001112302107134.ultrasrv.de) (Ping timeout: 256 seconds)
21:55:42 <hpc> where did that undefined come from?
21:55:49 <Gurkenglas> > five
21:55:51 <lambdabot> S (S (S (S (S *Exception: Prelude.undefined
21:56:02 DustyDingo joins (~nonamen@v2202001112302107134.ultrasrv.de)
21:56:27 <__minoru__shirae> hololeap: "something that says, "this action works on the base monad of the stack""
21:56:36 <__minoru__shirae> like MonadBase?
21:56:37 <Gurkenglas> what i should be doing is putting fix id in place of every undefined, but this is less rude i suppose
21:57:11 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
21:58:16 × bitmagie quits (~Thunderbi@200116b806606900d512802029b5d408.dip.versatel-1u1.de) (Client Quit)
21:58:45 pavonia joins (~user@unaffiliated/siracusa)
21:59:17 <Gurkenglas> (also i should have said "from the prelude")
21:59:30 epstein joins (~dwsjeid91@103.108.94.39)
22:00:12 × Alleria__ quits (~textual@mskresolve-a.mskcc.org) (Ping timeout: 246 seconds)
22:01:17 <hololeap> __minoru__shirae: yeah, like that :) now i feel like an idiot for not knowing about it
22:02:26 <hololeap> maybe i should re-write my library around that
22:02:39 Rudd0^ joins (~Rudd0@185.189.115.103)
22:04:15 nisstyre joins (wes@python-zero/conduct-committee/nisstyre)
22:04:45 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 264 seconds)
22:05:03 <hololeap> although, would that require (liftBase . liftBase . liftBase ...) for deep monad transformer stacks?
22:05:06 nrh^ joins (~hph@ip98-184-89-2.mc.at.cox.net)
22:05:16 <monochrom> No.
22:05:26 × dfeuer quits (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
22:06:08 <hololeap> right
22:06:17 <monochrom> Provided: Suppose you have "XT (YT (ZT B))", you need one propagator instance for XT, one for YT, one for ZT.
22:06:22 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection)
22:06:22 <hololeap> well, then yeah that is the wheel i was reinventing
22:06:34 <hololeap> sort of..
22:07:44 <monochrom> And a base-case "instance MonadBase B B".
22:08:01 × augnun_ quits (~augnun@2804:14c:658b:41bb:2619:95b9:b021:720c) (Quit: WeeChat 3.1)
22:11:42 Alleria joins (~textual@2603-7000-3040-0000-3133-bb30-065f-83b3.res6.spectrum.com)
22:11:59 <Gurkenglas> > five ^.. gplate -- appears to be doing more lookahead than lazily necessary
22:12:01 <lambdabot> [S (S (S (S *Exception: Prelude.undefined
22:12:05 Alleria is now known as Guest38581
22:12:12 dub66 joins (~dub6@2600:1700:bc60:69c0:d943:bc2:5eb1:9b54)
22:13:57 × amerigo quits (uid331857@gateway/web/irccloud.com/x-dbmpchvgbnfltrjd) (Quit: Connection closed for inactivity)
22:14:40 <Gurkenglas> no wait i just misunderstood what plated is supposed to do, this is correct
22:15:00 <koz_> > maxBound :: Int
22:15:02 <lambdabot> 9223372036854775807
22:15:54 romesrf joins (~romesrf@44.190.189.46.rev.vodafone.pt)
22:16:14 × Guest38581 quits (~textual@2603-7000-3040-0000-3133-bb30-065f-83b3.res6.spectrum.com) (Ping timeout: 264 seconds)
22:16:45 × dub66 quits (~dub6@2600:1700:bc60:69c0:d943:bc2:5eb1:9b54) (Remote host closed the connection)
22:17:04 dub66 joins (~dub6@2600:1700:bc60:69c0::46)
22:17:30 × dub66 quits (~dub6@2600:1700:bc60:69c0::46) (Client Quit)
22:18:33 <Gurkenglas> > five ^.. cosmos . united -- uh oh, probably the unS thing again
22:18:36 <lambdabot> [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),...
22:19:55 <koz_> Gurkenglas: Five Cosmos United sounds like a JRPG limit break.
22:20:09 <koz_> (also, what's the plural of 'cosmos'?)
22:20:23 <Gurkenglas> > five ^.. cosmos . foldr (.) id (replicate 10 plate) . united -- damn u lazy
22:20:26 <lambdabot> [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),...
22:20:38 <koz_> > minBound :: Int
22:20:40 <lambdabot> -9223372036854775808
22:20:42 acidjnk_new joins (~acidjnk@p200300d0c72b954785b86a8446f85480.dip0.t-ipconnect.de)
22:21:06 esp32_prog joins (~esp32_pro@185.254.75.51)
22:24:34 jpds joins (~jpds@gateway/tor-sasl/jpds)
22:25:27 jamm_ joins (~jamm@unaffiliated/jamm)
22:26:50 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:28:57 s0me0ne[m] joins (s0me0nemat@gateway/shell/matrix.org/x-ftzlzzilhwumqyjt)
22:30:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
22:30:06 s0me0ne[m] parts (s0me0nemat@gateway/shell/matrix.org/x-ftzlzzilhwumqyjt) ()
22:30:30 Alleria__ joins (~textual@2603-7000-3040-0000-3133-bb30-065f-83b3.res6.spectrum.com)
22:30:33 × wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 264 seconds)
22:30:36 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
22:30:53 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 245 seconds)
22:33:01 <Gurkenglas> i suppose i deserve getting burned by gplate being too lazy on VeryLazyNaturals :D
22:33:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
22:33:42 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:33:51 Wuzzy joins (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de)
22:34:38 <hpc> it's right there in the name :D
22:34:54 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:35:24 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
22:36:02 <hololeap> so, MonadBase looks like a nice abstraction of MonadIO, etc
22:36:13 <hololeap> what would be a good abstraction of MonadUnliftIO
22:36:32 <koz_> hololeap: MonadBaseControl?
22:36:45 <koz_> Like, MonadUnliftIO is just (over)-simplified MonadBaseControl.
22:36:50 <koz_> Alexis King wrote a whole article on it.
22:37:35 <hololeap> @hoogle MonadBaseControl
22:37:36 <lambdabot> Control.Monad.Trans.Control class MonadBase b m => MonadBaseControl b m | m -> b
22:37:36 <lambdabot> Control.Monad.Trans.Control.Aligned class MonadBase b m => MonadBaseControl b m stM | m -> b stM
22:37:36 <lambdabot> Control.Monad.Trans.Unlift class MonadBase b m => MonadBaseControl (b :: * -> *) (m :: * -> *) | m -> b
22:37:52 <koz_> hololeap: https://lexi-lambda.github.io/blog/2019/09/07/demystifying-monadbasecontrol/
22:38:03 × epstein quits (~dwsjeid91@103.108.94.39) (K-Lined)
22:38:21 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
22:39:02 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
22:39:26 × romesrf quits (~romesrf@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.1)
22:40:24 wagle joins (~wagle@quassel.wagle.io)
22:40:53 × bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
22:42:51 × fendor quits (~fendor@178.165.129.162.wireless.dyn.drei.com) (Remote host closed the connection)
22:43:38 × cafce25_ quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
22:45:58 notzmv joins (~zmv@unaffiliated/zmv)
22:46:08 × kav quits (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Remote host closed the connection)
22:46:16 solidus-river joins (~fuag1@174.127.249.180)
22:46:30 <hololeap> koz_: that looks interesting. i'm partway through it and it seems like it's doing something along the lines of: (m a -> m a) -> t m a -> t m a
22:46:31 <solidus-river> is there a good example some where of using forkIO but trying to catch and recover from processes that die?
22:46:54 <hololeap> but sometimes we need: (m a -> r) -> t m a -> r
22:46:58 <koz_> solidus-river: Have you read Simon's book about parallelism and concurrency in Haskell?
22:47:18 <solidus-river> koz_, now but i would with link :), also searching
22:47:20 <koz_> hololeap: I _believe_ that's still possible with MonadBaseControl, but it's ahrder.
22:47:52 <koz_> solidus-river: https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/pt02.html
22:47:58 <koz_> Read that entire part, start to finish.
22:48:09 <koz_> It goes over this in quite pedantic detail.
22:50:00 hexfive joins (~hexfive@50.35.83.177)
22:50:12 infinity0 joins (~infinity0@freenet/developer/infinity0)
22:50:15 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 246 seconds)
22:50:24 <solidus-river> koz_, thanks!
22:50:44 <koz_> solidus-river: No problem.
22:51:18 × DavidEichmann quits (~david@234.109.45.217.dyn.plus.net) (Ping timeout: 246 seconds)
22:51:32 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
22:54:43 notzmv joins (~zmv@unaffiliated/zmv)
22:57:10 × sarahzrf_ quits (~sarahzrf_@sarahzrf.com) (Quit: bye)
22:57:23 × stux|RC-- quits (stux2@grid9.quadspeedi.net) (Quit: Aloha!)
22:57:33 sarahzrf joins (~sarahzrf_@2604:a880:400:d0::b4a:4001)
22:59:19 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:00:15 stux|RC-only joins (stux2@grid9.quadspeedi.net)
23:00:52 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 265 seconds)
23:01:32 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
23:02:19 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
23:04:56 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
23:06:17 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
23:06:24 × bbear quits (~znc@21212.s.t4vps.eu) (Read error: Connection reset by peer)
23:06:28 bergey joins (~user@pool-74-108-99-127.nycmny.fios.verizon.net)
23:06:34 bbear joins (~znc@21212.s.t4vps.eu)
23:07:23 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
23:08:44 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
23:10:03 cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
23:10:25 cosimone joins (~user@93-47-228-249.ip115.fastwebnet.it)
23:12:43 × solidus-river quits (~fuag1@174.127.249.180) (Read error: Connection reset by peer)
23:15:38 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
23:17:15 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
23:18:19 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
23:18:27 conal joins (~conal@64.71.133.70)
23:20:41 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4) (Remote host closed the connection)
23:21:14 heatsink joins (~heatsink@2600:1700:bef1:5e10:7c0e:3b57:dfb:2cb4)
23:29:30 × cosimone quits (~user@93-47-228-249.ip115.fastwebnet.it) (Remote host closed the connection)
23:30:44 × xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection)
23:32:11 × molehillish quits (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Remote host closed the connection)
23:33:04 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
23:33:48 xsperry joins (~as@unaffiliated/xsperry)
23:35:02 × acidjnk_new quits (~acidjnk@p200300d0c72b954785b86a8446f85480.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:37:14 × justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
23:37:50 × molehillish quits (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f) (Ping timeout: 264 seconds)
23:39:37 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds)
23:41:25 molehillish joins (~molehilli@2600:8800:8d06:1800:c9c1:cc0:ccd2:b4f)
23:41:28 × __minoru__shirae quits (~shiraeesh@109.166.58.121) (Ping timeout: 260 seconds)
23:43:42 brandly joins (~brandly@c-73-68-15-46.hsd1.ma.comcast.net)
23:45:08 codygman__ joins (~user@47.186.207.161)
23:45:40 × cfricke quits (cfricke@gateway/vpn/mullvad/cfricke) (Ping timeout: 256 seconds)
23:46:13 × nrh^ quits (~hph@ip98-184-89-2.mc.at.cox.net) ()
23:47:04 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
23:47:18 × bergey quits (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 246 seconds)
23:47:34 <wickedjargon> question for anyone: Do you think reading "The Little Schemer" will help with programming in Haskell?
23:47:46 usr25_tm joins (~usr25@unaffiliated/usr25)
23:48:15 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
23:48:37 codygman__ joins (~user@47.186.207.161)
23:48:58 slack1256 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net)
23:50:49 <Axman6> I doubt it would hurt
23:51:31 × usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 268 seconds)
23:51:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:57:34 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 256 seconds)
23:58:22 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)

All times are in UTC on 2021-03-15.