Home freenode/#haskell: Logs Calendar

Logs on 2020-10-18 (freenode/#haskell)

00:00:02 × Guest11473 quits (~andrea@185.244.214.216) ()
00:00:05 × DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 240 seconds)
00:00:57 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
00:04:33 <Guest36918> hello
00:05:13 <ski> ehlo
00:05:22 <Guest36918> i need to change my name
00:05:22 <Guest36918> but
00:05:33 <Guest36918> was wondering if someone could help me fix a snipper of haskell code
00:05:39 <Guest36918> snippet
00:05:40 <Guest36918> *
00:05:53 × kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 246 seconds)
00:06:24 <ski> hard to tell, without seeing it
00:06:37 <ski> /nick myNewNickName
00:06:42 kish joins (~oracle@unaffiliated/oracle)
00:06:43 <ski> to change your nickname
00:06:46 Guest36918 is now known as christo
00:06:51 <christo> thx
00:07:03 <Squarism> i see here OverlappingInstances and IncoherantInstances are both deprecated here https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#overlapping-instances
00:07:03 <christo> what's the best way to link haskell code?
00:07:08 <Squarism> what should one use instead?
00:07:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:07:27 <ski> @where paste
00:07:28 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
00:07:40 <ski> you could use that ^, christo
00:07:46 <christo> thx
00:07:54 <christo> basically, i'm writing an infix operator function
00:08:02 <Squarism> oh its the pragmas
00:08:02 <christo> < i'm a newbie to haskell and experimenting
00:08:20 <christo> and i'm getting a type error with floor (n1 / n2)
00:08:25 <christo> i'll paste full code now
00:08:33 <christo> it's for a custom modulo operator
00:09:15 <koz_> ski: Didn't know we had this as a pastebin, nice.
00:09:32 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
00:09:46 <christo> https://paste.tomsmeding.com/QutEatIe#file-1
00:10:26 <christo> • No instance for (RealFrac Integer) arising from a use of ‘floor’
00:10:39 <christo> haskell language server error i get in vs-code
00:11:12 <koz_> :t (/)
00:11:14 <lambdabot> Fractional a => a -> a -> a
00:11:17 <koz_> There's your issue.
00:11:21 <koz_> I assume you wanted this?
00:11:22 <koz_> :t div
00:11:24 <lambdabot> Integral a => a -> a -> a
00:12:43 <Squarism> gah.. im on ghc865 but it still tells me to use deprecated IncoherentInstances
00:12:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
00:12:58 <koz_> Squarism: What're you trying to write?
00:12:58 <christo> so i do. round (n1 (div) n2) ?
00:13:19 <Squarism> koz instances that "overlap" =D
00:13:21 <koz_> christo: If you wanna use div infix, you wanna write it as n1 `div` n2
00:13:32 <koz_> Squarism: Yes. In other news, cream puffs are puffs which are creamy.
00:13:39 <koz_> And regular expressions are expressions which are regular.
00:14:10 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:14:15 <christo> @koz_ still not working it seems
00:14:15 <lambdabot> Unknown command, try @list
00:14:18 <Squarism> im just confused i got the error message instructing me to use a deprecated extension
00:14:26 <ski> Squarism : `/' doesn't work on `Integer's. `/' is for fractional division. either convert your `Integer's to some fractional number type, or else use integral division (`div')
00:14:29 <koz_> christo: Paste the code again?
00:14:36 <ski> er, sorry
00:14:39 <ski> christo ^
00:14:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
00:14:52 <christo> • No instance for (RealFrac Integer) arising from a use of ‘floor’
00:14:55 <christo> ooops sorry
00:15:15 <koz_> christo: You don't need floor in this case then.
00:15:18 <koz_> :t floor
00:15:20 <lambdabot> (RealFrac a, Integral b) => a -> b
00:15:28 <Axman6> floor also doesn['t wokr on Integers
00:15:30 conal joins (~conal@64.71.133.70)
00:15:32 <christo> https://paste.tomsmeding.com/QutEatIe#file-1
00:15:40 <koz_> You don't have a RealFrac anything, since if you use div, you don't get a fractional thing back.
00:15:42 <ski> christo : `fromInteger' can be used to convert from `Integer' to another numeric type
00:15:51 <Axman6> > 13 `div` 3
00:15:53 <lambdabot> 4
00:15:55 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
00:16:02 <christo> :t fromInteger
00:16:04 <lambdabot> Num a => Integer -> a
00:16:07 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
00:16:28 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
00:16:35 <ski> (e.g., you could convert to `Rational' ..)
00:16:36 <christo> > fromInteger 2
00:16:38 <lambdabot> 2
00:16:42 <christo> > fromInteger 2.0
00:16:44 <lambdabot> error:
00:16:44 <lambdabot> • Could not deduce (Fractional Integer)
00:16:44 <lambdabot> arising from the literal ‘2.0’
00:16:59 × untseac quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
00:17:01 <ski> > floor (fromInteger 18 / fromInteger 7)
00:17:04 <lambdabot> 2
00:17:23 ephemera_ joins (~E@122.34.1.187)
00:17:24 <ski> > 18 - 7 * floor (fromInteger 18 / fromInteger 7)
00:17:26 <lambdabot> 4
00:17:28 untseac joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
00:17:41 <ski> > 18 - 7 * floor (fromInteger 18 / fromInteger 7 :: Rational)
00:17:43 <lambdabot> 4
00:18:17 <christo> :t (/)
00:18:17 <ski> (without the type ascription, it'll default to `Double', iirc)
00:18:18 <lambdabot> Fractional a => a -> a -> a
00:18:50 <christo> what does :: Rational do? some sort of type Cast or ?
00:19:54 <Axman6> :t \x -> fromInteger x
00:19:56 <lambdabot> Num a => Integer -> a
00:20:12 <Axman6> :t \x -> (fromInteger x :: Rational)
00:20:13 <lambdabot> Integer -> Rational
00:20:34 <Axman6> it's picking the type to use, there is no casting in Haskell*
00:22:03 <christo> ahh ok
00:22:12 <christo> so is Num like a generic or something?
00:22:23 <koz_> christo: Num is kind of like an interface.
00:22:35 <koz_> Something that is an instance of Num is 'kinda sorta number-like' in some sense.
00:22:56 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
00:22:59 <Axman6> @src Num
00:22:59 <lambdabot> class Num a where
00:22:59 <lambdabot> (+), (-), (*) :: a -> a -> a
00:22:59 <lambdabot> negate, abs, signum :: a -> a
00:22:59 <lambdabot> fromInteger :: Integer -> a
00:23:02 <christo> Hmm, as a haskell beginner may be a bit beyond my head
00:23:17 <koz_> christo: Type classes are a fairly important concept, even at beginner level.
00:23:59 <koz_> (in terms of how to use their instances, at least)
00:24:04 <Axman6> Num is the class of types which can do some number like things, such as addition, subtradction, multiplication this allows you to use the usual 1 + 2 * 3 syntax for your own types
00:24:45 <Axman6> @let data MyNum = Val Integer | Add MyNum My
00:24:46 <lambdabot> .L.hs:159:24: error:
00:24:47 <lambdabot> Not in scope: type constructor or class ‘My’
00:24:47 <lambdabot> Perhaps you meant ‘Mu’ (imported from Lambdabot.Plugin.Haskell.Eval.Trus...
00:24:57 <Axman6> @let data MyNum = Val Integer | Add MyNum MyNum |
00:24:58 <lambdabot> Parse failed: Parse error: EOF
00:25:04 <Axman6> omg, typing on a couch is ahrd
00:25:15 <koz_> Axman6: It's those axe hands.
00:25:18 <christo> lol
00:25:27 <koz_> Too much couch stuffing everywhere.
00:25:32 <Axman6> @let data MyNum = Val Integer | Add MyNum MyNum | Mul MyNum MyNum
00:25:33 <christo> btw, my (%) infix operator works now
00:25:34 <lambdabot> Defined.
00:25:47 <christo> but need
00:25:55 <christo> maybe look into type classes then
00:25:55 × CodeWeaver quits (49eff865@c-73-239-248-101.hsd1.wa.comcast.net) (Remote host closed the connection)
00:25:56 <Axman6> koz_: congrats on your sane election btw
00:26:10 <koz_> Axman6: Thanks! I gotta say I wasn't too surprised by the outcome.
00:26:54 <Axman6> @let instance Num MyNum where a + b = Add a b; a * b = Mul a b; fromInteger i = Val i
00:26:55 <lambdabot> .L.hs:162:10: error: [-Wmissing-methods, -Werror=missing-methods]
00:26:55 <lambdabot> • No explicit implementation for
00:26:55 <lambdabot> ‘abs’, ‘signum’, and (either ‘negate’ or ‘-’)
00:27:17 <Axman6> @let instance Show MyNum
00:27:19 <lambdabot> .L.hs:162:10: error: [-Wmissing-methods, -Werror=missing-methods]
00:27:19 <lambdabot> • No explicit implementation for
00:27:19 <lambdabot> either ‘showsPrec’ or ‘show’
00:27:30 <Axman6> @let deriving instance Show MyNum
00:27:31 <lambdabot> Defined.
00:27:46 <Axman6> % 1 + 2 * 3 :: MyNum
00:27:46 <yahb> Axman6: ; <interactive>:62:14: error: Not in scope: type constructor or class `MyNum'
00:28:04 <ski> > 1 + 2 * 3 :: MyNum
00:28:05 <Axman6> you're the worst yahb
00:28:07 <lambdabot> error:
00:28:07 <lambdabot> • No instance for (Num MyNum) arising from a use of ‘+’
00:28:07 <lambdabot> • In the expression: 1 + 2 * 3 :: MyNum
00:29:02 <Axman6> koz_: we had a similar result over the pond in our territory election, so it was as good night
00:29:18 <koz_> Axman6: In that case, congratulations!
00:30:09 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
00:31:19 <koz_> Would someone be able to guide me in creating Nix environments wherein I can build _static_ Haskell applications for 32-bit x86?
00:31:40 <koz_> So like, a chonky binary I can copy over to another machine and just run.
00:33:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:35:01 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 244 seconds)
00:37:56 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
00:38:35 × Guy quits (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net) (Remote host closed the connection)
00:39:29 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
00:39:53 <jared-w> nix-shell -p cabal-install ghc && cabal build `--enable-executable-static --ghc-options=-split-sections`?
00:40:03 <jared-w> (if you're on nixos the answer changes substantially)
00:40:22 <koz_> jared-w: I am not on NixOS. So do I not need like, a configuration file for Nix or anything?
00:40:31 <koz_> And won't this build a 64-bit binary?
00:40:53 <jared-w> Not that I'm aware of. Ah, true. If you're *on* a x64 system and wanting to cross compile to x86 that throws a wrench into the works
00:41:08 <koz_> jared-w: That was my primary question really.
00:41:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:42:10 <jared-w> Yeah, makes sense. If you're not on nixos, cabal build --enable-executable-static more or less "just works" now. Cross compiling onto x32 can be a bit painful depending on what and where. I haven't done it, personally, so I can't immediately point you to any solution with experience
00:42:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:42:49 <koz_> OK, thanks.
00:44:08 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:fce4:f626:e7a:99f3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:44:10 <jared-w> https://nixos.wiki/wiki/Packaging/32bit_Applications this is really the first thing that I can find. So it seems "possible" and maybe even "sorta easy", but given that you're not on nixos, some of the cross compiling stuff doesn't always apply, which complicates things
00:45:34 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:45:36 <koz_> I figured it _should_ be possible, but I dunno much about Nix. Oh well, thanks anyway.
00:46:06 × daenth quits (~daenth@136.36.157.210) (Quit: ZNC 1.7.5 - https://znc.in)
00:47:09 conal joins (~conal@64.71.133.70)
00:47:30 × conal quits (~conal@64.71.133.70) (Client Quit)
00:47:54 daenth joins (~daenth@136.36.157.210)
00:47:55 conal joins (~conal@64.71.133.70)
00:48:17 × conal quits (~conal@64.71.133.70) (Client Quit)
00:49:04 nbloomf joins (~nbloomf@2600:1700:ad14:3020:fce4:f626:e7a:99f3)
00:49:45 Tops2 joins (~Tobias@dyndsl-095-033-019-139.ewe-ip-backbone.de)
00:52:25 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
00:52:25 × fragamus quits (~michaelgo@73.93.155.52) (Ping timeout: 264 seconds)
00:52:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
00:53:50 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
00:57:04 bvalek2 joins (~bvalek2@217.146.82.202)
00:58:52 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
00:58:52 fragamus joins (~michaelgo@73.93.152.144)
00:59:14 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
01:02:39 Jonkimi727406120 joins (~Jonkimi@223.213.79.20)
01:04:25 × Gurkenglas_ quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
01:07:43 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
01:07:44 × Jonkimi727406120 quits (~Jonkimi@223.213.79.20) (Ping timeout: 272 seconds)
01:08:22 ensyde joins (~ensyde@2600:1702:2e30:1a40:e1f9:6cbb:4eca:3c84)
01:10:25 × abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
01:11:50 ryjm_matrix joins (~matrixirc@2600:4040:a009:6100:3adc:615b:70b5:b0c)
01:14:33 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Quit: Leaving)
01:15:16 <koz_> jared-w: I'm trying to follow this: https://github.com/Gabriel439/haskell-nix/tree/master/project0 , but I keep getting 'error: cannot auto-call a function that has an argument without a default value ('mkDerivation')' for (something near enough a carbon copy of) project0.nix when I run 'nix-build': error: cannot auto-call a function that has an argument without a default value ('mkDerivation')
01:15:25 <koz_> Whoops, two pastes of error message.
01:15:52 <koz_> default.nix: http://ix.io/2B5a
01:16:07 <koz_> What am I missing?
01:17:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
01:19:36 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:20:19 × karanlikmadde quits (~karanlikm@2a01:c23:641c:2200:c88d:7d7e:c962:437f) (Quit: karanlikmadde)
01:20:58 × jumper149 quits (~jumper149@ip185225.wh.uni-hannover.de) (Quit: WeeChat 2.9)
01:21:28 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
01:23:47 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
01:24:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
01:25:10 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:fce4:f626:e7a:99f3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:25:20 <koz_> OK, never mind, see it now.
01:26:26 × untseac quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
01:29:38 <Squarism> im playing with Generics here. I tried : from ([1,2,3,4] :: [Int]). I was a bit surprised the expression resulted in this : https://paste.ofcode.org/AXUFkv4hcGLmHQQbMvmUgb
01:32:04 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 246 seconds)
01:32:24 <Squarism> why isnt [2,3,4] expanded with a product type? is it lazy evaluation at play?
01:32:58 × m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
01:35:33 <proofofme> name :: Word8 -> Parser Name This type declaration is in Cassava Parse docs: https://hackage.haskell.org/package/cassava-0.5.2.0/docs/Data-Csv-Parser.html Is the `Parser` a monad?
01:35:53 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:35:53 × minne quits (~minne@4e69b241.skybroadband.com) (Ping timeout: 260 seconds)
01:35:58 <ghoulguy> Squarism: Generics affects a single instance of a datatype
01:36:01 <koz_> proofofme: Yes.
01:36:05 <koz_> https://hackage.haskell.org/package/attoparsec-0.13.2.3/docs/Data-Attoparsec-Internal-Types.html#t:Parser
01:36:11 <ghoulguy> Squarism: It doesn't recursively convert between the generic and normal representation
01:36:57 hackage Z-IO 0.1.6.1 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.6.1 (winterland)
01:41:11 × ensyde quits (~ensyde@2600:1702:2e30:1a40:e1f9:6cbb:4eca:3c84) (Ping timeout: 272 seconds)
01:41:57 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
01:42:20 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:42:45 <koz_> OK, I think I have nix-build firing, finally.
01:42:46 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
01:43:34 × dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
01:43:58 dirediresalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
01:44:32 <Squarism> ghoulguy, okok.
01:45:03 <Squarism> ghoulguy, i had a question for you regarding our latest talk about addressing a datastructure using string like paths.
01:45:51 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
01:46:36 ystael joins (~ystael@209.6.50.55)
01:46:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:47:30 <Squarism> ghoulguy, could you see how the approach you elaborated, on using generics, could be extended to "multi level" addressing?
01:48:26 <proofofme> is it possible to use cassava to parse just a String and not from a file?
01:48:44 <koz_> proofofme: Yes. You need a ByteString, but you can use the 'decode' function.
01:49:49 <proofofme> ok I will start there
01:51:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
01:55:05 Guy joins (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net)
01:56:03 <proofofme> Prelude Data.Text> decode("a,b,c")
01:56:20 <proofofme> Variable not in scope: decode :: [Char] -> t
01:56:44 <koz_> proofofme: Cassava's decode.
01:56:53 <koz_> And you don't call functions that way in Haskell.
01:57:36 <Guy> yeah you call em like this
01:57:53 <Guy> Function: (CALL) => [args]
01:58:17 <koz_> Guy: ?
01:58:22 <koz_> I don't follow.
01:58:30 <Guy> a real mans way of calling functions
01:58:52 <koz_> Guy: What has this got to do with Haskell?
01:59:16 <Guy> its how functions will be called in the new Haskell update
02:00:30 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
02:00:57 × xff0x quits (~fox@2001:1a81:53c5:c200:3161:a29a:3186:4358) (Ping timeout: 260 seconds)
02:01:21 texasmynsted joins (688c344b@104.140.52.75)
02:01:38 <texasmynsted> Hello.
02:01:43 <texasmynsted> What do you think would be a nice clean way to deal with some configuration data that would be a list of thousands of tuple/pairs? Considering: Dhall, Data.ini, CSV, other. . .
02:02:17 <texasmynsted> maybe just a giant List in its own module? . . .
02:02:23 <infinisil> texasmynsted: What kind of configuration has thousands of tuples?
02:02:37 <texasmynsted> URL redirects
02:02:50 <texasmynsted> Like thousands of pairs
02:02:52 xff0x joins (~fox@2001:1a81:53f8:9f00:188d:8bae:4800:ec7f)
02:02:53 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 258 seconds)
02:03:16 <texasmynsted> (badUrl, goodUrl)
02:03:38 <infinisil> Hm I see
02:03:44 <texasmynsted> [(badUrl, goodUrl), (badUrl, goodUrl)...]
02:04:06 <infinisil> A list in a submodule wouldn't be configurable though
02:04:11 <infinisil> s/submodule/module
02:04:37 <infinisil> Or should it just be non-configurable static data?
02:04:58 <texasmynsted> You can imagine that the person doing the configuration is a haskell programmer and would re-compile anyway
02:05:10 <texasmynsted> non-configurable static data.
02:05:23 × Guy quits (4c68d95d@c-76-104-217-93.hsd1.wa.comcast.net) (Remote host closed the connection)
02:06:29 <texasmynsted> I am thinking maybe Dhall, but maybe simply because it is interesting. It might be way overkill.
02:07:11 <infinisil> That does sound overkill
02:07:18 <texasmynsted> It is so easy to make things too complicated.
02:08:53 <infinisil> I'd probably go for a simple "<badurl> <goodurl>"-per-line format
02:09:14 <infinisil> And either access it with data-files
02:09:20 <infinisil> Or read it in at compile time with TH
02:10:44 <texasmynsted> TH?
02:11:29 <dsal> texasmynsted: sqlite
02:11:55 <infinisil> texasmynsted: template haskell
02:12:05 <infinisil> E.g. https://hackage.haskell.org/package/include-file
02:12:23 <texasmynsted> hm. yes this is sounding better.
02:13:03 <texasmynsted> If I do tsv (tab delimited file) that should be super easy to read it, easy to read from text editor, and I could load it as a spreadsheet for maintenance
02:14:51 <texasmynsted> thank you dsal but I think sqlite is more than I need yet also
02:15:47 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:16:08 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
02:16:39 <dsal> heh, sqlite is a bit less than a spreadsheet. It's easy and pretty good for thousands of pairs of things which might turn into millions of triples of things. I use it when I have tens of things. :)
02:18:00 <texasmynsted> okay.
02:20:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:21:19 × theDon quits (~td@muedsl-82-207-238-039.citykom.de) (Ping timeout: 260 seconds)
02:22:52 theDon joins (~td@muedsl-82-207-238-112.citykom.de)
02:25:46 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
02:26:05 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
02:28:43 abhixec joins (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
02:30:19 lagothrix is now known as Guest49750
02:30:19 × Guest49750 quits (~lagothrix@unaffiliated/lagothrix) (Killed (rothfuss.freenode.net (Nickname regained by services)))
02:30:25 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
02:30:32 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
02:33:28 × ryjm_matrix quits (~matrixirc@2600:4040:a009:6100:3adc:615b:70b5:b0c) (Quit: killed)
02:34:40 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
02:35:24 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
02:35:28 oats is now known as wheats
02:39:16 z0 joins (~z0@bl15-33-197.dsl.telepac.pt)
02:39:33 z0 is now known as Guest30638
02:40:58 × jkachmar quits (uid226591@gateway/web/irccloud.com/x-sjqizjclmhyizvlx) (Quit: Connection closed for inactivity)
02:42:15 dmc00 joins (~dmc@unaffiliated/dmc00)
02:43:15 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
02:43:33 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
02:44:00 albertus1 joins (~seb@x4db9b903.dyn.telefonica.de)
02:44:37 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 264 seconds)
02:45:26 × albertus11 quits (~seb@x4db49541.dyn.telefonica.de) (Ping timeout: 258 seconds)
02:46:02 × tabaqui quits (~tabaqui@46.39.45.136) (Ping timeout: 256 seconds)
02:46:46 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
02:47:42 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
02:48:27 hackage regex-pcre-builtin 0.95.1.3.8.43 - PCRE Backend for "Text.Regex" (regex-base) https://hackage.haskell.org/package/regex-pcre-builtin-0.95.1.3.8.43 (AudreyTang)
02:52:45 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
02:52:51 wheats is now known as oats
02:54:39 × xff0x quits (~fox@2001:1a81:53f8:9f00:188d:8bae:4800:ec7f) (Ping timeout: 272 seconds)
02:55:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
02:55:09 xff0x joins (~fox@2001:1a81:53f8:9f00:5588:893c:8299:71d2)
02:55:43 × solonarv quits (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 246 seconds)
03:00:01 × bvalek2 quits (~bvalek2@217.146.82.202) ()
03:00:10 tabaqui joins (~tabaqui@2604:a880:800:c1::21b:3001)
03:00:53 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
03:04:52 christo joins (~chris@81.96.113.213)
03:05:42 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
03:08:40 <ibloom> Is there a standard lens such that "use lens" just returns the whole state?
03:10:31 wei2912 joins (~wei2912@unaffiliated/wei2912)
03:10:35 <koz_> ibloom: You can just use 'get' then, right?
03:11:21 <ibloom> I just want to reuse the same set of functions that use "use"
03:11:52 <ibloom> It's a small thing.
03:11:52 <koz_> @hoogle use
03:11:53 <lambdabot> Control.Lens.Combinators use :: MonadState s m => Getting a s a -> m a
03:11:53 <lambdabot> Control.Lens.Getter use :: MonadState s m => Getting a s a -> m a
03:11:53 <lambdabot> Distribution.Compat.Lens use :: MonadState s m => Getting a s a -> m a
03:12:24 Licious joins (~Licious@4e69b241.skybroadband.com)
03:12:30 <koz_> I think you can use something that turns a function into a Getter, then just pass id to that?
03:13:29 <ibloom> Hmmm...
03:13:32 <koz_> to.
03:13:36 <koz_> So you would do like
03:13:41 <koz_> use (to id)
03:14:00 <ibloom> Let me see if that typechecks
03:15:28 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
03:16:39 <ibloom> Not quite
03:16:51 <koz_> ibloom: What seems to be the problem?
03:17:01 <ibloom> "Could not deduce (Contravariant f) arising from a use of ‘to’"
03:17:32 <ibloom> @hoogle to
03:17:33 <lambdabot> GHC.Generics to :: Generic a => Rep a x -> a
03:17:33 <lambdabot> Control.Lens.Combinators to :: (Profunctor p, Contravariant f) => (s -> a) -> Optic' p f s a
03:17:33 <lambdabot> Control.Lens.Getter to :: (Profunctor p, Contravariant f) => (s -> a) -> Optic' p f s a
03:18:09 <koz_> Yeah, since I think 'use' can grab a variety of things.
03:18:17 <koz_> That's what 'Getting' means in its type.
03:18:24 <koz_> So on its own, it doesn't know what you want.
03:18:32 × ericsagnes quits (~ericsagne@2405:6580:0:5100:c46f:cebb:a37a:3cd) (Ping timeout: 260 seconds)
03:18:34 <edwardk> koz: id is usable as the identity lens
03:18:43 <koz_> edwardk: Ah, OK.
03:18:45 <edwardk> to id = id
03:18:47 <koz_> So just 'use id' would work?
03:19:02 <edwardk> yeah, or 'get'
03:19:19 <ibloom> Aha
03:19:29 <edwardk> lens deliberately didn't use 'get/set' and went with 'view/set' to avoid trampling the State 'get' operation's name
03:19:34 <koz_> edwardk: I already suggested 'get', but ibloom said that they need something reusable (lol) with 'use'.
03:19:43 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
03:19:44 <edwardk> then use id
03:20:16 <ibloom> I feel dumb for not trying that.
03:20:29 <ibloom> Works perfectly.
03:20:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:21:22 <ibloom> Thank you.
03:21:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
03:23:45 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
03:26:01 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
03:26:09 × alp_ quits (~alp@2a01:e0a:58b:4920:8ddf:af03:d4f2:1b4c) (Remote host closed the connection)
03:26:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
03:29:23 conal joins (~conal@64.71.133.70)
03:30:42 ericsagnes joins (~ericsagne@2405:6580:0:5100:555b:b346:7063:867)
03:31:41 no-n parts (sid257727@gateway/web/irccloud.com/x-tblqoxnndlzcotma) ()
03:33:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:37:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
03:39:06 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
03:39:27 × tabaqui quits (~tabaqui@2604:a880:800:c1::21b:3001) (Quit: WeeChat 2.9)
03:45:02 <texasmynsted> I have not used Template Haskell. What do you recommend I read to quickly get a feel for how I could use it to consume a TSV file?
03:45:49 <koz_> texasmynsted: Why TH?
03:46:11 <koz_> Are you trying to mimic C's #include or something?
03:46:23 <texasmynsted> Somebody recommended it earlier as a nice way to include the TSV file content in my project.
03:47:00 <texasmynsted> The file is static content. It would be used to load many lines of URL pairs
03:47:16 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-uldwzywipdbtosxt) ()
03:47:42 <texasmynsted> for a URL re-direction process. Adding new redirects requires a re-compile.
03:48:11 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:48:42 <texasmynsted> Though it seems like it should be super easy to just read all the lines of the TSV to a list then split the text of each line to pairs
03:48:53 texasmynsted shrug
03:49:08 <texasmynsted> It also seems like this is a "solved problem"
03:49:10 <koz_> You probably need an intro to TH. https://wiki.haskell.org/Template_Haskell
03:49:35 drbean joins (~drbean@TC210-63-209-65.static.apol.com.tw)
03:51:34 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
03:54:27 <texasmynsted> thank you. I will go through the tutorials
03:54:59 <texasmynsted> Is it worth it? Like what does TH bring to this simple problem?
03:56:39 Rcsprinter joins (~Rcsprinte@192.30.89.67)
03:59:44 <Cale> texasmynsted: Literally only the ability to read the file at compile time and splice in a string literal with its contents.
04:00:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:01:05 <Cale> texasmynsted: You can do something like $(fmap TH.lift (readFile "foo.txt")) and that will behave like a string literal with the contents of foo.txt
04:01:10 × Tops2 quits (~Tobias@dyndsl-095-033-019-139.ewe-ip-backbone.de) (Read error: Connection reset by peer)
04:01:22 × dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
04:01:34 <Cale> Where TH.lift is the one from Language.Haskell.TH.Syntax
04:01:55 dirediresalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
04:02:20 <Cale> Oh, that readFile might need to be runIO'ed
04:02:25 <Cale> yeah
04:02:38 <Cale> Forgot that lift produced something in the Q monad
04:03:00 <Cale> So, it'd be more like $(runIO (readFile "foo.txt") >>= TH.lift)
04:04:10 × texasmynsted quits (688c344b@104.140.52.75) (Remote host closed the connection)
04:05:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:10:36 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
04:14:25 × vicfred quits (~vicfred@unaffiliated/vicfred) (Remote host closed the connection)
04:14:37 × jchia quits (~jchia@58.32.34.43) (Ping timeout: 264 seconds)
04:14:53 vicfred joins (~vicfred@unaffiliated/vicfred)
04:15:09 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:19:21 ryjm_matrix joins (~matrixirc@pool-74-105-197-68.nwrknj.fios.verizon.net)
04:19:22 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds)
04:19:26 × ryjm_matrix quits (~matrixirc@pool-74-105-197-68.nwrknj.fios.verizon.net) (Remote host closed the connection)
04:19:37 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
04:20:57 hackage churros 0.1.4.0 - Channel/Arrow based streaming computation library. https://hackage.haskell.org/package/churros-0.1.4.0 (LyndonMaydwell)
04:21:33 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
04:21:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:26:31 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
04:26:42 Stanley00 joins (~stanley00@unaffiliated/stanley00)
04:29:08 × fragamus quits (~michaelgo@73.93.152.144) (Ping timeout: 260 seconds)
04:30:52 fragamus joins (~michaelgo@73.93.153.72)
04:31:19 bitmagie joins (~Thunderbi@200116b806076b00ec17a962c4a08e9f.dip.versatel-1u1.de)
04:31:28 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 260 seconds)
04:31:37 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 258 seconds)
04:32:17 × bitmagie quits (~Thunderbi@200116b806076b00ec17a962c4a08e9f.dip.versatel-1u1.de) (Client Quit)
04:33:57 × lucasb quits (uid333435@gateway/web/irccloud.com/x-tkhwugfitzdjoeco) (Quit: Connection closed for inactivity)
04:34:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
04:35:28 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds)
04:39:02 × HarveyPwca quits (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving)
04:39:31 ss joins (4baca9aa@75.172.169.170)
04:39:40 falafel joins (~falafel@65.155.184.35)
04:41:48 cdepillabout joins (~cdepillab@pl35600.ag1001.nttpc.ne.jp)
04:42:03 × irc_user quits (uid423822@gateway/web/irccloud.com/x-jycoetfjhrvokwjj) (Quit: Connection closed for inactivity)
04:43:02 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
04:43:59 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
04:46:03 day_ joins (~Unknown@unaffiliated/day)
04:46:57 × ss quits (4baca9aa@75.172.169.170) (Remote host closed the connection)
04:47:45 bitmagie joins (~Thunderbi@200116b806076b00ec17a962c4a08e9f.dip.versatel-1u1.de)
04:48:16 × bitmagie quits (~Thunderbi@200116b806076b00ec17a962c4a08e9f.dip.versatel-1u1.de) (Client Quit)
04:49:01 bitmagie joins (~Thunderbi@200116b806076b00ec17a962c4a08e9f.dip.versatel-1u1.de)
04:49:17 × bitmagie quits (~Thunderbi@200116b806076b00ec17a962c4a08e9f.dip.versatel-1u1.de) (Client Quit)
04:49:24 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 272 seconds)
04:49:24 day_ is now known as day
04:51:09 × abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Quit: leaving)
04:52:10 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
04:53:22 conal_ joins (~conal@66.115.157.118)
04:54:09 × conal_ quits (~conal@66.115.157.118) (Client Quit)
04:54:42 jchia joins (~jchia@45.32.62.73)
04:55:43 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
04:56:46 jchia joins (~jchia@45.32.62.73)
04:57:47 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
04:58:25 jchia joins (~jchia@45.32.62.73)
04:59:27 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
05:00:30 jchia joins (~jchia@58.32.66.236)
05:02:47 × falafel quits (~falafel@65.155.184.35) (Remote host closed the connection)
05:03:38 falafel joins (~falafel@65.155.184.35)
05:04:47 × falafel quits (~falafel@65.155.184.35) (Remote host closed the connection)
05:05:17 falafel joins (~falafel@65.155.184.35)
05:06:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:07:16 falafel_ joins (~falafel@2600:100e:b102:b424:c9d2:9986:8bf7:dec8)
05:07:16 slack1256 joins (~slack1256@181.203.36.51)
05:07:52 <slack1256> On yesod, the hamlet/lucius templates should be declared as data on the data-field or somewhere else?
05:07:55 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
05:08:08 Tario joins (~Tario@201.192.165.173)
05:09:25 × falafel quits (~falafel@65.155.184.35) (Ping timeout: 240 seconds)
05:10:43 polyrain joins (~polyrain@130.102.13.188)
05:11:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
05:11:10 × fragamus quits (~michaelgo@73.93.153.72) (Ping timeout: 246 seconds)
05:12:14 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
05:14:02 jsynacek joins (~jsynacek@ip-185-149-130-112.kmenet.cz)
05:21:16 × slack1256 quits (~slack1256@181.203.36.51) (Remote host closed the connection)
05:21:29 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
05:22:24 nyd joins (~lpy@unaffiliated/elysian)
05:23:35 × cdepillabout quits (~cdepillab@pl35600.ag1001.nttpc.ne.jp) (Ping timeout: 265 seconds)
05:24:40 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
05:26:52 Stanley00 joins (~stanley00@unaffiliated/stanley00)
05:35:11 × polyrain quits (~polyrain@130.102.13.188) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:37:07 × Tene quits (~tene@poipu/supporter/slacker/tene) (Remote host closed the connection)
05:37:07 × ByronJohnson quits (~bairyn@unaffiliated/bob0) (Remote host closed the connection)
05:37:29 ensyde joins (~ensyde@2600:1702:2e30:1a40:e1f9:6cbb:4eca:3c84)
05:39:37 polyrain joins (~polyrain@130.102.13.188)
05:40:12 × polyrain quits (~polyrain@130.102.13.188) (Client Quit)
05:41:25 mirrorbird is now known as psut
05:42:02 × ensyde quits (~ensyde@2600:1702:2e30:1a40:e1f9:6cbb:4eca:3c84) (Ping timeout: 260 seconds)
05:42:22 polyrain joins (~polyrain@130.102.13.188)
05:42:26 × polyrain quits (~polyrain@130.102.13.188) (Client Quit)
05:43:21 psut is now known as mirrorbird
05:44:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:54:03 × drbean quits (~drbean@TC210-63-209-65.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
05:55:15 polyrain joins (~polyrain@130.102.13.188)
06:00:08 × addcninblue quits (~addison@c-73-158-198-149.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
06:00:43 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
06:01:31 drbean joins (~drbean@TC210-63-209-207.static.apol.com.tw)
06:01:34 × polyrain quits (~polyrain@130.102.13.188) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:02:16 polyrain joins (~polyrain@130.102.13.188)
06:02:27 × acidjnk_new2 quits (~acidjnk@p200300d0c72378290964073eddc5c406.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
06:02:44 × Rcsprinter quits (~Rcsprinte@192.30.89.67) (Ping timeout: 265 seconds)
06:03:05 × polyrain quits (~polyrain@130.102.13.188) (Client Quit)
06:08:17 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
06:09:35 ephemera_ joins (~E@122.34.1.187)
06:11:11 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
06:12:25 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
06:15:06 <avp> https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=004c05badb7b60c82c2a112906ceec46 - i have a structure like this and I want to be able to create a Foo. My solutions so far are: store Bar in an Option temporarily (bad because I don't want to force an Option check on Foo) or don't store `shared` in Bar at all (bad because I then have to pass shared to `bar` every time I want
06:15:08 <avp> to make a call)
06:16:13 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
06:16:49 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
06:16:50 <avp> ...wrong channel, sorry
06:17:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:19:57 × JordiGH quits (jordi@octave/developer/JordiGH) (Ping timeout: 260 seconds)
06:21:18 Deide joins (~Deide@217.155.19.23)
06:24:14 × xff0x quits (~fox@2001:1a81:53f8:9f00:5588:893c:8299:71d2) (Ping timeout: 246 seconds)
06:25:20 xff0x joins (~fox@2001:1a81:53f8:9f00:c4e:1637:517e:b477)
06:30:44 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 272 seconds)
06:30:53 ephemera__ joins (~E@122.34.1.187)
06:31:41 cdepillabout joins (~cdepillab@pl35600.ag1001.nttpc.ne.jp)
06:32:51 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:36:06 polyrain joins (~polyrain@130.102.13.188)
06:37:33 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Quit: WeeChat 2.9)
06:38:42 toorevitimirp joins (~tooreviti@117.182.180.0)
06:39:47 × xff0x quits (~fox@2001:1a81:53f8:9f00:c4e:1637:517e:b477) (Ping timeout: 244 seconds)
06:40:31 xff0x joins (~fox@2001:1a81:53f8:9f00:1de1:3046:a1d5:380a)
06:42:19 × polyrain quits (~polyrain@130.102.13.188) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:44:35 Sanchayan joins (~Sanchayan@136.185.169.16)
06:45:29 polyrain joins (~polyrain@130.102.13.108)
06:47:51 × polyrain quits (~polyrain@130.102.13.108) (Client Quit)
06:48:31 <proofofme> Still having problems with Cassava for CSV Parsing. I posted the issue in this pastebin: https://pastebin.com/raw/rhQ83Tch Anyone know what I need to do to get this working?
06:52:19 × Nikotiini quits (~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) (Ping timeout: 246 seconds)
06:53:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:55:41 AmberJ_ joins (~AmberJ_@89.47.234.28)
06:56:37 × taurux quits (~taurux@net-188-216-43-120.cust.vodafonedsl.it) (Ping timeout: 264 seconds)
06:57:49 × ephemera__ quits (~E@122.34.1.187) (Ping timeout: 264 seconds)
06:58:03 × drbean quits (~drbean@TC210-63-209-207.static.apol.com.tw) (Ping timeout: 260 seconds)
06:58:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
06:58:34 taurux joins (~taurux@net-93-144-13-195.cust.dsl.teletu.it)
06:59:02 ephemera_ joins (~E@122.34.1.187)
07:05:24 <koz_> proofofme: You need to actually import the module where decode is defined.
07:05:31 <koz_> Also, put a type signature on main please.
07:05:38 <proofofme> I did: import Data.CSV
07:06:04 <koz_> I am not seeing that in the thing you linked.
07:07:04 <proofofme> you mean this in the cabal file: cassava ^>= 0.5.2.0 ?
07:07:29 <proofofme> https://hackage.haskell.org/package/cassava-0.5.2.0/docs/Data-Csv.html
07:07:30 <koz_> proofofme: No. In your 'code' section, there is no import line.
07:07:50 <koz_> Like 'import Data.CSV' as you described.
07:07:51 <proofofme> ah, I excluded the portion above ...
07:08:04 <proofofme> I excluded from the snippet. It is there though
07:08:04 <koz_> proofofme: Yeah, we kinda need you not to do that.
07:08:19 <koz_> Please pastebin _the_ _exact_ source file.
07:08:22 <koz_> Omitting nothing.
07:08:25 Nikotiini joins (~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com)
07:08:30 <proofofme> ok one second
07:08:36 <koz_> Since in this case, it is actually fairly critical.
07:08:58 hackage multipart 0.2.1 - Parsers for the HTTP multipart format https://hackage.haskell.org/package/multipart-0.2.1 (ErikHesselink)
07:09:39 <proofofme> https://pastebin.com/XqtKh9Ac
07:10:30 <koz_> "import Data.CSV" <-- contrast with the module's actual name as per https://hackage.haskell.org/package/cassava-0.5.2.0/docs/Data-Csv.html
07:11:16 × Rudd0 quits (~Rudd0@185.189.115.98) (Ping timeout: 272 seconds)
07:11:23 <proofofme> ah ...
07:11:25 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
07:11:37 <proofofme> wow ... spent so long on this tonight ...
07:11:48 <koz_> proofofme: Happens.
07:12:43 ephemera_ joins (~E@122.34.1.187)
07:13:40 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
07:15:46 lep-delete is now known as Guest88073
07:15:47 Guest88073 is now known as lep-delete
07:17:44 polyrain joins (~polyrain@130.102.13.108)
07:18:52 <proofofme> what's the standard way of handling an `either`?
07:19:11 <koz_> proofofme: What do you mean by 'handling'?
07:19:14 × polyrain quits (~polyrain@130.102.13.108) (Client Quit)
07:20:26 <proofofme> so I have an assignment to `x` which is of type Either String (Vector(Text, Int)). how do I process `x` and do the same functions as fromRight and fromLeft, but the right way
07:20:56 <koz_> Well, you'd normally case-match.
07:21:17 × ericsagnes quits (~ericsagne@2405:6580:0:5100:555b:b346:7063:867) (Ping timeout: 272 seconds)
07:21:40 <koz_> https://gist.github.com/kozross/b3e00bd68bb1ddd91c09be215182f1bc
07:21:41 <proofofme> is there a function analogous to the `maybe` for handling Maybes?
07:21:45 <koz_> :t either
07:21:47 <lambdabot> (a -> c) -> (b -> c) -> Either a b -> c
07:21:57 × toorevitimirp quits (~tooreviti@117.182.180.0) (Remote host closed the connection)
07:22:13 <koz_> I don't recommend it here, though, mostly because your Either represents an error condition versus a successful parse.
07:22:22 <koz_> So jamming it all into either is probably not the best idea.
07:22:25 toorevitimirp joins (~tooreviti@117.182.180.0)
07:22:42 <proofofme> case matching it is then. Thanks koz!
07:24:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:25:32 polyrain joins (~polyrain@130.102.13.108)
07:25:33 coot joins (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl)
07:28:33 × polyrain quits (~polyrain@130.102.13.108) (Client Quit)
07:29:01 christo joins (~chris@81.96.113.213)
07:30:31 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
07:31:40 polyrain joins (~polyrain@130.102.13.108)
07:31:43 × polyrain quits (~polyrain@130.102.13.108) (Client Quit)
07:32:38 danvet_ joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:33:02 ericsagnes joins (~ericsagne@2405:6580:0:5100:99c7:29a6:2c7f:b89d)
07:33:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:33:21 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
07:33:38 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
07:34:07 fxg joins (~fxg@unaffiliated/fxg)
07:35:25 christo joins (~chris@81.96.113.213)
07:35:30 polyrain joins (~polyrain@130.102.13.108)
07:35:48 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 260 seconds)
07:36:13 × cdepillabout quits (~cdepillab@pl35600.ag1001.nttpc.ne.jp) (Ping timeout: 264 seconds)
07:37:05 × fxg quits (~fxg@unaffiliated/fxg) (Client Quit)
07:37:50 drbean joins (~drbean@TC210-63-209-56.static.apol.com.tw)
07:42:01 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
07:42:06 × tzh quits (~tzh@c-73-94-222-143.hsd1.mn.comcast.net) (Quit: zzz)
07:43:11 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
07:43:31 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:43:31 × polyrain quits (~polyrain@130.102.13.108) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:45:25 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
07:46:45 polyrain joins (~polyrain@130.102.13.108)
07:49:15 × polyrain quits (~polyrain@130.102.13.108) (Client Quit)
07:51:28 × xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection)
07:51:54 falafel__ joins (~falafel@65.155.184.35)
07:53:28 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
07:53:33 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
07:54:11 × falafel_ quits (~falafel@2600:100e:b102:b424:c9d2:9986:8bf7:dec8) (Ping timeout: 244 seconds)
07:54:21 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
07:54:52 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
07:56:10 christo joins (~chris@81.96.113.213)
07:57:18 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
07:57:28 hackage arrow-list 0.7.1 - List arrows for Haskell. https://hackage.haskell.org/package/arrow-list-0.7.1 (ErikHesselink)
07:57:45 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
07:59:27 hackage pandora 0.3.1 - A box of patterns and paradigms https://hackage.haskell.org/package/pandora-0.3.1 (iokasimovmt)
08:04:03 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:06:23 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
08:06:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
08:08:16 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
08:11:52 × kupi quits (uid212005@gateway/web/irccloud.com/x-vfsmeyjszxcityxd) (Quit: Connection closed for inactivity)
08:14:14 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:16:28 hackage HDBC-postgresql 2.3.2.8 - PostgreSQL driver for HDBC https://hackage.haskell.org/package/HDBC-postgresql-2.3.2.8 (ErikHesselink)
08:18:26 chaosmasttter joins (~chaosmast@p200300c4a710fa01f8ce4354cf8ba13b.dip0.t-ipconnect.de)
08:18:58 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
08:21:57 hackage uri-encode 1.5.0.7 - Unicode aware uri-encoding https://hackage.haskell.org/package/uri-encode-1.5.0.7 (ErikHesselink)
08:22:38 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 256 seconds)
08:24:17 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:28:52 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
08:29:48 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 272 seconds)
08:30:10 ephemera_ joins (~E@122.34.1.187)
08:30:27 Super_Feeling joins (~Super_Fee@103.108.4.170)
08:31:43 × Super_Feeling quits (~Super_Fee@103.108.4.170) (Client Quit)
08:32:05 z0 joins (~z0@bl15-163-199.dsl.telepac.pt)
08:32:28 z0 is now known as Guest561
08:33:33 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds)
08:34:24 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:35:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:35:53 × Guest30638 quits (~z0@bl15-33-197.dsl.telepac.pt) (Ping timeout: 260 seconds)
08:36:23 × drbean quits (~drbean@TC210-63-209-56.static.apol.com.tw) (Ping timeout: 256 seconds)
08:38:45 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
08:40:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
08:41:52 × nek0 quits (~nek0@mail.nek0.eu) (Remote host closed the connection)
08:42:43 kritzefitz joins (~kritzefit@212.86.56.80)
08:44:00 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
08:45:19 ephemera_ joins (~E@122.34.1.187)
08:45:46 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
08:46:39 bairyn joins (~bairyn@unaffiliated/bob0)
08:54:48 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:58:13 Slava_ joins (~textual@2a02:8308:89:8a00:2cbe:ab16:cb7a:e0ed)
08:58:41 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
08:59:28 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
09:00:02 × AmberJ_ quits (~AmberJ_@89.47.234.28) ()
09:00:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:04:58 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:09:05 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
09:09:39 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
09:13:53 AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl)
09:18:09 knupfer joins (~Thunderbi@200116b82c6f4e00e94970f51329056d.dip.versatel-1u1.de)
09:20:38 wei2912 joins (~wei2912@unaffiliated/wei2912)
09:21:44 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
09:22:02 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
09:22:02 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
09:22:02 GyroW joins (~GyroW@unaffiliated/gyrow)
09:22:51 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-vyxxbgdzqophhzrj) (Quit: Connection closed for inactivity)
09:23:14 christo joins (~chris@81.96.113.213)
09:23:32 immanuel32 joins (9d617a12@157.97.122.18)
09:24:25 bergsans joins (~bergsans@c80-217-8-29.bredband.comhem.se)
09:24:32 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
09:25:12 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:25:41 × albertus1 quits (~seb@x4db9b903.dyn.telefonica.de) (Ping timeout: 256 seconds)
09:26:07 × GyroW quits (~GyroW@unaffiliated/gyrow) (Client Quit)
09:26:19 Wuzzy joins (~Wuzzy@p5790ef06.dip0.t-ipconnect.de)
09:26:26 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
09:26:27 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
09:26:27 GyroW joins (~GyroW@unaffiliated/gyrow)
09:27:13 jchia__ joins (~jchia@58.32.37.146)
09:29:28 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
09:30:45 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
09:31:07 × GyroW quits (~GyroW@unaffiliated/gyrow) (Client Quit)
09:31:18 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
09:31:18 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
09:31:18 GyroW joins (~GyroW@unaffiliated/gyrow)
09:31:46 <maerwald> is there anything special to consider to make a haskell program work correctly with SIGSTOP? I think there's something weird with async going on or so
09:34:05 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
09:37:50 ensyde joins (~ensyde@2600:1702:2e30:1a40:e1f9:6cbb:4eca:3c84)
09:42:31 × ensyde quits (~ensyde@2600:1702:2e30:1a40:e1f9:6cbb:4eca:3c84) (Ping timeout: 272 seconds)
09:44:05 × falafel__ quits (~falafel@65.155.184.35) (Ping timeout: 240 seconds)
14:28:46 ircbrowse_tom joins (~ircbrowse@64.225.78.177)
14:28:46 Server sets mode +CLnt
14:29:00 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
14:29:22 × knupfer quits (~Thunderbi@200116b82c6f4e00e94970f51329056d.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
14:29:23 knupfer1 is now known as knupfer
14:31:07 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
14:31:24 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
14:31:25 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
14:31:25 GyroW joins (~GyroW@unaffiliated/gyrow)
14:37:05 ircbrowse_tom joins (~ircbrowse@64.225.78.177)
14:37:06 Server sets mode +CLnt
14:39:31 fendor_ is now known as fendor
14:40:16 × Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 246 seconds)
14:42:13 Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus)
14:44:58 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:45:31 xerox__ joins (~xerox@unaffiliated/xerox)
14:47:26 frdg joins (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net)
14:48:27 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
14:49:38 JordiGH joins (jordi@octave/developer/JordiGH)
14:53:18 invaser joins (~Thunderbi@31.148.23.125)
14:53:31 mmkarakaya joins (b0584711@gateway/web/cgi-irc/kiwiirc.com/ip.176.88.71.17)
14:54:04 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
14:55:50 × tv quits (~tv@unaffiliated/tv) (Ping timeout: 256 seconds)
14:56:53 <AWizzArd> Search for `left 4`: https://github.com/AJChapman/formatting/blob/master/README.md – why does formatting a 10 via `left 4 ' '` result in " 10" and not " 10" (1 vs 2 spaces)?
14:56:58 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 256 seconds)
14:58:05 <AWizzArd> Ah okay, nevermind. I see that this html. In the raw readme source it *does* have two spaces.
14:58:24 ephemera_ joins (~E@122.34.1.187)
14:58:26 <merijn> AWizzArd: Because html sucks ;)
14:58:38 <merijn> They should've use non-breaking space in the table
14:58:40 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
14:58:49 <merijn> breaking space are compacted in html
14:58:49 <AWizzArd> merijn: yeah
14:58:49 tv joins (~tv@unaffiliated/tv)
14:59:58 ggole joins (~ggole@2001:8003:8119:7200:a8c8:f35b:bee4:ed57)
15:00:02 × Guest24779 quits (~sbc@185.204.1.185) ()
15:03:16 <merijn> Does anyone know if/how I can pass extra cabal flags for hie-bios to use?
15:03:36 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
15:04:13 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:04:37 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
15:05:18 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
15:05:54 ephemera_ joins (~E@122.34.1.187)
15:07:57 hackage cabal-install-parsers 0.4 - Utilities to work with cabal-install files https://hackage.haskell.org/package/cabal-install-parsers-0.4 (phadej)
15:08:43 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
15:10:20 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
15:11:38 ephemera_ joins (~E@122.34.1.187)
15:11:46 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Quit: Leaving)
15:11:53 <merijn> ugh, why are github issues so terrible? I know an issue exists that I talked in and I just can't find it >.>
15:12:32 × ericsagnes quits (~ericsagne@2405:6580:0:5100:2c0d:cfc:8f83:b542) (Ping timeout: 260 seconds)
15:14:23 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:15:22 <phadej> in Cabal issue tracker? :)
15:15:35 <merijn> Yes, although it turns out, I'm in fact, just blind
15:16:04 <phadej> there are just too many issues
15:16:28 × LKoen quits (~LKoen@81.255.219.130) (Remote host closed the connection)
15:16:47 <merijn> Infinite yaks :)
15:17:10 <AWizzArd> Ambiguous occurrence ‘putStrLn’ for this use: main = putStrLn ("Hallo" :: Text)
15:17:18 <merijn> AWizzArd: Well, yes
15:17:21 <AWizzArd> I know that putStrLn is not a method of some type class.
15:17:32 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 258 seconds)
15:17:39 <merijn> It's ambiguous because you, presumably imported the text version of putStrLn
15:17:46 <AWizzArd> But is there a good reason why only on type class methods some dispatching/inference can occur?
15:17:47 <merijn> But the string version is in Prelude
15:18:07 <merijn> AWizzArd: Yes. That reason being: We don't want to go insane
15:18:19 <AWizzArd> (-:
15:18:32 <merijn> AWizzArd: "it's easy, just dispatch on the type!"
15:18:36 <merijn> Which seems easy enough
15:18:41 <AWizzArd> si
15:18:44 Kipras_ joins (~Kipras@78-56-235-39.static.zebra.lt)
15:18:47 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
15:18:50 <merijn> Until you consider polymorphic types, typeclasses and how they all interact
15:18:54 <phadej> if you want to dispatch on type, write a typeclass :)
15:19:16 <phadej> type-directed-name-resolution doesn't mix well with type-classes
15:19:22 <AWizzArd> phadej: yes yes, that would help, agreed. I just wonder why this magic doesn’t work on non-method functions.
15:19:24 Amras joins (~Amras@unaffiliated/amras0000)
15:19:32 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
15:19:41 <phadej> or rather, "no one really thought about it, whether these can be mixed"
15:19:49 <AWizzArd> k
15:19:52 ephemera_ joins (~E@122.34.1.187)
15:19:57 <AWizzArd> It just isn’t a trivial thing is what I take away.
15:20:01 <geekosaur> there have been multiple discussions of "type directed name resolution"
15:20:13 <phadej> AWizzArd: boring answer is that "name resolution" happens before type-checking
15:20:20 × Kipras_ quits (~Kipras@78-56-235-39.static.zebra.lt) (Read error: Connection reset by peer)
15:20:33 <merijn> AWizzArd: There's two factors: one beyond the trivial case you list it's very hard to figure out how the resolution should happen
15:20:34 <phadej> and no sane person want to mix them in GHC :)
15:20:38 <phadej> s/mix/combine/
15:21:05 <merijn> AWizzArd: And, much more importantly, if you do figure out the resolution method you now have to *memorise and remember it to read any Haskell ever*
15:21:08 <AWizzArd> pjb: compare this with your `title` uses.
15:21:11 <davean> if it didn't happen before, what would you be type checking?
15:21:32 <merijn> AWizzArd: You end up in Scala implicit territory where reordering imports changes how implicits are resolved and changes the behaviour of code
15:21:47 <merijn> AWizzArd: Which seems like the kinda thing sane people would like to avoid :)
15:21:56 matp joins (~matp@185.163.110.116)
15:21:57 <AWizzArd> merijn: uh, yess, didn’t know that one (:
15:21:58 avdb joins (~avdb@ip-213-49-61-171.dsl.scarlet.be)
15:22:25 × kipras quits (~Kipras@78-56-235-39.static.zebra.lt) (Ping timeout: 264 seconds)
15:24:22 <merijn> AWizzArd: C++ does support this via overloading and it's *hell*
15:24:33 <phadej> I think you can have sane-ish type-directed name resolution, but in the `putStrLn ("Hallo" :: Text)` it won't work
15:24:41 ericsagnes joins (~ericsagne@2405:6580:0:5100:8084:b111:4aaf:f484)
15:24:48 <merijn> I need 2 more phds to be able to confidently know what overload gets picked in all scenarios
15:25:15 <merijn> So, instead, everyone relies on "it mostly does the right thing, usually, so cross your fingers you don't mess up"
15:25:23 <phadej> e.g. it will effectively stop by saying "there are two functions named putStrLn, I cannot proceed"
15:25:45 <merijn> Of course C++ has the added "fun" that there's also implicit conversions, so it might do a conversion *and then* decide which overload to take
15:26:20 <merijn> I'd rather just add a qualified import and not have to think about ad hoc resolution schemes :)
15:26:24 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:26:38 boristheblade joins (~boristheb@37-219-58-2.nat.bb.dnainternet.fi)
15:26:39 × xff0x quits (~fox@2001:1a81:53f8:9f00:1de1:3046:a1d5:380a) (Quit: xff0x)
15:26:41 <merijn> mpickering: ping?
15:26:42 <AWizzArd> merijn: right
15:27:21 <monochrom> Oh, C++ overloading. I thought you were talking about Haskell overlapping instances. :)
15:27:37 <merijn> AWizzArd: Anyway, if you go to the GHC wiki or google for haskell and "type directed name resolution" you should find a bunch of discussions on the topic. But in the end the consensus has always been "this is probably adding more pain than it removes"
15:28:22 <monochrom> IIRC C++'s resolution is very detailedly spelt out but it is lengthy and interwined, it takes lawyers.
15:28:23 <AWizzArd> Oki, makes sense!
15:28:25 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
15:28:45 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
15:28:45 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
15:28:45 GyroW joins (~GyroW@unaffiliated/gyrow)
15:29:03 <hpc> the @quote-y way to say it is after a certain point, type directed name resolution always resolves the name to "oh jesus" :D
15:30:03 <merijn> It's like "a better Num hierarchy" everyone agrees we should have a better one, but actually making one turns out to be surprisingly hard :p
15:30:16 <monochrom> @quote wrexem resolution
15:30:17 <lambdabot> wrexem says: "Its not my fault that your resolution is messed up because you are blind"
15:30:37 <merijn> monochrom: *everything* takes lawyers in C++
15:30:58 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
15:31:06 <merijn> I have some C++ code using an initialiser list that worked fine 3 years ago, but it's refusing to compile now and I'll be damned if I know why not...
15:31:20 <phadej> you can stick to core guidelines though, and then life will be easier
15:31:23 <merijn> The code hasn't changed in all that time, so must be something in clang *and* g++
15:31:43 <monochrom> This is why my prof said to keep the old compiler and the old OS.
15:32:02 <monochrom> You may also need to keep the old hardware.
15:33:32 × ephemera_ quits (~E@122.34.1.187) (Quit: No Ping reply in 180 seconds.)
15:34:01 ephemera_ joins (~E@122.34.1.187)
15:34:07 × avdb quits (~avdb@ip-213-49-61-171.dsl.scarlet.be) (Quit: WeeChat 2.9)
15:34:45 berberman_ joins (~berberman@unaffiliated/berberman)
15:35:23 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 244 seconds)
15:35:23 <merijn> monochrom: My own damn fold for not having the compile step in my code so I forgot how I ever compiled it 3 years ago... >.>
15:35:30 xff0x joins (~fox@2001:1a81:53f8:9f00:217d:12db:12d5:cd4c)
15:35:38 <merijn> Automate all the things!
15:35:52 <merijn> s/fold/fault
15:35:57 <merijn> clearly to tired to English
15:36:19 <phadej> having --std... argument helps :)
15:36:31 <phadej> at least C++ has that, so there is a chance to compile old code with new compiler
15:36:32 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:36:39 <merijn> phadej: oh, I always use -std
15:36:49 <phadej> merijn: it helps to write it down too :)
15:37:55 <merijn> phadej: This is a leftover from the dark early days where I just migrated my codebase from python to Haskell
15:38:42 × stefan-_ quits (~cri@42dots.de) (Read error: Connection reset by peer)
15:39:10 stefan-__ joins (~cri@42dots.de)
15:39:30 <merijn> phadej: My happiness is proportional to the percentage of orange in this plot: http://files.inconsistent.nl/sloc-time.png :p
15:40:02 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 256 seconds)
15:40:45 × dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
15:41:01 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
15:41:13 × frdg quits (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection)
15:41:31 ephemera_ joins (~E@122.34.1.187)
15:41:32 dirediresalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
15:42:00 contiver joins (~contiver@84-115-64-51.wifi.dynamic.surfer.at)
15:43:03 <xsperry> to be fair, breaking changes happen in haskell world a lot more than in the C++ world
15:53:28 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
15:53:38 GyroW joins (~GyroW@d54c03e98.access.telenet.be)
15:53:38 × GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host)
15:53:38 GyroW joins (~GyroW@unaffiliated/gyrow)
15:54:50 × jchia__ quits (~jchia@58.32.37.146) (Read error: Connection reset by peer)
15:55:47 jchia__ joins (~jchia@58.32.37.146)
15:56:47 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:57:58 hackage hadolint 1.18.1 - Dockerfile Linter JavaScript API https://hackage.haskell.org/package/hadolint-1.18.1 (lorenzo)
15:58:03 theelous3 joins (~theelous3@unaffiliated/theelous3)
15:59:49 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
15:59:49 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
15:59:49 GyroW_ joins (~GyroW@unaffiliated/gyrow)
16:00:44 × Gerula quits (~Gerula@unaffiliated/gerula) (Quit: Leaving)
16:01:21 isovector1 joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com)
16:01:22 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
16:01:34 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
16:02:07 ddellacosta joins (~dd@86.106.121.168)
16:03:58 scratchy_beard joins (~doug@cpc110383-king13-2-0-cust408.19-1.cable.virginm.net)
16:04:50 frdg joins (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net)
16:06:57 kupi joins (uid212005@gateway/web/irccloud.com/x-gbjfbdizrnfenkgr)
16:07:20 Gurkenglas_ is now known as Gurkenglas
16:07:30 <koz_> merijn: Yeah, both C and C++ _force_ you to become a lawyer in fairly short order.
16:08:02 × fendor quits (~fendor@77.119.130.12.wireless.dyn.drei.com) (Remote host closed the connection)
16:10:28 hackage cabal-plan 0.7.2.0 - Library and utility for processing cabal's plan.json file https://hackage.haskell.org/package/cabal-plan-0.7.2.0 (phadej)
16:12:09 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
16:13:35 texasmynsted joins (688c35c3@104.140.53.195)
16:14:14 <texasmynsted> When I look at tutorials for Template Haskell, they often say "use ghci like this . . ."
16:14:38 <texasmynsted> oh. hmm. Going to try something before I finish my quesiton
16:14:46 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
16:16:10 <phadej> oh, when time-1.11 got released
16:16:20 <phadej> something to spend the rest of this weekend with
16:17:20 aweinstock joins (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com)
16:17:57 <monochrom> "timely release"
16:18:30 × stefan-__ quits (~cri@42dots.de) (Read error: Connection reset by peer)
16:18:35 <phadej> 4 days ago already!
16:18:41 stefan-__ joins (~cri@42dots.de)
16:18:59 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
16:20:29 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
16:21:27 <texasmynsted> Okay. I have the TemplateHaskell extension loaded in my cabal file. When I do `cabal repl` I can then do `:m + Language.Haskell.TH` w/o error.
16:21:41 <texasmynsted> But then QuasiQuotes are not understood in the REPL.
16:21:44 <texasmynsted> I get an error.
16:21:49 × contiver quits (~contiver@84-115-64-51.wifi.dynamic.surfer.at) (Ping timeout: 264 seconds)
16:21:53 <texasmynsted> <interactive>:2:7: error: parse error on input ‘|’
16:22:30 <monochrom> QuasiQuotes is a different extension.
16:22:33 <texasmynsted> Here is an example https://gist.github.com/mmynsted/2056ad4a2b2960dab3808588cca12607
16:23:06 × knupfer quits (~Thunderbi@i59F7FFD6.versanet.de) (Ping timeout: 256 seconds)
16:23:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:23:42 <monochrom> Oh, we call that quote, not quasiquote. Quasiquotes are user-defined, e.g., [myfunc| abc |]
16:23:44 <c_wraith> texasmynsted: in general, ghci doesn't enable an extension just because you loaded a file that has it enabled
16:24:17 <c_wraith> actually, I can't think of any cases where it does so
16:25:06 <geekosaur> it doesn't that I know of. ":showi language" iirc shows what extensions are active
16:25:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:25:20 <texasmynsted> okay
16:26:00 × boristheblade quits (~boristheb@37-219-58-2.nat.bb.dnainternet.fi) (Quit: Lost terminal)
16:26:07 <texasmynsted> so it is ignoring my project.cabal file with the language extensions defined
16:26:48 <davean> If you wanted it to respect that, use cabal repl
16:27:13 christo joins (~chris@81.96.113.213)
16:27:27 <geekosaur> "When I do `cabal repl`"
16:28:06 <texasmynsted> Okay, inside of the REPL, if I explicitly do `:set -XTemplateHaskell` then it works as I expect.
16:28:43 <texasmynsted> I guess I need to read up on cabal to see why it is not reading the language extensions from the .cabal file.
16:29:08 <monochrom> It is certainly honoured in build mode.
16:29:18 <texasmynsted> davean, I did use cabal repl
16:29:50 fendor joins (~fendor@046125249052.public.t-mobile.at)
16:30:06 <texasmynsted> Yes, when I build my project the .cabal file is used as I expect. When I just run `cabal repl` is does not
16:31:30 <texasmynsted> hmm. Also did not seem to read it when I did `cabal real --cabal-file thask.cabal`
16:31:37 <maerwald> texasmynsted: did you specifiy the library component?
16:32:13 <maerwald> cabal repl lib:<component>
16:32:21 <texasmynsted> no
16:32:30 fendor_ joins (~fendor@212095005159.public.telering.at)
16:33:42 texasmynsted shrug
16:35:04 × fendor quits (~fendor@046125249052.public.t-mobile.at) (Ping timeout: 256 seconds)
16:37:20 Rudd0^ joins (~Rudd0@185.189.115.98)
16:38:21 Gerula joins (~Gerula@unaffiliated/gerula)
16:38:28 <texasmynsted> okay
16:38:54 <texasmynsted> At least I can set the extensions directly in the REPL.
16:39:16 <texasmynsted> I can worry about why it is not loading as I expect another time
16:40:27 <texasmynsted> I am trying to see if it is worth the TH learning curve to use it to read a file of lines where each line has two words, into a list of pairs.
16:40:43 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 258 seconds)
16:41:21 <texasmynsted> The reason I would want to use TH is because it could learn how TH works, and I would rather read these at compile time anyway.
16:42:42 conal joins (~conal@172.255.125.154)
16:45:18 justache joins (~justache@unaffiliated/justache)
16:45:19 × acidjnk_new quits (~acidjnk@p200300d0c7237829089b089ef2235b8a.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
16:49:11 × frdg quits (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection)
16:50:00 × immanuel32 quits (9d617a12@157.97.122.18) (Remote host closed the connection)
16:50:51 <merijn> texasmynsted: Also, note that ghci distinguishes "extensions in loaded files" and "extensions in the interactive session"
16:51:03 <merijn> :set and :seti respectively
16:51:39 × fendor_ quits (~fendor@212095005159.public.telering.at) (Remote host closed the connection)
16:51:49 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
16:52:04 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
16:52:05 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
16:52:05 GyroW joins (~GyroW@unaffiliated/gyrow)
16:54:35 × nyd quits (~lpy@unaffiliated/elysian) (Quit: nyd)
16:55:25 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 264 seconds)
16:55:37 tungki joins (uid469991@gateway/web/irccloud.com/x-eyynitaofwtlmrqb)
16:56:47 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:59:05 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:14e9:97cc:5d44:8325) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:00:49 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
17:04:12 <monochrom> You know what, I can't reproduce the problem.
17:04:49 <monochrom> "default-extensions: TemplateHaskell" allows me to use quotes in cabal repl.
17:07:23 dmc00 parts (~dmc@unaffiliated/dmc00) ()
17:07:34 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-hxsutijujpqeyumd) (Quit: Connection closed for inactivity)
17:08:38 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
17:10:08 × toorevitimirp quits (~tooreviti@117.182.180.0) (Remote host closed the connection)
17:10:44 <texasmynsted> merijn oh thankyou
17:11:03 <texasmynsted> hm
17:11:11 <monochrom> :set implies :seti
17:11:26 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
17:11:44 <monochrom> :seti is useful when you want the option for your hand-entered things but not for the code you will :load
17:13:07 <texasmynsted> I was using `other-extensions` rather than `default-extensions`. When I use `default-extensions` it works as I would have expected.
17:13:08 <texasmynsted> :-)
17:14:31 nbloomf joins (~nbloomf@76.217.43.73)
17:14:55 <c_wraith> ah, yes. other-extensions is purely documentation. I don't even know why it's there, really. If there were compilers other than GHC practically available, it might matter...
17:15:56 <geekosaur> supposedly so it can verify that other extensions used in individual source files are supported by the selected compiler before building the project, as I recall it
17:16:22 × nbloomf quits (~nbloomf@76.217.43.73) (Client Quit)
17:17:43 <monochrom> Another is as in the user guide "In Cabal-1.24 the dependency solver will use [other-extensions] and default-extensions information"
17:18:01 <c_wraith> ... for what?
17:18:14 <monochrom> Heh I don't actually know.
17:18:53 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
17:19:35 × GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
17:19:50 GyroW joins (~GyroW@d54c03e98.access.telenet.be)
17:19:50 × GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host)
17:19:50 GyroW joins (~GyroW@unaffiliated/gyrow)
17:24:51 × conal quits (~conal@172.255.125.154) (Quit: Computer has gone to sleep.)
17:26:20 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:26:22 <merijn> c_wraith: You know, for other non-GHC compilers
17:26:38 christo joins (~chris@81.96.113.213)
17:27:10 <merijn> (tbh, I'm in favour of not tying all out tooling to hard to GHC, because that only makes the challenge of making a non-GHC competitor that much more challenging)
17:27:18 <monochrom> But the "dependency solver" thing doesn't seems to be about other compilers.
17:27:58 conal joins (~conal@172.255.125.154)
17:28:16 <merijn> Sure, no clue what that's about it
17:28:57 <monochrom> "Cabal prior to 1.24 will abort compilation if the current compiler doesn’t provide the extensions"
17:29:33 <monochrom> That begins to sound like since 1.24 they have stopped dreaming "there could be another compiler".
17:29:40 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 246 seconds)
17:30:21 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:30:37 christo joins (~chris@81.96.113.213)
17:30:46 <monochrom> Darn. Hugs was so promising.
17:30:58 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Quit: WeeChat 2.7)
17:31:05 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
17:31:15 <c_wraith> and using it between versions of ghc doesn't make that much sense. ghc will fail fast if it encounters extensions it doesn't know anyway
17:31:33 <geekosaur> how aboutother versions of the current compiler, which might have been considered at one point for dependency checking?
17:31:43 × karanlikmadde quits (~karanlikm@dynamic-089-012-174-005.89.12.pool.telefonica.de) (Quit: karanlikmadde)
17:31:47 <c_wraith> I mean, the first thing it has to do when compiling is a topological sort considering imports.
17:31:55 <monochrom> I know right? It is not like "dependency solver says you need GHC 9.12 so let's download it right now".
17:32:23 <c_wraith> since that's parsing anyway, it can fail on an unknown extension at that point.
17:32:25 <geekosaur> stack...
17:32:38 nschoe joins (~quassel@2a01:e0a:3c4:c7b0:6d74:2078:bb8:b17d)
17:33:19 <c_wraith> stack doesn't do anything like that, though. stack's philosophy is the opposite. it alone determines what to install, dependencies get no say
17:33:30 <MarcelineVQ> is -XPackageImports relevant
17:33:46 <monochrom> Yeah, stack, except stack is usually in the other direction "dependency solver says you need legacy GHC 4.6"
17:34:19 <geekosaur> right, but I can imagine someone thinking "let's provide rough feature parity, but our way instead"
17:34:22 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:34:35 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 260 seconds)
17:35:03 christo joins (~chris@81.96.113.213)
17:35:19 <monochrom> MarcelineVQ: In what context?
17:35:35 <MarcelineVQ> cabal caring about extensions during solving
17:35:38 × phr0m3indh0v3n quits (~Android@84.241.205.21) (Read error: Connection reset by peer)
17:35:46 <monochrom> I think no.
17:35:58 phr0m3indh0v3n joins (~Android@84.241.205.21)
17:36:01 <monochrom> But I really don't know.
17:37:47 lucasb joins (uid333435@gateway/web/irccloud.com/x-jgpbbuburcbcxbsy)
17:43:07 abhixec joins (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
17:43:25 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
17:44:57 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
17:44:57 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
17:44:57 GyroW_ joins (~GyroW@unaffiliated/gyrow)
17:45:28 <christo> hello
17:45:53 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds)
17:45:55 <christo> what is hoogle?
17:46:10 <christo> is it like: searchable haskell documentation or something?
17:46:16 <christo> for libs on hackage?
17:47:46 <geekosaur> yes. you can try an online version covering the standard libraries at hoogle.haskell.org
17:48:17 <geekosaur> but you can also install it locally and index your own packages and their dependencies
17:48:43 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
17:49:11 <merijn> @hoogle (a -> b) -> [a] -> [b]
17:49:12 <lambdabot> Prelude map :: (a -> b) -> [a] -> [b]
17:49:12 <lambdabot> Data.List map :: (a -> b) -> [a] -> [b]
17:49:12 <lambdabot> GHC.Base map :: (a -> b) -> [a] -> [b]
17:50:45 albertus1 joins (~seb@x4db9b903.dyn.telefonica.de)
17:53:47 chaosmasttter joins (~chaosmast@p200300c4a710fa01f8ce4354cf8ba13b.dip0.t-ipconnect.de)
17:54:58 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
18:00:01 × matp quits (~matp@185.163.110.116) ()
18:00:44 gioyik joins (~gioyik@190.67.155.46)
18:04:24 xerox__ is now known as xerox_
18:04:56 × chaosmasttter quits (~chaosmast@p200300c4a710fa01f8ce4354cf8ba13b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
18:05:35 × coot quits (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
18:06:41 <christo> ohhh
18:07:17 <christo> thx
18:08:23 Tene joins (~tene@poipu/supporter/slacker/tene)
18:08:23 × Tene quits (~tene@poipu/supporter/slacker/tene) (Client Quit)
18:08:23 knupfer joins (~Thunderbi@200116b82c6f4e00e9fd13aeb0014cbc.dip.versatel-1u1.de)
18:08:36 Tene joins (~tene@mail.digitalkingdom.org)
18:08:36 × Tene quits (~tene@mail.digitalkingdom.org) (Changing host)
18:08:36 Tene joins (~tene@poipu/supporter/slacker/tene)
18:09:44 alp joins (~alp@2a01:e0a:58b:4920:546:64d9:5065:63aa)
18:09:54 × urdh quits (~urdh@unaffiliated/urdh) (Ping timeout: 260 seconds)
18:10:57 × texasmynsted quits (688c35c3@104.140.53.195) (Remote host closed the connection)
18:11:32 × knupfer quits (~Thunderbi@200116b82c6f4e00e9fd13aeb0014cbc.dip.versatel-1u1.de) (Client Quit)
18:11:41 knupfer joins (~Thunderbi@200116b82c6f4e00e9fd13aeb0014cbc.dip.versatel-1u1.de)
18:13:06 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
18:13:38 kenran joins (~maier@mue-88-130-62-083.dsl.tropolys.de)
18:14:13 contiver joins (~contiver@84-115-65-99.wifi.dynamic.surfer.at)
18:14:54 × Niamkik quits (~Niamkik@80.67.190.201) (Quit: WeeChat 2.6)
18:15:03 × ephemera_ quits (~E@122.34.1.187) (Read error: Connection reset by peer)
18:15:13 Buntspecht joins (~user@unaffiliated/siracusa)
18:16:58 urdh joins (~urdh@unaffiliated/urdh)
18:17:15 ephemera_ joins (~E@122.34.1.187)
18:18:32 chaosmasttter joins (~chaosmast@p200300c4a710fa01f8ce4354cf8ba13b.dip0.t-ipconnect.de)
18:18:36 karanlikmadde joins (~karanlikm@2a01:c22:ac16:a100:a874:6bad:ee0e:3b97)
18:18:58 hackage binaryen 0.0.5.0 - Haskell bindings to binaryen https://hackage.haskell.org/package/binaryen-0.0.5.0 (terrorjack)
18:21:10 codygman joins (~codygman@47-184-107-46.dlls.tx.frontiernet.net)
18:22:40 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
18:23:55 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
18:23:56 ephemera_ joins (~E@122.34.1.187)
18:24:05 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
18:24:05 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
18:24:05 GyroW joins (~GyroW@unaffiliated/gyrow)
18:24:28 ddellacosta joins (~dd@86.106.121.168)
18:28:38 × phr0m3indh0v3n quits (~Android@84.241.205.21) (Quit: -a- IRC for Android 2.1.59)
18:28:53 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:30:10 bitmapper joins (uid464869@gateway/web/irccloud.com/x-olymsittyvaorogr)
18:30:27 × kish quits (~oracle@unaffiliated/oracle) (Remote host closed the connection)
18:31:27 kish joins (~oracle@unaffiliated/oracle)
18:36:42 nbloomf joins (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d)
18:37:36 christo joins (~chris@81.96.113.213)
18:37:43 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d) (Client Quit)
18:39:47 KhoN joins (~KhoN@cm-84.208.147.132.getinternet.no)
18:40:57 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
18:41:57 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
18:42:04 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:44:42 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-uekbwohrzbmaorkq)
18:44:46 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 256 seconds)
18:44:51 × conal quits (~conal@172.255.125.154) (Quit: Computer has gone to sleep.)
18:46:05 ephemera_ joins (~E@122.34.1.187)
18:46:26 LKoen joins (~LKoen@81.255.219.130)
18:47:10 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:47:57 conal joins (~conal@172.255.125.154)
18:48:58 hackage gotta-go-fast 0.3.0.6 - A command line utility for practicing typing https://hackage.haskell.org/package/gotta-go-fast-0.3.0.6 (callum_oakley)
18:54:20 christo joins (~chris@81.96.113.213)
18:57:03 chief19831 joins (~chief1983@178.162.204.238)
18:57:08 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
18:57:19 × alp quits (~alp@2a01:e0a:58b:4920:546:64d9:5065:63aa) (Ping timeout: 272 seconds)
18:57:25 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 240 seconds)
18:59:16 alp joins (~alp@2a01:e0a:58b:4920:a554:1244:1f69:224d)
18:59:25 × conal quits (~conal@172.255.125.154) (Quit: Computer has gone to sleep.)
18:59:40 ephemera_ joins (~E@122.34.1.187)
18:59:46 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:59:57 conal joins (~conal@172.255.125.154)
19:00:40 <Uniaika> (/1
19:00:44 <Uniaika> (hmm.)
19:01:32 × conal quits (~conal@172.255.125.154) (Remote host closed the connection)
19:01:47 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
19:02:40 conal joins (~conal@172.255.125.154)
19:02:54 × dhil quits (~dhil@195.213.192.122) (Ping timeout: 256 seconds)
19:03:25 berberman joins (~berberman@unaffiliated/berberman)
19:03:37 zz01 joins (~xyz@210.18.180.63)
19:04:07 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
19:04:41 × kenran quits (~maier@mue-88-130-62-083.dsl.tropolys.de) (Ping timeout: 256 seconds)
19:04:55 <zz01> I am new to the channel and also the language, I am coming from website recommendation this channel is the best and very helpful
19:05:10 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 256 seconds)
19:05:19 <zz01> I would like to learn haskell, but I don't any programming experience in functional programming
19:05:29 <zz01> I have good background in C#
19:06:04 <Uniaika> if you don't want to jump too far from your comfort zone, F# is quite a decent programming language, based on .NET
19:07:01 × stefan-__ quits (~cri@42dots.de) (Read error: Connection reset by peer)
19:07:10 stefan-__ joins (~cri@42dots.de)
19:07:38 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:08:09 ephemera_ joins (~E@122.34.1.187)
19:08:38 <ddellacosta> zz01: if you want to get into Haskell, you have some references to crossover ideas that you can start with in C#, like linq https://devblogs.microsoft.com/pfxteam/tasks-monads-and-linq/
19:08:58 hackage little-logger 0.3.1 - Basic logging based on co-log https://hackage.haskell.org/package/little-logger-0.3.1 (ejconlon)
19:09:09 <ddellacosta> not that you need to start that way to start learning Haskell
19:10:03 christo joins (~chris@81.96.113.213)
19:10:07 <ddellacosta> but, I think it's pretty cool how C# has that specific connection
19:10:19 <zz01> ddellacosta: thank you
19:10:30 <ddellacosta> sure thing
19:10:34 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 265 seconds)
19:11:33 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
19:12:24 <dolio> I'm not sure LINQ is going to help much with learning Haskell.
19:12:30 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
19:12:58 <ddellacosta> that's fair, more just thinking that getting a feel for some of the ideas in a language they are comfortable with may ease things down the road when the same ideas pop up
19:13:13 × AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
19:14:14 GyroW_ joins (~GyroW@84.192.62.152)
19:14:14 × GyroW_ quits (~GyroW@84.192.62.152) (Changing host)
19:14:14 GyroW_ joins (~GyroW@unaffiliated/gyrow)
19:15:22 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
19:15:24 contiver_ joins (~contiver@84-115-64-163.wifi.dynamic.surfer.at)
19:15:35 dhil joins (~dhil@78.156.97.38)
19:16:40 <dolio> It is a good example of how 'monads are just a hack for dealing with purity' is utter nonsense, though.
19:17:14 <ddellacosta> very true
19:17:15 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 260 seconds)
19:17:49 <ddellacosta> I don't think I actually know of monads being used in a language outside of Haskell so effectively
19:18:00 <ddellacosta> *another example of
19:18:01 gioyik joins (~gioyik@190.67.155.46)
19:18:16 × contiver quits (~contiver@84-115-65-99.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds)
19:18:34 × knupfer quits (~Thunderbi@200116b82c6f4e00e9fd13aeb0014cbc.dip.versatel-1u1.de) (Quit: knupfer)
19:19:19 knupfer joins (~Thunderbi@200116b82c6f4e003906994b36cffa11.dip.versatel-1u1.de)
19:19:33 Kaivo joins (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com)
19:20:55 × knupfer quits (~Thunderbi@200116b82c6f4e003906994b36cffa11.dip.versatel-1u1.de) (Client Quit)
19:20:57 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 258 seconds)
19:21:14 knupfer joins (~Thunderbi@200116b82c6f4e003906994b36cffa11.dip.versatel-1u1.de)
19:22:43 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 246 seconds)
19:23:55 contiver__ joins (~contiver@84-115-64-62.wifi.dynamic.surfer.at)
19:26:34 × contiver_ quits (~contiver@84-115-64-163.wifi.dynamic.surfer.at) (Ping timeout: 272 seconds)
19:26:34 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
19:26:49 × evanjs quits (~evanjs@075-129-188-019.res.spectrum.com) (Quit: ZNC 1.8.1 - https://znc.in)
19:27:36 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
19:27:36 <c_wraith> They're used all the time in rust, they just can't be abstracted over.
19:27:40 gioyik joins (~gioyik@190.67.155.46)
19:28:02 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:28:11 evanjs joins (~evanjs@075-129-188-019.res.spectrum.com)
19:29:11 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
19:29:41 <hpc> rust's Result sugar in particular is like being in a whole-program Either
19:30:08 <dolio> You can't in C#, either, which also shows you that the line people take in here about them only being useful because they can be abstracted over is also wrong. :)
19:32:06 <hpc> it's a little bit of both
19:32:10 christo joins (~chris@81.96.113.213)
19:32:14 <hpc> like how you don't see much CPS in python code
19:32:35 <hpc> even though it has "first-class functions"
19:32:39 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 260 seconds)
19:32:40 × stefan-__ quits (~cri@42dots.de) (Read error: Connection reset by peer)
19:32:44 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
19:32:56 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Ping timeout: 256 seconds)
19:33:00 stefan-__ joins (~cri@42dots.de)
19:33:07 <dolio> CPS just makes stack usage worse in python.
19:33:21 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
19:33:29 <Rembane> Is there an optimization needed to not bloat the stack?
19:33:50 <hpc> well, that too
19:34:00 <dolio> You need 'proper tail recursion'.
19:34:14 <hpc> still, that hardly stops ruby programmers from doing the same thing
19:35:22 <dolio> Do you mean blocks?
19:35:32 <dolio> Those are a little less aggresive than CPS.
19:35:54 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
19:36:07 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Remote host closed the connection)
19:36:49 × christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds)
19:36:52 <dolio> It definitely influences the designs people use, tough.
19:37:00 × albertus1 quits (~seb@x4db9b903.dyn.telefonica.de) (Quit: Leaving.)
19:37:04 <dolio> Having a good syntax for it.
19:37:04 <hpc> they result in the same sort of code
19:37:21 gioyik joins (~gioyik@190.67.155.46)
19:37:41 <Rembane> dolio: Got it. Does this imply that they have proper tail recursion in the Javascript engines, because I see Javascript code that looks awfully lot like CPS
19:37:42 codygman joins (~codygman@2600:380:f900:eb14:1646:9538:6f47:89d5)
19:38:16 <dolio> Some might now, but they've been doing CPS a lot longer than that.
19:39:22 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
19:39:22 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
19:39:22 GyroW joins (~GyroW@unaffiliated/gyrow)
19:39:22 <hpc> setTimeout does a nice job of resetting things, in any event
19:39:43 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
19:40:05 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Ping timeout: 240 seconds)
19:40:17 <hpc> or all sorts of browser built-in asynchronous stuff really
19:40:25 <hpc> javascript tends to run in short bursts
19:40:46 <dolio> It's specific stuff that uses that, though, because there's basically no other choice. If you tried to just turn some loops into CPS or something, you'd have a bad time.
19:40:50 <Rembane> That's true.
19:41:24 <dolio> They're using it for pseudo threading stuff, kind of.
19:41:55 × jmsx quits (~jordan@li1158-85.members.linode.com) (Quit: bye o/)
19:42:02 × knupfer quits (~Thunderbi@200116b82c6f4e003906994b36cffa11.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
19:42:04 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 256 seconds)
19:42:39 × geekosaur quits (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Remote host closed the connection)
19:45:57 <dolio> Lack of sensible handling for this doesn't make much sense, but that's another topic, I guess.
19:46:05 × alp quits (~alp@2a01:e0a:58b:4920:a554:1244:1f69:224d) (Ping timeout: 272 seconds)
19:46:42 × recon_- quits (~quassel@2602:febc:0:b6::6ca2) (Ping timeout: 260 seconds)
19:48:18 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:48:25 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 240 seconds)
19:50:19 recon_- joins (~quassel@208.87.96.9)
19:52:46 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
19:54:18 <dolio> Rembane: By the way, "proper tail recursion," is what Scheme calls it, but I think it's a bad name, because it's not about recursion.
19:55:13 × jchia__ quits (~jchia@58.32.37.146) (Quit: Leaving.)
19:55:13 <Rembane> dolio: Is it the transformation of a recursive function that passes some test into a while-function they call proper tail recursion?
19:55:28 hackage FunGEn 1.1 - A lightweight, cross-platform, OpenGL/GLUT-based game engine. https://hackage.haskell.org/package/FunGEn-1.1 (SimonMichael)
19:55:32 jchia__ joins (~jchia@58.32.37.146)
19:55:49 × jchia__ quits (~jchia@58.32.37.146) (Client Quit)
19:56:03 <monochrom> In Javascript and I suppose Python, you would both CPS and trampoline.
19:56:05 <dolio> It says that it must be possible to perform an unbounded amount of tail calls (in a bounded amount of space).
19:56:36 × conal quits (~conal@172.255.125.154) (Quit: Computer has gone to sleep.)
19:56:58 <monochrom> CPS eliminates non-tail calls. To manually turn tail calls to jumps, you trampoline.
19:57:11 <monochrom> s/ to / into /
19:58:04 knupfer joins (~Thunderbi@i59F7FFD6.versanet.de)
20:00:30 <dolio> Specifically, if you only handle recursive procedures, CPS will ruin it, because CPS builds a heap-allocated function that does a ton of tail calls in a way that isn't obviously direct recursion.
20:00:55 <dolio> So you need the tail calls in the continuation to behave well, too.
20:01:07 <Rembane> It's turtles all the way down!
20:01:16 <dolio> Otherwise you'll have an optimmized loop that builds a function that blows up the stack.
20:01:25 <monochrom> The ridiculous length people would go to obfuscate their source code, just because "high-level" languages don't grow out of "stack is limited, heap is unlimited".
20:01:53 <monochrom> forgetting that "I'm a high-level language, I am in a position to actually redefine what 'stack' and 'heap" mean".
20:03:26 <monochrom> Yeah you will want to do general tail-call optimizations, not just tail-recursion optimizations.
20:04:15 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
20:04:16 <Rembane> Isn't this what we have good compilers for? Or at least decent runtime systems?
20:04:45 <dolio> Most people use languages that don't.
20:05:07 <dolio> Because they're industry standard and popular.
20:05:49 <dolio> Languages with good compilers/runtimes are for ivory tower academics.
20:06:12 jmsx joins (~jordan@li1158-85.members.linode.com)
20:06:13 rprije joins (~rprije@110-175-117-18.tpgi.com.au)
20:06:16 × isovector1 quits (~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Remote host closed the connection)
20:06:50 <Rembane> Well, then I prefer the ivory tower languages.
20:08:38 gioyik joins (~gioyik@190.67.155.46)
20:10:02 × xff0x quits (~fox@2001:1a81:53f8:9f00:217d:12db:12d5:cd4c) (Ping timeout: 260 seconds)
20:10:42 xff0x joins (~fox@2001:1a81:53f8:9f00:7c69:3a05:36cd:a9b4)
20:13:07 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 246 seconds)
20:13:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
20:15:40 isovector1 joins (~isovector@172.103.216.166)
20:16:46 <sm[m]> g'day all, I have released an update of https://github.com/haskell-game/fungen (simple 2d opengl-based game engine tested with ghc 8.8, 8.10)
20:17:43 conal joins (~conal@172.255.125.154)
20:20:36 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
20:22:03 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
20:23:58 contiver_ joins (~contiver@84-115-64-62.wifi.dynamic.surfer.at)
20:24:35 × ggole quits (~ggole@2001:8003:8119:7200:a8c8:f35b:bee4:ed57) (Quit: Leaving)
20:26:05 × contiver__ quits (~contiver@84-115-64-62.wifi.dynamic.surfer.at) (Ping timeout: 240 seconds)
20:26:37 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
20:27:20 × dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
20:33:45 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
20:34:55 nbloomf joins (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d)
20:37:31 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:37:32 <monochrom> gcc does tail-call optimization when -O2 or above. To be sure, C has quite a few gotchas, so gcc is conservative about it. Still, the optimization happens with normal examples I've tried.
20:38:11 <monochrom> In the Python case my recollection is Guido explicitly banned it, on ground of discouraging functional programming.
20:38:57 <dolio> Yeah, gcc is a good compiler, I imagine. I don't think this discussion really applies to it, though.
20:39:17 <dolio> There are other reasons you aren't doing CPS in C.
20:39:33 <koz_> monochrom: Well, not his stated reason, but that was the outcome.
20:39:37 <koz_> (stated reason was stack traces)
20:40:30 <dolio> Maybe he should read about how to do both stack traces and good tail calls. There are decades-old papers on it.
20:40:53 <koz_> dolio: Maybe, but argumentum ad serpentum, rofl.
20:41:22 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
20:41:32 × conal quits (~conal@172.255.125.154) (Quit: Computer has gone to sleep.)
20:41:52 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
20:41:55 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
20:42:28 hackage FunGEn 1.1 - A lightweight, cross-platform, OpenGL-based game engine. https://hackage.haskell.org/package/FunGEn-1.1 (SimonMichael)
20:43:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:43:31 <dolio> There are also papers on how to do a JVM-like security model with tail calls, so that argument also doesn't work. :)
20:43:36 larou joins (5201f2b7@gateway/web/cgi-irc/kiwiirc.com/ip.82.1.242.183)
20:43:43 <monochrom> Haha nice.
20:43:47 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
20:43:49 <larou> im struggling to define cons opperations on cyclic structures
20:44:24 <larou> im not sure if i can construct a mapping from the structures representation to the valid cons types
20:44:27 <monochrom> This is what they get for deriding "academia ivory tower".
20:44:36 <koz_> dolio: Hence, argumentum ad serpentum.
20:45:04 ephemera_ joins (~E@122.34.1.187)
20:45:07 <larou> like, i can imagine something where i can only insert subsets of a particular shape
20:45:17 <monochrom> Sorry, what is serpentum?
20:45:38 <larou> eg, in a regular 2d plane, i cant just insert an extra vertex, i need to add an entire row or column at the same time
20:45:46 <larou> otherwise it messes up the shape
20:45:47 × stefan-__ quits (~cri@42dots.de) (Read error: Connection reset by peer)
20:45:50 <koz_> monochrom: Python, snake, bad Latin.
20:45:55 <monochrom> Oh hahaha
20:45:59 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
20:46:10 <monochrom> Don't worry, I don't know Latin either.
20:46:10 stefan-__ joins (~cri@42dots.de)
20:46:13 <koz_> Relevant: https://twitter.com/KozRoss/status/1317929052477427712
20:46:34 <larou> erm, so, then, if you have higher genus surfaces - then you get complicated permissible concatinations/insertions
20:47:13 conal joins (~conal@64.71.133.70)
20:47:14 <monochrom> I was thinking "Cleopatra defied Octavia (future Augustus Caeser) by using a snake for suicide. Does that count as her agumentum ad serpentum against him?"
20:47:23 <larou> and since these could deform the shape, eg, changing the genus - then you have a path of successive permissible insertion operator types
20:47:29 <koz_> Octavia_n_.
20:47:35 <koz_> 'Octavia' would be his daughter.
20:47:44 <monochrom> Oh oops. I knew "ia" had to be wrong.
20:47:48 <larou> and along different paths you would get different resulting shapes, and intermediate insertion types
20:47:52 <dolio> I thought it was his sister.
20:48:03 <koz_> dolio: Also a possibility.
20:48:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
20:48:22 <dolio> I suppose it could be both.
20:48:39 <dolio> Reusing names.
20:49:05 <koz_> Name shadowing!
20:49:08 <larou> and then, you would want to be able to determine the types of the insertion opperations, so that you could create the corresponding insertion operations as values
20:49:38 × patrick1 quits (~tarpk@ool-182dc9b3.dyn.optonline.net) (Quit: WeeChat 2.8)
20:49:39 <larou> depending on which path was taken in successively altering the architecture
20:49:39 × knupfer quits (~Thunderbi@i59F7FFD6.versanet.de) (Ping timeout: 260 seconds)
20:50:18 <larou> such as if there was a way to generate elements to insert, such as if they have defaults such as zeros (eg, a zeroed neuron)
20:50:53 <larou> then a type level specification of the path taken over the branching choices of permissible insertion operator types
20:51:11 <larou> could be used to construct initial values of containers of the overall resulting shape
20:52:04 × zz01 quits (~xyz@210.18.180.63) (Ping timeout: 265 seconds)
20:52:53 <larou> for example, if i have a higher dimensional torus, then i can take a plane section through it in various ways that give bands along which elements can be inserted to preserve the shape (there needs to be 4 edges to neighbours for each vertex - so you cant just inert a verted at some point without messing up the edges)
20:53:32 alp joins (~alp@2a01:e0a:58b:4920:3c60:f5ab:1cfc:cd5)
20:53:44 <larou> and eg, you could imagine adding or removing punctures to get higher genus manifolds, again with a correspondingly typed insertion opperator
20:53:59 ChanServ sets mode +o monochrom
20:54:03 monochrom sets mode +b *!*@gateway/web/cgi-irc/kiwiirc.com/ip.82.1.242.183
20:54:03 larou is kicked by monochrom (larou)
20:54:10 monochrom sets mode -o monochrom
20:54:30 <koz_> Wait, were they fogging?
20:54:34 <monochrom> (Don't hesitate to object, if you want them back.)
20:54:49 <koz_> I didn't see.
20:55:27 <monochrom> HIgh similarity to fogging, yeah.
20:55:43 <monochrom> has been like that for days.
20:56:14 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
20:56:22 <koz_> Yeah, that's definitely been a thing.
20:56:37 <koz_> So what, it's now called 'larouing'?
20:56:48 × steve__ quits (~quassel@ool-18b99d28.dyn.optonline.net) (Ping timeout: 256 seconds)
20:56:49 × steve_ quits (~quassel@ool-18b99d28.dyn.optonline.net) (Ping timeout: 256 seconds)
20:57:03 <monochrom> I think "fogging" it is. Like "xeroxing" even when you use a Canon. :)
20:57:03 steve_ joins (~quassel@ool-18b99d28.dyn.optonline.net)
20:57:03 steve__ joins (~quassel@ool-18b99d28.dyn.optonline.net)
20:57:08 × dhil quits (~dhil@78.156.97.38) (Ping timeout: 272 seconds)
20:57:27 <koz_> monochrom: Sure, can dig.
20:57:56 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
20:59:26 × ephemera_ quits (~E@122.34.1.187) (Quit: No Ping reply in 180 seconds.)
21:00:02 × chief19831 quits (~chief1983@178.162.204.238) ()
21:00:48 <Buntspecht> What does "fogging" refers to here?
21:00:56 ephemera_ joins (~E@122.34.1.187)
21:01:37 <monochrom> You would have to look through past IRC logs (eg the urls in the channel topic) and look for the nick "fog".
21:02:07 × mananamenos__ quits (~mananamen@vpn237-247.vpns.upv.es) (Ping timeout: 246 seconds)
21:02:19 <monochrom> I guess TLDR they mistook #haskell for personal twitter/blog.
21:02:34 <Uniaika> I another guy who does that
21:02:42 <Uniaika> day-long monologues
21:03:06 <Buntspecht> Oh, I thought it's a specifc term for some kind of bad activity :p
21:03:07 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
21:03:09 gioyik joins (~gioyik@190.67.155.46)
21:03:13 <Buntspecht> like "spamming"
21:03:18 <dolio> It is. :)
21:03:29 <koz_> It's a specific form of spamming.
21:03:34 <koz_> (a subtype, a dare say)
21:03:40 <dolio> Named after the perpetrator.
21:03:41 <koz_> s/a /I /
21:04:17 <Rembane> I'm considering building a larou-fog-bot and putting it in a very lonely chat room.
21:04:27 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 258 seconds)
21:04:33 machinedgod joins (~machinedg@24.105.81.50)
21:05:00 <koz_> Rembane: Are you truly _that_ bored?
21:05:04 wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
21:06:31 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
21:06:43 × ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
21:07:22 × ski quits (~ski@nc-2504-30.studat.chalmers.se) (Ping timeout: 246 seconds)
21:07:31 <Rembane> koz_: Not yet, but it struck me that it would be a baller Dr. Evil move.
21:07:41 <koz_> Rembane: Yes, this.
21:07:54 <Rembane> koz_: I want ... one. Million. Dollars!
21:08:03 hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
21:08:08 <koz_> Rembane: *evil laughter*
21:08:24 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 260 seconds)
21:08:28 <Rembane> ^^
21:09:04 gioyik joins (~gioyik@190.67.155.46)
21:09:30 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
21:09:43 × hekkaidekapus{ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
21:10:20 ech joins (~user@gateway/tor-sasl/ech)
21:10:26 × contiver_ quits (~contiver@84-115-64-62.wifi.dynamic.surfer.at) (Ping timeout: 265 seconds)
21:11:07 dhil joins (~dhil@195.213.192.122)
21:12:25 × jsynacek quits (~jsynacek@ip-185-149-130-112.kmenet.cz) (Ping timeout: 240 seconds)
21:12:53 × isovector1 quits (~isovector@172.103.216.166) (Ping timeout: 258 seconds)
21:13:59 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
21:14:18 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds)
21:15:22 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
21:18:25 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 240 seconds)
21:20:54 <tomsmeding> the last IP that fog connected from is the same that larou has been connecting from this week
21:20:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:21:38 micahsovereign[m joins (micahsover@gateway/shell/matrix.org/x-fdcktwkiurzttdbm)
21:21:49 <tomsmeding> though I don't know what the ip address in the origin string of kiwiirc means exactly, it might be the kiwiirc instance
21:22:05 eam1 joins (~eam@185.244.214.216)
21:22:37 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:27:15 conal joins (~conal@64.71.133.70)
21:27:22 ransom joins (~c4264035@75-166-195-170.hlrn.qwest.net)
21:32:08 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
21:33:00 × mmkarakaya quits (b0584711@gateway/web/cgi-irc/kiwiirc.com/ip.176.88.71.17) (Quit: Connection closed)
21:38:11 × hiroaki quits (~hiroaki@2a02:908:4b18:e20::e363) (Ping timeout: 272 seconds)
21:38:21 <maerwald> IRC needs threads, like slack has
21:38:56 <maerwald> then it would be one line instead of 1000
21:39:57 hackage FunGEn 1.1.1 - A lightweight, cross-platform, OpenGL-based game engine. https://hackage.haskell.org/package/FunGEn-1.1.1 (SimonMichael)
21:41:38 fendor joins (~fendor@77.119.130.12.wireless.dyn.drei.com)
21:41:48 × Ariakenom quits (~Ariakenom@h-82-196-111-189.NA.cust.bahnhof.se) (Quit: Leaving)
21:43:43 Jeanne-Kamikaze joins (~Jeanne-Ka@68.235.43.102)
21:48:09 vicfred joins (~vicfred@unaffiliated/vicfred)
21:51:06 × wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving)
21:54:56 novium joins (4e46a930@78-70-169-48-no110.tbcn.telia.com)
21:55:39 christo joins (~chris@81.96.113.213)
21:55:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
21:57:53 oisdk joins (~oisdk@2001:bb6:3329:d100:5538:baf2:3212:5e91)
21:59:31 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
22:01:41 × fendor quits (~fendor@77.119.130.12.wireless.dyn.drei.com) (Remote host closed the connection)
22:02:30 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:03:31 × Psycomic quits (~Phi@2a01:e0a:18:d0a0:ec74:a9c1:d5eb:2ab6) (Ping timeout: 272 seconds)
22:06:03 × danvet_ quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
22:06:46 × solonarv quits (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Read error: Connection reset by peer)
22:07:39 solonarv joins (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr)
22:09:27 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
22:09:45 × dhil quits (~dhil@195.213.192.122) (Ping timeout: 240 seconds)
22:11:01 rnat2 joins (uid73555@gateway/web/irccloud.com/x-yzboehgctiytendp)
22:11:27 × chaosmasttter quits (~chaosmast@p200300c4a710fa01f8ce4354cf8ba13b.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
22:12:05 wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
22:12:15 × supercoven quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 260 seconds)
22:14:05 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
22:15:02 × DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 272 seconds)
22:15:25 × novium quits (4e46a930@78-70-169-48-no110.tbcn.telia.com) (Remote host closed the connection)
22:17:30 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
22:19:28 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
22:20:53 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
22:22:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:22:39 × GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
22:22:56 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
22:22:56 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
22:22:56 GyroW joins (~GyroW@unaffiliated/gyrow)
22:26:55 × dirediresalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
22:27:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
22:33:26 × ephemera_ quits (~E@122.34.1.187) (Read error: Connection reset by peer)
22:34:19 ensyde joins (~ensyde@2600:1702:2e30:1a40:e4b3:9206:daf1:55c1)
22:34:35 ephemera_ joins (~E@122.34.1.187)
22:38:28 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
22:42:25 seanvert joins (~user@177.84.244.242)
22:47:42 × GyroW quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
22:48:01 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
22:48:01 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
22:48:01 GyroW joins (~GyroW@unaffiliated/gyrow)
22:49:25 × ransom quits (~c4264035@75-166-195-170.hlrn.qwest.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:51:29 texasmynsted joins (688c3593@104.140.53.147)
22:53:12 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:53:37 <texasmynsted> I am reading a `tsv` file to get my good/bad URLs into a List of pairs. This looks awkward, especially in the redirectMapToPair bit.
22:54:07 <texasmynsted> The `main` I simply have it printing the list that I want so I can see if it is what I expect...
22:54:27 <texasmynsted> Any suggestions on how to improve this? https://gist.github.com/mmynsted/bc2fc5c083c5d27ebfd5aab8bb8bc6c3
22:55:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:57:28 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 272 seconds)
22:57:44 <texasmynsted> I am leaving TH for another day.
22:57:55 <texasmynsted> I am sure it would be a better solution.
23:03:40 × theelous3 quits (~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer)
23:03:41 conal joins (~conal@64.71.133.70)
23:04:13 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:05:00 <texasmynsted> Is anybody here?
23:05:43 <koz_> texasmynsted: People are, but might be unresponsive.
23:05:51 <texasmynsted> heh
23:05:55 <koz_> It varies by time of day, and also by what you're asking.
23:05:56 <texasmynsted> I can relate to that
23:07:31 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-uekbwohrzbmaorkq) (Quit: Connection closed for inactivity)
23:08:07 × alp quits (~alp@2a01:e0a:58b:4920:3c60:f5ab:1cfc:cd5) (Ping timeout: 272 seconds)
23:08:46 <texasmynsted> One thing that bothers me is there feels like there must be a better way to transform a data to a tuple
23:08:46 conal_ joins (~conal@66.115.157.49)
23:08:47 <texasmynsted> example
23:08:50 nados joins (~dan@69-165-210-185.cable.teksavvy.com)
23:08:57 <texasmynsted> (RedirectMap bad good) = (,) bad good
23:09:51 <koz_> You have a FromRecord instance for tuples.
23:09:54 <texasmynsted> where data RedirectMap= RedirectMap { badUrl :: String, goodUrl :: String }
23:09:55 <koz_> So you can just use that.
23:10:02 <koz_> It'd be like
23:10:11 <koz_> (,) <$> parseField <*> parseField
23:10:12 <texasmynsted> oh. Thank you. I will check it out
23:11:03 × conal quits (~conal@64.71.133.70) (Ping timeout: 260 seconds)
23:12:45 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
23:15:01 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
23:15:30 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
23:16:47 ephemera_ joins (~E@122.34.1.187)
23:20:01 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
23:21:18 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 258 seconds)
23:23:19 × ericsagnes quits (~ericsagne@2405:6580:0:5100:8084:b111:4aaf:f484) (Ping timeout: 272 seconds)
23:29:06 × conal_ quits (~conal@66.115.157.49) (Quit: Computer has gone to sleep.)
23:29:33 seanvert` joins (~user@177.84.244.242)
23:29:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
23:30:03 × karanlikmadde quits (~karanlikm@2a01:c22:ac16:a100:a874:6bad:ee0e:3b97) (Quit: karanlikmadde)
23:31:33 conal joins (~conal@66.115.157.49)
23:31:53 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:32:16 nbloomf joins (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d)
23:32:18 × seanvert quits (~user@177.84.244.242) (Ping timeout: 272 seconds)
23:34:57 christo joins (~chris@81.96.113.213)
23:35:52 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:36:06 ericsagnes joins (~ericsagne@2405:6580:0:5100:a53c:4941:44e2:1e75)
23:36:15 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
23:37:00 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
23:45:54 × solonarv quits (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 256 seconds)
23:46:15 christo joins (~chris@81.96.113.213)
23:48:07 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
23:48:50 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
23:49:39 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:50:03 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
23:52:09 irc_user joins (uid423822@gateway/web/irccloud.com/x-wddvdkxotqakcvrc)
23:52:41 xerox_ joins (~xerox@unaffiliated/xerox)
23:54:19 × jedws quits (~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:54:24 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
23:54:25 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:54:53 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
23:57:30 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
23:58:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:59:05 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-bbbnvzthyixtprkj)
23:59:32 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)

All times are in UTC on 2020-10-18.