2020/09/29

2020-09-29 00:00:47 +0200brandonchinn178(43bce2b8@67.188.226.184)
2020-09-29 00:01:56 +0200brandonchinn178(43bce2b8@67.188.226.184) (Remote host closed the connection)
2020-09-29 00:03:17 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 00:04:14 +0200Rudd0(~Rudd0@185.189.115.103)
2020-09-29 00:04:14 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 00:04:39 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 00:04:49 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 00:05:02 +0200 <dansho> what do i need to install on linus mint to run ghcup?
2020-09-29 00:05:22 +0200 <dansho> im getting libtinfo cant load shared library, but its installed
2020-09-29 00:05:36 +0200 <Uniaika> ah, maybe conflicting libraries?
2020-09-29 00:05:50 +0200 <hpc> a particular version it's expecting?
2020-09-29 00:05:51 +0200 <Uniaika> dansho: here, ghcup is a statically-linked executable
2020-09-29 00:06:04 +0200 <Uniaika> dansho: what is the result of `ldd /path/to/ghcup` ?
2020-09-29 00:06:52 +0200 <amf> anyone have an example of using hpack's conditionals to support multiple ghc versions? getting my feet wet with travis/github actions
2020-09-29 00:07:11 +0200 <Uniaika> amf: yes, 2sec
2020-09-29 00:07:30 +0200 <dansho> Uniaika, there is no executable, i run `curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh`
2020-09-29 00:07:37 +0200 <Uniaika> amf: https://github.com/Kleidukos/irssi-hs/blob/master/package.yaml#L64
2020-09-29 00:07:47 +0200 <Uniaika> ah so you don't have an executable *yet*
2020-09-29 00:07:54 +0200 <Uniaika> dansho: may we have a full log of the operation?
2020-09-29 00:09:13 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 246 seconds)
2020-09-29 00:09:39 +0200 <maerwald> dansho: which mint version?
2020-09-29 00:10:30 +0200 <int-e> dansho: AIUI, that'll download a ghcup executable and put it into ~/.ghcup/bin
2020-09-29 00:10:46 +0200howdoi(uid224@gateway/web/irccloud.com/x-rdeeidynjivnuofk) (Quit: Updating details, brb)
2020-09-29 00:10:53 +0200 <amf> Uniaika: thanks! it looks like you cant do anything too fancy though, for instance i wanted to support 3 ghc versions, but i would likely have to list out all ghc flags
2020-09-29 00:10:58 +0200 <dansho> Uniaika, here's the last bit, https://hastebin.com/yicicosagu
2020-09-29 00:11:23 +0200 <maerwald> dansho: try this: ~/.ghcup/bin/ghcup install ghc -u https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz 8.8.4
2020-09-29 00:11:24 +0200howdoi(uid224@gateway/web/irccloud.com/x-mbjggxgdrdmqyxnj)
2020-09-29 00:11:35 +0200 <Uniaika> amf: my stance on complicated YAML is that it can be easily generated from Dhall :P
2020-09-29 00:11:40 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 00:11:49 +0200 <dansho> maerwald, Linux Mint 20
2020-09-29 00:12:00 +0200 <amf> Uniaika: yeah I just saw the GH actions in dhall. Going to steal that when I get a chance
2020-09-29 00:12:02 +0200 <Uniaika> but don't be shy to use Cabal + Nix with stack!
2020-09-29 00:12:08 +0200 <Uniaika> :3
2020-09-29 00:13:23 +0200 <amf> baby steps. scars still healing from cabal hell.. but nice to see v1 commands getting an RFC to be dropped
2020-09-29 00:13:51 +0200 <dansho> `ldd .ghcup/bin/ghcup` "not a dynamic executable"
2020-09-29 00:14:04 +0200 <maerwald> dansho: did you run the above command?
2020-09-29 00:14:04 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 00:14:33 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 00:16:02 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 00:16:47 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2020-09-29 00:17:30 +0200 <dansho> maerwald, it seems to have worked, i dont have ghc on path though
2020-09-29 00:17:33 +0200 <dansho> do i need to add .ghcup/bin?
2020-09-29 00:17:47 +0200 <maerwald> dansho: now rerun the original curl command
2020-09-29 00:18:47 +0200st8less(~st8less@2603:a060:11fe:0:b186:dda4:132a:2a8a) (Ping timeout: 240 seconds)
2020-09-29 00:19:16 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 272 seconds)
2020-09-29 00:20:10 +0200 <dansho> maerwald, works now, ty =)
2020-09-29 00:20:38 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 256 seconds)
2020-09-29 00:20:58 +0200 <Uniaika> < amf> baby steps. scars still healing from cabal hell.. // oh yeah but stack would still be in charge
2020-09-29 00:21:11 +0200 <Uniaika> in the end, hpack only generates a cabal file for you
2020-09-29 00:23:29 +0200 <maerwald> dansho: can you try to install 8.10.2 via: ghcup install ghc 8.10.2
2020-09-29 00:23:33 +0200 <maerwald> I wanna now if that works now
2020-09-29 00:24:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 00:24:13 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 00:24:31 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 00:25:57 +0200hackagenetwork-types-icmp 1.0.0.1 - Types for representing ICMP and ICMPv6 messages. https://hackage.haskell.org/package/network-types-icmp-1.0.0.1 (adamflott)
2020-09-29 00:27:23 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-09-29 00:27:35 +0200omega8cc(~omega8cc@195.206.169.184)
2020-09-29 00:28:49 +0200totallynotnate(~nate@125.161.70.37) (Quit: WeeChat 2.9)
2020-09-29 00:29:17 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-29 00:29:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-09-29 00:30:40 +0200rekahsoft(~rekahsoft@fitz10681.telemetry.esentire.com) (Ping timeout: 272 seconds)
2020-09-29 00:31:38 +0200darjeeling_(~darjeelin@122.245.121.113) (Ping timeout: 258 seconds)
2020-09-29 00:32:50 +0200darjeeling_(~darjeelin@122.245.121.113)
2020-09-29 00:34:14 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 00:34:30 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 00:35:22 +0200 <sm[m]> @where+ haskell-via-sokoban https://haskell-via-sokoban.nomeata.de
2020-09-29 00:35:22 +0200 <lambdabot> Done.
2020-09-29 00:35:32 +0200 <sm[m]> @where+ haskell-for-readers http://haskell-for-readers.nomeata.de
2020-09-29 00:35:32 +0200 <lambdabot> Good to know.
2020-09-29 00:39:25 +0200alp(~alp@2a01:e0a:58b:4920:763f:d838:3a1b:fda) (Ping timeout: 272 seconds)
2020-09-29 00:41:10 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-09-29 00:41:58 +0200hackagecpkg 0.2.5.7 - Build tool for C https://hackage.haskell.org/package/cpkg-0.2.5.7 (vmchale)
2020-09-29 00:44:06 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 00:44:13 +0200CrazyPython(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net)
2020-09-29 00:44:31 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 00:44:38 +0200son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-09-29 00:47:35 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-09-29 00:48:15 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-29 00:52:35 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-09-29 00:53:38 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Ping timeout: 260 seconds)
2020-09-29 00:54:01 +0200vqrs(~vqrs@learnprogramming/regular/vqrs) (Ping timeout: 246 seconds)
2020-09-29 00:54:02 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 00:54:04 +0200Guest26(a2dec639@gateway/web/cgi-irc/kiwiirc.com/ip.162.222.198.57)
2020-09-29 00:54:28 +0200hackageordinal 0.1.0.0 - Convert numbers to words in different languages. https://hackage.haskell.org/package/ordinal-0.1.0.0 (wvanonsem90)
2020-09-29 00:54:31 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 00:54:45 +0200 <Guest26> hello. i am interested in trying to implement, or use some implementation of an "actors" model within haskell
2020-09-29 00:55:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 00:55:09 +0200 <Guest26> i have done some research and found something called "spores". has anyone heard of this or understand how it works?
2020-09-29 00:55:25 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 265 seconds)
2020-09-29 00:56:19 +0200 <Guest26> i find reference to it here; https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiOusSB-YzsAhUDmeAKHQrMBF…
2020-09-29 00:56:55 +0200 <Guest26> thats the pdf. the permalink to the abstract is here; https://link.springer.com/chapter/10.1007/978-3-662-44202-9_13
2020-09-29 00:58:12 +0200 <Guest26> as i understand it, its not available within haskell since it constitutes an extended type system
2020-09-29 00:58:26 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se) (Ping timeout: 256 seconds)
2020-09-29 00:58:35 +0200 <Guest26> are there options available to the haskell community that provide something similar?
2020-09-29 00:58:59 +0200 <Guest26> how far towards polymorphic actors can we achieve within the existing type system?
2020-09-29 00:59:16 +0200 <Guest26> how limited are existing actors model libraries in haskell?
2020-09-29 01:00:41 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-09-29 01:01:16 +0200 <Guest26> im not sure if this is similar, but google suggests it in relation to spores; https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/remote.pdf
2020-09-29 01:02:39 +0200 <Guest26> i can find; https://hackage.haskell.org/package/simple-actors-0.4.0/docs/Control-Concurrent-Actors.html
2020-09-29 01:03:13 +0200 <Guest26> but it is unclear how far towards the "closures" idea that spores seems to be centred on
2020-09-29 01:03:42 +0200 <Guest26> it seems like it has some functionality such as adding actors as if it were adding "edges"
2020-09-29 01:03:56 +0200 <Guest26> is it wrong to think of actors models as being graph based?
2020-09-29 01:03:58 +0200John20(~John@82.46.59.122)
2020-09-29 01:04:00 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 01:04:31 +0200Guest26(a2dec639@gateway/web/cgi-irc/kiwiirc.com/ip.162.222.198.57) (Quit: Connection closed)
2020-09-29 01:04:31 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 01:09:23 +0200outer_passage(outerpassa@2600:3c01::f03c:92ff:fed1:4643) (Quit: ZNC 1.8.1 - https://znc.in)
2020-09-29 01:09:41 +0200outerpassage(~outerpass@li1196-30.members.linode.com)
2020-09-29 01:10:16 +0200John20(~John@82.46.59.122) (Ping timeout: 256 seconds)
2020-09-29 01:14:27 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 01:14:33 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 01:15:56 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 256 seconds)
2020-09-29 01:16:57 +0200justan0theruser(~justanoth@unaffiliated/justanotheruser)
2020-09-29 01:17:12 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 01:19:07 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-09-29 01:19:22 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 01:20:20 +0200vqrs(~vqrs@learnprogramming/regular/vqrs)
2020-09-29 01:20:41 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 01:21:07 +0200sagax(~sagax_nb@213.138.71.146) (Read error: Connection reset by peer)
2020-09-29 01:21:21 +0200isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Quit: Leaving)
2020-09-29 01:21:35 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 01:23:39 +0200andoluca(~andoluca@2800:810:42b:999a:bcb5:34ab:5104:cc7a)
2020-09-29 01:23:58 +0200nullheroes(~danielvu@168.235.66.22)
2020-09-29 01:24:00 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 01:24:32 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 01:24:32 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 01:26:01 +0200andoluca(~andoluca@2800:810:42b:999a:bcb5:34ab:5104:cc7a) (Quit: Quit)
2020-09-29 01:26:28 +0200 <koz_> I need to use attoparsec to parse the equivalent of 'one of N possibilities, possibly followed by one of M possibilities'.
2020-09-29 01:26:55 +0200 <koz_> Is there a way I can spell a parser like that, assuming they all parse to the same thing?
2020-09-29 01:27:23 +0200 <koz_> (or rather, the same type of thing)
2020-09-29 01:28:23 +0200andoluca(~andoluca@2800:810:42b:999a:bcb5:34ab:5104:cc7a)
2020-09-29 01:28:28 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 01:29:15 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 265 seconds)
2020-09-29 01:29:17 +0200 <glguy> liftA2 (,) (asum xsN) (optional (asum ysM)) ?
2020-09-29 01:29:39 +0200 <koz_> glguy: xsN is like, a list of Parsers?
2020-09-29 01:29:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-29 01:30:31 +0200andoluca(~andoluca@2800:810:42b:999a:bcb5:34ab:5104:cc7a) (Client Quit)
2020-09-29 01:30:50 +0200troydm(~troydm@unaffiliated/troydm) (Ping timeout: 272 seconds)
2020-09-29 01:32:00 +0200kleenestar(~shimjiths@122.167.34.208)
2020-09-29 01:32:47 +0200troydm(~troydm@unaffiliated/troydm)
2020-09-29 01:33:26 +0200kleenestar(~shimjiths@122.167.34.208) (Remote host closed the connection)
2020-09-29 01:33:54 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 01:34:00 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 01:34:32 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 01:35:02 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-09-29 01:35:54 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 272 seconds)
2020-09-29 01:36:14 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 01:36:45 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-09-29 01:37:39 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 01:37:48 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 01:38:09 +0200ystael(~ystael@209.6.50.55)
2020-09-29 01:39:57 +0200hackageordinal 0.1.1.0 - Convert numbers to words in different languages. https://hackage.haskell.org/package/ordinal-0.1.1.0 (wvanonsem90)
2020-09-29 01:40:25 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-09-29 01:42:27 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-29 01:44:26 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 01:44:32 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 01:44:37 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
2020-09-29 01:45:20 +0200 <dansho> maerwald: `ghcup install ghc 8.10.2` said it was successful, but ghc --version still shows 8.8.4
2020-09-29 01:46:30 +0200 <koz_> :t ($>)
2020-09-29 01:46:32 +0200 <lambdabot> error:
2020-09-29 01:46:32 +0200 <lambdabot> • Variable not in scope: $>
2020-09-29 01:46:32 +0200 <lambdabot> • Perhaps you meant one of these:
2020-09-29 01:46:41 +0200 <koz_> dansho: I think you gotta switch up your environment.
2020-09-29 01:46:52 +0200 <koz_> Or manually specify with -w ghc-8.10.2.
2020-09-29 01:47:13 +0200 <monochrom> That one you can use "ghcup set 8.10.2" or something to set.
2020-09-29 01:47:23 +0200 <ski> @hoogle ($>)
2020-09-29 01:47:23 +0200 <lambdabot> Data.Functor ($>) :: Functor f => f a -> b -> f b
2020-09-29 01:47:23 +0200 <lambdabot> Data.Functor.Compat ($>) :: Functor f => f a -> b -> f b
2020-09-29 01:47:23 +0200 <lambdabot> Data.Functor.Apply ($>) :: Functor f => f a -> b -> f b
2020-09-29 01:47:47 +0200 <monochrom> Generally take a look at "ghcup --help" for what it can do for you.
2020-09-29 01:48:01 +0200 <monochrom> Along the way, discover that "ghcup tui" is really handy.
2020-09-29 01:50:52 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1464:cd8d:ea3f:dc1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 01:52:33 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-09-29 01:53:44 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 01:54:18 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 01:54:50 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 01:54:54 +0200mu_(~mu@unaffiliated/mu) (Client Quit)
2020-09-29 01:56:10 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds)
2020-09-29 01:57:06 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-09-29 01:58:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 01:58:42 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 272 seconds)
2020-09-29 01:58:44 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca)
2020-09-29 02:00:01 +0200omega8cc(~omega8cc@195.206.169.184) ()
2020-09-29 02:00:25 +0200TooDifficult(~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds)
2020-09-29 02:03:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-09-29 02:04:40 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 256 seconds)
2020-09-29 02:06:38 +0200Tops2(~Tobias@dyndsl-095-033-025-158.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-09-29 02:09:45 +0200Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-131-156.cust.tzulo.com)
2020-09-29 02:12:47 +0200falafel(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds)
2020-09-29 02:18:24 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 02:18:57 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 02:20:19 +0200concept2(~concept2@unaffiliated/tubo) (Quit: See ya later!)
2020-09-29 02:21:43 +0200sepi(49dc4892@c-73-220-72-146.hsd1.ca.comcast.net)
2020-09-29 02:22:17 +0200 <sepi> Can I have a helper function used and defined within 'if' bounds?
2020-09-29 02:22:22 +0200 <sepi> |
2020-09-29 02:22:43 +0200 <Axman6> wut
2020-09-29 02:23:30 +0200 <ski> with `let', yes
2020-09-29 02:23:52 +0200 <ski> but perhaps you mean guards, not `if' ?
2020-09-29 02:25:00 +0200 <sepi> ah yes guards
2020-09-29 02:25:42 +0200 <ski> you can put a `where' after the guards, and things defined inside the `where' will be in scope in the guard conditions, as well as the branches
2020-09-29 02:26:40 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 02:26:53 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-09-29 02:30:49 +0200ystael(~ystael@209.6.50.55) (Ping timeout: 264 seconds)
2020-09-29 02:31:49 +0200jespada(~jespada@90.254.241.6) (Read error: Connection reset by peer)
2020-09-29 02:32:36 +0200jespada(~jespada@90.254.241.6)
2020-09-29 02:33:21 +0200 <sepi> Besides possibly the d case, am I in the right area for doing this? https://dpaste.org/DbEh
2020-09-29 02:34:15 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 02:34:16 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 02:34:47 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 02:35:55 +0200 <Axman6> well, you can't define equality on functions, so that d `elem` q is never going to work
2020-09-29 02:36:12 +0200 <Axman6> and sigma is a list, so you can't apply it to x and xs
2020-09-29 02:36:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 02:36:36 +0200 <Axman6> it also looks like this function can never do anything but return true
2020-09-29 02:36:56 +0200 <monochrom> "my heart is always true" :)
2020-09-29 02:37:10 +0200 <Axman6> "or I will never return"
2020-09-29 02:38:42 +0200 <sepi> I had the thought that because of elem, if s is never in qs then it'd come out false
2020-09-29 02:39:35 +0200 <Axman6> I have no idea what's going on with this code, it's quite a long way from being syntactically valid
2020-09-29 02:41:21 +0200 <Axman6> you might ant to look at functions like all, and, or, any, intersect. you might also find writing a function isSubsetOf :: Eq a => [a] -> [a] -> Bool is very useful
2020-09-29 02:42:08 +0200 <Axman6> isSubSetOf [] [1,2,3] -> True, isSubsetOf [4] [1,2,3] -> False, isSubSetOf [1,2] [1,2,3] -> True
2020-09-29 02:42:37 +0200 <xsperry> > isSubsetOf [1,3] [1,2,3]
2020-09-29 02:42:39 +0200 <lambdabot> error:
2020-09-29 02:42:39 +0200 <lambdabot> • Variable not in scope: isSubsetOf :: [a0] -> [a1] -> t
2020-09-29 02:42:40 +0200 <lambdabot> • Perhaps you meant one of these:
2020-09-29 02:42:50 +0200 <xsperry> huh, nm
2020-09-29 02:43:03 +0200 <Axman6> Data.List happens to already have isSubsequenceOf, which would work if your states were ordered
2020-09-29 02:44:31 +0200 <Axman6> > isSubsequenceOf "GHC" "The Glorious Haskell Compiler"
2020-09-29 02:44:31 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 02:44:34 +0200 <lambdabot> True
2020-09-29 02:44:52 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 02:45:48 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-29 02:45:49 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 02:46:07 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-29 02:46:23 +0200 <Axman6> sepi: what is let d xs ys = q <> (sigma (x)) : d q (sigma xs) supposed to be doing?
2020-09-29 02:48:28 +0200hackagecabal-auto-expose 0.1.0.1 - Build time library that autodetects exposed modules https://hackage.haskell.org/package/cabal-auto-expose-0.1.0.1 (deech)
2020-09-29 02:48:49 +0200arahael(~arahael@203.158.32.156) (Ping timeout: 264 seconds)
2020-09-29 02:49:12 +0200 <sepi> was it at least a good idea to do q:s and f:fs for those variables. Supposedly can't use any modules
2020-09-29 02:49:57 +0200sarahzrf(~sarahzrf_@benzrf.com) (Quit: bye)
2020-09-29 02:50:38 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 256 seconds)
2020-09-29 02:50:49 +0200sarahzrf(~sarahzrf_@benzrf.com)
2020-09-29 02:51:26 +0200 <Axman6> I don';t understand the question
2020-09-29 02:53:11 +0200 <Axman6> I think you're trying to do too much at once - I would split the checks you need to do out in a where clause and check each thing individually
2020-09-29 02:54:17 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 02:54:45 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 02:54:50 +0200 <Axman6> like I said, start by defining a function which checks if all elements of one list are contained in another, then checks (2) and (3) are trivial
2020-09-29 02:54:57 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-09-29 02:55:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 02:56:06 +0200voet(~voet@84.39.117.57)
2020-09-29 02:56:54 +0200 <ski> the `let' is shadowing the `d' input with another locally defined function called `d'
2020-09-29 02:57:55 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-09-29 02:59:18 +0200 <ski> it also seems to me like this is better written without guards
2020-09-29 02:59:31 +0200 <Axman6> absolutely
2020-09-29 02:59:53 +0200 <sepi> where x /= xs, test ( next elements in xs, s, fs, d) ?
2020-09-29 02:59:55 +0200 <ski> (but if you really want to, i guess you could use them .. but it'd be unidiomatic)
2020-09-29 03:00:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 03:00:35 +0200 <ski> sepi : what is that supposed to check ?
2020-09-29 03:01:42 +0200 <sepi> I want to check if the states in xs are all unique
2020-09-29 03:02:05 +0200 <ski> how about defining a separate function for checking that ?
2020-09-29 03:02:20 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 03:02:36 +0200 <ski> it seems you're trying to do too many things at the same time, in `checkFSM', and confusing them up with each other
2020-09-29 03:03:11 +0200 <sepi> checkFSM call all the functions or functions would be defined inside?
2020-09-29 03:03:31 +0200 <ski> "wishful thinking" can be useful, when programming. imagine you had a function that could check whether a list had no duplicates. then you could use that function to check one of your conditions for `checkFSM'
2020-09-29 03:04:14 +0200jespada(~jespada@90.254.241.6) (Ping timeout: 256 seconds)
2020-09-29 03:04:16 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 03:04:21 +0200 <ski> you could either put off defining that function for later (after writing a bit of `checkFSM', perhaps all). or you could start by defining this helper function, and then come back to `checkFSM', to use it there
2020-09-29 03:04:46 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 03:04:59 +0200 <ski> you could either define such a helper function, inside a `where'-clause for `checkFSM'. or define it separately, in your module
2020-09-29 03:05:17 +0200 <ski> (with the latter option, you could test it out on its own, in the interactor)
2020-09-29 03:06:42 +0200 <ski> anyway, if you'd like to try this, you'd then have to do one of the harder things in programming .. namely invent some suitable name, for this helper function
2020-09-29 03:07:56 +0200 <Axman6> I already did some of that work, with isSubsetOf above
2020-09-29 03:08:04 +0200jespada(~jespada@90.254.241.6)
2020-09-29 03:09:28 +0200sagax(~sagax_nb@213.138.71.146)
2020-09-29 03:09:55 +0200nineonine(~nineonine@216.81.48.202) (Remote host closed the connection)
2020-09-29 03:11:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-09-29 03:13:50 +0200concept2(~concept2@unaffiliated/tubo)
2020-09-29 03:13:52 +0200xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-09-29 03:14:42 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 03:14:47 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 03:15:30 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 03:15:50 +0200falafel(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-29 03:19:00 +0200 <sepi> https://dpaste.org/taJt#L1,3
2020-09-29 03:19:05 +0200 <sepi> my mind still goes elem
2020-09-29 03:19:29 +0200 <sepi> except I should've put notelem
2020-09-29 03:20:09 +0200 <ski> what is the intent of `go' ?
2020-09-29 03:21:47 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 240 seconds)
2020-09-29 03:22:41 +0200 <sepi> use that to check my first case to see if qs has no duplicates is what I was thinking
2020-09-29 03:22:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 03:23:22 +0200 <ski> that doesn't explain specifically what behaviour `go' is intended to have
2020-09-29 03:24:43 +0200 <ski> perhaps if you'd have a suggestion for how you'd want to call `go' from `checkFSM', that might clarify it a bit ?
2020-09-29 03:24:44 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 03:24:52 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 03:25:04 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-09-29 03:25:32 +0200 <Axman6> ski: go only checks if a single element is contained in another list, it is _exactly_ the same as elem
2020-09-29 03:25:37 +0200 <Axman6> uh, sepi
2020-09-29 03:25:43 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-09-29 03:25:52 +0200 <ski> (or else, if you prefer, you could tell what `go' is supposed to check/compute, given inputs, without referring to how you might then use that in `checkFSM')
2020-09-29 03:26:17 +0200dansho(~dansho@ip68-108-167-185.lv.lv.cox.net) (Remote host closed the connection)
2020-09-29 03:26:33 +0200dansho(~dansho@ip68-108-167-185.lv.lv.cox.net)
2020-09-29 03:26:52 +0200skiisn't bothering with the (current) implementation of `go', so far, at most taking the type signature of it into account
2020-09-29 03:27:38 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 03:29:07 +0200falafel(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds)
2020-09-29 03:29:15 +0200 <Axman6> sepi: I've said a few times now you should try to write a function with the following type: Eq a => [a] -> [a] -> Bool, which returns true if all the elements in the first list are contained in the second list. what do you think the base case of this function should be?
2020-09-29 03:30:01 +0200catkiki(~catkiki@m90-134-157-227.cust.tele2.hr) (Remote host closed the connection)
2020-09-29 03:30:07 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
2020-09-29 03:32:17 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-09-29 03:32:20 +0200revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-09-29 03:32:51 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection)
2020-09-29 03:33:06 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-09-29 03:33:13 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 03:34:41 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 03:34:47 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 03:35:13 +0200revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
2020-09-29 03:35:39 +0200revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-09-29 03:35:39 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 03:35:53 +0200 <Axman6> sepi: do you understand that f ... | x = True | otherwise = False is the same as just f ... = x? "If x is true return true, otherwise x must be false so return false"
2020-09-29 03:36:01 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-09-29 03:37:07 +0200justan0theruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-09-29 03:37:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 03:37:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 03:37:36 +0200 <sepi> I suppose the base case would be if it were comparing list1to list2 which is empty it'd return false?
2020-09-29 03:37:47 +0200Wuzzy(~Wuzzy@p5b0df9fe.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-09-29 03:38:05 +0200 <Axman6> why false?
2020-09-29 03:38:27 +0200 <Axman6> the empty set is a subset of all sets isn't it?
2020-09-29 03:38:46 +0200 <Axman6> are all the elements of [] in [1,2,3]?
2020-09-29 03:40:16 +0200 <sepi> ah yes I was already thinking of it backwards are all elements of [1,2,3] in []
2020-09-29 03:41:30 +0200jedws(~jedws@121.209.139.222)
2020-09-29 03:41:41 +0200mu__(~mu@unaffiliated/mu) (Quit: mu__)
2020-09-29 03:41:56 +0200 <sepi> for the guards I was using them because it was the only way I thought of going through all the cases at once. But I doing if, elif, elif instead it looks like
2020-09-29 03:42:03 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 03:42:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-09-29 03:43:35 +0200 <Axman6> sepi: have you tried to write the function I suggested?
2020-09-29 03:43:36 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 03:44:43 +0200 <sepi> could it work like, checkFSM (qs, [], [], []) = define func.....([], s, [], []) = define function
2020-09-29 03:44:46 +0200 <sepi> for seperation
2020-09-29 03:44:55 +0200 <sepi> I'll do the one you were talking about now
2020-09-29 03:45:17 +0200 <Axman6> sepi: look, if you want help, you need to listen to the help we give. if you're going to ignore it, then I'll go and do something else, it's not worth my time
2020-09-29 03:46:49 +0200 <Axman6> we're trying to steer you in the right direction, but you keep getting distracted. no, I don't think that will work, this isn;t something that makes sense to do by traversing the lists all at the same time. break the problem down into smaller problems like we've said, and then combine the results
2020-09-29 03:47:00 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 265 seconds)
2020-09-29 03:47:30 +0200CrazyPython(~crazypyth@71-135-5-88.lightspeed.rlghnc.sbcglobal.net) ()
2020-09-29 03:47:58 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-29 03:48:32 +0200 <Axman6> your final function will probably look something like: checkFSM (qs, s, fs d) = uniqueStates && startIsValid && finalsAreValid && transitionsAreValid where uniqueStates = ...; startsAreValid = ...
2020-09-29 03:50:34 +0200 <ski> sepi : have you used `&&' before ? do you know what it means ?
2020-09-29 03:50:54 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Remote host closed the connection)
2020-09-29 03:51:59 +0200nek0(~nek0@2a01:4f8:222:2b41::12)
2020-09-29 03:53:08 +0200xff0x(~fox@2001:1a81:537a:5700:d96:c29a:71ef:4f01) (Ping timeout: 246 seconds)
2020-09-29 03:53:36 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 03:54:28 +0200rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 260 seconds)
2020-09-29 03:54:46 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-09-29 03:54:59 +0200ryansmccoy(~ryansmcco@68.235.48.108) (Ping timeout: 260 seconds)
2020-09-29 03:55:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 03:55:07 +0200xff0x(~fox@2001:1a81:53b0:3c00:19ba:3f05:ac4b:7fb3)
2020-09-29 03:55:38 +0200ryansmccoy(~ryansmcco@193.37.254.27)
2020-09-29 03:56:22 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 246 seconds)
2020-09-29 03:58:47 +0200 <sepi> Haskell doesn't speak to me too well which is why I take forever my bad
2020-09-29 03:59:13 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-29 03:59:14 +0200 <sepi> Yes it would mean statement one and statement two both have to meet the condition
2020-09-29 03:59:32 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-29 04:00:01 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-29 04:00:20 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-29 04:00:46 +0200 <ski> yes, `&&' expresses a logical "and". `foo && bar' means that both `foo' and `bar' have to be `True', in order for the result of the whole `foo && bar' to be `True'. if either (or both) of them are `False', then the whole will be `False'
2020-09-29 04:00:50 +0200shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-09-29 04:02:46 +0200GuerrillaMonkey(~Jeanne-Ka@68.235.43.166)
2020-09-29 04:02:58 +0200 <ski> sepi : .. i'm still wondering what you wanted `go' to express
2020-09-29 04:03:34 +0200 <ski> or if you got any further, with the function that Axman6 suggested you could define
2020-09-29 04:05:09 +0200Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-131-156.cust.tzulo.com) (Ping timeout: 258 seconds)
2020-09-29 04:05:09 +0200ddellacosta(~dd@86.106.121.168) (Ping timeout: 258 seconds)
2020-09-29 04:05:21 +0200drbean(~drbean@TC210-63-209-16.static.apol.com.tw)
2020-09-29 04:05:33 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2020-09-29 04:06:15 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2020-09-29 04:06:27 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Client Quit)
2020-09-29 04:06:31 +0200dagnabbit(~thelounge@140.82.8.179) (Ping timeout: 272 seconds)
2020-09-29 04:06:43 +0200jdgr(601c428b@gateway/web/cgi-irc/kiwiirc.com/ip.96.28.66.139) (Quit: Connection closed)
2020-09-29 04:07:51 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-09-29 04:08:01 +0200miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2020-09-29 04:08:07 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-09-29 04:08:16 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-09-29 04:08:48 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-09-29 04:08:50 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2020-09-29 04:10:11 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-09-29 04:11:27 +0200GuerrillaMonkey(~Jeanne-Ka@68.235.43.166) (Quit: Leaving)
2020-09-29 04:11:36 +0200Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.166)
2020-09-29 04:14:09 +0200spew(uid195861@gateway/web/irccloud.com/x-annkkxabwayrojjt) (Quit: Connection closed for inactivity)
2020-09-29 04:14:24 +0200 <sepi> Its looking like are elements in list a, are in the full set of b
2020-09-29 04:14:32 +0200dagnabbit(~thelounge@140.82.8.179)
2020-09-29 04:14:40 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-09-29 04:14:51 +0200 <ski> what is `a' and `b' there ?
2020-09-29 04:15:34 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 256 seconds)
2020-09-29 04:16:23 +0200 <sepi> https://dpaste.org/gje6#L1,3
2020-09-29 04:16:28 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 04:16:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 04:16:46 +0200 <sepi> https://learnstack.in/assets/ppt/ppt_img/python-subset.jpg
2020-09-29 04:17:04 +0200 <ski> what is `test a b' supposed to compute/test/check ?
2020-09-29 04:17:06 +0200 <sepi> that function is doing this which is checking if a is in a subset b
2020-09-29 04:17:13 +0200jedws(~jedws@121.209.139.222)
2020-09-29 04:17:39 +0200 <sepi> *if 'a' is a subset of 'b'
2020-09-29 04:17:47 +0200ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2020-09-29 04:18:00 +0200 <ski> the name `test' (nor the name `go') doesn't give much hint about what it's supposed to be testing
2020-09-29 04:18:06 +0200 <ski> ok
2020-09-29 04:18:14 +0200lorozic(~lorozic@wks-41-812.mpi-sws.org) (Remote host closed the connection)
2020-09-29 04:18:20 +0200solonarv(~solonarv@anancy-653-1-63-100.w109-217.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-09-29 04:18:33 +0200lorozic(~lorozic@wks-41-812.mpi-sws.org)
2020-09-29 04:18:51 +0200 <ski> maybe you could invent some more descriptive name, for this function, giving some more hint about what it's supposed to do ?
2020-09-29 04:19:20 +0200 <Axman6> > all (const False) []
2020-09-29 04:19:22 +0200 <lambdabot> True
2020-09-29 04:19:44 +0200toorevitimirp(~tooreviti@117.182.182.201)
2020-09-29 04:19:58 +0200Unode(~Unode@unaffiliated/unode) (Quit: Off it goes)
2020-09-29 04:20:04 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr)
2020-09-29 04:20:05 +0200 <Axman6> sepi: Did you write that function yourself? can you explain to us how it works?
2020-09-29 04:20:10 +0200Unode(~Unode@unaffiliated/unode)
2020-09-29 04:21:22 +0200ph88(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
2020-09-29 04:21:34 +0200jedws(~jedws@121.209.139.222) (Ping timeout: 246 seconds)
2020-09-29 04:21:53 +0200voet(~voet@84.39.117.57) (Ping timeout: 260 seconds)
2020-09-29 04:22:10 +0200 <Axman6> I'm asking because if I were your lecturer or tutor, and I saw checkFSM and test in the same file, I would be very suspicious that test was copied from somewhere because it shows a much better understanding of Haskell than checkFSM does
2020-09-29 04:25:10 +0200skiidly wonders whether sepi has tested `test [1,2,3] []'
2020-09-29 04:26:04 +0200lagothrix(~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services)))
2020-09-29 04:26:10 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-09-29 04:27:14 +0200 <sepi> it is now called isSubsetOf, with 'all' it'll return true if all items in list meet the condition. so its taking the condition (elem b) and applying it to the 'a' list
2020-09-29 04:27:23 +0200renzhi(~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 240 seconds)
2020-09-29 04:28:48 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Remote host closed the connection)
2020-09-29 04:29:07 +0200 <ski> and what about `isSubsetOf [1,2,3] []' ?
2020-09-29 04:29:18 +0200roconnor(~roconnor@host-45-78-255-115.dyn.295.ca) (Ping timeout: 258 seconds)
2020-09-29 04:30:10 +0200 <sepi> I suppose it should be isSubsetOf [] b = True for first condition
2020-09-29 04:31:12 +0200jedws(~jedws@121.209.139.222)
2020-09-29 04:31:33 +0200 <Axman6> is [1,2,3] a subset of [] though?
2020-09-29 04:32:45 +0200nek0(~nek0@mail.nek0.eu)
2020-09-29 04:32:45 +0200Guest18351(~angvp@217.146.82.202)
2020-09-29 04:32:59 +0200 <sepi> no because nothing is in [], but [] is a subset of [1,2,3] because empty is in [1,2,3]
2020-09-29 04:33:18 +0200 <ski> what will all (`elem` b) [] evaluate to ?
2020-09-29 04:33:23 +0200 <Axman6> does your function agree with that?
2020-09-29 04:33:34 +0200 <sshine> if empty is in [1,2,3], what is empty?
2020-09-29 04:33:39 +0200 <Axman6> ski: I think this does actually work btw
2020-09-29 04:34:13 +0200 <ski> Axman6 : mm, i was on cleaning up
2020-09-29 04:34:24 +0200 <Axman6> > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [1,2,3] []
2020-09-29 04:34:27 +0200 <lambdabot> False
2020-09-29 04:34:35 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-09-29 04:34:38 +0200 <Axman6> > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [] [1,2,3]
2020-09-29 04:34:40 +0200 <lambdabot> True
2020-09-29 04:34:43 +0200 <Axman6> > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [4] [1,2,3]
2020-09-29 04:34:45 +0200 <lambdabot> False
2020-09-29 04:35:41 +0200arahael(~arahael@125-209-151-226.tpgi.com.au)
2020-09-29 04:36:04 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 04:37:20 +0200 <Axman6> > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [3,2] [1,2,3] -- probably the more important test
2020-09-29 04:37:22 +0200 <lambdabot> True
2020-09-29 04:39:06 +0200xerox_(~xerox@unaffiliated/xerox)
2020-09-29 04:40:46 +0200TheScoop(~TheScoop@unaffiliated/tryte) (Quit: _)
2020-09-29 04:41:39 +0200 <ski> > let isSubsetOf xs ys = all (`elem` ys) xs in isSubsetOf [3,2,3] [1,2,3,2]
2020-09-29 04:41:41 +0200 <lambdabot> True
2020-09-29 04:43:04 +0200marek(~mmahut@209.250.249.245) (Ping timeout: 260 seconds)
2020-09-29 04:43:12 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 04:43:27 +0200thewormkill(~thewormki@unaffiliated/twk-) (Ping timeout: 260 seconds)
2020-09-29 04:44:32 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se)
2020-09-29 04:45:10 +0200TheScoop(~TheScoop@unaffiliated/tryte)
2020-09-29 04:47:02 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 04:50:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-09-29 04:51:04 +0200thewormkill(~thewormki@unaffiliated/twk-)
2020-09-29 04:51:07 +0200theDon(~td@94.134.91.183) (Ping timeout: 240 seconds)
2020-09-29 04:51:18 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 04:51:24 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-09-29 04:51:27 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2020-09-29 04:53:05 +0200theDon(~td@94.134.91.135)
2020-09-29 04:53:09 +0200drbean(~drbean@TC210-63-209-16.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
2020-09-29 04:53:10 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-09-29 04:53:47 +0200acidjnk_new(~acidjnk@p200300d0c72378045c7b1a0a573f1493.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 04:53:53 +0200marek(~mmahut@209.250.249.245)
2020-09-29 04:54:02 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-09-29 04:57:18 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-09-29 04:57:26 +0200BalterNotz(ca420871@202.66.8.113)
2020-09-29 04:59:13 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 260 seconds)
2020-09-29 05:00:01 +0200Guest18351(~angvp@217.146.82.202) ()
2020-09-29 05:02:55 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-09-29 05:03:13 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
2020-09-29 05:03:26 +0200 <BalterNotz> hi everyone, do you know about haskell language 2020 report release date?
2020-09-29 05:03:38 +0200 <ornxka> some time in 2020
2020-09-29 05:04:09 +0200Lord_of_Life_Lord_of_Life
2020-09-29 05:08:04 +0200 <monochrom> Nothing
2020-09-29 05:09:41 +0200roconnor(~roconnor@host-45-78-198-49.dyn.295.ca)
2020-09-29 05:09:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 05:11:33 +0200bloodstalker(~bloodstal@46.166.187.178) (Remote host closed the connection)
2020-09-29 05:13:58 +0200 <sepi> I made a function that checks for uniqueness within a list, 2 and 3 could be checked by isSubsetOf, for transition function I think I need to take all the possible outputs of d with q <- qs and c <- sigma and then make sure all these outputs are a valid state
2020-09-29 05:14:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-09-29 05:15:24 +0200 <ski> sepi : sounds like a plan
2020-09-29 05:15:34 +0200 <ski> (show current code ?)
2020-09-29 05:19:20 +0200Omentiger(~Omentiger@cpe-24-25-246-129.hawaii.res.rr.com)
2020-09-29 05:19:25 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-09-29 05:19:45 +0200whiteline_(~whiteline@unaffiliated/whiteline)
2020-09-29 05:20:30 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-09-29 05:21:01 +0200whiteline(~whiteline@unaffiliated/whiteline) (Read error: Connection reset by peer)
2020-09-29 05:22:16 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-29 05:23:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 05:28:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-09-29 05:29:14 +0200jlamothe(~jlamothe@dev.jlamothe.net) (Ping timeout: 256 seconds)
2020-09-29 05:30:15 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 05:30:27 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 240 seconds)
2020-09-29 05:30:39 +0200jlamothe(~jlamothe@dev.jlamothe.net)
2020-09-29 05:30:50 +0200 <sepi> I'm not even sure that's correct explanation for transition, conceptually I think I could write out a chart but still need to learn more to apply it to Haskell. https://dpaste.org/FQog
2020-09-29 05:31:01 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se) (Ping timeout: 258 seconds)
2020-09-29 05:34:15 +0200 <monochrom> You have a syntax problem. You should write "isSubsetOf fs qs", not "isSubsetOf (fs qs)".
2020-09-29 05:34:49 +0200 <monochrom> You also have a type problem. You should write "isSubsetOf [s] qs", not "isSubsetOf s qs".
2020-09-29 05:34:58 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-29 05:35:14 +0200 <Axman6> sepi: why do you have the isSubsetOf a [] = True case? you're saying that all lists are a subset of the empty list, which seems wrong to me
2020-09-29 05:35:44 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-09-29 05:35:44 +0200 <monochrom> haha I didn't catch that. Semantic problems are the best problems.
2020-09-29 05:35:58 +0200 <ski> we already pointed that one out, before
2020-09-29 05:36:24 +0200 <Axman6> yeah I only just realised that's what you were referring to, since the code changed when I went to look at it again
2020-09-29 05:36:40 +0200 <ski> sepi : instead of using `if', could you reexpress that condition, using logical operators ?
2020-09-29 05:36:43 +0200 <monochrom> Transition validty is a matter of: for all elements q of qs, for all element c of sigma, is "d q c" is an element of qs?
2020-09-29 05:37:10 +0200 <monochrom> Since you have learned the "all" function, transition validity is a one-liner.
2020-09-29 05:37:13 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-09-29 05:37:44 +0200 <Axman6> Everything's a one-liner if you're brave enough
2020-09-29 05:37:56 +0200 <monochrom> Nah.
2020-09-29 05:38:57 +0200 <monochrom> Everything is a one-liner if there are enough support functions, which in turn are one-liners in their own right, recursively down to the built-ins.
2020-09-29 05:39:14 +0200 <monochrom> Therefore, we have the very wise and deep tautology:
2020-09-29 05:39:27 +0200 <monochrom> Everything is a one-liner if everything is a one-liner. :)
2020-09-29 05:40:00 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-09-29 05:40:31 +0200Omentiger(~Omentiger@cpe-24-25-246-129.hawaii.res.rr.com) (Quit: Leaving)
2020-09-29 05:40:48 +0200 <hololeap> everything is a "do" block
2020-09-29 05:41:31 +0200 <hololeap> in the IO monad
2020-09-29 05:41:42 +0200 <Axman6> Nah
2020-09-29 05:45:23 +0200paintedindigo(~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756)
2020-09-29 05:45:26 +0200evanjs(~evanjs@075-129-188-019.res.spectrum.com) (Ping timeout: 272 seconds)
2020-09-29 05:45:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 05:52:18 +0200evanjs(~evanjs@075-129-188-019.res.spectrum.com)
2020-09-29 05:54:08 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-09-29 05:55:13 +0200xmj1(~xmj@178.239.168.171)
2020-09-29 05:57:49 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 264 seconds)
2020-09-29 05:58:16 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 05:58:47 +0200polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 246 seconds)
2020-09-29 05:58:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 06:02:19 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Remote host closed the connection)
2020-09-29 06:03:11 +0200day_(~Unknown@unaffiliated/day)
2020-09-29 06:04:33 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 06:06:07 +0200day(~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
2020-09-29 06:06:07 +0200day_day
2020-09-29 06:06:31 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 06:07:37 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 06:08:44 +0200 <sepi> tValid :: Int -> Char -> Int -> BooltValid d q c = all (`elem` q) qs && all (`elem` c) sigma
2020-09-29 06:08:59 +0200 <sepi> monochrom would this be a decent start?
2020-09-29 06:09:37 +0200 <sepi> ski you mean other than guards correct? for the if statement
2020-09-29 06:12:13 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 264 seconds)
2020-09-29 06:12:29 +0200alp(~alp@2a01:e0a:58b:4920:3dd5:cbe7:ffdd:6e48)
2020-09-29 06:13:05 +0200dansho(~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
2020-09-29 06:13:27 +0200plutoniix(~q@175.176.222.7)
2020-09-29 06:15:06 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-29 06:18:59 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 06:20:02 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 06:20:17 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 06:22:10 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-gvtsuqkvrqeloqyq) ()
2020-09-29 06:23:37 +0200sepi(49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-29 06:24:32 +0200adam_wespiser(~adam_wesp@209.6.42.110)
2020-09-29 06:25:35 +0200benet8(~lubuntu@179.176.72.238.dynamic.adsl.gvt.net.br)
2020-09-29 06:25:48 +0200sepi(49dc4892@c-73-220-72-146.hsd1.ca.comcast.net)
2020-09-29 06:26:48 +0200 <benet8> on
2020-09-29 06:27:25 +0200 <sepi> My bad got disconnected didn't realize. thanks for the assistance Haskell is a little clearer than when I woke this morning
2020-09-29 06:28:12 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 260 seconds)
2020-09-29 06:30:03 +0200sepi(49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-29 06:32:25 +0200 <benet8> q
2020-09-29 06:32:29 +0200 <sim590> Is it possible to force building the package of my cabal project without downloading anythihng. I'm writing some CI script and I don't want any downloading since everything is being installed in my Docker image.
2020-09-29 06:33:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-29 06:35:08 +0200Clough(~Cain@210.185.68.138)
2020-09-29 06:38:28 +0200hackagehls-plugin-api 0.4.1.0 - Haskell Language Server API for plugin communication https://hackage.haskell.org/package/hls-plugin-api-0.4.1.0 (jneira)
2020-09-29 06:39:13 +0200toorevitimirp(~tooreviti@117.182.182.201) (Ping timeout: 264 seconds)
2020-09-29 06:39:33 +0200 <sim590> new-build --offline just doesn't work. I still see "Downloading" lines.
2020-09-29 06:40:01 +0200mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2020-09-29 06:40:35 +0200argent0(~argent0@168.227.96.4) (Remote host closed the connection)
2020-09-29 06:41:26 +0200mozzarella(~sam@unaffiliated/sam113101)
2020-09-29 06:43:19 +0200jneira(501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206) (Ping timeout: 246 seconds)
2020-09-29 06:45:23 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-29 06:46:47 +0200xff0x(~fox@2001:1a81:53b0:3c00:19ba:3f05:ac4b:7fb3) (Ping timeout: 240 seconds)
2020-09-29 06:47:46 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 06:47:56 +0200xff0x(~fox@2001:1a81:53b0:3c00:9889:b2f6:c747:1eec)
2020-09-29 06:51:01 +0200benet8(~lubuntu@179.176.72.238.dynamic.adsl.gvt.net.br) (Remote host closed the connection)
2020-09-29 06:54:17 +0200polyrain(~polyrain@130.102.13.187)
2020-09-29 06:58:28 +0200TooDifficult(~TooDiffic@139.59.59.230)
2020-09-29 06:58:48 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-29 06:59:12 +0200mmohammadi9812(~mmohammad@188.210.120.20)
2020-09-29 06:59:32 +0200adam_wespiser(~adam_wesp@209.6.42.110) (Ping timeout: 272 seconds)
2020-09-29 07:00:28 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 07:04:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 07:04:33 +0200josh___(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 07:07:28 +0200polyrain(~polyrain@130.102.13.187) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 07:09:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-29 07:15:40 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 07:16:29 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds)
2020-09-29 07:16:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-09-29 07:17:05 +0200xmj1(~xmj@178.239.168.171) (Remote host closed the connection)
2020-09-29 07:17:53 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 07:18:23 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 07:20:03 +0200ishutin_(~Ishutin@92-249-150-146.static.digikabel.hu)
2020-09-29 07:20:27 +0200Quarl(~Quarl@94.191.138.174.mobile.tre.se)
2020-09-29 07:22:03 +0200 <hololeap> what's a good way to combine functions that pattern match on a sum type, so that if the first function fails to match, it moves on to the next?
2020-09-29 07:22:52 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 246 seconds)
2020-09-29 07:23:37 +0200ishutin(~Ishutin@178-164-206-35.pool.digikabel.hu) (Ping timeout: 264 seconds)
2020-09-29 07:23:47 +0200 <hololeap> i think this could be made into a monoid somehow, where mempty is a function that never matches
2020-09-29 07:24:06 +0200 <glguy> Have the function return a Maybe result
2020-09-29 07:24:14 +0200 <glguy> Nothing for no match, Just result for a match
2020-09-29 07:24:57 +0200 <glguy> then you can take the first result that was a Just
2020-09-29 07:25:01 +0200 <hololeap> ah, or a Maybe (First a), which would fufill my monoid wishes
2020-09-29 07:25:25 +0200 <glguy> Instead of Monoid you can use Alternative
2020-09-29 07:25:44 +0200 <glguy> If you want to use First, just use First; you don't need the extra Maybe in that case
2020-09-29 07:26:40 +0200 <hololeap> what would i do if the entire thing returned a Nothing? ideally it would pass through the normal error about failing a pattern match
2020-09-29 07:27:19 +0200 <glguy> There's no failing pattern matches
2020-09-29 07:27:45 +0200 <glguy> You'll have all complete patterns; some will return Nothing
2020-09-29 07:28:28 +0200 <hololeap> in this case, the Maybe has to be discarded before it is passed along
2020-09-29 07:28:47 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl)
2020-09-29 07:29:15 +0200 <hololeap> i'm looking at appHandleEvent from Brick.Main
2020-09-29 07:30:30 +0200 <hololeap> i would like to have a "default" where certain BrickEvent possibilities are handled, but the ability to pass in custom handlers which can handle more possibilites
2020-09-29 07:31:30 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-09-29 07:31:43 +0200 <hololeap> oh, i think i see the correct solution here
2020-09-29 07:31:49 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-09-29 07:32:11 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 07:33:22 +0200 <hololeap> if the inner function returns a Nothing, then it will pass through the original state
2020-09-29 07:36:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 07:36:39 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 07:38:14 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 07:38:23 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-09-29 07:39:58 +0200alp(~alp@2a01:e0a:58b:4920:3dd5:cbe7:ffdd:6e48) (Remote host closed the connection)
2020-09-29 07:40:20 +0200alp(~alp@2a01:e0a:58b:4920:8dc4:6663:c8fb:d2c0)
2020-09-29 07:48:13 +0200Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.166) (Ping timeout: 264 seconds)
2020-09-29 07:51:05 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-29 07:52:06 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 07:52:53 +0200jedws(~jedws@121.209.139.222)
2020-09-29 07:52:54 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 07:53:17 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 07:55:29 +0200polyrain(~polyrain@130.102.13.187)
2020-09-29 07:56:11 +0200plutoniix(~q@175.176.222.7) (Ping timeout: 240 seconds)
2020-09-29 07:56:28 +0200josh___(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-29 07:57:26 +0200plutoniix(~q@175.176.222.7)
2020-09-29 07:57:50 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 07:59:01 +0200plutoniix(~q@175.176.222.7) (Max SendQ exceeded)
2020-09-29 08:00:18 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-09-29 08:01:38 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-29 08:03:12 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 08:03:18 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 08:04:08 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds)
2020-09-29 08:06:53 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-09-29 08:07:08 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-09-29 08:09:15 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 08:09:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-29 08:11:11 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-09-29 08:12:19 +0200fog(a181460d@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.13)
2020-09-29 08:12:31 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 08:12:56 +0200 <fog> do we have something like go in haskell?
2020-09-29 08:12:57 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 08:13:17 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 08:13:38 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-09-29 08:13:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-09-29 08:13:56 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-09-29 08:14:08 +0200 <fog> i was watching a pretty cool talk about how it made its way into "kotlin" https://www.youtube.com/watch?v=Mj5P47F6nJg
2020-09-29 08:14:59 +0200 <fog> erm, not the whole of go obviously, just the async await stuff
2020-09-29 08:15:06 +0200 <fog> seemed pretty state of the art
2020-09-29 08:15:11 +0200 <gnumonik> Is there any way to use Control.Lens to update an element of a Data.Vector vector if it's present, and insert some other element if it's not? Or is that impossible because vectors aren't sufficiently maplike for a Control.Lens.At At instance?
2020-09-29 08:16:04 +0200polux2001(~polux@51.15.169.172) (Quit: The Lounge - https://thelounge.github.io)
2020-09-29 08:16:10 +0200 <fog> what do you mean "if its present" - and "sufficently maplike" ?
2020-09-29 08:16:24 +0200polux2001(~polux@51.15.169.172)
2020-09-29 08:16:43 +0200plutoniix(~q@175.176.222.7)
2020-09-29 08:16:48 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 08:17:20 +0200 <fog> im guessing you mean like Data.Map has a lookup key which is used by At
2020-09-29 08:17:38 +0200 <fog> so you want to lens to a specific position in the vector
2020-09-29 08:17:59 +0200 <fog> but then, what would it mean to have this "not be there"?
2020-09-29 08:18:05 +0200 <fog> arent vectors "full"?
2020-09-29 08:18:11 +0200unlink2(~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-09-29 08:18:29 +0200unlink2(~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de)
2020-09-29 08:18:30 +0200 <gnumonik> er sorry, i meant an element at a given index in the vector. really i only care about the case where it's an empty vector
2020-09-29 08:19:23 +0200 <fog> hmm, i cant remember if vectors have fixed length... let me check the docs
2020-09-29 08:20:21 +0200 <fog> ah, no, they are specifcally supposed to support slicing, so i guess the empty vector is like the empty list, instead of like, a fixed length vector full of undefineds or something
2020-09-29 08:20:36 +0200 <fog> so im still not sure this "if its present" fits well with this
2020-09-29 08:20:45 +0200 <fog> do you just mean an out of bounds accessor?
2020-09-29 08:21:16 +0200 <fog> but then, i guess you couldnt have it "insert" at this position - basically thinking of it being listlike - so you would need all the values inbetween aswell
2020-09-29 08:21:38 +0200 <fog> basically, no, its not suffciently maplike to insert at an arbitrary out of bounds position
2020-09-29 08:21:43 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 256 seconds)
2020-09-29 08:22:46 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 08:23:08 +0200hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2020-09-29 08:23:17 +0200 <fog> i think you could be confusing it with something like memory addresses, where you would kind of malloc off a block, like the mutability of mvector
2020-09-29 08:23:27 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 08:23:45 +0200 <fog> then you could have these presumably not containing any actual values. thats not how vectors work
2020-09-29 08:24:21 +0200 <fog> is it?
2020-09-29 08:25:56 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 08:26:19 +0200 <gnumonik> I just meant "empty" in the Data.Vector.empty sense I think? I dunno if those are empty in some deeper sense than V.null (V.empty) = True
2020-09-29 08:26:50 +0200 <fog> % null []
2020-09-29 08:26:51 +0200 <yahb> fog: True
2020-09-29 08:26:52 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 08:27:05 +0200 <fog> maybe you want https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-Array.html
2020-09-29 08:28:31 +0200 <Xnuk> what is %
2020-09-29 08:28:50 +0200 <fog> > null []
2020-09-29 08:28:52 +0200 <lambdabot> True
2020-09-29 08:29:08 +0200 <fog> see how its either lambdabot or yahb that responds
2020-09-29 08:29:18 +0200 <fog> % is for messaging yahb
2020-09-29 08:29:19 +0200 <yahb> fog: ; <interactive>:133:1: error:; * Variable not in scope: is :: (t2 a0 -> (a0 -> f0 b0) -> f0 (t2 b0)) -> t0 -> t1 -> t; * Perhaps you meant one of these: `C.id' (imported from Control.Category), `id' (imported from Prelude), `iso' (imported from Control.Lens); <interactive>:133:8: error: Variable not in scope: messaging; <interactive>:133:18: error: Variable not in scope: yahb
2020-09-29 08:29:23 +0200 <fog> ...
2020-09-29 08:29:26 +0200 <Xnuk> awesome
2020-09-29 08:29:37 +0200 <Xnuk> > is for messaging lambdabot
2020-09-29 08:29:40 +0200 <lambdabot> error:
2020-09-29 08:29:40 +0200 <lambdabot> • Variable not in scope:
2020-09-29 08:29:40 +0200 <lambdabot> is :: (t2 a0 -> (a0 -> f0 b0) -> f0 (t2 b0)) -> t0 -> t1 -> t
2020-09-29 08:29:45 +0200 <fog> yes
2020-09-29 08:29:59 +0200alp(~alp@2a01:e0a:58b:4920:8dc4:6663:c8fb:d2c0) (Ping timeout: 272 seconds)
2020-09-29 08:30:07 +0200 <fog> yahb is sometimes better for supporting module imports and language extensions
2020-09-29 08:30:19 +0200 <fog> never quite sure when lambdabot is going to complain
2020-09-29 08:30:23 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 260 seconds)
2020-09-29 08:31:15 +0200jonatanb(~jonatanb@83.24.231.247.ipv4.supernova.orange.pl)
2020-09-29 08:32:34 +0200 <fog> gnumonik: see; https://hackage.haskell.org/package/array-0.5.4.0/docs/Data-Array-MArray.html#g:3
2020-09-29 08:33:08 +0200 <fog> im guessing nobody online can answer about go or kotlin - ill return in a while
2020-09-29 08:33:08 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 08:33:18 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 08:33:37 +0200 <gnumonik> I'll check it out, thanks. That might be overkill though. I read that "never use lists" article and converted a bunch of lists that will never hold more than a dozen elements into vectors because... I dunno
2020-09-29 08:33:43 +0200fog(a181460d@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.13) (Quit: Connection closed)
2020-09-29 08:34:31 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-09-29 08:34:57 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 08:35:04 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 08:35:08 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 08:35:34 +0200 <Xnuk> https://hackage.haskell.org/package/async
2020-09-29 08:38:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 08:40:01 +0200dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-09-29 08:40:46 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 256 seconds)
2020-09-29 08:42:30 +0200 <hc> ah, the beautiful async package. :) multithreaded programming is one of the most enjoyable things to do in haskell imho
2020-09-29 08:42:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-09-29 08:42:47 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 08:43:17 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 08:43:46 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-09-29 08:43:49 +0200ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-09-29 08:44:19 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 08:44:27 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 08:48:27 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 240 seconds)
2020-09-29 08:50:21 +0200fog(a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150)
2020-09-29 08:50:22 +0200drbean(~drbean@TC210-63-209-154.static.apol.com.tw)
2020-09-29 08:50:48 +0200 <fog> hc: do you know how this compares to the "job" and "structured concurrency" notions from kotlin (discussed in the talk linked)
2020-09-29 08:51:06 +0200m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
2020-09-29 08:51:28 +0200 <hc> fog: kotlin in based on the java vm, so I guess they'll be using some async/await concept?
2020-09-29 08:51:37 +0200 <fog> they have a fancy "launch" thing that somehow captures all of the scopes nicely and does error propagation in a way that is somehow good
2020-09-29 08:51:53 +0200 <hc> lemme check it
2020-09-29 08:51:56 +0200 <fog> hc: argh, i cant really summarise the talk very well...
2020-09-29 08:52:46 +0200polyrain(~polyrain@130.102.13.187) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 08:52:46 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 08:52:47 +0200 <fog> it was something to do with branching concurent substructures all being contained in the same kind of overall thread
2020-09-29 08:53:09 +0200 <fog> so that errors could not "leak from the context" or something...
2020-09-29 08:53:13 +0200 <hc> could you give me a link to the talk? i cannot find it in the backlog
2020-09-29 08:53:25 +0200 <fog> https://www.youtube.com/watch?v=Mj5P47F6nJg
2020-09-29 08:53:30 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 08:53:30 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 08:53:39 +0200 <hc> thx
2020-09-29 08:53:45 +0200 <fog> "Roman Elizarov — Structured concurrency"
2020-09-29 08:54:22 +0200 <fog> i think it was something to do with "go considered harmful"
2020-09-29 08:54:26 +0200 <hc> having a look at it now
2020-09-29 08:54:29 +0200 <fog> ok
2020-09-29 08:54:47 +0200fog(a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) (Client Quit)
2020-09-29 08:55:17 +0200 <hc> ah. "inspired by async/await". 2nd slide. so it cannot be good ;p
2020-09-29 08:55:19 +0200UltimateNate(~UltimateN@185.189.112.19)
2020-09-29 08:55:49 +0200mu_(~mu@unaffiliated/mu) (Client Quit)
2020-09-29 08:56:37 +0200Turmfalke(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-09-29 08:57:06 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-09-29 08:57:17 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-29 08:58:01 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 258 seconds)
2020-09-29 08:58:49 +0200fog(a18146b8@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.184)
2020-09-29 08:59:14 +0200chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-09-29 08:59:33 +0200 <fog> basically, the way im doing it atm is to just launch an exe per function - and to have these all just communicate with each other using stdio
2020-09-29 09:00:35 +0200Ariakenom(~Ariakenom@h-98-128-229-34.NA.cust.bahnhof.se)
2020-09-29 09:00:38 +0200 <fog> the problem with the idea of "structured concurrency" in this approach, is that if any of the processes are long lived, and are killed unexpectedly by some rogue sentinal process (which seems to be the case at least on the free tier of AWS)
2020-09-29 09:01:01 +0200 <fog> where its actually really difficult to get a persistent process
2020-09-29 09:01:21 +0200 <fog> so then, the functions have to kind of watch the threads of each other to see if one gets killed
2020-09-29 09:01:39 +0200 <fog> and have the ability to restart the thing that watches over them if *it* gets killed
2020-09-29 09:02:12 +0200 <fog> so the idea of having these all under one parent process is totally counterproductive, since it would result in all the processes getting killed
2020-09-29 09:02:27 +0200hackagefakedata 0.8.0 - Library for producing fake data https://hackage.haskell.org/package/fakedata-0.8.0 (psibi)
2020-09-29 09:02:39 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 09:02:47 +0200polyrain(~polyrain@130.102.13.187)
2020-09-29 09:02:53 +0200 <fog> the real problem is that these are all done using linux threads, and i have some crude way of interfacing with top to get the thread numbers, its all a total hack
2020-09-29 09:03:15 +0200 <fog> and that really what i want, is for some kind of haskell based representation of a graph to keep track of all of these threads
2020-09-29 09:03:34 +0200 <fog> but then i cant reconcile the "distributed" thing, of having each of the functions running on its own exe
2020-09-29 09:03:53 +0200rprije(~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) (Remote host closed the connection)
2020-09-29 09:04:15 +0200 <fog> and the way of handling all of the communication structure from within one haskell program, so i can use nice representations of graphs for the function net
2020-09-29 09:04:31 +0200fog(a18146b8@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.184) (Quit: Connection closed)
2020-09-29 09:05:25 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-29 09:06:11 +0200rprije(~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au)
2020-09-29 09:06:37 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 09:07:52 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 246 seconds)
2020-09-29 09:08:07 +0200polyrain(~polyrain@130.102.13.187) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 09:11:46 +0200fog(a1814687@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.135)
2020-09-29 09:13:07 +0200alp(~alp@2a01:e0a:58b:4920:1865:138c:f898:eb2d)
2020-09-29 09:15:42 +0200jgt(~jgt@194.143.137.49.users.breezein.net)
2020-09-29 09:16:00 +0200mmohammadi9812(~mmohammad@188.210.120.20) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-09-29 09:16:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 09:17:25 +0200poljar(~poljar@93-139-70-179.adsl.net.t-com.hr) (Remote host closed the connection)
2020-09-29 09:17:58 +0200poljar(~poljar@93-139-70-179.adsl.net.t-com.hr)
2020-09-29 09:18:04 +0200FreeBirdLjj(~freebirdl@240e:388:4f41:dc00:dcc7:aca0:59fb:f630)
2020-09-29 09:18:25 +0200roconnor(~roconnor@host-45-78-198-49.dyn.295.ca) (Ping timeout: 240 seconds)
2020-09-29 09:20:01 +0200robogoat(~robogoat@209.195.0.146) (Ping timeout: 265 seconds)
2020-09-29 09:20:47 +0200robogoat(~robogoat@209.195.0.146)
2020-09-29 09:20:53 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-09-29 09:21:10 +0200 <hc> fog: ah, you were gone shortly when I said about the talk: "ah. "inspired by async/await". 2nd slide. so it cannot be good ;p"
2020-09-29 09:21:24 +0200 <fog> hmm
2020-09-29 09:21:37 +0200 <hc> imho the async/await is justified in some niche programming areas, but the way it's accepted as a generic paradigm is a bit scary
2020-09-29 09:21:50 +0200 <hc> i don't consider it a feature of a high level language
2020-09-29 09:21:51 +0200 <fog> can you elaborate?
2020-09-29 09:21:59 +0200dyeplexer(~lol@unaffiliated/terpin)
2020-09-29 09:22:03 +0200 <hc> you clutter your code with implementation details that should be left to the runtime
2020-09-29 09:22:07 +0200FreeBirdLjj(~freebirdl@240e:388:4f41:dc00:dcc7:aca0:59fb:f630) (Ping timeout: 240 seconds)
2020-09-29 09:22:25 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-09-29 09:22:43 +0200 <fog> i guess thats why he was using kotlin - the resulting implementation managed to capture the hierarchical concurrency really neatly
2020-09-29 09:22:59 +0200 <hc> ok, i'll have to continue with the talk :)
2020-09-29 09:23:27 +0200 <fog> basically it ended up with it being like a tree structure with all the branching lower forked processes being under the same top node
2020-09-29 09:23:40 +0200 <fog> which allowed for errors to be gathered
2020-09-29 09:23:52 +0200josh(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Remote host closed the connection)
2020-09-29 09:23:56 +0200 <fog> and that no strange effects could escape the encapsulation
2020-09-29 09:24:09 +0200 <fog> but this was kind of the exact opposite of my use case
2020-09-29 09:24:19 +0200 <fog> i cant see how that would ever work in a distributed setting
2020-09-29 09:24:34 +0200 <fog> it seems like its just an approach to "green threads" managment - within the program itself
2020-09-29 09:25:03 +0200 <fog> instead of as a way of scheduling genuinely parallel computations, running in different exes possibly on different machines
2020-09-29 09:25:28 +0200MattMareo(~mattl@unaffiliated/mattmareo) (Quit: WeeChat 2.7.1)
2020-09-29 09:25:39 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-29 09:25:41 +0200 <fog> if you try and encapsulate all your threads in one runtime, then how can you ever hope to have distributed concurrency...
2020-09-29 09:26:18 +0200fog(a1814687@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.135) (Quit: Connection closed)
2020-09-29 09:31:02 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 260 seconds)
2020-09-29 09:31:17 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 09:32:42 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-09-29 09:33:09 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-09-29 09:33:55 +0200 <hc> sigh, that talk is too verbose... i need to find a PDF or something
2020-09-29 09:34:40 +0200chaosmasttter(~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de)
2020-09-29 09:35:07 +0200murphy_(~murphy_@2604:2000:1281:8a9e:46d4:9a6b:fb19:e552) (Ping timeout: 240 seconds)
2020-09-29 09:35:29 +0200murphy_(~murphy_@2604:2000:1281:8a9e:a00c:e87a:3ee5:cae0)
2020-09-29 09:35:30 +0200fog(a18146a5@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.165)
2020-09-29 09:36:02 +0200 <fog> hc: its not like the question actually requires an understanding of the concept of structured concurrency
2020-09-29 09:36:22 +0200 <fog> i dont want you to have to watch a whole talk just to get what i mean...
2020-09-29 09:37:08 +0200paintedindigo(~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Quit: Leaving)
2020-09-29 09:37:28 +0200paintedindigo(~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756)
2020-09-29 09:37:52 +0200 <hc> fog: i gave up anyway; I'd rather read a paper or article about the concepts
2020-09-29 09:38:00 +0200 <fog> supposing i dont care about distributing the processes and i can just have everything in one program
2020-09-29 09:38:45 +0200 <fog> then i can use things like the async library - and im mostly concerned with comunication "channels" and shared memory like in STM - or mutable state per "node" like in an actors model
2020-09-29 09:39:06 +0200fendor(~fendor@77.119.130.118.wireless.dyn.drei.com)
2020-09-29 09:39:33 +0200kritzefitz(~kritzefit@fw-front.credativ.com)
2020-09-29 09:39:46 +0200howdoi(uid224@gateway/web/irccloud.com/x-mbjggxgdrdmqyxnj) (Quit: Connection closed for inactivity)
2020-09-29 09:40:08 +0200 <fog> hc: i dont really want to start linking a bunch of kotlin stuff here, but the author showed some blog posts he had made during the talk, so i guess you can just search his name
2020-09-29 09:40:08 +0200paintedindigo(~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Client Quit)
2020-09-29 09:40:29 +0200paintedindigo(~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756)
2020-09-29 09:41:04 +0200 <fog> he said it was mostly inspired by this post;
2020-09-29 09:41:04 +0200 <fog> https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
2020-09-29 09:41:27 +0200 <fog> or rather, thats where the phrase "structured concurrency" was taken from
2020-09-29 09:42:02 +0200 <fog> do you know of any abstractions that capture these concepts?
2020-09-29 09:42:12 +0200 <fog> like, STM, vs Actors etc
2020-09-29 09:42:36 +0200 <hc> tbh, the article already makes me a bit biased by starting with a sentence like 'Every concurrency API needs a way to run code concurrently.'
2020-09-29 09:42:36 +0200 <fog> i cant think what functions a class would have to provide to capture both of these concurrency paradigms
2020-09-29 09:42:44 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de)
2020-09-29 09:43:10 +0200 <fog> biased?
2020-09-29 09:43:58 +0200hackageorbits 0.4 - Types and functions for Kepler orbits. https://hackage.haskell.org/package/orbits-0.4 (jophish)
2020-09-29 09:44:04 +0200 <fog> im just concerned that while we have at least one implementation of Actors, (i havent looked into STM yet, as i dont think i need shared mutable memory)
2020-09-29 09:44:21 +0200 <fog> that they dont satisfy an overall interface
2020-09-29 09:44:36 +0200 <fog> im not quite sure what that would be
2020-09-29 09:45:01 +0200 <fog> the talk basically was along the lines of "dont make a list of concurrent processes"
2020-09-29 09:45:38 +0200 <fog> and instead advocated them being treelike to capture ancestry in order to propagate failure and errors.
2020-09-29 09:45:43 +0200 <hc> wait, he has to explain to me his new control structure by starting with a history of goto? sorry, haven't got the time for that right now
2020-09-29 09:46:24 +0200 <fog> right, dont bother with the talk, sorry - i was just trying to get the part that was important
2020-09-29 09:46:53 +0200 <hc> i mean the article. that's just as confusing and verbose
2020-09-29 09:47:13 +0200 <fog> there was basically some magical way the kotlin language managed to render all of the handling of this tree processes as syntax where it could wrangle the contexts
2020-09-29 09:47:40 +0200 <nshepperd1> what concurrency API doesn't need a way to run code concurrently
2020-09-29 09:47:51 +0200 <fog> hc: seriously, its so simple - its just a tree as opposed to a list of concurrent processes.
2020-09-29 09:48:04 +0200BalterNotz(ca420871@202.66.8.113) (Remote host closed the connection)
2020-09-29 09:48:57 +0200 <fog> anyway, i cant understand how to structure an API for an actors model. apparently i dont want a "node list" and so presumably i dont want an edge list either
2020-09-29 09:49:12 +0200 <fog> i guess the idea is just to capture all that into a syntax tree
2020-09-29 09:49:31 +0200 <fog> and that kotlin gives some fancy way to write syntax like functions or something
2020-09-29 09:49:52 +0200 <fog> so that he could write things like keywords like "launch" or "run"
2020-09-29 09:50:28 +0200lucid_0x80(~lucid_0x8@188.253.237.9)
2020-09-29 09:50:48 +0200 <fog> but basically the whole idea of "structured concurrency" was just something like having a ADT for the connectivity between calling processes
2020-09-29 09:51:42 +0200 <fog> ah, im confusing "comunications chanels" as edges, and this "calling processes" as parents, as branches in the syntax tree
2020-09-29 09:51:57 +0200 <fog> i guess i should read more about mailboxes
2020-09-29 09:52:50 +0200fog(a18146a5@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.165) (Quit: Connection closed)
2020-09-29 09:54:04 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-29 09:56:02 +0200digia(~digia@unaffiliated/digia) (Quit: Beep Boop...)
2020-09-29 09:56:17 +0200digia(~digia@unaffiliated/digia)
2020-09-29 09:58:33 +0200DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-09-29 09:58:47 +0200madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-09-29 09:58:52 +0200m1dnight_m1d
2020-09-29 09:59:15 +0200fog30(a18146b7@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.183)
2020-09-29 09:59:36 +0200 <fog30> ok, so from what i can understand, it needs something like an erlang "scheduler"
2020-09-29 10:00:18 +0200 <fog30> otherwise its going to be a wasteful thread, just rereading an empty mailbox over and over until it receives a "message" which is some input argument to the function
2020-09-29 10:01:19 +0200 <fog30> im not sure how it works to do with the mailbox being listlike, so that the receipt of messages can be raced upon, and the control of which inputs to accept is then passed to the actor
2020-09-29 10:01:22 +0200John20(~John@82.46.59.122)
2020-09-29 10:02:06 +0200 <fog30> like it can say, "i take types of Either Int Bool, where the Ints are from this actor, and im going to process them before any of the Bools im recieving from this other actor"
2020-09-29 10:02:12 +0200 <fog30> by "reading its mailbox"
2020-09-29 10:02:31 +0200 <fog30> and in this way, somehow converting between being a pushed or pulled process..
2020-09-29 10:02:48 +0200 <fog30> not sure what the termanology is - something to do with state vs costate
2020-09-29 10:02:56 +0200 <fog30> producer vs consumer
2020-09-29 10:03:01 +0200m1dm1dnight_
2020-09-29 10:03:22 +0200Clough(~Cain@210.185.68.138) (Read error: Connection reset by peer)
2020-09-29 10:03:33 +0200 <fog30> that by reading its mailbox, it decides when to respond, as opposed to being forced to respond by the thing sending messages
2020-09-29 10:03:49 +0200Clough(~Cain@210.185.68.138)
2020-09-29 10:03:50 +0200rprije(~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au) (Remote host closed the connection)
2020-09-29 10:04:11 +0200rprije(~rprije@27.143.220.203.dial.dynamic.acc01-myal-dub.comindico.com.au)
2020-09-29 10:04:13 +0200klardotsh(~klardotsh@24.17.103.8) (Ping timeout: 246 seconds)
2020-09-29 10:04:17 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-rzmwmtzgbawceqym) (Quit: Connection closed for inactivity)
2020-09-29 10:04:41 +0200 <fog30> so you dont like, supply an argument to a function, you just put it in the mailbox, and the function can decide when to operate on it - i guess essentially becoming blocking in the process
2020-09-29 10:05:01 +0200 <fog30> but, then, there is nothing that should be waiting on it, it only ever sends messages to other mailboxes
2020-09-29 10:05:18 +0200aarvar(~foewfoiew@50.35.43.33)
2020-09-29 10:05:22 +0200 <fog30> which then somehow serve like input arguments in function application syntax
2020-09-29 10:05:31 +0200lucid_0x80(~lucid_0x8@188.253.237.9) (Ping timeout: 260 seconds)
2020-09-29 10:05:37 +0200shatriff(~vitaliish@176.52.219.10) (Ping timeout: 264 seconds)
2020-09-29 10:05:39 +0200 <fog30> sounds totally mental
2020-09-29 10:06:17 +0200 <fog30> let bound variables passed as inputs to functions would be replaced with emited messages stored in the actors mailbox
2020-09-29 10:07:03 +0200 <fog30> i cant see how that would work at all really! the let bound variable might not have had a value written to it yet
2020-09-29 10:07:26 +0200 <fog30> hmm, i guess that would be the empty list, as a mailbox
2020-09-29 10:07:40 +0200 <fog30> so it seems like all values end up being replaced by lists
2020-09-29 10:08:06 +0200 <fog30> wierd paradigm. pretty sure thats not how the actors models we have as libraries work...
2020-09-29 10:08:32 +0200 <fog30> seems like the kind of thing that would work really well with linear types.
2020-09-29 10:08:46 +0200 <fog30> then we can have messages that are like "burn after reading"
2020-09-29 10:09:02 +0200 <fog30> so they dont need to be garbage collected
2020-09-29 10:09:09 +0200m1dnight_m1d
2020-09-29 10:09:16 +0200m1dm1dnight_
2020-09-29 10:09:27 +0200fog30(a18146b7@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.183) (Quit: Connection closed)
2020-09-29 10:09:31 +0200Sanchayan(~Sanchayan@136.185.169.201)
2020-09-29 10:10:47 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-09-29 10:11:37 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-09-29 10:13:16 +0200tzh(~tzh@2601:448:c500:5300::82b3) (Quit: zzz)
2020-09-29 10:14:57 +0200hackagenothunks 0.1.1.0 - Examine values for unexpected thunks https://hackage.haskell.org/package/nothunks-0.1.1.0 (EdskoDeVries)
2020-09-29 10:16:54 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-09-29 10:18:40 +0200__monty__(~toonn@unaffiliated/toonn)
2020-09-29 10:21:06 +0200DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-09-29 10:23:27 +0200sword865(uid208942@gateway/web/irccloud.com/x-uhmvawtkvtngcrcd)
2020-09-29 10:24:33 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-29 10:27:46 +0200ubert(~Thunderbi@178.165.128.50.wireless.dyn.drei.com)
2020-09-29 10:28:47 +0200ubert(~Thunderbi@178.165.128.50.wireless.dyn.drei.com) (Remote host closed the connection)
2020-09-29 10:28:48 +0200mmohammadi9812(~mmohammad@188.210.120.20)
2020-09-29 10:29:26 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-09-29 10:32:16 +0200jedws(~jedws@121.209.139.222)
2020-09-29 10:32:45 +0200thc202(~thc202@unaffiliated/thc202)
2020-09-29 10:35:11 +0200jedws(~jedws@121.209.139.222) (Client Quit)
2020-09-29 10:35:20 +0200isovector1(~isovector@172.103.216.166)
2020-09-29 10:35:25 +0200rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 265 seconds)
2020-09-29 10:35:27 +0200murphy_(~murphy_@2604:2000:1281:8a9e:a00c:e87a:3ee5:cae0) (Ping timeout: 240 seconds)
2020-09-29 10:36:36 +0200murphy_(~murphy_@2604:2000:1281:8a9e:14d4:9618:a1b2:ef6b)
2020-09-29 10:37:41 +0200rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi)
2020-09-29 10:38:00 +0200isovector1(~isovector@172.103.216.166) ()
2020-09-29 10:38:35 +0200TooDifficult(~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds)
2020-09-29 10:39:50 +0200paintedindigo(~paintedin@2605:a000:1621:8576:21b5:3482:9f3c:3756) (Quit: Leaving)
2020-09-29 10:41:38 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 10:42:11 +0200drbean(~drbean@TC210-63-209-154.static.apol.com.tw) (Ping timeout: 265 seconds)
2020-09-29 10:43:50 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-29 10:44:44 +0200fog(a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150)
2020-09-29 10:44:52 +0200 <fog> hmm, i have found several resources
2020-09-29 10:44:53 +0200jedws(~jedws@121.209.139.222)
2020-09-29 10:44:53 +0200 <fog> https://mail.haskell.org/pipermail/haskell-cafe/2014-March/113341.html
2020-09-29 10:45:06 +0200 <fog> this is a pretty decent thread discussing actors models
2020-09-29 10:45:24 +0200 <fog> not really sure about erlang vs cloud haskell
2020-09-29 10:45:34 +0200 <fog> but i like the references to different implementations of channels
2020-09-29 10:46:15 +0200 <fog> and different ways of scheduling, which i guess kind of makes actors basically an incomplete theory, if im not misunderstanding something
2020-09-29 10:46:17 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-09-29 10:46:23 +0200 <fog> seems non-deterministic at least
2020-09-29 10:46:57 +0200 <fog> whereas you would normally want a "functions net" style implmentation with mutable state per function to be reproducable from the same initial conditions
2020-09-29 10:47:15 +0200 <fog> basically then we end up with the same considerations about things like LVars for the channels
2020-09-29 10:47:28 +0200 <AWizzArd> In Servant I describe my route and parameters, or the type of a json body. Now in Snap: is the way to go to fetch what is in the request and call Aeson’s `decode` manually on it?
2020-09-29 10:47:32 +0200 <fog> and a lattice computation for the sheduling
2020-09-29 10:48:28 +0200 <fog> but then, how would you do that sheduling? is it just a race? wouldnt it be better to have a way to demand that certain actors downstream of a let bound value can be demanded to be evaluated, or does that always result in blocking?
2020-09-29 10:48:49 +0200 <fog> like, is this racing actors a way to avoid blocking at the expense of determinism?
2020-09-29 10:49:14 +0200cpressey(~cpressey@79-72-202-166.dynamic.dsl.as9105.com)
2020-09-29 10:49:21 +0200 <fog> that doesnt sound like a good idea from the tradition of pure functional programing where we require reproducibility of programs
2020-09-29 10:49:23 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-09-29 10:50:19 +0200 <fog> then you would need some way for this lattice of actors to have like a sat solver or something to guarantee it is free from blockages
2020-09-29 10:50:42 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-09-29 10:51:03 +0200 <fog> that seems like it could somehow be encoded at type level as the topology, but that would require some kind of guarantees about the functions ability to return
2020-09-29 10:51:24 +0200 <fog> like basically, you would have it in ST or pure, so that it wasnt doing any blocking IO
2020-09-29 10:52:12 +0200 <fog> then these "pure actors" could have network topological guaranties basically as "the shape of the program" at type level to be non-blocking by construction
2020-09-29 10:53:01 +0200 <fog> i guess that also then gives rise to a determinable evaluation order inferred by the topology
2020-09-29 10:53:16 +0200Tops2(~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de)
2020-09-29 10:53:46 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 10:53:48 +0200 <fog> but then, actors are supposed to be able to spawn new actors - so how would you have these runtime guaranties at type level
2020-09-29 10:54:43 +0200 <fog> i guess there is proabably some deep result there about how actors, by having runtime variable topoligies, *have* to have the racing and mailboxes in order to then not require this typechecking
2020-09-29 10:55:14 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 265 seconds)
2020-09-29 10:55:26 +0200 <fog> then it seems like the fundamental problem is the reconciliation of runtime variable determinism guarantees in concurrent pure programming
2020-09-29 10:55:47 +0200 <fog> which sounds kind of above my pay grade
2020-09-29 10:56:01 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-09-29 10:56:31 +0200 <fog> maybe if i had a working actors model, i could get some simulated elves to do it...
2020-09-29 10:56:56 +0200 <fog> all talking elvish
2020-09-29 10:57:34 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 10:57:39 +0200jonatanb(~jonatanb@83.24.231.247.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-09-29 10:57:57 +0200fog(a1814696@gateway/web/cgi-irc/kiwiirc.com/ip.161.129.70.150) (Quit: Connection closed)
2020-09-29 10:58:06 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-29 10:58:35 +0200Clough(~Cain@210.185.68.138) (Ping timeout: 240 seconds)
2020-09-29 10:58:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-29 10:59:53 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-29 11:00:01 +0200UltimateNate(~UltimateN@185.189.112.19) ()
2020-09-29 11:00:24 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-29 11:00:36 +0200 <dminuoso> AWizzArd: getPostParam?
2020-09-29 11:01:12 +0200 <dminuoso> Oh wait, this is something else
2020-09-29 11:01:57 +0200 <dminuoso> snap is weird
2020-09-29 11:02:12 +0200 <hc> why would you switch from servant to snap?
2020-09-29 11:02:12 +0200 <AWizzArd> dminuoso: Yeah, I can fetch contents of the Request and then do with it whatever I want.
2020-09-29 11:02:23 +0200 <hc> (just curious)
2020-09-29 11:02:28 +0200 <AWizzArd> hc: experimentation, seeing different styles.
2020-09-29 11:02:39 +0200 <AWizzArd> Our main service is using Servant.
2020-09-29 11:02:43 +0200cfricke(~cfricke@unaffiliated/cfricke)
2020-09-29 11:02:47 +0200 <AWizzArd> Now for a small email service I’m trying Snap.
2020-09-29 11:03:18 +0200 <AWizzArd> I think in Snap I need to do things a tiny bit more manually.
2020-09-29 11:03:59 +0200davve(davve@bsd.douchedata.com) (Read error: Connection reset by peer)
2020-09-29 11:04:01 +0200 <dminuoso> AWizzArd: https://hackage.haskell.org/package/snap-core-1.0.4.2/docs/Snap-Internal-Core.html#v:getRequest
2020-09-29 11:04:13 +0200 <dminuoso> There you can extract the body from.
2020-09-29 11:04:56 +0200dredozubov(~dredozubo@37.139.21.214) (Ping timeout: 256 seconds)
2020-09-29 11:04:58 +0200 <AWizzArd> dminuoso: Right, and it works. I guess my main question is if I need to do this manually. Or if there is a Servant-like mechanism that lets me declaritively describe an expected request, and have Snap deliver me automatically args.
2020-09-29 11:05:15 +0200 <AWizzArd> The „YOU can extract the body” part (:
2020-09-29 11:05:20 +0200 <dminuoso> So you're looking for servant? ;)
2020-09-29 11:05:46 +0200 <dminuoso> But really, you can relatively trivially write your own combinator
2020-09-29 11:06:03 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 11:06:42 +0200 <AWizzArd> dminuoso: Another thing I am looking for: what if I want to use a ReaderT Context where I can place some nice TVars? How would I serve a site using my own reader?
2020-09-29 11:06:56 +0200carlomagno1(~cararell@inet-hqmc02-o.oracle.com)
2020-09-29 11:07:13 +0200 <AWizzArd> The httpServe function wants a `Snap ()` value.
2020-09-29 11:07:22 +0200 <dminuoso> getJSONRequest :: (FromJson t, MonadSnap m) => m t; getJSONRequest = do <- body <- rqBody <$> getRequest; buf <- ...; decode buf `note` ParseError ...
2020-09-29 11:07:54 +0200 <dminuoso> Some badly written pseudo, but i hope it conveys my thoughts
2020-09-29 11:08:17 +0200 <dminuoso> AWizzArd: Write your own MonadSnap instance.
2020-09-29 11:08:46 +0200 <dminuoso> In case of ReaderT, you can trivially unwrap it no? ;)
2020-09-29 11:08:50 +0200 <AWizzArd> dminuoso: yes, the route :: MonadSnap m => [(ByteString, m a)] -> m a looks good. There also already IS a ReaderT instance for MonadSnap.
2020-09-29 11:09:00 +0200dexterlb(~dexterlb@2a01:9e40:2:2::2) (Quit: Boing)
2020-09-29 11:09:23 +0200 <dminuoso> say, you have `data App a = App { runApp :: ReaderT Env (Snap a) } deriving (Functor, Applicative, Monad, MonadSnap, MonadReader Env)`
2020-09-29 11:09:26 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-09-29 11:09:41 +0200 <AWizzArd> dminuoso: shouldn’t there me some foo :: (MonadSnap m) => m -> Snap () ?
2020-09-29 11:09:41 +0200 <dminuoso> Then you can just say `httpServce . runReaderT someEnv . runApp $ someApp`
2020-09-29 11:09:47 +0200carlomagno(~cararell@inet-hqmc02-o.oracle.com) (Ping timeout: 240 seconds)
2020-09-29 11:09:52 +0200 <dminuoso> AWizzArd: ^- that.
2020-09-29 11:10:03 +0200davve(~davve@bsd.douchedata.com)
2020-09-29 11:10:18 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-09-29 11:10:20 +0200 <dminuoso> Think of ReaderT as being just a function, then getting the Snap out of it is just a matter of providing the argument.
2020-09-29 11:10:22 +0200TooDifficult(~TooDiffic@139.59.59.230)
2020-09-29 11:10:35 +0200 <AWizzArd> Yes, that makes sense.
2020-09-29 11:10:41 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl)
2020-09-29 11:10:41 +0200 <dminuoso> Oh, I think the argument was flipped around.
2020-09-29 11:11:00 +0200 <dminuoso> so `httpSevce . flip runReaderT someEnv . runApp $ someApp`
2020-09-29 11:11:46 +0200 <dminuoso> (So if we squint a bit, runReaderT is just ($))
2020-09-29 11:14:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 11:15:55 +0200dredozubov(~dredozubo@37.139.21.214)
2020-09-29 11:16:06 +0200jgt(~jgt@194.143.137.49.users.breezein.net) (Ping timeout: 256 seconds)
2020-09-29 11:18:21 +0200 <AWizzArd> dminuoso: yes, that makes sense. The runReaderT is that function that returns the `Snap ()`.
2020-09-29 11:18:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 11:19:16 +0200 <dminuoso> This is no different than servant btw
2020-09-29 11:20:50 +0200 <dminuoso> Abstractly, in both snap and servant you need a natural transformation `T ~> Snap` and respectively `T ~> Handler`. In servant you provide that in hoistServer, and in snap it's a bit more direct.
2020-09-29 11:20:59 +0200 <dminuoso> (Where T is your custom monad)
2020-09-29 11:21:09 +0200notzmv`(~user@179.100.115.46)
2020-09-29 11:21:18 +0200supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-09-29 11:21:19 +0200supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-09-29 11:21:33 +0200supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-09-29 11:21:43 +0200blase_(~blase@4e69b241.skybroadband.com)
2020-09-29 11:22:31 +0200dexterlb(~dexterlb@2a01:9e40:2:2::2)
2020-09-29 11:22:33 +0200nkly(~nkly@2a02:8109:9a80:a74:201:2eff:fe81:c6dd) (Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in)
2020-09-29 11:24:24 +0200notzmv(~user@unaffiliated/zmv) (Ping timeout: 260 seconds)
2020-09-29 11:24:24 +0200blase(~blase@4e69b241.skybroadband.com) (Ping timeout: 260 seconds)
2020-09-29 11:24:31 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 11:24:44 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 11:24:52 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 260 seconds)
2020-09-29 11:26:01 +0200TooDifficult(~TooDiffic@139.59.59.230) (Quit: TooDifficult)
2020-09-29 11:26:24 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 11:27:48 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 11:27:49 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 264 seconds)
2020-09-29 11:27:58 +0200supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-09-29 11:28:13 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-09-29 11:28:13 +0200supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-09-29 11:28:22 +0200yoneda(~mike@193.206.102.122)
2020-09-29 11:28:25 +0200Tops2(~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-09-29 11:28:59 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-09-29 11:29:04 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-29 11:29:49 +0200jhuizy(~jhuizy@static.241.188.216.95.clients.your-server.de) (Quit: Ping timeout (120 seconds))
2020-09-29 11:29:57 +0200hackagecabal-cache 1.0.2.0 - CI Assistant for Haskell projects https://hackage.haskell.org/package/cabal-cache-1.0.2.0 (haskellworks)
2020-09-29 11:30:43 +0200karolus(~karolus@static.32.230.217.95.clients.your-server.de) (Quit: karolus says ciao)
2020-09-29 11:30:56 +0200jhuizy(~jhuizy@static.241.188.216.95.clients.your-server.de)
2020-09-29 11:31:03 +0200karolus(~karolus@static.32.230.217.95.clients.your-server.de)
2020-09-29 11:32:19 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se)
2020-09-29 11:33:55 +0200 <AWizzArd> dminuoso: in Servant I had to do this, yes, and wrap the result of runReader in a Handler: Handler $ runReaderT (runApp appt) context
2020-09-29 11:34:22 +0200 <AWizzArd> dminuoso: but the game was not over yet: I also had to `hoistServer` it.
2020-09-29 11:34:37 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 11:37:40 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-09-29 11:38:13 +0200 <maerwald> lol
2020-09-29 11:38:18 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-09-29 11:38:40 +0200 <maerwald> runSomeThing . unwrapSomething . hoistMe . unliftMe . liftOther
2020-09-29 11:38:43 +0200 <maerwald> such functional
2020-09-29 11:39:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 11:39:26 +0200 <maerwald> justMakeTheDamnThingTypecheck
2020-09-29 11:39:44 +0200 <AWizzArd> maerwald: yeah.
2020-09-29 11:40:06 +0200 <AWizzArd> maerwald: so Snap is more "manual". That’s one difference.
2020-09-29 11:41:15 +0200 <AWizzArd> maerwald: in Servant I say that I get a json body and I want Servant to parse it into a SendEmailRequest value. Not much to do, it now is a parameter, I won’t have to call Aeson or read anything from a request.
2020-09-29 11:43:06 +0200 <AWizzArd> maerwald: also I start my handler with myHandler = readRequestBody (1024*30) >>= (\body -> ...)
2020-09-29 11:43:26 +0200 <hc> actually, you never tell servant what you want it to do. you just declare what you are expecting to handle ;-)
2020-09-29 11:43:27 +0200 <AWizzArd> maerwald: is that the typical strategy? Or is there some "readAll"?
2020-09-29 11:43:34 +0200 <AWizzArd> hc: si
2020-09-29 11:44:14 +0200 <AWizzArd> hc: I find Servant also useful when I NOT want to generate JS clients from the API. This declarative nature is nice.
2020-09-29 11:44:50 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 11:44:55 +0200 <hc> true :)
2020-09-29 11:44:58 +0200 <AWizzArd> hc: but then again Servant gives me parameters as Maybes. Is there a way to specify: „Hey, call this handler only in case that *all* of them are Justified”?
2020-09-29 11:45:00 +0200hololeap(~hololeap@unaffiliated/hololeap) (Ping timeout: 256 seconds)
2020-09-29 11:45:10 +0200 <AWizzArd> Justified = non-Nothing
2020-09-29 11:45:36 +0200 <AWizzArd> (If you wrap something in a Just then you just Justified it)
2020-09-29 11:45:52 +0200 <maerwald> AWizzArd: I personally find all that little gain for the increased cognitive noise
2020-09-29 11:46:31 +0200 <AWizzArd> maerwald: I will be using Snap in that service now. It seems to be a bit simpler, yet more manual.
2020-09-29 11:47:28 +0200 <AWizzArd> maerwald: So how do you work with a Post request that contains a json body? body <- readRequestBody (1024*30); case eitherDecode body of ... ? Like that?
2020-09-29 11:48:00 +0200 <maerwald> I don't recall :D
2020-09-29 11:48:20 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 272 seconds)
2020-09-29 11:48:49 +0200 <AWizzArd> Btw: Aeson – what is the difference between a) eitherDecode and b) eitherDecode' ?
2020-09-29 11:49:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 11:49:42 +0200 <hc> hmm, strict vs nonstrict? lemme check the docs
2020-09-29 11:50:09 +0200 <hc> ah no, one fails and the other returns an error on parse problems
2020-09-29 11:50:12 +0200 <dminuoso> strictness in conversion checking
2020-09-29 11:50:24 +0200 <hc> ah true
2020-09-29 11:50:25 +0200 <dminuoso> decode' strictly performs conversion, decode is lazy
2020-09-29 11:50:45 +0200 <hc> no wait! yes, it is about lazy/strictness after all :)
2020-09-29 11:50:52 +0200 <dminuoso> See https://hackage.haskell.org/package/aeson-1.5.4.0/docs/Data-Aeson.html#v:json
2020-09-29 11:50:55 +0200 <dminuoso> (And below)
2020-09-29 11:51:26 +0200 <hc> ah cool. both functions parse immediately so cannot lazily fail later
2020-09-29 11:51:29 +0200 <AWizzArd> And then eitherDecodeStrict vs eitherDecodeStrict'
2020-09-29 11:52:00 +0200 <AWizzArd> dminuoso: seems that’s it, json vs json'
2020-09-29 11:54:50 +0200resolve(~resolve@84.39.116.180)
2020-09-29 11:54:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 11:59:48 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 12:00:02 +0200tbreslein(~tbreslein@2a02:8108:140:44f8::901)
2020-09-29 12:01:15 +0200Ariakenom_(~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se)
2020-09-29 12:02:52 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 246 seconds)
2020-09-29 12:04:37 +0200Ariakenom(~Ariakenom@h-98-128-229-34.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2020-09-29 12:05:02 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 12:05:42 +0200jgt(~jgt@46.250.27.223.pool.breezein.net)
2020-09-29 12:05:47 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-09-29 12:06:59 +0200jespada(~jespada@90.254.241.6) (Quit: Leaving)
2020-09-29 12:07:23 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 260 seconds)
2020-09-29 12:07:57 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-09-29 12:09:09 +0200jespada(~jespada@90.254.241.6)
2020-09-29 12:09:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-29 12:11:12 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-29 12:14:08 +0200filwishe1(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 12:14:24 +0200dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2020-09-29 12:14:29 +0200jespada(~jespada@90.254.241.6) (Quit: Leaving)
2020-09-29 12:15:10 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 12:15:11 +0200jespada(~jespada@90.254.241.6)
2020-09-29 12:15:52 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 260 seconds)
2020-09-29 12:16:18 +0200jespada(~jespada@90.254.241.6) (Client Quit)
2020-09-29 12:16:56 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se) (Remote host closed the connection)
2020-09-29 12:17:11 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-29 12:17:21 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se)
2020-09-29 12:19:43 +0200jespada(~jespada@90.254.241.6)
2020-09-29 12:19:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-29 12:20:33 +0200Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2020-09-29 12:25:16 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 12:26:31 +0200sz0(uid110435@gateway/web/irccloud.com/x-roomdfrsyecwcjsl)
2020-09-29 12:29:16 +0200notzmv`notzmv
2020-09-29 12:29:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 12:29:27 +0200notzmv(~user@179.100.115.46) (Changing host)
2020-09-29 12:29:27 +0200notzmv(~user@unaffiliated/zmv)
2020-09-29 12:29:45 +0200dddddd(~dddddd@unaffiliated/dddddd)
2020-09-29 12:30:16 +0200Amras(~Amras@unaffiliated/amras0000)
2020-09-29 12:31:05 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se) (Read error: Connection reset by peer)
2020-09-29 12:31:21 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se)
2020-09-29 12:31:58 +0200hackageth-abstraction 0.4.0.0 - Nicer interface for reified information about data types https://hackage.haskell.org/package/th-abstraction-0.4.0.0 (ryanglscott)
2020-09-29 12:35:23 +0200kuribas(~user@ptr-25vy0i7prrvbu6qbdzj.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer)
2020-09-29 12:35:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 12:35:50 +0200kuribas(~user@ptr-25vy0i90m4i4hv80b70.18120a2.ip6.access.telenet.be)
2020-09-29 12:40:16 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-29 12:41:30 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 244 seconds)
2020-09-29 12:43:39 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-29 12:45:15 +0200Ariakenom__(~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se)
2020-09-29 12:45:34 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 12:49:23 +0200Ariakenom_(~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2020-09-29 12:49:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 12:53:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-09-29 12:54:33 +0200mmohammadi9812(~mmohammad@188.210.120.20) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-09-29 12:55:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-09-29 12:56:06 +0200ggole(~ggole@2001:8003:8119:7200:682e:863c:d343:3274)
2020-09-29 13:01:48 +0200pepzi(~robert@h-4-217-30.A328.priv.bahnhof.se) (Remote host closed the connection)
2020-09-29 13:02:28 +0200graf_blutwurst(~user@178.197.224.35)
2020-09-29 13:03:23 +0200graf_blutwurst(~user@178.197.224.35) (Remote host closed the connection)
2020-09-29 13:04:58 +0200graf_blutwurst(~user@178.197.224.35)
2020-09-29 13:05:55 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 13:07:01 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 13:07:28 +0200mirrorbird(~psutcliff@h85-8-41-6.cust.a3fiber.se) (Ping timeout: 260 seconds)
2020-09-29 13:10:34 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-29 13:12:01 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 265 seconds)
2020-09-29 13:12:12 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.)
2020-09-29 13:13:06 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-29 13:16:00 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 13:17:00 +0200LKoen(~LKoen@81.255.219.130)
2020-09-29 13:20:46 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-29 13:21:09 +0200graf_blutwurst(~user@178.197.224.35) (Remote host closed the connection)
2020-09-29 13:26:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 13:27:51 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-09-29 13:30:56 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-29 13:31:03 +0200hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-09-29 13:33:27 +0200hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-09-29 13:36:08 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 13:36:17 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 13:40:12 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 13:40:21 +0200acidjnk_new(~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de)
2020-09-29 13:41:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-29 13:41:10 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-09-29 13:43:20 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.)
2020-09-29 13:44:59 +0200 <arahael> Do the videos on the haskell.org website have any captions or transcripts?
2020-09-29 13:45:38 +0200Wuzzy(~Wuzzy@p5790e6f5.dip0.t-ipconnect.de)
2020-09-29 13:46:22 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 13:49:42 +0200plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-09-29 13:50:57 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-29 13:56:31 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 13:56:41 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475)
2020-09-29 13:56:42 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de)
2020-09-29 14:00:01 +0200resolve(~resolve@84.39.116.180) ()
2020-09-29 14:01:08 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 14:03:28 +0200hackagecabal-cache 1.0.2.1 - CI Assistant for Haskell projects https://hackage.haskell.org/package/cabal-cache-1.0.2.1 (haskellworks)
2020-09-29 14:03:59 +0200cpressey(~cpressey@79-72-202-166.dynamic.dsl.as9105.com) (Quit: Lunch)
2020-09-29 14:04:40 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 14:05:16 +0200urodna(~urodna@unaffiliated/urodna)
2020-09-29 14:06:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 14:07:08 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 14:07:28 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 14:11:28 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-29 14:13:27 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-29 14:13:47 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-29 14:15:31 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 14:16:47 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 14:17:22 +0200koz_(~koz@121.99.240.58) (Remote host closed the connection)
2020-09-29 14:18:13 +0200koz(~koz@121.99.240.58)
2020-09-29 14:20:07 +0200raichoo(~raichoo@213.240.178.58)
2020-09-29 14:21:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 14:22:38 +0200drbean(~drbean@TC210-63-209-47.static.apol.com.tw)
2020-09-29 14:26:27 +0200hackageth-compat 0.1 - Backward- (and forward-)compatible Quote and Code types https://hackage.haskell.org/package/th-compat-0.1 (ryanglscott)
2020-09-29 14:27:02 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 14:27:36 +0200mpereira(~mpereira@2a02:810d:f40:d96:294e:473a:4b53:edb9) (Remote host closed the connection)
2020-09-29 14:28:58 +0200LKoen(~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-09-29 14:29:44 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 14:31:07 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 14:31:10 +0200 <maralorn> "justMakeTheDamnThingTypecheck :: foral a b. a -> b" ?
2020-09-29 14:31:32 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 14:31:59 +0200 <dminuoso> Let's see if it exists
2020-09-29 14:32:00 +0200st8less(~st8less@2603:a060:11fe:0:b186:dda4:132a:2a8a)
2020-09-29 14:32:02 +0200 <dminuoso> % :t justMakeTheDamnThingTypecheck
2020-09-29 14:32:03 +0200 <yahb> dminuoso: a -> b
2020-09-29 14:32:09 +0200 <dminuoso> Oh, who'd have guessed.
2020-09-29 14:32:19 +0200ryansmccoy(~ryansmcco@193.37.254.27) (Ping timeout: 256 seconds)
2020-09-29 14:33:00 +0200 <maralorn> Wait what?^^
2020-09-29 14:33:13 +0200ryansmccoy(~ryansmcco@193.37.254.27)
2020-09-29 14:33:18 +0200 <merijn> I'll take "What is unsafeCoerce?" for 500, Alex.
2020-09-29 14:33:22 +0200 <maralorn> You have been secretely querying yahb, haven't you?
2020-09-29 14:33:22 +0200 <merijn> :t unsafeCoerce
2020-09-29 14:33:24 +0200 <lambdabot> error: Variable not in scope: unsafeCoerce
2020-09-29 14:33:29 +0200 <merijn> % :t unsafeCoerce
2020-09-29 14:33:30 +0200 <yahb> merijn: a -> b
2020-09-29 14:33:47 +0200 <dminuoso> maralorn: I'd never do that for effect.
2020-09-29 14:33:48 +0200 <merijn> maralorn: Enjoy your one way ticket to segfault city ;)
2020-09-29 14:33:58 +0200 <dminuoso> ;)
2020-09-29 14:34:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-29 14:34:30 +0200 <maralorn> ^^
2020-09-29 14:34:38 +0200 <dminuoso> merijn: Oh I have a valid and safe use case of unsafeCoerce.
2020-09-29 14:34:42 +0200 <maralorn> "I'd never do that for effect." -> unsafePerformIO
2020-09-29 14:35:43 +0200 <dminuoso> So I have a particular take on a hererogenous, type safe, map.. which is implemented as `Map Integer Any` under the hood..
2020-09-29 14:36:03 +0200alp(~alp@2a01:e0a:58b:4920:1865:138c:f898:eb2d) (Ping timeout: 272 seconds)
2020-09-29 14:36:16 +0200 <dminuoso> So upon accessing, I unsafeCoerce things into the right thing, but I prove the correctness of it all in the type system.
2020-09-29 14:36:29 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475)
2020-09-29 14:36:51 +0200 <dminuoso> maralorn: unsafePerformIO is boring. I prefer accursedUnutterablePerformIO.
2020-09-29 14:37:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 14:37:05 +0200 <dminuoso> Eliding internal mutable buffers saves memory.
2020-09-29 14:37:13 +0200 <dminuoso> It's very efficient.
2020-09-29 14:38:09 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-09-29 14:41:09 +0200Quarl(~Quarl@94.191.138.174.mobile.tre.se) (Read error: Connection reset by peer)
2020-09-29 14:41:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 14:42:53 +0200alp(~alp@2a01:e0a:58b:4920:1846:e8b6:c010:c9fe)
2020-09-29 14:42:56 +0200Quarl(~Quarl@94.191.138.174.mobile.tre.se)
2020-09-29 14:42:58 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 14:44:05 +0200John20(~John@82.46.59.122) (Ping timeout: 240 seconds)
2020-09-29 14:44:59 +0200Guest_71(c13ddbc8@edu185.eduroam.aber.ac.uk)
2020-09-29 14:45:11 +0200sz0(uid110435@gateway/web/irccloud.com/x-roomdfrsyecwcjsl) (Quit: Connection closed for inactivity)
2020-09-29 14:46:01 +0200 <Guest_71> Im having trouble downloading haskell for mac
2020-09-29 14:46:07 +0200 <Guest_71> can some1 help me
2020-09-29 14:46:13 +0200 <maerwald> yes
2020-09-29 14:46:50 +0200 <Guest_71> it says cannot install the software because it is not currently avaliable from the software update server
2020-09-29 14:46:58 +0200 <maerwald> what software
2020-09-29 14:47:04 +0200 <Guest_71> curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
2020-09-29 14:47:09 +0200 <Guest_71> this crap
2020-09-29 14:47:14 +0200 <Guest_71> GHC
2020-09-29 14:47:27 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 14:48:50 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-09-29 14:48:56 +0200barzo(~barzo@95.70.186.248)
2020-09-29 14:49:11 +0200 <maerwald> that's an excellent question
2020-09-29 14:49:59 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-09-29 14:50:15 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6509:5e93:9c09:e475) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 14:51:55 +0200 <Guest_71> any ideas?
2020-09-29 14:52:09 +0200 <yushyin> you must be right about that course, maerwald.
2020-09-29 14:52:58 +0200 <maerwald> I don't have a mac, but the script requires certain tools that the system must install (such as curl, tar, ...). Afaik mac tries to pull these from somewhere
2020-09-29 14:53:12 +0200 <maerwald> It seems to fail doing so
2020-09-29 14:54:17 +0200 <merijn> maerwald: curl and tar are always installed, afaik
2020-09-29 14:54:19 +0200 <dminuoso> This seems like an Xcode error.
2020-09-29 14:54:39 +0200 <merijn> xcode errors shouldn't kick in until you try to compile/link, though
2020-09-29 14:54:39 +0200 <dminuoso> Since that's the error you'd get from `xcode-select --install` in some situations.
2020-09-29 14:55:01 +0200 <dminuoso> Does ghcup invoke xcode-select?
2020-09-29 14:55:14 +0200 <maerwald> dminuoso: no, but I think that happens implicitly
2020-09-29 14:55:21 +0200 <maerwald> that's what ppl told me
2020-09-29 14:55:25 +0200 <dminuoso> Implicitly when?
2020-09-29 14:55:35 +0200 <maerwald> Good question
2020-09-29 14:55:39 +0200 <merijn> so far I don't see an error message, so it's impossible to say
2020-09-29 14:56:05 +0200p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-09-29 14:56:05 +0200 <dminuoso> Guest_71: Can you share the full terminal output since you ran that command in a gist/pastie/snippet?
2020-09-29 14:56:24 +0200wimpunk1(~wimpunk@185.189.112.19)
2020-09-29 14:56:37 +0200 <dminuoso> merijn: He mentioend the error message above. And that's most definitely an error message from xcode-select :)
2020-09-29 14:57:22 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 14:57:57 +0200 <Guest_71> it didn't appear in the console it was a pop up box
2020-09-29 14:58:01 +0200 <Guest_71> if that helps
2020-09-29 14:58:17 +0200 <dminuoso> Ah, still share the output.
2020-09-29 14:58:50 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:71e4:29c:fe07:7926)
2020-09-29 14:58:57 +0200 <Guest_71> his script will download and install the following binaries: * ghcup - The Haskell toolchain installer (for managing GHC/cabal versions) * ghc - The Glasgow Haskell Compiler * cabal - The Cabal build toolghcup installs only into the following directory,which can be removed anytime: /Users/MacBook-Pro/.ghcupPress ENTER to proceed or
2020-09-29 14:58:58 +0200 <Guest_71> ctrl-c to abort.Note that this script can be re-run at any given time. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 8345k 100 8345k 0 0 7880k 0 0:00:01 0:00:01 --:--:-- 7880k[ Info ] Upgrading GHCup...[ Info ]
2020-09-29 14:58:58 +0200 <Guest_71> downloading: https://downloads.haskell.org/~ghcup/0.1.11/x86_64-apple-darwin-ghcup-0.1.11 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 40 8501k 40 3430k 0 0 7177k 0 0:00:01 --:--:-- 0:00:01 7177k100 8501k 100 8501k 0
2020-09-29 14:58:59 +0200 <Guest_71> 0 9487k 0 --:--:-- --:--:-- --:--:-- 9487k[ Info ] verifying digest of: ghcup[ Info ] Successfully upgraded GHCup to version 0.1.11System requirements Note: On OS X, in the course of running ghcup you will be given a dialog box to install the command line tools. Accept and the requirements will be installed for you. You will then need to
2020-09-29 14:58:59 +0200 <Guest_71> run the command again.Press ENTER to proceed or ctrl-c to abort.Installation may take a while.[ Info ] verifying digest of: ghc-8.8.4-x86_64-apple-darwin.tar.xz[ Info ] Unpacking: ghc-8.8.4-x86_64-apple-darwin.tar.xz to /var/folders/98/8p2q1z693kgd515zsjklyg5c0000gn/T/ghcup-6LMxdn[ Info ] Installing GHC (this may take a while)[ ghc-configure ]
2020-09-29 14:59:00 +0200 <Guest_71> not found (too old?)[ ghc-configure ] checking for gcc... gcc[ ghc-configure ] checking whether the C compiler works... no[ ghc-configure ] configure: error: in `/private/var/folders/98/8p2q1z693kgd515zsjklyg5c0000gn/T/ghcup-6LMxdn/ghc-8.8.4':[ ghc-configure ] configure: error: C compiler cannot create executables[ ghc-configure ] See `config.log'
2020-09-29 14:59:00 +0200 <Guest_71> for more details[ Error ] Build failed with NonZeroExit 77 "./configure" ["--prefix=/Users/MacBook-Pro/.ghcup/ghc/8.8.4"] Check the logs at "/Users/MacBook-Pro/.ghcup/logs" and the build directory "/var/folders/98/8p2q1z693kgd515zsjklyg5c0000gn/T/ghcup-6LMxdn" for more clues. Make sure to clean up
2020-09-29 14:59:00 +0200Guest_71(c13ddbc8@edu185.eduroam.aber.ac.uk) (Killed (Sigyn (Spam is off topic on freenode.)))
2020-09-29 14:59:10 +0200ChanServ+o ski
2020-09-29 14:59:14 +0200 <maerwald> for some reason, I know this would happen
2020-09-29 14:59:18 +0200 <yushyin> me too
2020-09-29 14:59:33 +0200ChanServ-o ski
2020-09-29 14:59:49 +0200 <dminuoso> Doesn't help for their Haskell experience. :<
2020-09-29 15:00:00 +0200guest12(c13ddbc8@edu185.eduroam.aber.ac.uk)
2020-09-29 15:00:04 +0200 <guest12> okay im that same person it just kicked me
2020-09-29 15:00:09 +0200 <maerwald> :D
2020-09-29 15:00:14 +0200 <ski> please don't paste lots of lines into the channel
2020-09-29 15:00:15 +0200 <dminuoso> guest12: Yeah, use a website to paste content, dont flood the channel. :)
2020-09-29 15:00:25 +0200 <dminuoso> You can use https://paste.tomsmeding.com/
2020-09-29 15:00:32 +0200 <guest12> okay thanks xD
2020-09-29 15:00:41 +0200 <Cheery> gist github is also good if you happen to have github account.
2020-09-29 15:00:55 +0200 <dminuoso> Always good to donate your data to Microsoft.
2020-09-29 15:00:59 +0200barzo(~barzo@95.70.186.248) (Quit: Quit)
2020-09-29 15:01:34 +0200 <guest12> https://paste.tomsmeding.com/iIICrGHx
2020-09-29 15:02:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-09-29 15:02:31 +0200 <gehmehgeh> guest12: what does "cc --version" say?
2020-09-29 15:02:48 +0200 <merijn> ok, yeah, that's missing xcode
2020-09-29 15:02:50 +0200 <gehmehgeh> (on the command line)
2020-09-29 15:02:54 +0200 <dminuoso> guest12: Did you ever get a dialog box to install the command line tools?
2020-09-29 15:03:18 +0200 <guest12> yes I did and thats where I got the error
2020-09-29 15:03:47 +0200 <gehmehgeh> guest12: can you type "cc --version", please?
2020-09-29 15:04:29 +0200motherfsck(~motherfsc@unaffiliated/motherfsck)
2020-09-29 15:04:42 +0200 <gehmehgeh> guest12: also "gcc --version"
2020-09-29 15:04:48 +0200 <gehmehgeh> cc should be Clang
2020-09-29 15:04:49 +0200 <gehmehgeh> I guess
2020-09-29 15:04:51 +0200 <guest12> https://paste.tomsmeding.com/Esfn48xS
2020-09-29 15:04:52 +0200 <gehmehgeh> (on MacOS)
2020-09-29 15:04:57 +0200 <guest12> then I get that with a dialog box
2020-09-29 15:05:28 +0200 <guest12> same with gcc
2020-09-29 15:05:53 +0200 <dminuoso> guest12: Out of curiosity, which macOS version are you on?
2020-09-29 15:06:08 +0200 <gehmehgeh> guest12: type "uname -a"
2020-09-29 15:06:09 +0200 <guest12> catalina
2020-09-29 15:06:37 +0200 <dminuoso> Brave thing, to be running on most recent macOS. :>
2020-09-29 15:07:06 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-09-29 15:07:34 +0200 <dminuoso> Perhaps the apple repos are bugged at the moment
2020-09-29 15:07:36 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 15:07:48 +0200 <dminuoso> Do you have an icloud account?
2020-09-29 15:07:50 +0200 <gehmehgeh> guest12: I typed it into a search engine, and apparently, MacOS will install the necessary development tools after asking you
2020-09-29 15:07:52 +0200 <merijn> Try running "xcode-select --install"
2020-09-29 15:08:05 +0200 <gehmehgeh> guest12: yes, waht merijn said for example
2020-09-29 15:08:07 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-09-29 15:08:08 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-09-29 15:08:11 +0200 <gehmehgeh> guest12: or just type "make" or "gcc" or whatever
2020-09-29 15:08:29 +0200jedws(~jedws@121.209.139.222)
2020-09-29 15:08:42 +0200 <guest12> same thing happens in the middle of the finding software bar it comes up with that message
2020-09-29 15:08:45 +0200Ariakenom_(~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se)
2020-09-29 15:08:50 +0200 <dminuoso> guest12: Alright, then install it manually from https://developer.apple.com/download/more/?=command%20line%20tools
2020-09-29 15:08:58 +0200 <dminuoso> You're tripping into Apple issues.
2020-09-29 15:09:56 +0200 <dminuoso> (Note you will need an iCloud account to reach that)
2020-09-29 15:10:07 +0200 <dminuoso> Or rather, an Apple Id.
2020-09-29 15:10:09 +0200 <guest12> yeye which do i download
2020-09-29 15:10:16 +0200 <dminuoso> Dunno, what do you see there?
2020-09-29 15:10:43 +0200Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
2020-09-29 15:10:59 +0200 <guest12> A lot of stuff xcode 12, command line tools for xcode lots and lots of stuff
2020-09-29 15:10:59 +0200 <dminuoso> Ah the top one
2020-09-29 15:11:05 +0200 <Squarism> Does there exist some type description language (think protocol buffers/openapi/xml-schema/thrift) that has sum/product types and type functions (atleast paramterized types)? Something that handles the basics of haskell type system.
2020-09-29 15:11:07 +0200 <dminuoso> Command Line Tools for XCode 12
2020-09-29 15:11:08 +0200 <dminuoso> should be fine
2020-09-29 15:11:14 +0200 <guest12> okay
2020-09-29 15:11:22 +0200 <dminuoso> Squarism: servant?
2020-09-29 15:11:34 +0200 <dminuoso> or, are you thinking something else?
2020-09-29 15:12:02 +0200 <dminuoso> (you can encode anonymous sum/product types up to isomorphism with Either and (,), or using custom data types)
2020-09-29 15:12:09 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-29 15:12:09 +0200Ariakenom__(~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) (Ping timeout: 258 seconds)
2020-09-29 15:12:30 +0200 <Squarism> dminuoso, I meant a textual representation that was at least aimed to be language agnostic.
2020-09-29 15:12:45 +0200 <dminuoso> What would that language describe?
2020-09-29 15:13:19 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-09-29 15:13:20 +0200 <Squarism> data structures (or types in haskell terms)
2020-09-29 15:13:33 +0200 <Squarism> possibly functions
2020-09-29 15:14:57 +0200hackageth-lift 0.8.2 - Derive Template Haskell's Lift class for datatypes. https://hackage.haskell.org/package/th-lift-0.8.2 (ryanglscott)
2020-09-29 15:14:59 +0200 <Cheery> there is a project that explores that.
2020-09-29 15:15:22 +0200zariuq(~zar@fw2.ciirc.cvut.cz)
2020-09-29 15:16:57 +0200 <Cheery> lol you need to remember the url to find it
2020-09-29 15:17:02 +0200 <Cheery> https://typedefs.com/
2020-09-29 15:17:06 +0200 <lortabac> Squarism: you can achieve something similar with GraphQL, but it's a little cumbersome
2020-09-29 15:17:33 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 15:17:43 +0200 <guest12> Its fixed thanks guys
2020-09-29 15:17:49 +0200zargoertzel(~zar@fw4.ciirc.cvut.cz) (Ping timeout: 246 seconds)
2020-09-29 15:17:56 +0200 <lortabac> also, you can encode sum types in OpenAPI IIRC
2020-09-29 15:18:19 +0200drbean(~drbean@TC210-63-209-47.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
2020-09-29 15:19:24 +0200revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal)
2020-09-29 15:19:37 +0200guest12(c13ddbc8@edu185.eduroam.aber.ac.uk) (Remote host closed the connection)
2020-09-29 15:22:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 15:23:02 +0200coot_(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl)
2020-09-29 15:23:53 +0200 <alp> thrift too IIRC
2020-09-29 15:24:05 +0200roconnor(~roconnor@host-104-157-196-197.dyn.295.ca)
2020-09-29 15:24:13 +0200luke_(~luke@bitnomial/staff/luke)
2020-09-29 15:25:25 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 265 seconds)
2020-09-29 15:25:25 +0200coot_coot
2020-09-29 15:26:11 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 15:26:25 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9)
2020-09-29 15:27:42 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-09-29 15:27:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 15:30:25 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2020-09-29 15:31:36 +0200perdent(~blah@101.175.129.224) (Ping timeout: 256 seconds)
2020-09-29 15:32:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-29 15:32:44 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-09-29 15:37:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 15:39:20 +0200kw(ac4a6125@cpe-172-74-97-37.nc.res.rr.com)
2020-09-29 15:40:45 +0200 <kw> Anyone know why hlint suggests writing `[x]` instead of `x : []`?
2020-09-29 15:41:03 +0200 <dminuoso> kw: because its more idiomatic to use the [...] notation than :
2020-09-29 15:41:06 +0200 <merijn> kw: Because hlint is super opinionated
2020-09-29 15:41:24 +0200 <merijn> kw: And it's opinions reflect those of the author, not necessarily the wider community
2020-09-29 15:41:32 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 260 seconds)
2020-09-29 15:41:54 +0200 <kw> That makes sense.
2020-09-29 15:41:56 +0200 <dminuoso> I personally prefer `singleton x` in some code paths, where `singleton x = pure x`
2020-09-29 15:42:30 +0200 <kw> Just always confuses me when constructor syntax like `x : xs` is mixed with literal syntax.
2020-09-29 15:42:49 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-09-29 15:42:50 +0200 <kw> But obviously you can't use literal syntax to deconstruct an arbitrary list.
2020-09-29 15:43:08 +0200 <merijn> kw: You can
2020-09-29 15:43:20 +0200 <kw> Wait, how?
2020-09-29 15:43:32 +0200 <kw> Do you mean with comprehensions?
2020-09-29 15:43:34 +0200 <merijn> > case [1,2] of [x,y] -> "yay!"; _ -> "nay!"
2020-09-29 15:43:36 +0200 <lambdabot> "yay!"
2020-09-29 15:43:39 +0200 <merijn> > case [1,2,3] of [x,y] -> "yay!"; _ -> "nay!"
2020-09-29 15:43:42 +0200 <lambdabot> "nay!"
2020-09-29 15:43:47 +0200 <dminuoso> I think by "arbitrary" they mean it in the sense of `f ([x,y,z]:_) = ...`
2020-09-29 15:43:54 +0200 <dminuoso> (Which doesn't make sense, of course)
2020-09-29 15:43:55 +0200 <kw> OK, fair enough if I don't need the tail...
2020-09-29 15:44:05 +0200 <int-e> but it's odd when your cases are [], [x], [x,y] and then x:y:z:xs
2020-09-29 15:44:07 +0200 <dminuoso> kw: no, this is an exact list match
2020-09-29 15:44:14 +0200 <dminuoso> it doesnt throw the tail away, it just doesnt match
2020-09-29 15:44:19 +0200 <merijn> kw: No, "[x,y]" is equivalent to matching "x : (y : [])"
2020-09-29 15:44:30 +0200 <dminuoso> So if you want something like `f (x:y:z:_) = ..` you cant use the [] syntax for that
2020-09-29 15:44:32 +0200 <merijn> Note that the 2nd example returned "nay"
2020-09-29 15:45:03 +0200 <dminuoso> kw: Anyhow. If you find the `x:[]` to work better, maybe for symmetry reasons wrt to the pattern matching on the left side, that's perfectly fine. :)
2020-09-29 15:45:10 +0200 <kw> Sorry, I wasn't very clear. I've got a function that has special cases for lists of length 0, 1, 2, and 3, and has a recursive case for lists of length greater than 3.
2020-09-29 15:45:39 +0200 <merijn> kw: writing out those fixed cases with literal syntax works fine\
2020-09-29 15:45:49 +0200 <dminuoso> `f [] = ...; f [x] = ...; f [x,y] = ...; f [x,y,z] = ...; f xs = ...`
2020-09-29 15:46:22 +0200spew(uid195861@gateway/web/irccloud.com/x-smxsszajtmpzphkc)
2020-09-29 15:46:47 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2020-09-29 15:47:10 +0200ystael(~ystael@209.6.50.55)
2020-09-29 15:48:04 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 15:48:21 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-29 15:48:36 +0200 <dminuoso> `t :: IO [Pg.Only T]` how do I efficiently turn that into `IO [T]`?
2020-09-29 15:48:54 +0200 <dminuoso> (Only is just a newtype)
2020-09-29 15:49:06 +0200 <kw> I guess it really does come down to opinion. For me `case xs of { [] -> z; [x] -> f x; [x1, x2] -> g x1 x2; x1 : x2 : x3 : xs -> h x1 x2 x3 (loop xs)}` seemed really odd. But it does make the recursive case stand out.
2020-09-29 15:49:10 +0200 <dminuoso> `newtype Only a = Only { fromOnly :: a }`
2020-09-29 15:49:14 +0200 <merijn> dminuoso: "fmap (fmap getOnly)" :p
2020-09-29 15:49:14 +0200 <[exa]> dminuoso: fromOnly?
2020-09-29 15:49:25 +0200 <merijn> Or just "coerce"
2020-09-29 15:49:40 +0200 <dminuoso> merijn: Will double fmap not cause it to walk over the list unnecessarily?
2020-09-29 15:50:07 +0200 <dminuoso> % coerce [Produt 5, Product 6] :: [Integer]
2020-09-29 15:50:08 +0200 <yahb> dminuoso: ; <interactive>:137:9: error:; * Data constructor not in scope: Produt :: t0 -> Product a0; * Perhaps you meant one of these: `Product' (imported from Control.Monad.RWS), variable `product' (imported from Prelude)
2020-09-29 15:50:14 +0200 <dminuoso> % coerce [Product 5, Product 6] :: [Integer]
2020-09-29 15:50:14 +0200 <yahb> dminuoso: [5,6]
2020-09-29 15:50:18 +0200 <dminuoso> Ah. Mmm.
2020-09-29 15:51:08 +0200 <dminuoso> % coerce (pure [Product 5, Product 6] :: IO [Product Integer]) :: IO [Integer]
2020-09-29 15:51:08 +0200 <yahb> dminuoso: [5,6]
2020-09-29 15:51:19 +0200 <dminuoso> merijn: I see. Somehow I didnt realize I could coerce through IO. :)
2020-09-29 15:51:42 +0200 <kw> Is there any efficiency advantage in GHC to using list literal syntax?
2020-09-29 15:51:59 +0200 <merijn> No
2020-09-29 15:52:06 +0200 <dminuoso> kw: list literals are just syntax sugar around :
2020-09-29 15:52:24 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-29 15:52:58 +0200 <kw> That's a relief. I remember reading somewhere that GHC would compile literal lists to arrays.
2020-09-29 15:52:58 +0200jedws(~jedws@121.209.139.222) (Read error: Connection reset by peer)
2020-09-29 15:53:06 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-29 15:53:29 +0200 <int-e> There's some special treatment of string literals.
2020-09-29 15:53:34 +0200jedws(~jedws@121.209.139.222)
2020-09-29 15:54:29 +0200 <kw> Oh, maybe that was it. I'm not using strings, so I guess it doesn't matter.
2020-09-29 15:55:07 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net)
2020-09-29 15:55:12 +0200 <kw> Thanks everyone.
2020-09-29 15:55:27 +0200wimpunk1(~wimpunk@185.189.112.19) (Ping timeout: 240 seconds)
2020-09-29 15:55:40 +0200 <merijn> kw: IF ghc did that, there's no reason why it couldn't to the exact same thing for lists written using :, though
2020-09-29 15:56:47 +0200 <kw> I know, I shouldn't doubt GHC's intelligence. Was just imagining that it might be something special that applies only to the sugar.
2020-09-29 15:58:03 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 15:59:23 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2020-09-29 15:59:57 +0200hackagejose 0.8.4 - Javascript Object Signing and Encryption and JSON Web Token library https://hackage.haskell.org/package/jose-0.8.4 (frasertweedale)
2020-09-29 16:00:03 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-09-29 16:01:14 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-09-29 16:02:25 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 16:03:46 +0200Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-09-29 16:08:20 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 16:08:31 +0200fweht(uid404746@gateway/web/irccloud.com/x-otdjghlxzvvxjpbo)
2020-09-29 16:12:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-29 16:12:45 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-29 16:13:14 +0200luke_(~luke@bitnomial/staff/luke) (Quit: sleep)
2020-09-29 16:13:31 +0200son0p(~son0p@181.136.122.143)
2020-09-29 16:13:34 +0200cpressey(~cpressey@79-72-202-166.dynamic.dsl.as9105.com)
2020-09-29 16:14:13 +0200alp(~alp@2a01:e0a:58b:4920:1846:e8b6:c010:c9fe) (Ping timeout: 272 seconds)
2020-09-29 16:14:58 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-09-29 16:16:48 +0200z0(~z0@bl17-251-27.dsl.telepac.pt)
2020-09-29 16:18:23 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 16:18:31 +0200 <z0> im doing advent of code 2019 and I think I found a typo in the last example @ day 5 part 2. has anyone done it and wants to verify?
2020-09-29 16:19:42 +0200 <merijn> Seems unlikely, since I'm pretty sure I completed that just fine :p
2020-09-29 16:20:07 +0200polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-09-29 16:20:45 +0200 <z0> i also completed, but i tested all examples given and this is the only one failing
2020-09-29 16:20:55 +0200 <tdammers> yeah, AoC tends to be reviewed insanely well, which is kind of prudent considering the audience
2020-09-29 16:21:58 +0200kuribas(~user@ptr-25vy0i90m4i4hv80b70.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-09-29 16:22:25 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:71e4:29c:fe07:7926) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 16:22:27 +0200sword865(uid208942@gateway/web/irccloud.com/x-uhmvawtkvtngcrcd) (Quit: Connection closed for inactivity)
2020-09-29 16:22:44 +0200 <z0> well... i'm very suspicious because you can see the list ends in "4,20,1105,1,46,98,99" and I get the correct results BUT the next code is not 99 (halt)
2020-09-29 16:23:14 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-29 16:23:22 +0200 <z0> 4 (the output instruction) has 2 parameters and if you move the pointer you go to 1105 and not 99
2020-09-29 16:23:31 +0200jollygood2(~bc815b99@217.29.117.252)
2020-09-29 16:23:44 +0200josh_(~josh@c-67-164-104-206.hsd1.ca.comcast.net)
2020-09-29 16:24:07 +0200xff0x(~fox@2001:1a81:53b0:3c00:9889:b2f6:c747:1eec) (Ping timeout: 240 seconds)
2020-09-29 16:24:32 +0200 <tdammers> I can't remember the details, but I think I initially misread something in the spec that made this example fail
2020-09-29 16:24:47 +0200 <tdammers> meaning that it's probably not the example, but your brain that's wrong
2020-09-29 16:24:50 +0200 <dminuoso> z0: hold on, why does 4 have 2 parameters?
2020-09-29 16:25:01 +0200 <dminuoso> It has only one.
2020-09-29 16:25:07 +0200xff0x(~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b)
2020-09-29 16:25:42 +0200 <z0> sorry, i meant 1
2020-09-29 16:25:57 +0200 <z0> the pointer moves 2 addresse
2020-09-29 16:26:41 +0200 <z0> which puts it in the 1105 instruction. if i let it run it will eventually halt with the output 0
2020-09-29 16:28:12 +0200 <dminuoso> z0: I dont quite understand what confusion you have.,
2020-09-29 16:28:32 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 16:29:00 +0200 <z0> as i understood, as soon as the output is /= 0, the next instruction HAS to be 99, right?
2020-09-29 16:29:32 +0200abdullah__(~LeghariK@37.111.129.221)
2020-09-29 16:30:22 +0200 <z0> in this case, the output i get from that last 4 is the right output for all 3 cases (< 9, ==9, > 9)
2020-09-29 16:30:28 +0200hackagecli-extras 0.1.0.0 - Miscellaneous utilities for building and working with command line interfaces https://hackage.haskell.org/package/cli-extras-0.1.0.0 (RyanTrinkle)
2020-09-29 16:30:29 +0200 <z0> but the next instruction is not 99
2020-09-29 16:30:53 +0200 <z0> *(<8,==8,>8)
2020-09-29 16:31:28 +0200hackagenix-thunk 0.1.0.0, cli-nix 0.1.0.0, cli-git 0.1.0.0 (RyanTrinkle)
2020-09-29 16:32:56 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:85d7:28a9:e9cf:26c5)
2020-09-29 16:33:01 +0200 <dminuoso> 16:29:00 z0 | as i understood, as soon as the output is /= 0, the next instruction HAS to be 99, right?
2020-09-29 16:33:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-09-29 16:33:07 +0200 <dminuoso> The way I read it, that sounds wrong.
2020-09-29 16:34:37 +0200 <dminuoso> Consider the context of it all
2020-09-29 16:35:48 +0200 <dminuoso> This is diagnostic routines. A diagnostic is finished by writing some output, and it outputs 0 if it was successful, and a number if there was a deviation from the expected value
2020-09-29 16:36:05 +0200 <dminuoso> There's nothing to suggest a failed diagnostic must halt the program.
2020-09-29 16:36:47 +0200random(~random@185.219.70.106) (Ping timeout: 240 seconds)
2020-09-29 16:37:53 +0200chaosmasttter(~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2020-09-29 16:38:22 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-09-29 16:38:26 +0200turion(~turion@ip1f10fe5a.dynamic.kabel-deutschland.de)
2020-09-29 16:38:42 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 16:39:06 +0200 <turion> Is there a standard solution for building QuickCheck/SmallCheck/etc. generators for datatypes with constructors with existential types?
2020-09-29 16:39:14 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-09-29 16:40:00 +0200 <dminuoso> turion: Mmm, how is that different from any other datatype?
2020-09-29 16:40:23 +0200 <turion> E.g. I have a free category type
2020-09-29 16:40:23 +0200 <turion> data FreeCat c where
2020-09-29 16:40:23 +0200 <turion> Id :: FreeCat c a a
2020-09-29 16:40:23 +0200 <turion> Seq :: FreeCat cat a b -> FreeCat cat b c
2020-09-29 16:40:23 +0200 <turion> Free :: cat a b -> FreeCat cat a b
2020-09-29 16:40:47 +0200 <turion> When I want to generate a Seq, I need to choose a _type_ b
2020-09-29 16:41:04 +0200 <ski> signature of `Seq' looks incomplete
2020-09-29 16:41:06 +0200 <turion> Of course I could always choose the same one, but that would be boring
2020-09-29 16:41:25 +0200 <turion> Whoops right, thanks.
2020-09-29 16:41:25 +0200 <turion> Seq :: FreeCat cat a b -> FreeCat cat b c -> FreeCat cat a c
2020-09-29 16:41:54 +0200 <int-e> z0: you're reading too much inbto "immediately followed by"... 1105,1,n is an unconditional jump to offset n; here n=46 and the operation there is the 99 you want.
2020-09-29 16:42:19 +0200 <ski> if you could have generation for `cat a b' pick an `a' or a `b' for you, given the other, then that could be useful, probably
2020-09-29 16:43:00 +0200 <turion> ski: What would be the type of such a generator?
2020-09-29 16:43:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 16:43:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-09-29 16:43:25 +0200Ariakenom_(~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se) (Remote host closed the connection)
2020-09-29 16:43:47 +0200Ariakenom_(~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se)
2020-09-29 16:44:03 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-ssqdypdoaselcqyh) (Quit: Connection closed for inactivity)
2020-09-29 16:45:07 +0200xff0x(~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) (Ping timeout: 240 seconds)
2020-09-29 16:45:16 +0200 <ski> hm, to a zeroth approximation, something like `Gen (exists b. cat a b)', but then one'd like to keep using that `b' onwards ..
2020-09-29 16:46:10 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:85d7:28a9:e9cf:26c5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 16:46:18 +0200xff0x(~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b)
2020-09-29 16:46:42 +0200ddellacosta(~dd@86.106.121.168)
2020-09-29 16:47:45 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:f198:f10:f56d:4606)
2020-09-29 16:48:45 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 16:49:26 +0200 <turion> ski: Yes. I guess there is a way to do this with an existential type somehow. Or maybe continuations...? But I'm wondering whether something like this has been studied systematically, because it must show up every time someone wants to write a generator for a GADT or existential type
2020-09-29 16:50:32 +0200snakemasterflex(~snakemast@213.100.206.23) (Read error: Connection reset by peer)
2020-09-29 16:50:57 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 16:51:33 +0200 <ski> if we imagine `class SomeArbitrary f where someArbitrary :: Gen (..f..)', one could have `instance SomeArbitrary (cat a) => SomeArbitrary (FreeCat cat a) where ..' with `someArbitrary :: Gen (exists b. SomeArbitrary (cat b) *> FreeCat cat a b)', maybe ?
2020-09-29 16:52:22 +0200 <ski> perhaps the constraint here could be an associated type
2020-09-29 16:52:40 +0200 <z0> dminuoso: "For each test, it will run an output instruction indicating how far the result of the test was from the expected value, where 0 means the test was successful. Non-zero outputs mean that a function is not working correctly; check the instructions that were run before the output instruction to see which one failed."
2020-09-29 16:52:45 +0200herasmus(~mb@91-160-105-150.subs.proxad.net)
2020-09-29 16:52:58 +0200 <z0> but ignoring this, it now works as supposed
2020-09-29 16:53:00 +0200 <z0> thanks
2020-09-29 16:53:26 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-09-29 16:54:03 +0200 <turion> ski: I'm not sure how exactly the generator case for Seq typechecks
2020-09-29 16:54:05 +0200 <Cale> I can imagine writing a generator something like (Arbitrary b, CoArbitrary a) => FreeCat (->) a b
2020-09-29 16:54:32 +0200 <Cale> which generated Seq terms by picking from a finite list of types that are known to have Arbitrary and CoArbitrary instances
2020-09-29 16:54:46 +0200 <z0> int-e: maybe i read too much into the sentence I pasted above
2020-09-29 16:54:55 +0200 <Cale> oops
2020-09-29 16:55:05 +0200 <Cale> I meant Gen (FreeCat (->) a b) obviously
2020-09-29 16:55:13 +0200 <ski> Cale : imagine `cat' is a basic GADT ?
2020-09-29 16:55:38 +0200 <turion> Cale: Yes, I guess that can work. Is there a framework that does this?
2020-09-29 16:56:05 +0200 <turion> Imagine we'd go on and do free arrows, and we want to reuse this list of types, how to abstract it
2020-09-29 16:57:09 +0200 <dminuoso> z0: Still, where does it say it has to halt?
2020-09-29 16:58:11 +0200 <Cale> I was thinking cat is a category
2020-09-29 16:58:11 +0200 <Cale> No, you'd have to write the thing yourself, and it will include too many details of this structure to be really generalisable
2020-09-29 16:58:11 +0200 <Cale> Or maybe I just lack the imagination to figure out how to generalise it
2020-09-29 16:58:12 +0200 <Cale> But it won't be a difficult thing to write
2020-09-29 16:58:27 +0200 <dminuoso> z0: `Finally, the program will output a diagnostic code and immediately halt. ` means it will halt *after* the final diagnostic code.
2020-09-29 16:58:58 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 16:59:07 +0200 <Cale> Oh, well, if you take a function of type (forall a b. (CoArbitrary a, Arbitrary b) => cat a b), that's the only real missing piece
2020-09-29 16:59:36 +0200 <Cale> Or you could just insist on an instance Arbitrary (cat a b)
2020-09-29 16:59:42 +0200herasmusHerasmus
2020-09-29 16:59:47 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2020-09-29 17:00:13 +0200 <turion> Cale, let's assume we have (forall a b. (CoArbitrary a, Arbitrary b) => cat a b) already
2020-09-29 17:00:32 +0200 <Cale> It's the Free case which is more challenging than the Seq case. The Seq case just amounts to making a random decision about which type to factor through, and making acceptable choices for it
2020-09-29 17:01:00 +0200 <turion> Cale: It's this random decision of a type that I want to abstract
2020-09-29 17:01:17 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-29 17:01:24 +0200 <Cale> oneof :: [Gen a] -> Gen a
2020-09-29 17:01:36 +0200 <Cale> ^^ use that :)
2020-09-29 17:01:40 +0200 <z0> dminuoso: well, you are not wrong :/
2020-09-29 17:01:42 +0200 <ski> for some applications, it seems it would be eaiser to pick the value first, and let the choice of that decide the type
2020-09-29 17:02:13 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-09-29 17:02:14 +0200 <Cale> You can imagine writing the generator which generates a random Seq term by always factoring through Integer
2020-09-29 17:02:21 +0200 <Cale> Or String or some such
2020-09-29 17:02:25 +0200 <Cale> right?
2020-09-29 17:02:28 +0200 <turion> We can also represent the free category differently:
2020-09-29 17:02:28 +0200 <turion> data FreeCat cat a b where
2020-09-29 17:02:28 +0200 <turion> Id :: FreeCat cat a a
2020-09-29 17:02:28 +0200 <turion> Comp :: cat a b -> FreeCat cat b c -> FreeCat cat a c
2020-09-29 17:02:35 +0200 <Cale> So you can combine those together with oneof
2020-09-29 17:02:53 +0200 <turion> ski: Yes, maybe there is a generator for cat a b that knows what the output type should be
2020-09-29 17:03:10 +0200 <turion> Cale: Yes, that part I know how to do. It's more that I'd like to abstract it
2020-09-29 17:03:19 +0200 <turion> Or rather to see whether someone has already done that
2020-09-29 17:03:28 +0200 <Cale> If you're writing the general instance, it'll just amount to pretty much Seq arbitrary arbitrary a bunch of times, but with type signatures on the arbitrary terms
2020-09-29 17:03:42 +0200 <Cale> er, Seq <$> arbitrary <*> arbitrary rather
2020-09-29 17:03:44 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2020-09-29 17:03:48 +0200 <turion> Because it seems like an ubiquitous problem
2020-09-29 17:03:51 +0200perdent(~blah@101.175.129.224)
2020-09-29 17:03:55 +0200 <ski> e.g. perhaps you have `data Fun :: * -> * -> * where Not :: Fun Bool Bool; Chr :: Fun Int Char; Ord :: Fun Char Int; Succ :: Fun Int Int; IsSpace :: Fun Char Bool', or something like that
2020-09-29 17:03:57 +0200 <Cale> hmm
2020-09-29 17:04:00 +0200 <z0> dminuoso: teaches me to keep no assumptions
2020-09-29 17:04:11 +0200 <ski> and then you want to generate `FreeCat Fun'
2020-09-29 17:04:43 +0200luke(~luke@bitnomial/staff/luke)
2020-09-29 17:04:50 +0200 <ski> turion : i don't think that representation makes a huge difference to the problem here
2020-09-29 17:04:58 +0200 <turion> ski: That's a good example
2020-09-29 17:05:01 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds)
2020-09-29 17:05:03 +0200 <Cale> Oh, also, Id will be interesting, actually
2020-09-29 17:05:10 +0200Lord_of_Life_Lord_of_Life
2020-09-29 17:05:11 +0200 <Cale> hmm
2020-09-29 17:05:14 +0200Noldorin(~noldorin@unaffiliated/noldorin)
2020-09-29 17:05:22 +0200 <Cale> Unless you demand Typeable a, Typeable b in your instance head
2020-09-29 17:05:38 +0200 <Cale> So that you know when you're allowed to attempt to produce Id terms
2020-09-29 17:05:39 +0200 <turion> ski: No the representation isn't that important, I agree. (That was kind of the point. I wanted to draw the attention away from the difference between Seq and Free)
2020-09-29 17:07:11 +0200 <ski> Cale : hm, point
2020-09-29 17:07:18 +0200 <ski> well
2020-09-29 17:07:37 +0200 <ski> Cale : i guess you could allow `Id' for any `a' of the right kind
2020-09-29 17:08:02 +0200 <turion> Assume I have an interpreter for this Fun type and I want to quickcheck that it preserves composition from FreeCat Fun to its semantic domain. But in a very general setting, where I don't have to fix the input and output types
2020-09-29 17:08:47 +0200perdent(~blah@101.175.129.224) (Ping timeout: 260 seconds)
2020-09-29 17:09:05 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 17:09:08 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:f198:f10:f56d:4606) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 17:09:12 +0200 <Cale> ski: Well, if you're writing an instance (...) => Arbitrary (FreeCat cat a b), you need to know whether a ~ b so that you know whether it's valid to generate Id at all.
2020-09-29 17:09:34 +0200 <Cale> If a and b are not the same type, you can't generate Id terms, but you can still generate Comp/Free terms
2020-09-29 17:09:47 +0200 <ski> yea. but i'm more considering `Arbitrary (exists b. FreeCat cat a b)' :)
2020-09-29 17:09:56 +0200 <Cale> hmmm
2020-09-29 17:10:03 +0200 <Cale> fair enough :)
2020-09-29 17:10:16 +0200 <ski> (since we need something like that, for the composition)
2020-09-29 17:10:47 +0200 <ski> (or else, i guess, randomly generating `b0' and `b1', which are `Typeable', and then comparing that they're the same ..)
2020-09-29 17:10:56 +0200 <ski> (.. but that's not that nice)
2020-09-29 17:11:05 +0200Sanchayan(~Sanchayan@136.185.169.201) (Quit: leaving)
2020-09-29 17:11:27 +0200 <turion> Maybe at the end we need to build an Arbitrary (exists a b . FreeCat cat a b)
2020-09-29 17:11:55 +0200 <turion> (possibly with Typeable, Arbitrary, Coarbitrary etc. thrown in
2020-09-29 17:12:27 +0200hackageth-orphans 0.13.11 - Orphan instances for TH datatypes https://hackage.haskell.org/package/th-orphans-0.13.11 (ryanglscott)
2020-09-29 17:12:30 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6d38:c363:743b:50e9)
2020-09-29 17:13:17 +0200alp(~alp@88.126.45.36)
2020-09-29 17:13:38 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 17:13:53 +0200 <ski> turion : the `Arbitrary' and `Coarbitrary' would be if `cat' say had constructors taking functions
2020-09-29 17:18:22 +0200 <turion> ski: Yes
2020-09-29 17:18:51 +0200 <turion> For your example it's not needed, right
2020-09-29 17:18:54 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-29 17:18:58 +0200 <ski> right
2020-09-29 17:19:08 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 17:19:12 +0200 <turion> I was implicitly thinking about my use case, which is a kind of free arrow
2020-09-29 17:19:16 +0200filwishe1(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 246 seconds)
2020-09-29 17:20:51 +0200zpao(~zpao@185.163.110.116)
2020-09-29 17:21:43 +0200 <turion> This kind of problem sounds like something that someone has written a functional pearl about 10 years ago
2020-09-29 17:22:52 +0200jespada(~jespada@90.254.241.6) (Ping timeout: 265 seconds)
2020-09-29 17:23:43 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 17:24:20 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-09-29 17:25:02 +0200 <Cale> Ah, writing the instance, you end up wanting to know not only that there are instances of Arbitrary for (cat a String) and (cat String a) for example, but also for (cat String String) and all combinations of intermediate types you plan to use
2020-09-29 17:25:07 +0200luke(~luke@bitnomial/staff/luke) (Quit: sleep)
2020-09-29 17:25:13 +0200jespada(~jespada@90.254.241.6)
2020-09-29 17:25:37 +0200knupfer(~Thunderbi@i5E86B4C1.versanet.de)
2020-09-29 17:27:01 +0200 <Cale> So the instance head has O(n^2) constraints on it if you want n intermediate types :)
2020-09-29 17:27:13 +0200koz(~koz@121.99.240.58) (Remote host closed the connection)
2020-09-29 17:27:21 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 17:27:29 +0200koz(~koz@121.99.240.58)
2020-09-29 17:27:33 +0200 <ski> yes, hence i wanted `someArbitrary :: Gen (exists b. SomeArbitrary (cat b) *> FreeCat cat a b)', for `instance SomeArbitrary (cat a) => SomeArbitrary (FreeCat cat a)'
2020-09-29 17:27:48 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-09-29 17:28:14 +0200 <Cale> tsk, wildcards not allowed in instance declarations
2020-09-29 17:28:17 +0200 <Cale> annoying
2020-09-29 17:28:33 +0200 <ski> so, when it's picking a new type for you, it should also give you an instance for how you could continue from that type
2020-09-29 17:28:43 +0200 <ski> (this is very specific to `FreeCat', obviously)
2020-09-29 17:29:01 +0200 <Cale> yeah
2020-09-29 17:29:08 +0200bloodstalker(~bloodstal@46.166.187.188)
2020-09-29 17:29:15 +0200 <Cale> You could also just demand everything you'll end up needing
2020-09-29 17:29:20 +0200rslima____(sid26145@gateway/web/irccloud.com/x-zjgqdcvtyayglqgm) (Ping timeout: 260 seconds)
2020-09-29 17:29:35 +0200 <Cale> It's also probably sufficient just to have a single intermediate type, in practice. :P
2020-09-29 17:29:48 +0200Herasmus(~mb@91-160-105-150.subs.proxad.net) (Quit: leaving)
2020-09-29 17:29:58 +0200 <ski> you mean for other cases than `FreeCat' ?
2020-09-29 17:30:07 +0200 <Cale> No
2020-09-29 17:30:19 +0200 <Squarism> Cheery, thanks for the link. Thats exactly what I'm after
2020-09-29 17:30:46 +0200rslima____(sid26145@gateway/web/irccloud.com/x-nijwoaxwcetixacu)
2020-09-29 17:31:38 +0200 <ski> hm, sorry. for some reason, i misread you as saying "insufficient", rather than "sufficient"
2020-09-29 17:32:22 +0200 <Cale> https://dpaste.com/5DUQARMCK -- anyway, something like this works
2020-09-29 17:32:49 +0200Tops2(~Tobias@dyndsl-091-249-082-222.ewe-ip-backbone.de)
2020-09-29 17:33:50 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-jerhumioweuciiqb)
2020-09-29 17:34:07 +0200 <Cale> Probably () would be a more useful choice than either Integer or String as a second type. Pick something with lots of values and something with few values :)
2020-09-29 17:34:17 +0200 <Cale> Maybe throw in Void
2020-09-29 17:34:27 +0200turion(~turion@ip1f10fe5a.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-09-29 17:35:04 +0200 <z0> /quit
2020-09-29 17:35:14 +0200z0(~z0@bl17-251-27.dsl.telepac.pt) (Quit: leaving)
2020-09-29 17:35:40 +0200 <monochrom> Nice, GHC 9.0.1 alpha1 was released yesterday
2020-09-29 17:37:07 +0200 <monochrom> onoes, the GHC user's guide will use the readthedocs format :)
2020-09-29 17:38:00 +0200turion(~turion@ip1f10fe5a.dynamic.kabel-deutschland.de)
2020-09-29 17:38:35 +0200lagothrix(~lagothrix@unaffiliated/lagothrix) (Ping timeout: 258 seconds)
2020-09-29 17:38:50 +0200lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-09-29 17:39:29 +0200 <turion> Ideally, have lots of different types, and ideally tweak the intermediate types depending over what we want the free category
2020-09-29 17:40:28 +0200jgt(~jgt@46.250.27.223.pool.breezein.net) (Ping timeout: 272 seconds)
2020-09-29 17:40:37 +0200 <turion> E.g. in FreeCat (->) a b we basically want everything we can think of that has (CoArbitrary a, Arbitrary b). In ski's example, we want just the types that occur in Fun
2020-09-29 17:41:09 +0200jedws(~jedws@121.209.139.222) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 17:41:18 +0200solonarv(~solonarv@astrasbourg-653-1-252-112.w92-161.abo.wanadoo.fr)
2020-09-29 17:43:31 +0200xerox_(~xerox@unaffiliated/xerox) (Quit: leaving)
2020-09-29 17:43:50 +0200 <ski> turion : could also allow other types to be used, with `Id'
2020-09-29 17:44:16 +0200kritzefitz(~kritzefit@fw-front.credativ.com) (Ping timeout: 256 seconds)
2020-09-29 17:44:47 +0200 <Cale> With newer GHCs, you could use QuantifiedConstraints to get the thing you want in the (->) case
2020-09-29 17:45:24 +0200 <Cale> It's also probably possible to construct a type family that lets you turn a list of types into a list of all the needed Arbitrary constraints between them
2020-09-29 17:45:37 +0200 <turion> ski: Hmm true. So maybe we always want as many types as possible. But sometimes we'll have to restrict to the ones that are specified in a constructor
2020-09-29 17:45:42 +0200 <Cale> (rather, into the combination of those constraints directly
2020-09-29 17:45:43 +0200 <Cale> )
2020-09-29 17:46:57 +0200 <ski> turion : perhaps there could be some way to "inject" which types one'd like it to consider for existentials .. not sure how one'd want that to work, though
2020-09-29 17:47:17 +0200 <turion> ski: Like a list of proxies hidden in an existential type
2020-09-29 17:47:26 +0200 <Cale> Also, note that you don't have to stick to a single Arbitrary instance.
2020-09-29 17:48:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-09-29 17:48:04 +0200 <turion> Cale: What do you mean?
2020-09-29 17:48:29 +0200 <Cale> You can write a bunch of these Gen values for various circumstances, and use them via QuickCheck's forAll
2020-09-29 17:48:35 +0200 <Cale> forAll :: (Show a, Testable prop) => Gen a -> (a -> prop) -> Property
2020-09-29 17:48:49 +0200 <turion> Ah yes :) that will sometimes make it easier
2020-09-29 17:48:52 +0200 <monochrom> Yikes, new extension LexicalNegation. If you turn it on, then "x -y" means "x (negate y)", and "(- b)" means the section "subtract b".
2020-09-29 17:49:11 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-09-29 17:50:04 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-09-29 17:50:18 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 17:50:19 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2020-09-29 17:50:37 +0200 <dolio> Oh, it turns off unary minus with spaces?
2020-09-29 17:50:39 +0200 <Cale> monochrom: I hate the direction that GHC's been going lately
2020-09-29 17:51:03 +0200 <ski> Cale : syntactically ?
2020-09-29 17:51:07 +0200 <monochrom> I have a conspiracy theory! LinearTypes was a smoke screen to distract people from noticing the really breaking changes like LexicalNegation and simplified subsumption. :)
2020-09-29 17:51:18 +0200 <Cale> ski: Syntactically, semantically...
2020-09-29 17:51:19 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:6d38:c363:743b:50e9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 17:51:36 +0200 <monochrom> Yeah dolio, basically that.
2020-09-29 17:52:25 +0200 <Cale> LinearTypes is a disaster unfolding in slow motion, then there's all these little stupid syntactic extensions that everyone's going to have to deal with.
2020-09-29 17:52:36 +0200 <dolio> Simplified subsumption I can kind of get behind, if it's what I'm thinking of.
2020-09-29 17:52:43 +0200 <monochrom> Well, also, "x -y" meaning "x (negate y)" is turning on unary minus with absence of spaces. :)
2020-09-29 17:53:25 +0200 <monochrom> "\x -> sin x == sin -x" is now a valid property for quickcheck :)
2020-09-29 17:53:40 +0200 <monochrom> err, s/sin/cos/
2020-09-29 17:53:58 +0200 <dolio> Right. I just thought it was adding the rule about -x, not taking away - x.
2020-09-29 17:54:27 +0200 <Cale> I feel like RecordDotSyntax was the kind of thing that newbies would always ask for like a decade ago, but there were always good reasons not to do it. Now we've just gone ahead and ignored all those good reasons, and implemented something which makes it easy to write terms that nobody knows how to parse
2020-09-29 17:55:07 +0200acidjnk_new(~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 17:55:11 +0200 <Cale> (there's a rule for disambiguation, but it's not obvious)
2020-09-29 17:55:37 +0200 <monochrom> (basically using spaces again, yeah)
2020-09-29 17:55:59 +0200 <maerwald> magical spaces
2020-09-29 17:56:07 +0200 <Cale> It honestly makes me want to fork the entire language
2020-09-29 17:56:31 +0200 <maerwald> reminds me of the `return foo;` vs `foo` syntax in rust, which is nonsense imo
2020-09-29 17:56:34 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-09-29 17:56:40 +0200 <dolio> Taking away spaced unary minus might actually be good in that situation, I guess, because it's one less complication.
2020-09-29 17:56:51 +0200 <Cale> GHC doesn't need new language extensions, it needs to be simpler and produce better code in less time
2020-09-29 17:56:52 +0200 <dolio> Like "-x `mod` y" vs "- x `mod` y".
2020-09-29 17:57:08 +0200Saukk(~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3)
2020-09-29 17:57:08 +0200 <Cale> The GHC API needs to be more usable
2020-09-29 17:58:03 +0200 <monochrom> As usual, LinearTypes earns paper credits, improving GHC API doesn't.
2020-09-29 17:58:37 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-hhonmrvgqckxkhob)
2020-09-29 17:58:48 +0200 <maerwald> monochrom: dunno, by now there should be enough companies caring about these mundane things... I'm not sure what's going on
2020-09-29 17:58:52 +0200 <dolio> It's a little odd that - binds tighter than function application, though.
2020-09-29 17:59:06 +0200 <Cale> dolio: Yeah, that's happening with dot now too
2020-09-29 17:59:19 +0200 <dolio> Well, I'm not surprised by that.
2020-09-29 17:59:20 +0200 <Cale> It's disgusting
2020-09-29 17:59:53 +0200 <dolio> I expect "we need to import syntax from JavaScript" to be nonsense.
2020-09-29 17:59:54 +0200 <Cale> The *one* rule about precedence that we used to be able to rely on
2020-09-29 17:59:55 +0200xerox_(~xerox@unaffiliated/xerox)
2020-09-29 18:00:04 +0200 <monochrom> Ahhh I see now, two-for-one deal, if you can use spacing to change precedence, you may as well do it to both - and . and nail two popular demands.
2020-09-29 18:00:13 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-09-29 18:00:18 +0200kaushikc(kaushikkau@gateway/shell/matrix.org/x-hwwljnatfkzlwbta) (Quit: Idle for 30+ days)
2020-09-29 18:00:27 +0200Rudd0(~Rudd0@185.189.115.98)
2020-09-29 18:00:50 +0200cpressey(~cpressey@79-72-202-166.dynamic.dsl.as9105.com) (Quit: WeeChat 1.9.1)
2020-09-29 18:01:04 +0200 <dolio> Anyhow, this is why "avoid (success at all costs)" is the wrong reading. :)
2020-09-29 18:01:25 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:ddd1:5640:16d4:8a5)
2020-09-29 18:02:21 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net) (Ping timeout: 258 seconds)
2020-09-29 18:05:13 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:ddd1:5640:16d4:8a5) (Client Quit)
2020-09-29 18:05:19 +0200howdoi(uid224@gateway/web/irccloud.com/x-mlzhxxxzmqvsdejo)
2020-09-29 18:05:23 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 256 seconds)
2020-09-29 18:06:37 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 18:07:10 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 18:07:49 +0200luke(~luke@bitnomial/staff/luke)
2020-09-29 18:08:03 +0200Guest18(567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102)
2020-09-29 18:08:36 +0200 <zincy_> Cale: I agree, newbies at my last workplace were all over RecordDotSyntax
2020-09-29 18:09:13 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2020-09-29 18:10:20 +0200turion(~turion@ip1f10fe5a.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2020-09-29 18:10:23 +0200 <zincy_> Why is linear types going to be a disaster?
2020-09-29 18:11:55 +0200 <Cale> Because it's not very useful, and yet in order to attempt to use it in various circumstances, people are going to want linear-generalised versions of various higher order things from every package in the known universe.
2020-09-29 18:12:02 +0200 <quicksilver> I was always afraid this would happen with record syntax
2020-09-29 18:12:15 +0200 <Cale> This will clutter the world, and yet serve very little purpose
2020-09-29 18:12:27 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 18:13:32 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-09-29 18:14:26 +0200 <zincy_> Cale: Yeah it seems like a lot of work for a solution to a very niche set of problems
2020-09-29 18:14:36 +0200 <Cale> A lot of the downsides of attempting to use linear types are not particularly obvious at first sight. For example, the paper which introduced them includes as one of its examples, a socket library which could only be used if you never want to do any I/O in your server that could potentially throw an exception you might want to catch without taking down the entire server.
2020-09-29 18:14:59 +0200luke(~luke@bitnomial/staff/luke) (Quit: sleep)
2020-09-29 18:15:00 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:94ea:ab3b:3884:ed6e)
2020-09-29 18:15:16 +0200 <zincy_> haha
2020-09-29 18:15:17 +0200puffnfresh_(~puffnfres@45.76.124.5) (Quit: ZNC 1.8.0 - https://znc.in)
2020-09-29 18:15:31 +0200 <Cale> This is the kind of thing that beginners will hang themselves on, and blame Haskell's type system for being frustrating and incomprehensible, and the annoying thing is that in this case, they will be right.
2020-09-29 18:15:36 +0200puffnfresh_(~puffnfres@45.76.124.5)
2020-09-29 18:16:16 +0200 <zincy_> Cale: Do you feel that there are too many obscure extensions on the market?
2020-09-29 18:16:21 +0200 <Cale> yes
2020-09-29 18:16:59 +0200 <zincy_> They feel a bit like pokemon.
2020-09-29 18:17:05 +0200 <Cale> I think it's long past time to stop making new extensions at least until people have better ideas
2020-09-29 18:17:18 +0200 <zincy_> In the old days you had ones you loved and new ones keep coming out and you dont care anymore
2020-09-29 18:18:09 +0200 <quicksilver> I don't mind a plethora of experimental extensions as long as they don't become a new default
2020-09-29 18:18:19 +0200 <quicksilver> I suppose that's hard to control/predict
2020-09-29 18:18:44 +0200 <Cale> The thing is, the language people have to learn is basically the union of all the extensions that exist
2020-09-29 18:18:55 +0200 <int-e> quicksilver: the problem with those extensions is somebody will use them :-/
2020-09-29 18:18:57 +0200 <Cale> because once it's in GHC, someone's going to use it
2020-09-29 18:18:59 +0200 <zincy_> I thought Haskell would be great at "taming" bad programmers. But it is amazing the ingenuity Haskell can give you to create bad code.
2020-09-29 18:19:22 +0200 <Cale> Yeah, I've seen some remarkably terrible things done with singletons
2020-09-29 18:19:24 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-09-29 18:19:52 +0200 <zincy_> Shudder
2020-09-29 18:19:53 +0200 <Cale> People using the type system to guarantee properties that nobody ever actually cared about, and which turn programming into a bureaucratic nightmate
2020-09-29 18:19:57 +0200 <Cale> nightmare*
2020-09-29 18:20:09 +0200 <zincy_> Haha this is so true
2020-09-29 18:20:32 +0200 <Cale> As much as I love dependent types, I also fear what bad programmers will do with them
2020-09-29 18:20:32 +0200wonko7(~wonko7@2a01:e35:2ffb:7040:8c5f:831a:4acc:45dd)
2020-09-29 18:20:41 +0200 <int-e> I want dependable types.
2020-09-29 18:20:58 +0200 <monochrom> @quote int-e I want dependable types.
2020-09-29 18:20:58 +0200 <lambdabot> No quotes match. Take a stress pill and think things over.
2020-09-29 18:21:02 +0200 <monochrom> err heh
2020-09-29 18:21:08 +0200 <monochrom> @remember int-e I want dependable types.
2020-09-29 18:21:09 +0200 <lambdabot> Nice!
2020-09-29 18:21:09 +0200 <zincy_> Maybe there should be a dependent types certification like a driving licence
2020-09-29 18:21:13 +0200 <zincy_> or an oath to do no harm
2020-09-29 18:21:16 +0200 <Cale> Even good programmers have a hard time finding the right way to define things in a dependently typed setting to guarantee the properties that are desired and still maintaining usability
2020-09-29 18:22:01 +0200 <dolio> Right. That is publishable research.
2020-09-29 18:22:07 +0200 <zincy_> What people do with custom typeclasses can be painful
2020-09-29 18:23:05 +0200 <monochrom> I disbelieve that dependent typing and/or exploiting curry-howard is a good way to express general invariants. I disbelieve the argument "I don't need to learn a different language for specifications".
2020-09-29 18:23:24 +0200 <Cale> There are places to use all the fancy new stuff in GHC, and I've been genuinely quite happy with some of the practical things I've been able to do with GADTs and DMap for example
2020-09-29 18:23:45 +0200bitmagie(~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de)
2020-09-29 18:23:54 +0200 <Cale> But using the fancy things has to be a last resort
2020-09-29 18:24:05 +0200 <monochrom> Re-using the type language for general invariants is worse, not better, because it is not re-using, it is shoe-horning.
2020-09-29 18:24:12 +0200 <Cale> Plain old Haskell 98 is pretty damn good 99% of the time
2020-09-29 18:24:20 +0200elcaro(~anonymous@45.32.191.75) (Remote host closed the connection)
2020-09-29 18:24:22 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 18:24:24 +0200 <zincy_> Yeah
2020-09-29 18:24:41 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:94ea:ab3b:3884:ed6e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 18:25:25 +0200urdh(~urdh@unaffiliated/urdh) (Ping timeout: 246 seconds)
2020-09-29 18:26:18 +0200puffnfre-(~puffnfres@45.76.124.5)
2020-09-29 18:26:49 +0200puffnfresh_(~puffnfres@45.76.124.5) (Read error: Connection reset by peer)
2020-09-29 18:26:59 +0200urdh(~urdh@unaffiliated/urdh)
2020-09-29 18:27:31 +0200 <Cale> Well, when I say "all the new stuff", I'm still actually excluding a fair amount... there are a fair number of extensions that we just don't even begin to use, like all the weird record overloading shenanigans
2020-09-29 18:28:10 +0200 <merijn> Cale: Also, GADTs and fancy things are like spices
2020-09-29 18:28:12 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:b183:d428:bf80:8a35)
2020-09-29 18:28:14 +0200 <merijn> A little goes a long way
2020-09-29 18:28:15 +0200 <Cale> I guess I'm referring to the stuff that's more in the direction of dependent types, like GADTs and type families and QuantifiedConstraints and such
2020-09-29 18:28:22 +0200 <Cale> yeah
2020-09-29 18:28:40 +0200 <Cale> There's a lot that I could do if I could write just *one* type level lambda :)
2020-09-29 18:29:03 +0200 <dolio> Is there an extension where record syntax doesn't generate the accessor?
2020-09-29 18:29:08 +0200 <zincy_> monochrom: What would you recommend as a first dip of the toe into proving properties about programs?
2020-09-29 18:29:32 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2020-09-29 18:29:40 +0200 <zincy_> monochrom: Operational/Denotational semantics, was thinking software foundations but Isabelle looks fun too
2020-09-29 18:29:40 +0200 <merijn> dolio: Yes
2020-09-29 18:29:43 +0200 <dolio> Seems like that would be one of the most useful extensions.
2020-09-29 18:29:45 +0200 <merijn> dolio: Not sure if it's in yet
2020-09-29 18:29:53 +0200geekosaur(42d52102@66.213.33.2)
2020-09-29 18:29:54 +0200 <merijn> dolio: But the GHC proposal was approved
2020-09-29 18:30:18 +0200 <dolio> Then you can declare record types and generate overloaded lenses instead of monomorphic accessors.
2020-09-29 18:30:21 +0200 <merijn> dolio: https://github.com/ghc-proposals/ghc-proposals/pull/160
2020-09-29 18:30:24 +0200 <monochrom> I'm biased, I'll just point you to my favourite: my thesis supervisor's textbook :) http://www.cs.toronto.edu/~hehner/aPToP/
2020-09-29 18:30:25 +0200kritzefitz(~kritzefit@212.86.56.80)
2020-09-29 18:30:34 +0200kritzefitz(~kritzefit@212.86.56.80) (Client Quit)
2020-09-29 18:30:36 +0200 <ski> it would be useful, yes
2020-09-29 18:30:47 +0200 <dolio> Which gives you a much better record system than a bunch of ad-hoc nonsense.
2020-09-29 18:30:52 +0200tzh(~tzh@2601:448:c500:5300::82b3)
2020-09-29 18:30:54 +0200 <merijn> dolio: Looks like it'll be 9.2: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4017
2020-09-29 18:31:14 +0200elcaro(~anonymous@45.32.191.75)
2020-09-29 18:31:18 +0200 <dolio> Ah, okay.
2020-09-29 18:31:29 +0200 <zincy_> monochrom: Thanks, I learned to prove things by studying Analysis so looking for the next step really that will tie in with programming :)
2020-09-29 18:31:34 +0200 <dolio> And you no longer have to name your field _foo.
2020-09-29 18:31:47 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 18:33:11 +0200 <Guest18> Does anybody know how is Maybe implemented?
2020-09-29 18:33:28 +0200 <dolio> To be honest, I blame a bit of the record stuff on the 'rigorous typeclasses' culture that has developed.
2020-09-29 18:33:37 +0200 <maerwald> @src Maybe
2020-09-29 18:33:37 +0200 <lambdabot> data Maybe a = Nothing | Just a
2020-09-29 18:33:39 +0200machinedgod(~machinedg@45.78.189.122)
2020-09-29 18:33:51 +0200 <Guest18> @src Nothing
2020-09-29 18:33:52 +0200 <lambdabot> Source not found. My brain just exploded
2020-09-29 18:33:58 +0200 <maerwald> That's a constructor
2020-09-29 18:34:19 +0200 <[exa]> Guest18: Nothing is defined by that definition of Maybe
2020-09-29 18:34:31 +0200 <geekosaur> as is Just
2020-09-29 18:34:34 +0200 <maerwald> I'm wondering which university started this haskell course :p
2020-09-29 18:34:53 +0200 <dolio> Type classes are obviously the correct way to overload records, but any suggestion for using it would get hammered by the "there are no LAWS" crowd. So instead people need to invent a less thought out version of type classes that you're allowed to use how you want.
2020-09-29 18:35:06 +0200 <Guest18> [exa] so they don't have implementations? They are just symbols of sorts?
2020-09-29 18:35:06 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-09-29 18:35:27 +0200 <[exa]> Guest18: yeah, perfectly arbitrary "labels". Just like False and True
2020-09-29 18:35:39 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-29 18:35:46 +0200 <merijn> Guest18: Define "implementations"
2020-09-29 18:35:55 +0200 <merijn> Guest18: That *is* the implementation
2020-09-29 18:35:58 +0200 <monochrom> dolio, the good news is you have convinced me. :) Next time I teach my course, I'll be relaxing on traits of good type classes.
2020-09-29 18:36:08 +0200 <ski> Guest18 : they don't have implementations in Haskell, beyond that `data' type definition
2020-09-29 18:36:25 +0200 <Guest18> that's a bit confusing, i might say
2020-09-29 18:36:27 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 18:36:39 +0200 <ski> whyso ?
2020-09-29 18:36:58 +0200elcaro(~anonymous@45.32.191.75) (Ping timeout: 256 seconds)
2020-09-29 18:37:21 +0200 <ski> you know (or will know) how to work with them, practically. why do you care about "what they really are" ?
2020-09-29 18:37:23 +0200elcaro(~anonymous@45.32.191.75)
2020-09-29 18:37:34 +0200jgt(~jgt@233724.soborka.net)
2020-09-29 18:38:04 +0200 <monochrom> But even my previous version was open-ended. I had "useful expectations", this included social expectations, so overloaded field name would be fine. Also, I only intend a spectrum, not a boolean.
2020-09-29 18:38:22 +0200Turmfalke(~user@unaffiliated/siracusa)
2020-09-29 18:38:27 +0200 <Guest18> Regarding what [exa] said about True and False: if they are just arbitrary labels, why can i put a guard, a condition after and it automatically knows it should execute that only if the condition == True
2020-09-29 18:38:45 +0200 <Guest18> ski: Just curios, Nothing else ;)
2020-09-29 18:38:45 +0200 <maerwald> I'd favor a version of the haskell language without type classes :p ...just wondering how we'd implement functors etc
2020-09-29 18:38:46 +0200 <ski> you know you can construct `Maybe' values, with `Nothing', and with `Just'. and you know you can detect which way a `Maybe' value was constructed, by using pattern-matching, on the `Nothing' and `Just' cases (getting the "contents" as well, in the latter case)
2020-09-29 18:38:51 +0200 <ski> what more do you need ?
2020-09-29 18:38:56 +0200 <[exa]> Guest18: because the "label" for True is shared between `guard` and your program, and they know it's the same thing
2020-09-29 18:39:00 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-29 18:39:20 +0200bitmagie(~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) (Quit: bitmagie)
2020-09-29 18:40:08 +0200 <maerwald> Guest18: there are also pattern guards: | (Just m) <- foo = bar
2020-09-29 18:40:08 +0200 <ski> Guest18 : well, guard syntax (and `if', and list comprehensions) knows about `Bool' in particular
2020-09-29 18:40:18 +0200 <geekosaur> booleans are partially wired into the compiler because of guards, among other things (but this is just an optimization). Maybe isn't, because there's no equivalent usage inside the compiler for it
2020-09-29 18:40:38 +0200 <monochrom> Lately I've been writing a GHC.Generics tutorial, and also realize that it is very difficult to uphold "has laws" for the homebrew type classes you have to define in order to have a place for your generic algorithm to live in.
2020-09-29 18:40:38 +0200 <maerwald> lets drown them in information :p
2020-09-29 18:40:42 +0200klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net)
2020-09-29 18:40:46 +0200 <ski> you could define your own version of `if' (as an ordinary function), though. `if ... then ... else ...' is just a handy syntactic sugar
2020-09-29 18:41:16 +0200 <ski> maerwald : it's an old established tradition :)
2020-09-29 18:41:23 +0200 <Guest18> ski: just curiosity to see how complicated it is on the inside. I mean, I always assume whatever i get from the standard library is going to have some weird implementation that I can't understand. Wanted to see what the deal was with Maybe
2020-09-29 18:41:53 +0200 <maerwald> Those are reasonable expectations from a standard library
2020-09-29 18:42:25 +0200 <Guest18> i get it now, i experimented with Maybe for a bit already and get how to use it, and now wanted to see how it works
2020-09-29 18:43:01 +0200 <ski> what's the difference between "how to use it" and "how it works" ?
2020-09-29 18:43:12 +0200puffnfresh_(~puffnfres@45.76.124.5)
2020-09-29 18:43:18 +0200 <maerwald> > join (+) 4 -- hey Guest18, look at this :p
2020-09-29 18:43:20 +0200 <lambdabot> 8
2020-09-29 18:43:32 +0200 <maerwald> :t join
2020-09-29 18:43:33 +0200 <lambdabot> Monad m => m (m a) -> m a
2020-09-29 18:43:58 +0200 <geekosaur> there's nothing to know, really. either it's Nothing or it's Just some value. there are some typeclass instances that make it more convenient to use in various cases, but those aren't wired in to the compiler either
2020-09-29 18:44:16 +0200puffnfre-(~puffnfres@45.76.124.5) (Ping timeout: 256 seconds)
2020-09-29 18:44:18 +0200 <Guest18> ski: i can drive a car, or 'use' it, but i don't know all the internals and how it functions
2020-09-29 18:44:38 +0200elcaro(~anonymous@45.32.191.75) (Ping timeout: 260 seconds)
2020-09-29 18:44:40 +0200jgt(~jgt@233724.soborka.net) (Ping timeout: 246 seconds)
2020-09-29 18:44:47 +0200elcaro(~anonymous@45.32.191.75)
2020-09-29 18:44:51 +0200 <ski> it could "work" then in different ways, depending on which implementation of the language you're using
2020-09-29 18:45:01 +0200 <Guest18> maerwald: I haven't gotten into Monads, that's uncharted territory to me
2020-09-29 18:45:02 +0200 <monochrom> There are English native speakers, I think even the majority, who use "how does it work" to mean, seriously, how to use.
2020-09-29 18:45:05 +0200 <[exa]> Guest18: on the inside there's a very rough reminiscent of a tagged union (something like enum with extra struct members, if you like C)
2020-09-29 18:45:06 +0200 <ski> (but then we're not talking about Haskell, but implementations of Haskell)
2020-09-29 18:45:38 +0200 <[exa]> but yeah that depends a lot on the actual implementation.
2020-09-29 18:45:40 +0200 <dolio> monochrom: Yeah, the important thing is to judge the value in context, and not over-generalize some rigid rule set. Like, mathematical structures are a good way to figure out nice type classes. But they're not the only way.
2020-09-29 18:45:47 +0200 <maerwald> monochrom: isn't that a rather american thing?
2020-09-29 18:46:20 +0200 <maerwald> where "work" is overloaded to all sorts of meanings
2020-09-29 18:46:22 +0200 <Guest18> ski: yeah, you are right here. I should have asked: what's a probable implementation of Maybe?
2020-09-29 18:46:37 +0200 <monochrom> I don't know. But I'm afraid more people speak American English than British English. I deplore it, but I admit defeat. And it's spelled colour, not color!
2020-09-29 18:46:38 +0200 <ski> Guest18 : what [exa] said
2020-09-29 18:46:42 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:b183:d428:bf80:8a35) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 18:46:46 +0200 <Guest18> [exa]: I see, thank you so much
2020-09-29 18:46:53 +0200 <dolio> And with generics that's just a completely different application, basically.
2020-09-29 18:47:01 +0200 <ski> Guest18 : have you seen C ?
2020-09-29 18:47:27 +0200 <Guest18> what lambdabot said does remind me of an enum of sorts
2020-09-29 18:47:51 +0200 <Guest18> ski: if i have seen it? what do you mean?
2020-09-29 18:48:08 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 18:48:46 +0200 <Guest18> you mean if i've ever seen C code? Sure i have
2020-09-29 18:48:51 +0200 <Guest18> Quite a lot
2020-09-29 18:49:05 +0200 <[exa]> you might like the ghc RTS then. :]
2020-09-29 18:49:06 +0200alp(~alp@88.126.45.36) (Remote host closed the connection)
2020-09-29 18:49:24 +0200 <ski> Guest18 : very roughly, you could imagine something like `struct maybe_int { enum {NOTHING,JUST} tag; union { struct {} n; struct { int n; } j; } u; };'
2020-09-29 18:49:27 +0200 <maerwald> I think this might be the only student passing the exam :)
2020-09-29 18:49:32 +0200alp(~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c)
2020-09-29 18:49:46 +0200 <maerwald> (the others left after they figured out how to install GHC)
2020-09-29 18:49:59 +0200 <ski> (but this ignores lots of things, is just meant to get a general idea for how you could simulate something a bit akin to `Maybe Int', in C)
2020-09-29 18:50:39 +0200 <monochrom> With great trouble.
2020-09-29 18:50:41 +0200 <dolio> EvanR: Oh, by the way, I thought of some other 'not correct' stuff that probably makes sense in SDG. All those weird differential operators that get used in e.g. Maxwell's equations, where in classical math you have to explain it as 'just a notation' probably actually make sense. Like the gradient is actually a vector-like thing, and you can use the dot product to get the divergence, and it all makes sense. At least, I think that's the kind of thing
2020-09-29 18:50:42 +0200 <dolio> you get out of it (I have very little understanding of SDG).
2020-09-29 18:50:44 +0200 <[exa]> ( ...did I miss a surge of new questions about haskell language server? )
2020-09-29 18:51:08 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer)
2020-09-29 18:51:16 +0200 <ski> [exa] : recently there's been a bit of people having basic trouble with how to install GHC
2020-09-29 18:51:35 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-29 18:51:35 +0200 <[exa]> good
2020-09-29 18:51:40 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:c9ce:dada:6b56:fcbb)
2020-09-29 18:51:42 +0200 <[exa]> I'm going to contribute a few tomorrow. :]
2020-09-29 18:51:48 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection)
2020-09-29 18:52:04 +0200 <maerwald> I already have PATH-burnout
2020-09-29 18:52:12 +0200 <ski> Guest18 : does that help ?
2020-09-29 18:52:26 +0200 <[exa]> oh this.
2020-09-29 18:52:32 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net)
2020-09-29 18:52:41 +0200 <monochrom> ski and Guest18: Could I talk you into replacing C by Rust as your reference point? Because Rust matches so much better to Haskell in this regard.
2020-09-29 18:52:53 +0200 <[exa]> I should put this to slides explicitly
2020-09-29 18:53:23 +0200 <ski> mm, the other day, we helped someone to add stuff to `.bashrc' and `.bash_profile' (after telling how to create the first one, which was non-existant)
2020-09-29 18:53:24 +0200 <Guest18> ski: it does. Do you recommend going into the RTS to see some of this in action? I am quite curious
2020-09-29 18:53:49 +0200 <ski> monochrom : i'd love to, but less people tend to be familiar with it :)
2020-09-29 18:53:57 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-09-29 18:54:01 +0200 <monochrom> maerwald: There is an alternative. If you don't support Mac... >:)
2020-09-29 18:54:10 +0200 <[exa]> monochrom: doesn't it kinda lead to question "how's that implemented in rust?"
2020-09-29 18:54:28 +0200 <Guest18> monochrom: i for one can read simple rust, but never programmed with it
2020-09-29 18:54:32 +0200 <monochrom> Yes for some people, no for some people.
2020-09-29 18:54:40 +0200 <Guest18> and i think many people have the same problem
2020-09-29 18:54:43 +0200 <[exa]> anyway thanks for pointing out the install problem, I just realized that my slides don't match reality anymore, at all
2020-09-29 18:54:45 +0200 <maerwald> monochrom: I hope the next haskell survey will give better insights about the user distribution of ghcup
2020-09-29 18:56:02 +0200 <monochrom> Notice how, for example, most javascript programmers never ask how are javascript features implemented, how are web browsers implemented in the first place.
2020-09-29 18:56:22 +0200chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-09-29 18:56:32 +0200 <zincy_> monochrom: Yes!
2020-09-29 18:56:36 +0200Saukk(~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) (Remote host closed the connection)
2020-09-29 18:56:44 +0200 <[exa]> monochrom: they learnt to fear the browser!
2020-09-29 18:57:02 +0200 <dolio> JavaScript is the fundamental language of the universe.
2020-09-29 18:57:12 +0200 <[exa]> ("learnt" isn't english, is it...)
2020-09-29 18:57:13 +0200nineonine(~nineonine@216-19-190-182.dyn.novuscom.net) (Ping timeout: 264 seconds)
2020-09-29 18:57:22 +0200 <ski> [exa] : if you look for "xcode" in scroll-back, you should see one such conversation, a few hours ago
2020-09-29 18:57:24 +0200 <geekosaur> british english
2020-09-29 18:57:27 +0200 <monochrom> It is. Both learnt and learned are legal.
2020-09-29 18:57:45 +0200 <Guest18> monochrom: the problem with those is that they chose the easy route, it's all about making a living, but beyond that, i don't think they care if it doesn't affect them
2020-09-29 18:57:45 +0200 <[exa]> o nice
2020-09-29 18:57:50 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 18:57:51 +0200 <[exa]> ski: thanks!
2020-09-29 18:57:53 +0200 <Cheery> I just wrote a lazy lambda calculus interpreter in RPython.
2020-09-29 18:58:01 +0200 <monochrom> Recommendation: Every time, toss a coin to decide whether you use learnt or learned :)
2020-09-29 18:58:35 +0200Saten-san(~Saten-san@ip-213-49-123-190.dsl.scarlet.be)
2020-09-29 18:58:49 +0200 <ski> [exa] : and there was someone that we helped with `.bashrc' and `.bash_profile' (on Mac), maybe yesterday, or the day before (you could check the TUNES logs, if it's fallen off the far end of your buffer)
2020-09-29 18:59:18 +0200 <ski> monochrom : ooh, is that what the learnt ones do ?
2020-09-29 18:59:27 +0200 <monochrom> haha
2020-09-29 18:59:29 +0200 <[exa]> I see it in the backlog (it's nicely marked by a flood of ghcup install logs :D )
2020-09-29 18:59:46 +0200 <monochrom> Nah, learnt people don't troll like that.
2020-09-29 19:00:24 +0200 <Guest18> [exa] Do you do any embedded by any chance?
2020-09-29 19:00:26 +0200 <maerwald> [exa]: yeah, we saw it coming a mile away
2020-09-29 19:00:32 +0200 <zincy_> And then you have those lovely people who take javascript out of the browser and write their servers in it!
2020-09-29 19:00:54 +0200 <zincy_> Keep the monster in the box
2020-09-29 19:01:05 +0200 <ski> Guest18 : iirc, there's some STG paper that people seems to be suggesting. but i think it's probably more useful to first get a bit more comfortable with the language
2020-09-29 19:01:22 +0200 <[exa]> Guest18: embedded? as in programming for embedded platforms?
2020-09-29 19:01:32 +0200 <Guest18> Any chance we could convert js devs to OCaml?
2020-09-29 19:01:35 +0200 <Guest18> [exa]: yes
2020-09-29 19:01:41 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 19:01:43 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2020-09-29 19:01:49 +0200 <zincy_> Guest18: They tried that with Reasonml
2020-09-29 19:01:52 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9)
2020-09-29 19:02:00 +0200 <zincy_> But it was too hard to learn of course
2020-09-29 19:02:03 +0200 <zincy_> Because. Types.
2020-09-29 19:02:16 +0200 <monochrom> I am against converting people.
2020-09-29 19:02:28 +0200 <zincy_> haha
2020-09-29 19:02:39 +0200 <[exa]> Guest18: I'm also teaching C/C++ and generally work towards the "restricted&efficient" systems but usually not for the small-platform-ish reasons
2020-09-29 19:03:03 +0200 <dolio> It's too hard to get your variable scoping errors at compile time.
2020-09-29 19:03:28 +0200 <Guest18> Oh, cool, I taught C++ as well. As in, not anymore
2020-09-29 19:03:40 +0200 <[exa]> some of the JS people kindof don't believe the mistake until it really happens
2020-09-29 19:03:51 +0200 <zincy_> dolio: And scary!
2020-09-29 19:04:01 +0200 <zincy_> Imagine seeing all those problems at once
2020-09-29 19:04:04 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 19:04:11 +0200 <Guest18> Although, probably in this group, that's not much of an achievement
2020-09-29 19:04:18 +0200nineonine(~nineonine@216.81.48.202)
2020-09-29 19:06:09 +0200lucid_0x80(~lucid_0x8@188.253.231.113)
2020-09-29 19:06:27 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-09-29 19:06:27 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-09-29 19:06:27 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-09-29 19:07:03 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 19:07:07 +0200xff0x(~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) (Ping timeout: 272 seconds)
2020-09-29 19:07:08 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 19:07:11 +0200kozkoz_
2020-09-29 19:08:35 +0200 <maerwald> you can conver js devs to elm
2020-09-29 19:09:10 +0200 <[exa]> "but does it run react?"
2020-09-29 19:10:17 +0200 <maerwald> I'm already happy TypeScript exists, although the type system isn't entirely sound
2020-09-29 19:10:56 +0200xff0x(~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b)
2020-09-29 19:11:09 +0200 <aldum> you know, compared to what ; next JS it's splendid
2020-09-29 19:11:27 +0200 <monochrom> Hey maerwald, I'm wondering if https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-notes.html#base-library solves your ByteString space troubles.
2020-09-29 19:11:50 +0200 <monochrom> This is on GHC 9.0.1 alpha1
2020-09-29 19:12:15 +0200 <maerwald> aldum: https://github.com/microsoft/TypeScript/issues/18770
2020-09-29 19:13:17 +0200 <maerwald> const array1: (number | string)[] = []; const array2: number[] = array1; array1.push("gotcha");
2020-09-29 19:13:19 +0200 <maerwald> heh
2020-09-29 19:13:30 +0200 <maerwald> boom
2020-09-29 19:13:35 +0200 <maerwald> (it works)
2020-09-29 19:15:19 +0200 <ski> contravariance of mutable container ?
2020-09-29 19:16:37 +0200wonko7(~wonko7@2a01:e35:2ffb:7040:8c5f:831a:4acc:45dd) (Ping timeout: 272 seconds)
2020-09-29 19:16:37 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 19:17:07 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 19:20:12 +0200 <maerwald> monochrom: you mean this? https://github.com/haskell/tar/issues/57
2020-09-29 19:20:26 +0200 <monochrom> Yeah
2020-09-29 19:20:28 +0200 <maerwald> I think it might actually be related to ByteString, but I have to check
2020-09-29 19:21:01 +0200 <maerwald> or it might get worse
2020-09-29 19:21:07 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-09-29 19:21:13 +0200 <monochrom> Ah then, maybe 9.0.1 doesn't help.
2020-09-29 19:21:24 +0200 <maerwald> they made bytestring faster... but no one knows if that increased the memory footprint I think
2020-09-29 19:21:31 +0200 <geekosaur> bytestring still needs to be updatd to use the new mechanism
2020-09-29 19:21:35 +0200 <monochrom> 9.0.1's change is for OverloadedString bytestrings, if I read correctly
2020-09-29 19:21:56 +0200 <maerwald> I usually don't put 200mb string literals in my code
2020-09-29 19:21:59 +0200 <monochrom> And what geekosaur said.
2020-09-29 19:22:09 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl)
2020-09-29 19:22:14 +0200 <geekosaur> and in any case there are multiple ways that ByteStrings fragment and possibly leak memory, as I understand it, and this helps only one of them
2020-09-29 19:22:18 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-09-29 19:22:50 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-09-29 19:23:01 +0200 <maerwald> the streamly maintainer wants to completely replace it with a Stream of Word8
2020-09-29 19:23:01 +0200raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-09-29 19:23:25 +0200 <maerwald> maybe that solves all our problems
2020-09-29 19:26:08 +0200 <aldum> is OverloadedStrings default now, or am I misunderstanding you?
2020-09-29 19:26:11 +0200yoneda(~mike@193.206.102.122) (Quit: leaving)
2020-09-29 19:26:38 +0200 <geekosaur> no, it's not the default
2020-09-29 19:26:39 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 19:27:07 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 19:27:23 +0200 <geekosaur> but OverloadedStrings means you have a string literal somewhere that in this case gets converted to a ByteString, which means the string ow exists twice unless there's some trickery to share the representation
2020-09-29 19:27:34 +0200 <geekosaur> this is said trickery
2020-09-29 19:28:20 +0200 <geekosaur> (it can't be a normal FroeignPr like with most ByteStrings because it would then be freeable, but it's not in the heap because it was compiled in)
2020-09-29 19:29:01 +0200puffnfresh_(~puffnfres@45.76.124.5) (Ping timeout: 264 seconds)
2020-09-29 19:30:40 +0200elcaro(~anonymous@45.32.191.75) (Ping timeout: 260 seconds)
2020-09-29 19:30:40 +0200BIG_JIMMY_D(~jim@108.61.185.76) (Ping timeout: 272 seconds)
2020-09-29 19:31:01 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-29 19:34:21 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 258 seconds)
2020-09-29 19:34:59 +0200alp(~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c) (Ping timeout: 272 seconds)
2020-09-29 19:35:06 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-09-29 19:36:44 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 19:36:45 +0200zabracks(sid322453@gateway/web/irccloud.com/x-biellhbdwvaqjeyr) (Ping timeout: 240 seconds)
2020-09-29 19:36:47 +0200systemfault(sid267009@gateway/web/irccloud.com/x-sfyoklqzvaqfavha) (Ping timeout: 240 seconds)
2020-09-29 19:36:47 +0200lexi-lambda(sid92601@gateway/web/irccloud.com/x-gzrfkljqohobksef) (Ping timeout: 240 seconds)
2020-09-29 19:36:47 +0200idnar(sid12240@gateway/web/irccloud.com/x-ksrpwtdqweqhqhsk) (Ping timeout: 240 seconds)
2020-09-29 19:36:47 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-gtjwwpwdhrqekihq) (Ping timeout: 240 seconds)
2020-09-29 19:36:58 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-dmmzhntvaxdtjaeg) (Ping timeout: 256 seconds)
2020-09-29 19:36:59 +0200rann(sid175221@gateway/web/irccloud.com/x-qththkjntwgnhebq) (Ping timeout: 240 seconds)
2020-09-29 19:37:05 +0200moobar(sid171730@gateway/web/irccloud.com/x-gndqbhnlgmetppkc) (Ping timeout: 246 seconds)
2020-09-29 19:37:07 +0200yogani(sid42623@gateway/web/irccloud.com/x-nguvyfsvhgyshvjf) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-zoyefvrqhzvagror) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200xyggos(uid216035@gateway/web/irccloud.com/x-hospzqdbwodsdydc) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200cstrahan(sid36118@gateway/web/irccloud.com/x-qpyatyyfmsjoedfl) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200ebutleriv(sid217783@gateway/web/irccloud.com/x-xojalosetjeggitu) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200ProofTechnique(sid79547@gateway/web/irccloud.com/x-tponbxdqtfpxmwel) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200chessai(sid225296@gateway/web/irccloud.com/x-zzehzebrnlswozjp) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200FMJz____(sid279245@gateway/web/irccloud.com/x-xxlxmdepyepdjiiz) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200albethere(sid457088@gateway/web/irccloud.com/x-egacnjjdaxtejyln) (Ping timeout: 260 seconds)
2020-09-29 19:37:07 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-ayrowhifopnqemcf) (Ping timeout: 260 seconds)
2020-09-29 19:37:08 +0200natim87(sid286962@gateway/web/irccloud.com/x-owkkkawkmfdtpxis) (Ping timeout: 260 seconds)
2020-09-29 19:37:08 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 19:37:08 +0200simony(sid226116@gateway/web/irccloud.com/x-vcsdewznrdwwgnis) (Ping timeout: 260 seconds)
2020-09-29 19:37:08 +0200cbarrett(sid192934@adium/cbarrett) (Ping timeout: 260 seconds)
2020-09-29 19:37:10 +0200scav(sid309693@gateway/web/irccloud.com/x-sroyhqfgixitzetl) (Ping timeout: 246 seconds)
2020-09-29 19:37:12 +0200wpcarro(sid397589@gateway/web/irccloud.com/x-tmnsiiwhaheypbna) (Ping timeout: 260 seconds)
2020-09-29 19:37:12 +0200gregberns_(sid315709@gateway/web/irccloud.com/x-pxdaqtbgiynqrhqa) (Ping timeout: 260 seconds)
2020-09-29 19:37:12 +0200mpickering(sid78412@gateway/web/irccloud.com/x-tenczaeanycawpas) (Ping timeout: 260 seconds)
2020-09-29 19:37:12 +0200darthThorik(sid39589@gateway/web/irccloud.com/x-eimsyucdiebkhuma) (Ping timeout: 260 seconds)
2020-09-29 19:37:12 +0200davetapley(sid666@gateway/web/irccloud.com/x-issjvdpiznczxsoo) (Ping timeout: 260 seconds)
2020-09-29 19:37:12 +0200fiadliel(sid399568@gateway/web/irccloud.com/x-ootswxobilgmieqa) (Ping timeout: 260 seconds)
2020-09-29 19:37:12 +0200^[_(sid43445@gateway/web/irccloud.com/x-tppirwslmjxiosbo) (Ping timeout: 260 seconds)
2020-09-29 19:37:22 +0200elcaro(~anonymous@45.32.191.75)
2020-09-29 19:37:25 +0200pepeiborra(sid443799@gateway/web/irccloud.com/x-mukumnrtxgwgxvcg) (Ping timeout: 240 seconds)
2020-09-29 19:37:25 +0200banjiewen(sid115913@gateway/web/irccloud.com/x-cfyiyxhggjpdnbsm) (Ping timeout: 244 seconds)
2020-09-29 19:37:27 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-wauonuwppwmwhziv) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200NemesisD(sid24071@gateway/web/irccloud.com/x-hbgzpmcbhsxfreot) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200dgpratt(sid193493@gateway/web/irccloud.com/x-jfcngfvjfuasdztv) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200chpatrick(sid239395@gateway/web/irccloud.com/x-hgwhhvpaceqfpsfd) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200jlpeters(sid25606@gateway/web/irccloud.com/x-twwkkqhyyggfdivq) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200feepo(sid28508@gateway/web/irccloud.com/x-yvdfjmicbugqxtqj) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200kip(sid71464@gateway/web/irccloud.com/x-rmonmsxkcjhjcgqe) (Ping timeout: 260 seconds)
2020-09-29 19:37:27 +0200lally(sid388228@gateway/web/irccloud.com/x-lwhbjdguutvknmcz) (Ping timeout: 240 seconds)
2020-09-29 19:37:31 +0200nick_h(sid319833@gateway/web/irccloud.com/x-wfhraakyeevpkesp) (Ping timeout: 272 seconds)
2020-09-29 19:37:31 +0200hamishmack(sid389057@gateway/web/irccloud.com/x-sbssjiiibjkdervd) (Ping timeout: 246 seconds)
2020-09-29 19:37:38 +0200grfn(sid449115@gateway/web/irccloud.com/x-rvpditypzabzksng) (Ping timeout: 272 seconds)
2020-09-29 19:37:38 +0200gaze__(sid387101@gateway/web/irccloud.com/x-dnjlouysixtlqjqi) (Ping timeout: 272 seconds)
2020-09-29 19:37:38 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-tffvixiwtutlgztn) (Ping timeout: 272 seconds)
2020-09-29 19:37:40 +0200wildsebastian(sid324688@gateway/web/irccloud.com/x-noxobrzcxmeunedz) (Ping timeout: 260 seconds)
2020-09-29 19:37:40 +0200dmj`(sid72307@gateway/web/irccloud.com/x-yskysacdwencbpve) (Ping timeout: 260 seconds)
2020-09-29 19:37:40 +0200johs(sid246410@gateway/web/irccloud.com/x-rkhjgvgwqomlfxih) (Ping timeout: 260 seconds)
2020-09-29 19:37:42 +0200fweht(uid404746@gateway/web/irccloud.com/x-otdjghlxzvvxjpbo) (Ping timeout: 260 seconds)
2020-09-29 19:37:42 +0200alexknvl(sid259568@gateway/web/irccloud.com/x-kbonmpmnmqrrezib) (Ping timeout: 260 seconds)
2020-09-29 19:37:42 +0200Cir0X(sid221743@gateway/web/irccloud.com/x-obthuqhxhrpgtptx) (Ping timeout: 260 seconds)
2020-09-29 19:37:42 +0200SrPx(sid108780@gateway/web/irccloud.com/x-ewgpqpdkoawdjsvm) (Ping timeout: 260 seconds)
2020-09-29 19:37:43 +0200liquorice(sid267884@gateway/web/irccloud.com/x-ubxyjvrpmxhwnqkq) (Ping timeout: 260 seconds)
2020-09-29 19:37:43 +0200carter(sid14827@gateway/web/irccloud.com/x-iroznbxhtklfnfzx) (Ping timeout: 260 seconds)
2020-09-29 19:37:43 +0200rdivyanshu(sid322626@gateway/web/irccloud.com/x-rlikewfaiqjbobsd) (Ping timeout: 260 seconds)
2020-09-29 19:37:43 +0200tiru(tiru@gateway/web/irccloud.com/x-fdoctjaahakycgjg) (Ping timeout: 260 seconds)
2020-09-29 19:37:46 +0200angerman(sid209936@gateway/web/irccloud.com/x-fjowxznciagzmqyd) (Ping timeout: 256 seconds)
2020-09-29 19:37:46 +0200lightandlight(sid135476@gateway/web/irccloud.com/x-nimetgbujjzfnoxs) (Ping timeout: 256 seconds)
2020-09-29 19:37:46 +0200benwr__(sid372383@gateway/web/irccloud.com/x-ympydwgppzchpmbc) (Ping timeout: 256 seconds)
2020-09-29 19:37:47 +0200cvlad-(sid203065@gateway/web/irccloud.com/x-mpioidbgyaapnjay) (Ping timeout: 240 seconds)
2020-09-29 19:37:47 +0200cemerick(sid54985@gateway/web/irccloud.com/x-vhzrinxizastpatl) (Ping timeout: 240 seconds)
2020-09-29 19:37:47 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-syslkpiebyqhjoto) (Ping timeout: 246 seconds)
2020-09-29 19:37:47 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-uvkionscqpuxysza) (Ping timeout: 246 seconds)
2020-09-29 19:37:52 +0200jbetz(sid283648@gateway/web/irccloud.com/x-cdgqzqayyopikxgp) (Ping timeout: 246 seconds)
2020-09-29 19:37:55 +0200pasukon(sid49097@gateway/web/irccloud.com/x-bhzijvvicaqszpwp) (Ping timeout: 240 seconds)
2020-09-29 19:37:56 +0200spew(uid195861@gateway/web/irccloud.com/x-smxsszajtmpzphkc) (Ping timeout: 244 seconds)
2020-09-29 19:37:58 +0200 <geekosaur> hm, actually I wonder how much of that I have correct, since I thought string literals were encoded with a variant of UTF8 which would then require decoding to recover the "original" ByteString
2020-09-29 19:38:02 +0200JSharp(sid4580@wikia/JSharp) (Ping timeout: 260 seconds)
2020-09-29 19:38:02 +0200sclv(sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds)
2020-09-29 19:38:02 +0200teehemkay(sid14792@gateway/web/irccloud.com/x-aqijularyrnvcadd) (Ping timeout: 260 seconds)
2020-09-29 19:38:05 +0200liszt(sid336875@gateway/web/irccloud.com/x-uteuxgmqmrjwpffv) (Ping timeout: 240 seconds)
2020-09-29 19:38:05 +0200bgavran(sid393312@gateway/web/irccloud.com/x-rpbuvoicjcozhpoz) (Ping timeout: 240 seconds)
2020-09-29 19:38:07 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-frlnuobcpesgtznh) (Ping timeout: 240 seconds)
2020-09-29 19:38:07 +0200aristid(sid1599@gateway/web/irccloud.com/x-tmxjacnukwymwzmb) (Ping timeout: 240 seconds)
2020-09-29 19:38:07 +0200drupol(sid117588@gateway/web/irccloud.com/x-fskigpwmolejzutt) (Ping timeout: 240 seconds)
2020-09-29 19:38:08 +0200ibloom(sid350277@gateway/web/irccloud.com/x-cacfkhbbqxamkhgb) (Ping timeout: 260 seconds)
2020-09-29 19:38:08 +0200ReinH__(sid179972@gateway/web/irccloud.com/x-frnhqpvakkbttusm) (Ping timeout: 260 seconds)
2020-09-29 19:38:08 +0200edwardk(sid47016@haskell/developer/edwardk) (Ping timeout: 246 seconds)
2020-09-29 19:38:09 +0200adamse(sid72084@gateway/web/irccloud.com/x-acsiiwpllajbbwmz) (Ping timeout: 272 seconds)
2020-09-29 19:38:09 +0200ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-fawmkuicgdpfjppp) (Ping timeout: 272 seconds)
2020-09-29 19:38:09 +0200sgraf(sid326656@gateway/web/irccloud.com/x-bqdvppnreegksoze) (Ping timeout: 272 seconds)
2020-09-29 19:38:09 +0200iphy(sid67735@gateway/web/irccloud.com/x-kldcelvhnttznwir) (Ping timeout: 272 seconds)
2020-09-29 19:38:09 +0200Nascha(sid212230@gateway/web/irccloud.com/x-veqfssgsdgrwspqx) (Ping timeout: 272 seconds)
2020-09-29 19:38:11 +0200dsturnbull(sid347899@gateway/web/irccloud.com/x-yqnrvyjyssesilet) (Ping timeout: 258 seconds)
2020-09-29 19:38:11 +0200Adeon(sid418992@gateway/web/irccloud.com/x-cvwbjodfepluylyi) (Ping timeout: 258 seconds)
2020-09-29 19:38:11 +0200jetpack_joe(sid146137@gateway/web/irccloud.com/x-zepsxlqcwpmeoiye) (Ping timeout: 258 seconds)
2020-09-29 19:38:13 +0200buggymcbugfix(sid432603@gateway/web/irccloud.com/x-segxurmailgbipxk) (Ping timeout: 246 seconds)
2020-09-29 19:38:16 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-uruhlkshnartaizk) (Ping timeout: 272 seconds)
2020-09-29 19:38:16 +0200elvishjerricco(sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 272 seconds)
2020-09-29 19:38:17 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-miajzzxztjikfpri) (Ping timeout: 260 seconds)
2020-09-29 19:38:17 +0200eruditass(uid248673@gateway/web/irccloud.com/x-zlcczwkclodwpxuw) (Ping timeout: 260 seconds)
2020-09-29 19:38:17 +0200Tritlo(sid58727@gateway/web/irccloud.com/x-wvdtimilnbylevtp) (Ping timeout: 260 seconds)
2020-09-29 19:38:17 +0200PoliticsII____(sid193551@gateway/web/irccloud.com/x-mjvkfuacygrjfvtp) (Ping timeout: 260 seconds)
2020-09-29 19:38:17 +0200integral(sid296274@p3m/member/integral) (Ping timeout: 260 seconds)
2020-09-29 19:38:17 +0200edmundnoble(sid229620@gateway/web/irccloud.com/x-aamqtvpjhykeshcn) (Ping timeout: 260 seconds)
2020-09-29 19:38:18 +0200newhoggy(sid198874@gateway/web/irccloud.com/x-kjtefuttsgcyxcav) (Ping timeout: 260 seconds)
2020-09-29 19:38:18 +0200alunduil(alunduil@gateway/web/irccloud.com/x-vymgafgkgglqgroh) (Ping timeout: 260 seconds)
2020-09-29 19:38:18 +0200billstclair(sid77830@gateway/web/irccloud.com/x-hfktjwoadztbgrwu) (Ping timeout: 260 seconds)
2020-09-29 19:38:20 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-uvpnoawijpdmmxja) (Ping timeout: 256 seconds)
2020-09-29 19:38:20 +0200Shun131(sid377723@gateway/web/irccloud.com/x-xzwejgdnirknkdyy) (Ping timeout: 256 seconds)
2020-09-29 19:38:25 +0200AndreasK(sid320732@gateway/web/irccloud.com/x-vczvdqfgysdsqvxe) (Ping timeout: 240 seconds)
2020-09-29 19:38:27 +0200caasih(sid13241@gateway/web/irccloud.com/x-qqxnxucjsbybstdv) (Ping timeout: 244 seconds)
2020-09-29 19:38:27 +0200jared-w(uid405292@gateway/web/irccloud.com/x-buqniywashydfoae) (Ping timeout: 240 seconds)
2020-09-29 19:38:34 +0200nh2(sid309956@gateway/web/irccloud.com/x-ustskhglogudnzlb) (Ping timeout: 258 seconds)
2020-09-29 19:38:34 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-hhonmrvgqckxkhob) (Ping timeout: 246 seconds)
2020-09-29 19:38:34 +0200totbwf(sid402332@gateway/web/irccloud.com/x-eulltanhbubrhuoe) (Ping timeout: 246 seconds)
2020-09-29 19:38:35 +0200mudri(sid317655@gateway/web/irccloud.com/x-aglqfensdztorpxf) (Ping timeout: 240 seconds)
2020-09-29 19:38:36 +0200adius(sid321344@gateway/web/irccloud.com/x-cdslkdkulmqfrsas) (Ping timeout: 260 seconds)
2020-09-29 19:38:36 +0200enemeth79(sid309041@gateway/web/irccloud.com/x-ztkkujlriirbyczm) (Ping timeout: 260 seconds)
2020-09-29 19:38:36 +0200puffnfresh_(~puffnfres@45.76.124.5)
2020-09-29 19:38:37 +0200bjs(sid190364@gateway/web/irccloud.com/x-sffmijuqwritxret) (Ping timeout: 260 seconds)
2020-09-29 19:38:45 +0200alanz(sid110616@gateway/web/irccloud.com/x-oljjdoyrlaarrctj) (Ping timeout: 240 seconds)
2020-09-29 19:38:45 +0200eacameron(sid256985@gateway/web/irccloud.com/x-hqavlegecgsakqev) (Ping timeout: 240 seconds)
2020-09-29 19:38:47 +0200d0liver(sid363046@gateway/web/irccloud.com/x-fqaugfmivohbxqbc) (Ping timeout: 272 seconds)
2020-09-29 19:38:47 +0200heyj(sid171370@gateway/web/irccloud.com/x-gxveayvtjepkleli) (Ping timeout: 272 seconds)
2020-09-29 19:38:47 +0200PatrickRobotham_(sid18270@gateway/web/irccloud.com/x-vnvdpghrecuvxqhe) (Ping timeout: 272 seconds)
2020-09-29 19:38:47 +0200runeks(sid21167@gateway/web/irccloud.com/x-dikezscovkucfwrf) (Ping timeout: 240 seconds)
2020-09-29 19:38:47 +0200mankyKitty(sid31287@gateway/web/irccloud.com/x-stbsqcajexfluxuf) (Ping timeout: 272 seconds)
2020-09-29 19:38:47 +0200bitonic(sid61915@gateway/web/irccloud.com/x-jpfawwdoltfxqtdr) (Ping timeout: 240 seconds)
2020-09-29 19:38:47 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-tocpehdjhiusuwgk) (Ping timeout: 272 seconds)
2020-09-29 19:38:47 +0200thi(sid97277@gateway/web/irccloud.com/x-skwjfzenuehplhxv) (Ping timeout: 272 seconds)
2020-09-29 19:38:52 +0200howdoi(uid224@gateway/web/irccloud.com/x-mlzhxxxzmqvsdejo) (Ping timeout: 260 seconds)
2020-09-29 19:38:53 +0200entel(uid256215@botters/entel) (Ping timeout: 260 seconds)
2020-09-29 19:38:53 +0200sethetter__(sid17895@gateway/web/irccloud.com/x-gjrsztjbkfnqxzcl) (Ping timeout: 260 seconds)
2020-09-29 19:38:53 +0200Boarders(sid425905@gateway/web/irccloud.com/x-bknwefewrylbhwhw) (Ping timeout: 260 seconds)
2020-09-29 19:38:53 +0200rizary(sid220347@gateway/web/irccloud.com/x-fasoxblpleyerysc) (Ping timeout: 260 seconds)
2020-09-29 19:38:53 +0200bradparker(sid262931@gateway/web/irccloud.com/x-mofanjllsexcdrco) (Ping timeout: 260 seconds)
2020-09-29 19:38:54 +0200parseval(sid239098@gateway/web/irccloud.com/x-uwazpjswabidvbms) (Ping timeout: 256 seconds)
2020-09-29 19:38:54 +0200metadave(sid28102@gateway/web/irccloud.com/x-cdlxasoxplxxhgfg) (Ping timeout: 272 seconds)
2020-09-29 19:38:54 +0200higherorder(sid185221@gateway/web/irccloud.com/x-bibdsgmjkwhtnxuc) (Ping timeout: 272 seconds)
2020-09-29 19:38:54 +0200dsal(sid13060@gateway/web/irccloud.com/x-jivacdsumvanwzlw) (Ping timeout: 272 seconds)
2020-09-29 19:38:57 +0200ullbeking(sid5364@gateway/web/irccloud.com/x-fktbgzptuxsmswdm) (Ping timeout: 258 seconds)
2020-09-29 19:38:59 +0200jonrh(sid5185@gateway/web/irccloud.com/x-kmnnkmgjpjlhftsl) (Ping timeout: 240 seconds)
2020-09-29 19:39:03 +0200nlofaro(sid258233@gateway/web/irccloud.com/x-czuznqcijtcgyazu) (Ping timeout: 260 seconds)
2020-09-29 19:39:03 +0200gluegadget(sid22336@gateway/web/irccloud.com/x-zdtzjryntvxgdzkx) (Ping timeout: 260 seconds)
2020-09-29 19:39:25 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-jerhumioweuciiqb) (Ping timeout: 272 seconds)
2020-09-29 19:39:25 +0200benl23(sid284234@gateway/web/irccloud.com/x-vofwvposnuzciuxt) (Ping timeout: 272 seconds)
2020-09-29 19:39:25 +0200drbrule(sid395654@gateway/web/irccloud.com/x-wymmvrsbnkdeuwas) (Ping timeout: 272 seconds)
2020-09-29 19:39:25 +0200pent(sid313808@gateway/web/irccloud.com/x-jidkyfivzjscwhcc) (Ping timeout: 272 seconds)
2020-09-29 19:39:25 +0200amatecha__(sid10006@gateway/web/irccloud.com/x-rbrqcxiojnxeeyta) (Ping timeout: 272 seconds)
2020-09-29 19:39:28 +0200hackageacc 0.1.0.2 - Sequence optimized for monoidal construction and folding https://hackage.haskell.org/package/acc-0.1.0.2 (NikitaVolkov)
2020-09-29 19:39:32 +0200tnks(sid412124@gateway/web/irccloud.com/x-qmlnvujgxrzdkpep) (Ping timeout: 272 seconds)
2020-09-29 19:39:35 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-09-29 19:39:56 +0200 <geekosaur> in other news, there's some odd attrition going on here
2020-09-29 19:40:40 +0200Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 246 seconds)
2020-09-29 19:40:54 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 19:42:11 +0200BIG_JIMMY_D(~jim@108.61.185.76)
2020-09-29 19:42:38 +0200Suigetsu(~kakashi@223.226.34.93)
2020-09-29 19:42:50 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-09-29 19:43:49 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-29 19:44:07 +0200st8less(~st8less@2603:a060:11fe:0:b186:dda4:132a:2a8a) (Ping timeout: 240 seconds)
2020-09-29 19:44:51 +0200LKoen(~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr)
2020-09-29 19:45:52 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-09-29 19:46:12 +0200st8less(~st8less@inet-167-224-197-181.isp.ozarksgo.net)
2020-09-29 19:46:20 +0200 <Turmfalke> That's what the IRCCloud version of a netsplit looks like
2020-09-29 19:47:03 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 19:47:07 +0200p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2020-09-29 19:47:08 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 19:47:16 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-09-29 19:47:21 +0200 <geekosaur> cute
2020-09-29 19:47:48 +0200zabracks(sid322453@gateway/web/irccloud.com/x-quucjgaiznbgmxnq)
2020-09-29 19:47:48 +0200d0liver(sid363046@gateway/web/irccloud.com/x-qfnvcyeeietbneso)
2020-09-29 19:47:50 +0200runeks(sid21167@gateway/web/irccloud.com/x-fmnyekuxeoeaxuso)
2020-09-29 19:47:52 +0200iphy(sid67735@gateway/web/irccloud.com/x-qiqhfnskjyrqjolo)
2020-09-29 19:47:53 +0200eacameron(sid256985@gateway/web/irccloud.com/x-gpifboixmoeemfmh)
2020-09-29 19:47:54 +0200dgpratt(sid193493@gateway/web/irccloud.com/x-scubtbcgbtduxhny)
2020-09-29 19:47:55 +0200Cir0X(sid221743@gateway/web/irccloud.com/x-pbplgsntntnfncyd)
2020-09-29 19:48:01 +0200rizary(sid220347@gateway/web/irccloud.com/x-yircivgrzzuogmcd)
2020-09-29 19:48:03 +0200stylewarning(stylewarni@gateway/web/irccloud.com/x-ldvspppvftwdoorj)
2020-09-29 19:48:03 +0200bjs(sid190364@gateway/web/irccloud.com/x-avegidalgukhrltc)
2020-09-29 19:48:04 +0200darthThorik(sid39589@gateway/web/irccloud.com/x-bheqtddrvymsaipm)
2020-09-29 19:48:05 +0200ReinH__(sid179972@gateway/web/irccloud.com/x-iqviielvspfzhzdh)
2020-09-29 19:48:05 +0200bitonic(sid61915@gateway/web/irccloud.com/x-ttnjiqhzlxpwrect)
2020-09-29 19:48:09 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2020-09-29 19:48:11 +0200buggymcbugfix(sid432603@gateway/web/irccloud.com/x-hztztfmfplqpnzth)
2020-09-29 19:48:12 +0200xyggos(uid216035@gateway/web/irccloud.com/x-gnstndpjgaocojtu)
2020-09-29 19:48:14 +0200mpickering(sid78412@gateway/web/irccloud.com/x-qlfoyixpkacsyapm)
2020-09-29 19:48:14 +0200idnar(sid12240@gateway/web/irccloud.com/x-lgbnafawhmfrrtxy)
2020-09-29 19:48:21 +0200liquorice(sid267884@gateway/web/irccloud.com/x-doobozzftsutluns)
2020-09-29 19:48:25 +0200edwardk(sid47016@haskell/developer/edwardk)
2020-09-29 19:48:29 +0200systemfault(sid267009@gateway/web/irccloud.com/x-wamvuwnhvmmhuwor)
2020-09-29 19:48:29 +0200ibloom(sid350277@gateway/web/irccloud.com/x-otqdduodmhxboldg)
2020-09-29 19:48:29 +0200alanz(sid110616@gateway/web/irccloud.com/x-nlebobwfaogucyez)
2020-09-29 19:48:34 +0200thi(sid97277@gateway/web/irccloud.com/x-hnhbkpyrjaxopzwq)
2020-09-29 19:48:38 +0200alexknvl(sid259568@gateway/web/irccloud.com/x-iuotkcbnxquozzxj)
2020-09-29 19:48:40 +0200jonrh(sid5185@gateway/web/irccloud.com/x-rdqetwxjttlljyjv)
2020-09-29 19:48:47 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a) (Ping timeout: 260 seconds)
2020-09-29 19:48:55 +0200fweht(uid404746@gateway/web/irccloud.com/x-rnrthvwccypgvabv)
2020-09-29 19:48:55 +0200drbrule(sid395654@gateway/web/irccloud.com/x-kdjmwhavsxqjkxzh)
2020-09-29 19:48:55 +0200SrPx(sid108780@gateway/web/irccloud.com/x-setrbpmzwvmplhxx)
2020-09-29 19:48:56 +0200cemerick(sid54985@gateway/web/irccloud.com/x-cavipfrpgeccrwhx)
2020-09-29 19:48:57 +0200gregberns_(sid315709@gateway/web/irccloud.com/x-rlsbvnyekhpgzioc)
2020-09-29 19:49:03 +0200sclv(sid39734@haskell/developer/sclv)
2020-09-29 19:49:05 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-tjiavkhmuuynmiyn)
2020-09-29 19:49:07 +0200newhoggy(sid198874@gateway/web/irccloud.com/x-xognmkhlwjudtvku)
2020-09-29 19:49:08 +0200higherorder(sid185221@gateway/web/irccloud.com/x-wazqaevutzmkbpnh)
2020-09-29 19:49:12 +0200gaze__(sid387101@gateway/web/irccloud.com/x-rudberqzemjkvxug)
2020-09-29 19:49:12 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-aktdkimmtnwjggmi)
2020-09-29 19:49:12 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-rxoskppdgceviaxb)
2020-09-29 19:49:14 +0200nh2(sid309956@gateway/web/irccloud.com/x-iisiycrpvvmdqvri)
2020-09-29 19:49:17 +0200gluegadget(sid22336@gateway/web/irccloud.com/x-lopxigkfhkxxekjc)
2020-09-29 19:49:22 +0200grfn(sid449115@gateway/web/irccloud.com/x-ydoemzyjkpbwqwwh)
2020-09-29 19:49:22 +0200simony(sid226116@gateway/web/irccloud.com/x-fjezusljhbyijwij)
2020-09-29 19:49:22 +0200Boarders(sid425905@gateway/web/irccloud.com/x-mwhqjtpnvbxsnunk)
2020-09-29 19:49:24 +0200spew(uid195861@gateway/web/irccloud.com/x-pyehxyldfhezcjcx)
2020-09-29 19:49:24 +0200aristid(sid1599@gateway/web/irccloud.com/x-upybhzrqzplurklw)
2020-09-29 19:49:27 +0200dsal(sid13060@gateway/web/irccloud.com/x-ggesknpxulujswrk)
2020-09-29 19:49:30 +0200enemeth79(sid309041@gateway/web/irccloud.com/x-cpgsitkowcnhohsm)
2020-09-29 19:49:38 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-qlcwmrqworrqgvap)
2020-09-29 19:49:39 +0200yogani(sid42623@gateway/web/irccloud.com/x-yikdyiyitctvugtr)
2020-09-29 19:49:46 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-aoqdwycfabqpemvo)
2020-09-29 19:49:47 +0200Nascha(sid212230@gateway/web/irccloud.com/x-jkdnlkimcaknykgu)
2020-09-29 19:49:48 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-siffhywpxdihuiyy)
2020-09-29 19:49:49 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-spscyafmbmiqsgji)
2020-09-29 19:49:51 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-hqmucughwqwxderw)
2020-09-29 19:50:04 +0200mankyKitty(sid31287@gateway/web/irccloud.com/x-rnrltkoeycimcfms)
2020-09-29 19:50:04 +0200albethere(sid457088@gateway/web/irccloud.com/x-hxohvxvcjqpojjdv)
2020-09-29 19:50:07 +0200AndreasK(sid320732@gateway/web/irccloud.com/x-swfhbbclpahktdbs)
2020-09-29 19:50:07 +0200entel(uid256215@botters/entel)
2020-09-29 19:50:09 +0200billstclair(sid77830@gateway/web/irccloud.com/x-nmvjsnbrwyhkhvex)
2020-09-29 19:50:17 +0200dsturnbull(sid347899@gateway/web/irccloud.com/x-inyrzexxuloskcia)
2020-09-29 19:50:17 +0200carter(sid14827@gateway/web/irccloud.com/x-oplagrzaomanclrc)
2020-09-29 19:50:19 +0200Adeon(sid418992@gateway/web/irccloud.com/x-rzelteelnhmuqmnc)
2020-09-29 19:50:22 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-yicffuughjxytvpv)
2020-09-29 19:50:24 +0200drupol(sid117588@gateway/web/irccloud.com/x-awnbfxqpznoqpkyo)
2020-09-29 19:50:24 +0200FMJz____(sid279245@gateway/web/irccloud.com/x-ltdrvaqbqwgrgkpe)
2020-09-29 19:50:25 +0200rann(sid175221@gateway/web/irccloud.com/x-skhgikkvbkdanbtl)
2020-09-29 19:50:35 +0200^[_(sid43445@gateway/web/irccloud.com/x-fxdjmwbbnqygzcyt)
2020-09-29 19:50:36 +0200liszt(sid336875@gateway/web/irccloud.com/x-jndphrjraiimjfeg)
2020-09-29 19:50:36 +0200JSharp(sid4580@wikia/JSharp)
2020-09-29 19:50:41 +0200TooDifficult(~TooDiffic@139.59.59.230)
2020-09-29 19:50:53 +0200Shun131(sid377723@gateway/web/irccloud.com/x-czgeyqhvuxkikuaz)
2020-09-29 19:51:23 +0200hololeap(~hololeap@unaffiliated/hololeap)
2020-09-29 19:52:05 +0200Dashboard(~hyig@179.54.112.192)
2020-09-29 19:52:40 +0200systemhalted(~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net)
2020-09-29 19:53:39 +0200 <Dashboard> !help
2020-09-29 19:53:40 +0200Saten-san(~Saten-san@ip-213-49-123-190.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-09-29 19:53:54 +0200 <yushyin> hello Dashboard
2020-09-29 19:53:59 +0200 <Dashboard> hi
2020-09-29 19:54:10 +0200jared-w(uid405292@gateway/web/irccloud.com/x-rpqfkttwgpododuy)
2020-09-29 19:54:23 +0200banjiewen(sid115913@gateway/web/irccloud.com/x-xhvpjulpxhwqhcqy)
2020-09-29 19:54:29 +0200moobar(sid171730@gateway/web/irccloud.com/x-tjgzicifcocmdkpp)
2020-09-29 19:54:30 +0200natim87(sid286962@gateway/web/irccloud.com/x-uvpnvingawevahjl)
2020-09-29 19:54:30 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-hgqilzghfblwpocf)
2020-09-29 19:54:30 +0200fiadliel(sid399568@gateway/web/irccloud.com/x-ktjqphtdpabuzhix)
2020-09-29 19:54:38 +0200johs(sid246410@gateway/web/irccloud.com/x-fxzggmlrvgjkxynk)
2020-09-29 19:54:43 +0200cvlad-(sid203065@gateway/web/irccloud.com/x-dpssemqomdmrjjbm)
2020-09-29 19:54:46 +0200ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-sfijhwdwxlmemapi)
2020-09-29 19:54:46 +0200pepeiborra(sid443799@gateway/web/irccloud.com/x-zjvxjrszspxcqhac)
2020-09-29 19:54:47 +0200cbarrett(sid192934@adium/cbarrett)
2020-09-29 19:54:48 +0200jbetz(sid283648@gateway/web/irccloud.com/x-jpndowfutuxwtlac)
2020-09-29 19:54:48 +0200metadave(sid28102@gateway/web/irccloud.com/x-kvbjexppaeoxogva)
2020-09-29 19:54:48 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-qpsgoegqtleeqjei)
2020-09-29 19:54:50 +0200NemesisD(sid24071@gateway/web/irccloud.com/x-tvpdgcumyqbfkxuv)
2020-09-29 19:54:51 +0200benwr__(sid372383@gateway/web/irccloud.com/x-gisfqzblfklvpltj)
2020-09-29 19:54:51 +0200teehemkay(sid14792@gateway/web/irccloud.com/x-enbnrxzqqcvacsyt)
2020-09-29 19:54:53 +0200wpcarro(sid397589@gateway/web/irccloud.com/x-dhrgdbgzbcfpxeys)
2020-09-29 19:54:59 +0200chessai(sid225296@gateway/web/irccloud.com/x-iuoxqvqcfhadrlqz)
2020-09-29 19:55:12 +0200PotatoGim(sid99505@gateway/web/irccloud.com/x-hpkxvtmaddacpkcm)
2020-09-29 19:55:14 +0200 <Dashboard> !id
2020-09-29 19:55:14 +0200amosbird(~amosbird@65.52.179.247) (Quit: ZNC 1.7.5 - https://znc.in)
2020-09-29 19:55:37 +0200eruditass(uid248673@gateway/web/irccloud.com/x-xlxyyorlrbylocpr)
2020-09-29 19:55:41 +0200chaosmasttter(~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de)
2020-09-29 19:55:45 +0200Dashboard(~hyig@179.54.112.192) ()
2020-09-29 19:56:23 +0200angerman(sid209936@gateway/web/irccloud.com/x-sxwsoxjbjhhdcytm)
2020-09-29 19:56:36 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 19:57:07 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 19:57:26 +0200dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-09-29 19:57:36 +0200rdivyanshu(sid322626@gateway/web/irccloud.com/x-uzofhbgtemdbbxba)
2020-09-29 19:57:44 +0200chpatrick(sid239395@gateway/web/irccloud.com/x-glesujyjgaborgwe)
2020-09-29 19:58:01 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds)
2020-09-29 19:58:30 +0200caasih(sid13241@gateway/web/irccloud.com/x-witsgvtavsidjabf)
2020-09-29 19:58:31 +0200adamse(sid72084@gateway/web/irccloud.com/x-ngwbhkuzhtraadxk)
2020-09-29 19:58:33 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-uvcgkpyqvrycitrg)
2020-09-29 19:58:35 +0200edmundnoble(sid229620@gateway/web/irccloud.com/x-oyzfxczakjbvmtnw)
2020-09-29 19:58:37 +0200systemhalted(~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection)
2020-09-29 19:58:53 +0200feepo(sid28508@gateway/web/irccloud.com/x-nwgrhdtytnogkuwe)
2020-09-29 19:58:53 +0200alunduil(alunduil@gateway/web/irccloud.com/x-tbwasyjgdwlvrowc)
2020-09-29 19:59:01 +0200tiru(tiru@gateway/web/irccloud.com/x-fjglewsekyfbnkaz)
2020-09-29 19:59:02 +0200parseval(sid239098@gateway/web/irccloud.com/x-xpafjsslpgmpnfxd)
2020-09-29 19:59:03 +0200integral(sid296274@p3m/member/integral)
2020-09-29 19:59:05 +0200ProofTechnique(sid79547@gateway/web/irccloud.com/x-oymjiupjrtcxewbp)
2020-09-29 19:59:13 +0200bgavran(sid393312@gateway/web/irccloud.com/x-lpoihxszwcoufyws)
2020-09-29 19:59:16 +0200pasukon(sid49097@gateway/web/irccloud.com/x-giisizmxehyuzjuk)
2020-09-29 19:59:16 +0200tnks(sid412124@gateway/web/irccloud.com/x-efpfhxrycxbcbhjo)
2020-09-29 19:59:19 +0200sethetter__(sid17895@gateway/web/irccloud.com/x-wdliizmlfolakmwm)
2020-09-29 19:59:21 +0200adius(sid321344@gateway/web/irccloud.com/x-quuxqbuikynbakrx)
2020-09-29 19:59:32 +0200ullbeking(sid5364@gateway/web/irccloud.com/x-tebupervehbjefqp)
2020-09-29 19:59:54 +0200jlpeters(sid25606@gateway/web/irccloud.com/x-asdpksetnctvsero)
2020-09-29 20:00:01 +0200zpao(~zpao@185.163.110.116) ()
2020-09-29 20:00:02 +0200knupfer(~Thunderbi@i5E86B4C1.versanet.de) (Quit: knupfer)
2020-09-29 20:00:08 +0200knupfer1(~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de)
2020-09-29 20:00:09 +0200PoliticsII____(sid193551@gateway/web/irccloud.com/x-ayjlnphasddeuyig)
2020-09-29 20:00:29 +0200geekosaur(42d52102@66.213.33.2) (Ping timeout: 245 seconds)
2020-09-29 20:00:34 +0200kip(sid71464@gateway/web/irccloud.com/x-dfffpddexmzhpgky)
2020-09-29 20:00:44 +0200dmj`(sid72307@gateway/web/irccloud.com/x-odngicoenfnwoyvu)
2020-09-29 20:00:56 +0200jetpack_joe(sid146137@gateway/web/irccloud.com/x-ozvqusskhemoywnb)
2020-09-29 20:00:56 +0200nlofaro(sid258233@gateway/web/irccloud.com/x-qhanesmmszvewqrk)
2020-09-29 20:01:01 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-jtacgyvyddfakhzw)
2020-09-29 20:01:01 +0200cstrahan(sid36118@gateway/web/irccloud.com/x-ykmbvasjrmtaqanw)
2020-09-29 20:01:03 +0200wildsebastian(sid324688@gateway/web/irccloud.com/x-fdvhisdzgkkbymer)
2020-09-29 20:01:04 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-09-29 20:01:10 +0200nick_h(sid319833@gateway/web/irccloud.com/x-yxzkrhmigqhpumeq)
2020-09-29 20:01:29 +0200hamishmack(sid389057@gateway/web/irccloud.com/x-dpctrfmaydvjllku)
2020-09-29 20:01:36 +0200ggole(~ggole@2001:8003:8119:7200:682e:863c:d343:3274) (Quit: Leaving)
2020-09-29 20:02:13 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 20:02:32 +0200knupfer1knupfer
2020-09-29 20:04:41 +0200benl23(sid284234@gateway/web/irccloud.com/x-uphxfqxgzdhiwrls)
2020-09-29 20:04:43 +0200PatrickRobotham_(sid18270@gateway/web/irccloud.com/x-szkuaevozzmraacs)
2020-09-29 20:04:55 +0200scav(sid309693@gateway/web/irccloud.com/x-aajvlddkzxpzyrkk)
2020-09-29 20:05:01 +0200ebutleriv(sid217783@gateway/web/irccloud.com/x-zcpyidnqxtmhuisv)
2020-09-29 20:05:01 +0200totbwf(sid402332@gateway/web/irccloud.com/x-auttreoigxuilyba)
2020-09-29 20:05:09 +0200bradparker(sid262931@gateway/web/irccloud.com/x-dvycqqnustcjicgg)
2020-09-29 20:05:11 +0200mudri(sid317655@gateway/web/irccloud.com/x-fieggmdqfmzcrqpn)
2020-09-29 20:05:11 +0200heyj(sid171370@gateway/web/irccloud.com/x-gbwtmgtkvwxnufqr)
2020-09-29 20:05:14 +0200sgraf(sid326656@gateway/web/irccloud.com/x-ljndrirzbtbynvou)
2020-09-29 20:05:17 +0200lightandlight(sid135476@gateway/web/irccloud.com/x-hovjzoliueuictrg)
2020-09-29 20:05:20 +0200lally(sid388228@gateway/web/irccloud.com/x-lstpiuaiwaadwufc)
2020-09-29 20:05:22 +0200Tritlo(sid58727@gateway/web/irccloud.com/x-csyclvuwsofrnkal)
2020-09-29 20:05:27 +0200hackageasciichart 1.0.2 - Line charts in terminal https://hackage.haskell.org/package/asciichart-1.0.2 (madnight)
2020-09-29 20:05:45 +0200howdoi(uid224@gateway/web/irccloud.com/x-zozvjyzrnsmbzmrc)
2020-09-29 20:05:58 +0200amatecha__(sid10006@gateway/web/irccloud.com/x-uwkjukjibnksfmha)
2020-09-29 20:06:26 +0200alp(~alp@2a01:e0a:58b:4920:c58c:601c:cb46:bf0c)
2020-09-29 20:07:02 +0200TooDifficult(~TooDiffic@139.59.59.230) (Quit: TooDifficult)
2020-09-29 20:07:02 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 20:07:08 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 20:08:11 +0200shatriff(~vitaliish@176.52.219.10) ()
2020-09-29 20:09:57 +0200ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-09-29 20:10:01 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:c9ce:dada:6b56:fcbb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 20:10:05 +0200tbreslein(~tbreslein@2a02:8108:140:44f8::901) (Remote host closed the connection)
2020-09-29 20:10:46 +0200pent(sid313808@gateway/web/irccloud.com/x-txvaiafqfamllvau)
2020-09-29 20:10:52 +0200lexi-lambda(sid92601@gateway/web/irccloud.com/x-ejlceriojlkpcrvm)
2020-09-29 20:10:59 +0200ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-09-29 20:12:16 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:209d:e921:7304:6018)
2020-09-29 20:13:08 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 20:13:55 +0200acidjnk_new(~acidjnk@p200300d0c72378745c7b1a0a573f1493.dip0.t-ipconnect.de)
2020-09-29 20:14:09 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-09-29 20:14:37 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2020-09-29 20:15:04 +0200elvishjerricco(sid237756@NixOS/user/ElvishJerricco)
2020-09-29 20:15:23 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving)
2020-09-29 20:16:52 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-09-29 20:16:52 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 20:17:08 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 20:24:31 +0200knupfer(~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de) (Quit: knupfer)
2020-09-29 20:24:38 +0200knupfer(~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de)
2020-09-29 20:26:12 +0200davetapley(sid666@gateway/web/irccloud.com/x-djoktstvzubeecxm)
2020-09-29 20:26:54 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 20:27:11 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 20:27:38 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 20:28:01 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 20:28:34 +0200unlink_(~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de)
2020-09-29 20:29:08 +0200unlink2(~unlink2@p200300ebcf25bd0068eb9d9c94da2a17.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2020-09-29 20:30:17 +0200fredcy-(fredcy@2600:3c00::f03c:91ff:feae:15ae)
2020-09-29 20:31:28 +0200fredcy(~fredcy@mail.yankowski.com) (Ping timeout: 258 seconds)
2020-09-29 20:32:52 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-09-29 20:35:37 +0200macrover(~macrover@ip70-189-231-35.lv.lv.cox.net)
2020-09-29 20:36:34 +0200 <zincy_> Should you use floating point to store monetary values?
2020-09-29 20:36:36 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 20:36:41 +0200 <dolio> No.
2020-09-29 20:36:50 +0200 <zincy_> I thought not but now I am reading stuff which questions this
2020-09-29 20:37:09 +0200geekosaur(42d52102@66.213.33.2)
2020-09-29 20:37:13 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 20:38:06 +0200 <koz_> zincy_: As someone having to deal with the fallout of this: no, you should never, under any circumstances, ever.
2020-09-29 20:38:22 +0200 <zincy_> haha
2020-09-29 20:38:30 +0200 <monochrom> "should" is ambiguous. For example, more socially acceptable? Technically better? More moral?
2020-09-29 20:38:31 +0200 <zincy_> I am trying to question my understanding of this ... so here goes
2020-09-29 20:38:44 +0200 <koz_> You have _no idea_ what kind of absurd contortions I have been putting codebases through for several months to get around this _horrific_ decision.
2020-09-29 20:38:53 +0200 <monochrom> For example, to be more socially acceptable among bankers, use fixed point, it's what they do.
2020-09-29 20:38:59 +0200 <koz_> (made a long time by someone who isn't me)
2020-09-29 20:39:05 +0200 <monochrom> in fact use decimal fixed point.
2020-09-29 20:39:40 +0200murphy_(~murphy_@2604:2000:1281:8a9e:14d4:9618:a1b2:ef6b) (Remote host closed the connection)
2020-09-29 20:39:40 +0200 <monochrom> But binary is technically better than decimal in terms of minimizing errors, as shown by Knuth.
2020-09-29 20:39:49 +0200 <zincy_> You cannot use floating point to accurately store monetary values because expansions of rational numbers that are recurring cannot be stored within a finite amount of memory
2020-09-29 20:39:57 +0200murphy_(~murphy_@2604:2000:1281:8a9e:d2e4:da3f:de8a:c9c9)
2020-09-29 20:40:11 +0200 <zincy_> Is that right?
2020-09-29 20:40:43 +0200 <koz_> zincy_: That isn't even the _tenth_ reason.
2020-09-29 20:40:46 +0200 <zincy_> monochrom: What does better mean in terms of error distribution?
2020-09-29 20:40:54 +0200 <monochrom> Yes, rational numbers is even better than binary floating point, technically.
2020-09-29 20:40:57 +0200 <koz_> Firstly, there are some integer values that cannot be represented as floats as such.
2020-09-29 20:41:12 +0200 <monochrom> smaller errors if you have to round
2020-09-29 20:41:20 +0200 <koz_> Secondly, you cannot guarantee (for example) associativity of addition where floats are involved.
2020-09-29 20:41:40 +0200 <monochrom> As for distribution, round to even is better than "round up when half". As shown by Knuth, same paper.
2020-09-29 20:42:01 +0200 <koz_> (I'm not even mentioning the fact that some _non_-integer values cannot be represented)
2020-09-29 20:42:15 +0200 <koz_> The fact that you truncate recurring decimals is a drop in the goddamned ocean.
2020-09-29 20:42:16 +0200 <monochrom> However, rational number is even less socially acceptable than binary floating point.
2020-09-29 20:42:22 +0200shatriff(~vitaliish@176.52.219.10)
2020-09-29 20:42:42 +0200 <zincy_> Yes rational numbers are seen as idealistic
2020-09-29 20:43:14 +0200 <zincy_> Im not comfortable with how changing the base results in less errors
2020-09-29 20:43:31 +0200 <monochrom> Bankers have made the decision of decimal fixed point, and have built very anal rounding rules around it. If you use rational numbers, you stand to be more correct than them, but that also means from their POV you're wrong.
2020-09-29 20:43:34 +0200 <zincy_> What are examples of values that cannot be represented
2020-09-29 20:43:41 +0200 <tomsmeding> zincy_: 1/10
2020-09-29 20:43:52 +0200 <monochrom> This is the very reason Intel floating point has BCD.
2020-09-29 20:43:59 +0200 <tomsmeding> > sum (replicate 10 0.1)
2020-09-29 20:44:01 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2020-09-29 20:44:02 +0200 <lambdabot> 0.9999999999999999
2020-09-29 20:44:09 +0200 <monochrom> Note: BCD is still floating point, just decimal.
2020-09-29 20:44:18 +0200 <dolio> I mean, that's the real reason. If you want your program to be used for anything, you need to comply with all the rules.
2020-09-29 20:44:26 +0200 <dolio> And you, some random tech dude, aren't going to change the rules.
2020-09-29 20:44:46 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 20:44:47 +0200 <monochrom> Hell, Knuth is not random, and still can't change the rules.
2020-09-29 20:45:13 +0200 <zincy_> Why can't you just represent 1/10 as 10^-1 ?
2020-09-29 20:45:21 +0200 <zincy_> Isnt floating point essentially scientific notation
2020-09-29 20:45:23 +0200 <tomsmeding> zincy_: then you're using base 10 :)
2020-09-29 20:45:42 +0200 <monochrom> 1/3 can be represented in floating point if base 3.
2020-09-29 20:45:43 +0200 <zincy_> So is floating point generally base 2
2020-09-29 20:45:54 +0200 <tomsmeding> IEEE floating points use base 2, which means all numbers are represented as <integer> * 2^<integer>
2020-09-29 20:45:55 +0200 <geekosaur> yes
2020-09-29 20:46:07 +0200 <tomsmeding> not just generally; most programmers will answer you "always"
2020-09-29 20:46:20 +0200 <tomsmeding> for the normal definition of the term "floating point", which is IEEE floating points
2020-09-29 20:46:21 +0200 <dolio> You can define floating point for any base, but the ones implemented in hardware are base 2.
2020-09-29 20:46:32 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-29 20:46:33 +0200 <monochrom> OK you need to read this: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
2020-09-29 20:46:39 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 20:46:47 +0200 <tomsmeding> long though
2020-09-29 20:47:09 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 20:47:17 +0200 <monochrom> long compared to what? compared to replicating the same length in #haskell?
2020-09-29 20:47:21 +0200 <tomsmeding> :D
2020-09-29 20:47:22 +0200whiteline_(~whiteline@unaffiliated/whiteline) (Remote host closed the connection)
2020-09-29 20:47:47 +0200whiteline_(~whiteline@unaffiliated/whiteline)
2020-09-29 20:47:51 +0200 <zincy_> Understanding the limitations of floating point actually goes quite deep
2020-09-29 20:48:03 +0200 <monochrom> Seriously by the time one asks "why is 1/10 not representable" it's time to actually learn it.
2020-09-29 20:48:32 +0200 <monochrom> Or else, finish the 2nd year "computer organization" course in the standard CS curriculum.
2020-09-29 20:48:59 +0200 <zincy_> Yeah i Have done zero architecture or low level stuff
2020-09-29 20:49:34 +0200 <Noughtmare[m]> It is also very important for geometric algorithms and numeric analysis.
2020-09-29 20:50:01 +0200 <zincy_> I guess I should do that computer organization course
2020-09-29 20:50:03 +0200 <geekosaur> you have reached the point here you need to know it and its limitations and how to work around them
2020-09-29 20:50:09 +0200 <geekosaur> *where you
2020-09-29 20:50:19 +0200 <zincy_> Yeah
2020-09-29 20:50:42 +0200 <zincy_> I am past the point where I can just memorise the answer without understanding why
2020-09-29 20:51:08 +0200 <zincy_> That is get away with it rather than *should*
2020-09-29 20:51:11 +0200 <ski> @where floating-point
2020-09-29 20:51:11 +0200 <lambdabot> "What Every Programmer Should Know About Floating-Point Arithmetic" at <http://floating-point-gui.de/> and "What Every Computer Scientist Should Know About Floating-Point Arithmetic" by David
2020-09-29 20:51:11 +0200 <lambdabot> Goldberg in 1991 at <http://docs.sun.com/source/806-3568/ncg_goldberg.html> and <http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.244>
2020-09-29 20:51:38 +0200knupfer(~Thunderbi@200116b82c08f6003db34c53b593aaa2.dip.versatel-1u1.de) (Quit: knupfer)
2020-09-29 20:52:56 +0200 <zincy_> Thanks I have some reading to do :)
2020-09-29 20:53:06 +0200Ariakenom__(~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se)
2020-09-29 20:54:07 +0200hiroaki(~hiroaki@2a02:908:4b18:e20::a362)
2020-09-29 20:55:39 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 20:55:51 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-09-29 20:56:29 +0200Ariakenom(~Ariakenom@h-82-196-111-138.NA.cust.bahnhof.se)
2020-09-29 20:56:36 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-29 20:56:37 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 20:56:52 +0200Ariakenom_(~Ariakenom@h-98-128-229-8.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2020-09-29 20:57:07 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 20:59:14 +0200 <dolio> I guess one thing to consider is that the market capitalization of Apple is (as far as bankers might be concerned) a number requiring almost 53 bits of precision, just on its own. So Double just gets by, and it's immediately going to be rounding stuff according to the non-banker specification.
2020-09-29 20:59:21 +0200Ariakenom__(~Ariakenom@h-178-174-193-185.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2020-09-29 21:00:45 +0200 <dolio> 53 might actually not be enough, even.
2020-09-29 21:00:47 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-09-29 21:01:44 +0200 <Noughtmare[m]> There was also this blog post: https://cs-syd.eu/posts/2020-07-28-how-to-deal-with-money-in-software
2020-09-29 21:02:12 +0200 <Noughtmare[m]> Might be an easier read and more related to Haskell and money.
2020-09-29 21:02:25 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:209d:e921:7304:6018) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-09-29 21:04:27 +0200mmohammadi9812(~mmohammad@5.238.179.190)
2020-09-29 21:05:41 +0200machinedgod(~machinedg@45.78.189.122) (Read error: Connection reset by peer)
2020-09-29 21:05:51 +0200benl23(sid284234@gateway/web/irccloud.com/x-uphxfqxgzdhiwrls) (Ping timeout: 260 seconds)
2020-09-29 21:05:51 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-qpsgoegqtleeqjei) (Ping timeout: 260 seconds)
2020-09-29 21:05:59 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:b8df:2d55:a789:4c6e)
2020-09-29 21:05:59 +0200adius(sid321344@gateway/web/irccloud.com/x-quuxqbuikynbakrx) (Ping timeout: 246 seconds)
2020-09-29 21:05:59 +0200sethetter__(sid17895@gateway/web/irccloud.com/x-wdliizmlfolakmwm) (Ping timeout: 246 seconds)
2020-09-29 21:06:23 +0200zacts(~zacts@dragora/developer/zacts) (Ping timeout: 260 seconds)
2020-09-29 21:06:43 +0200elcaro(~anonymous@45.32.191.75) (Ping timeout: 256 seconds)
2020-09-29 21:06:44 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 21:06:46 +0200benl23(sid284234@gateway/web/irccloud.com/x-ghlogzbejlthcofn)
2020-09-29 21:06:48 +0200heyj(sid171370@gateway/web/irccloud.com/x-gbwtmgtkvwxnufqr) (Ping timeout: 260 seconds)
2020-09-29 21:06:48 +0200Firedancer__(sid336191@gateway/web/irccloud.com/x-sstfhgxjcldlniie)
2020-09-29 21:06:56 +0200puffnfresh_(~puffnfres@45.76.124.5) (Ping timeout: 272 seconds)
2020-09-29 21:06:59 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-pmydnplqbvmshcfw)
2020-09-29 21:07:05 +0200rann_(sid175221@gateway/web/irccloud.com/x-iiyrjbxtmscqghei)
2020-09-29 21:07:07 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-hgqilzghfblwpocf) (Ping timeout: 240 seconds)
2020-09-29 21:07:07 +0200Firedancer__Firedancer
2020-09-29 21:07:08 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 21:07:16 +0200BIG_JIMMY_D(~jim@108.61.185.76) (Ping timeout: 260 seconds)
2020-09-29 21:07:27 +0200sgraf_(sid326656@gateway/web/irccloud.com/x-jfxyumxhbkdnvfol)
2020-09-29 21:07:31 +0200sethetter__(sid17895@gateway/web/irccloud.com/x-mezhbcfrdugnnivw)
2020-09-29 21:07:33 +0200Tritlo(sid58727@gateway/web/irccloud.com/x-csyclvuwsofrnkal) (Ping timeout: 260 seconds)
2020-09-29 21:07:37 +0200adius(sid321344@gateway/web/irccloud.com/x-uiqaepphrufnogik)
2020-09-29 21:07:43 +0200sgraf(sid326656@gateway/web/irccloud.com/x-ljndrirzbtbynvou) (Ping timeout: 260 seconds)
2020-09-29 21:07:44 +0200rann(sid175221@gateway/web/irccloud.com/x-skhgikkvbkdanbtl) (Ping timeout: 260 seconds)
2020-09-29 21:07:44 +0200sgraf_sgraf
2020-09-29 21:07:45 +0200rann_rann
2020-09-29 21:07:57 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:b8df:2d55:a789:4c6e) (Client Quit)
2020-09-29 21:08:08 +0200Suigetsu(~kakashi@223.226.34.93) (Remote host closed the connection)
2020-09-29 21:08:59 +0200Tritlo(sid58727@gateway/web/irccloud.com/x-bpkuocxqeatvohss)
2020-09-29 21:08:59 +0200heyj(sid171370@gateway/web/irccloud.com/x-etzhorqwefwzvcps)
2020-09-29 21:09:28 +0200nbloomf(~nbloomf@2600:1700:83e0:1f40:1912:3cad:d0f5:3993)
2020-09-29 21:09:54 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 21:10:05 +0200machinedgod(~machinedg@45.78.189.122)
2020-09-29 21:12:46 +0200puffnfresh_(~puffnfres@45.76.124.5)
2020-09-29 21:12:59 +0200Quarl(~Quarl@94.191.138.174.mobile.tre.se) (Read error: Connection reset by peer)
2020-09-29 21:13:03 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-09-29 21:13:44 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-09-29 21:17:03 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 21:17:08 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 21:17:34 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-09-29 21:18:50 +0200mu__(~mu@unaffiliated/mu) (Client Quit)
2020-09-29 21:19:38 +0200 <koz_> Noughtmare[m]: Thanks. That's really good.
2020-09-29 21:22:54 +0200BIG_JIMMY_D(~jim@108.61.185.76)
2020-09-29 21:23:42 +0200elcaro(~anonymous@45.32.191.75)
2020-09-29 21:24:11 +0200machinedgod(~machinedg@45.78.189.122) (Ping timeout: 240 seconds)
2020-09-29 21:24:28 +0200ryansmccoy(~ryansmcco@193.37.254.27) (Ping timeout: 260 seconds)
2020-09-29 21:25:12 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-29 21:28:22 +0200 <dolio> I guess a counterpoint is that a lot of this advice is about accounting. If you're doing something else, it might be more acceptable to use doubles.
2020-09-29 21:28:42 +0200 <dolio> Like, some kind of statistical analysis of things involving money.
2020-09-29 21:28:46 +0200 <geekosaur> might be acceptable but there's still a lot to know about how to work around their issues
2020-09-29 21:28:46 +0200byte[]1(~byte]@84.39.116.180)
2020-09-29 21:29:05 +0200 <geekosaur> which includes doing different things depending on what magnitudes are involved
2020-09-29 21:29:30 +0200 <dolio> Sure.
2020-09-29 21:31:31 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 260 seconds)
2020-09-29 21:31:45 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-09-29 21:31:48 +0200 <dolio> It's more that accounting has rules that make IEEE floating point impossible to use, whereas other scenarios it might be possible, but still difficult. :)
2020-09-29 21:32:22 +0200fredcy(fredcy@2600:3c03::f03c:91ff:febd:37d7)
2020-09-29 21:32:41 +0200fredcy(fredcy@2600:3c03::f03c:91ff:febd:37d7) (Client Quit)
2020-09-29 21:32:41 +0200fredcy-fredcy
2020-09-29 21:34:16 +0200whiteline_(~whiteline@unaffiliated/whiteline) (Read error: Connection reset by peer)
2020-09-29 21:34:19 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl)
2020-09-29 21:34:34 +0200whiteline(~whiteline@unaffiliated/whiteline)
2020-09-29 21:35:29 +0200 <monochrom> There is an unhealthy dose of scaremongering against floating point.
2020-09-29 21:36:33 +0200jollygood2(~bc815b99@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-09-29 21:36:39 +0200 <monochrom> The outcry is "it has errors!" but the blindspot is: compared to what? For the same number of bits, base-2 floating point is the least errorneous among all ways of using those bits.
2020-09-29 21:36:43 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds)
2020-09-29 21:38:18 +0200 <monochrom> The real subtext is "it doesn't do intuitive decimal".
2020-09-29 21:38:49 +0200 <monochrom> as if decimal were the holy grail of accuracy.
2020-09-29 21:39:03 +0200 <Noughtmare[m]> The main point of the blog post is also that the errors should be explicit.
2020-09-29 21:39:16 +0200 <Noughtmare[m]> You can't just create or destroy money.
2020-09-29 21:39:26 +0200 <monochrom> That's a social construct.
2020-09-29 21:39:52 +0200 <Cheery> https://github.com/cheery/lijp
2020-09-29 21:39:53 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 21:39:56 +0200 <geekosaur> so is money
2020-09-29 21:40:07 +0200 <monochrom> Yeah :)
2020-09-29 21:40:10 +0200luke(~luke@bitnomial/staff/luke)
2020-09-29 21:40:21 +0200h(bdd4038e@189-212-3-142.static.axtel.net)
2020-09-29 21:40:24 +0200catkiki(~catkiki@m90-134-157-227.cust.tele2.hr)
2020-09-29 21:40:34 +0200 <monochrom> More seriously, I respect the accounting requirement of conservation of money.
2020-09-29 21:40:45 +0200hGuest61881
2020-09-29 21:40:57 +0200fredcy(fredcy@2600:3c00::f03c:91ff:feae:15ae) (Read error: Connection reset by peer)
2020-09-29 21:41:05 +0200Guest61881(bdd4038e@189-212-3-142.static.axtel.net) (Remote host closed the connection)
2020-09-29 21:41:07 +0200 <monochrom> I disrepect "floating point has errors" as if the accounting requirement didn't have even worse errors.
2020-09-29 21:41:38 +0200 <dolio> I don't know. The thing about IEEE is that it has ways of dealing with the errors, but my understanding is that if you don't learn the right way, you probably won't accidentally write code that has good behavior with respect to error accumulation.
2020-09-29 21:41:58 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 21:42:19 +0200 <dolio> So either the errors are completely irrelevant for whatever you're doing, or you still have to study non-trivial stuff.
2020-09-29 21:43:13 +0200 <dolio> A lot of people probably write code in the 'irrelevant' part, though.
2020-09-29 21:43:38 +0200voyons_calice(~dan@162.246.216.28)
2020-09-29 21:44:45 +0200 <Chousuke> The "inexactitude" of floating point is only a problem because it can be used by people who don't know better. If you use it and your application can deal with the potentially accumulated errors, then it's not wrong, and not a problem.
2020-09-29 21:45:04 +0200stree(~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-09-29 21:45:22 +0200stree(~stree@50-108-126-14.adr01.mskg.mi.frontiernet.net)
2020-09-29 21:45:28 +0200lucid_0x80(~lucid_0x8@188.253.231.113) (Ping timeout: 260 seconds)
2020-09-29 21:45:46 +0200 <Chousuke> but lots of people will try to use a screwdriver as a hammer, and often it works, too :/
2020-09-29 21:46:14 +0200voyons_osti(~dan@107-190-41-58.cpe.teksavvy.com) (Ping timeout: 256 seconds)
2020-09-29 21:46:47 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 21:47:13 +0200AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-09-29 21:47:15 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 21:48:18 +0200Guest18(567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) (Quit: Connection closed)
2020-09-29 21:50:11 +0200 <sm[m]> anecdote: hledger started with Double, for simplicity and speed. It wasn't a problem for normal accounting; it took years until somebody encountered a tiny rounding error.
2020-09-29 21:53:07 +0200chaosmasttter(~chaosmast@p200300c4a70aba01f8f8cb9b34fa26e3.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-09-29 21:53:21 +0200machinedgod(~machinedg@d67-193-126-196.home3.cgocable.net)
2020-09-29 21:57:11 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 21:57:25 +0200jneira(501e65ce@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.206)
2020-09-29 21:57:25 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 21:57:53 +0200juuandyy(~juuandyy@90.166.144.65)
2020-09-29 21:58:10 +0200meck(~meck@li1809-18.members.linode.com) (Quit: ZNC 1.8.1 - https://znc.in)
2020-09-29 21:59:44 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
2020-09-29 22:00:19 +0200fredcy(~fredcy@mail.yankowski.com)
2020-09-29 22:01:50 +0200xff0x(~fox@2001:1a81:53b0:3c00:65ac:b49c:d7d6:af9b) (Remote host closed the connection)
2020-09-29 22:01:51 +0200meck(~meck@li1809-18.members.linode.com)
2020-09-29 22:02:10 +0200xff0x(~fox@2001:1a81:53b0:3c00:3d6a:e40e:1e13:6b86)
2020-09-29 22:02:59 +0200juuandyy(~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
2020-09-29 22:06:23 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-09-29 22:06:28 +0200hackagecurl-runnings 0.15.0 - A framework for declaratively writing curl based API tests https://hackage.haskell.org/package/curl-runnings-0.15.0 (aviaviavi)
2020-09-29 22:06:38 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 256 seconds)
2020-09-29 22:06:54 +0200geekosaur(42d52102@66.213.33.2) (Remote host closed the connection)
2020-09-29 22:06:55 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 22:07:12 +0200 <koz_> If I do [minBound .. maxBound] :: [Char], will this effectively produce a string made of every Unicode code point?
2020-09-29 22:07:16 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 22:07:47 +0200 <ski> > filter isSpace [minBound .. maxBound]
2020-09-29 22:07:50 +0200 <lambdabot> "\t\n\v\f\r \160\5760\8192\8193\8194\8195\8196\8197\8198\8199\8200\8201\8202...
2020-09-29 22:07:59 +0200 <sarahzrf> > filter (not . isSpace) [minBound .. maxBound]
2020-09-29 22:08:03 +0200 <lambdabot> "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SYN\ETB\CAN\...
2020-09-29 22:08:12 +0200jakecraige(uid58205@gateway/web/irccloud.com/x-skwrvzxmtmlvbckx)
2020-09-29 22:08:17 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 22:08:27 +0200 <koz_> Uhh, so, 'yes'?
2020-09-29 22:08:31 +0200 <sarahzrf> hehe
2020-09-29 22:08:45 +0200 <koz_> > length ([minBound .. maxBound] :: String)
2020-09-29 22:08:48 +0200 <lambdabot> 1114112
2020-09-29 22:08:53 +0200 <sarahzrf> > filter isAlpha [minBound .. maxBound]
2020-09-29 22:08:53 +0200danvet_(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-09-29 22:08:55 +0200 <lambdabot> "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\170\181\186\192\193\19...
2020-09-29 22:09:00 +0200 <ski> > ord maxBound
2020-09-29 22:09:02 +0200 <sarahzrf> > text (filter isAlpha [minBound .. maxBound])
2020-09-29 22:09:05 +0200jakecraigeconstR
2020-09-29 22:09:07 +0200 <lambdabot> mueval-core: Time limit exceeded
2020-09-29 22:09:08 +0200 <lambdabot> ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔ...
2020-09-29 22:09:31 +0200 <sarahzrf> > ord (maxBound :: Char) -- ski
2020-09-29 22:09:35 +0200 <lambdabot> 1114111
2020-09-29 22:09:50 +0200 <ski> > ord maxBound
2020-09-29 22:09:53 +0200 <lambdabot> 1114111
2020-09-29 22:09:56 +0200 <sarahzrf> huh
2020-09-29 22:10:03 +0200 <ski> temporary fluke
2020-09-29 22:10:04 +0200 <sarahzrf> oh right, ord is monomorphic
2020-09-29 22:10:34 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2020-09-29 22:10:49 +0200 <ski> koz_ : i guess it might be extended, later
2020-09-29 22:10:59 +0200 <koz_> ski: Possibly.
2020-09-29 22:13:07 +0200voyons_calisse(~dan@107-190-41-58.cpe.teksavvy.com)
2020-09-29 22:14:08 +0200grepp(bdd4038e@189-212-3-142.static.axtel.net)
2020-09-29 22:15:30 +0200 <koz_> Where can I find a function of type Int -> [a] -> [[a]]? This should chop the argument list into chunks of length specified by the Int argument.
2020-09-29 22:15:48 +0200voyons_calice(~dan@162.246.216.28) (Ping timeout: 260 seconds)
2020-09-29 22:15:59 +0200 <hyperisco> koz_, chunksOf
2020-09-29 22:16:04 +0200 <ski> @hoogle Int -> [a] -> [[a]]
2020-09-29 22:16:05 +0200 <lambdabot> Data.List.Split chunksOf :: Int -> [e] -> [[e]]
2020-09-29 22:16:05 +0200 <lambdabot> Data.List.Split.Internals chunksOf :: Int -> [e] -> [[e]]
2020-09-29 22:16:05 +0200 <lambdabot> Hedgehog.Internal.Shrink removes :: Int -> [a] -> [[a]]
2020-09-29 22:16:30 +0200heyj(sid171370@gateway/web/irccloud.com/x-etzhorqwefwzvcps) (Ping timeout: 258 seconds)
2020-09-29 22:16:39 +0200 <ski> @hackage split
2020-09-29 22:16:40 +0200 <lambdabot> https://hackage.haskell.org/package/split
2020-09-29 22:16:45 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 22:16:46 +0200 <koz_> Thanks!
2020-09-29 22:16:47 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
2020-09-29 22:17:05 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-09-29 22:17:07 +0200heyj(sid171370@gateway/web/irccloud.com/x-dyelktlqaszoriye)
2020-09-29 22:17:15 +0200 <ski> > chunksOf 3 [0 .. 7]
2020-09-29 22:17:17 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 22:17:18 +0200 <lambdabot> [[0,1,2],[3,4,5],[6,7]]
2020-09-29 22:17:27 +0200 <koz_> Delicious chunky list.
2020-09-29 22:18:14 +0200notzmv`(~user@179.100.115.46)
2020-09-29 22:20:41 +0200sfvm(~sfvm@37.228.215.148)
2020-09-29 22:21:16 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-09-29 22:21:23 +0200notzmv(~user@unaffiliated/zmv) (Ping timeout: 240 seconds)
2020-09-29 22:22:14 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) (Quit: Quit.)
2020-09-29 22:22:45 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-09-29 22:22:46 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-09-29 22:22:46 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-09-29 22:22:46 +0200xcmw(~textual@dyn-72-33-0-89.uwnet.wisc.edu)
2020-09-29 22:22:52 +0200mirrorbird(~psutcliff@2a00:801:3fb:53b9:b09b:cd4e:4e4a:44a9) (Quit: Leaving)
2020-09-29 22:23:46 +0200cosimone(~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6)
2020-09-29 22:26:15 +0200GyroW(~GyroW@unaffiliated/gyrow) (Client Quit)
2020-09-29 22:26:23 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-09-29 22:26:38 +0200 <monochrom> koz_: Some of the numbers / "characters" in that range are not legal unicode codepoints, so be careful.
2020-09-29 22:26:44 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 22:26:57 +0200 <koz_> monochrom: How do I make sure I only have ones which are?
2020-09-29 22:27:15 +0200 <koz_> Is there some kind of 'I am a real boy^WUnicode codepoint' check?
2020-09-29 22:27:15 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 22:27:20 +0200 <monochrom> Let me check if Data.Char has some helpers
2020-09-29 22:27:32 +0200 <koz_> Thanks!
2020-09-29 22:27:33 +0200 <dolio> Isn't that system-dependent?
2020-09-29 22:27:36 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-09-29 22:27:36 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-09-29 22:27:36 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-09-29 22:28:02 +0200 <EvanR> there's various flavors of "not a valid character"
2020-09-29 22:28:15 +0200 <EvanR> very fun stuff
2020-09-29 22:28:31 +0200grepp(bdd4038e@189-212-3-142.static.axtel.net) (Remote host closed the connection)
2020-09-29 22:28:37 +0200 <monochrom> Perhaps generalCategory, and if you get NotAssigned it's a bad sign. Sometimes PrivateUse too, depending on what you want.
2020-09-29 22:28:38 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-09-29 22:28:53 +0200 <koz_> OK, thanks.
2020-09-29 22:28:57 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 22:29:04 +0200sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-09-29 22:29:11 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2020-09-29 22:29:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 22:29:49 +0200 <monochrom> NotAssigned would be "illegal today but maybe in 2025 it is a newly assigned emoji"
2020-09-29 22:30:16 +0200 <monochrom> To be sure, my wording "illegal" is lax.
2020-09-29 22:30:26 +0200 <EvanR> there's literally "not a character" like \uffff
2020-09-29 22:30:43 +0200 <EvanR> "FFFE and FFFF are not unassigned in the usual sense, but guaranteed not to be Unicode characters at all."
2020-09-29 22:30:43 +0200DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-09-29 22:31:10 +0200 <monochrom> But you don't go around sending unassigned codepoints to people :)
2020-09-29 22:31:14 +0200 <dolio> What is the purpose of that?
2020-09-29 22:31:17 +0200 <dolio> Terminating your strings?
2020-09-29 22:31:32 +0200 <monochrom> Ah, FFFE and FFFF would be Surrogate. You want to watch out for them especially.
2020-09-29 22:31:33 +0200 <EvanR> FFFE is used for detecting byte order in utf-16
2020-09-29 22:31:41 +0200 <EvanR> FFFF not sure
2020-09-29 22:31:44 +0200 <dolio> Ah.
2020-09-29 22:32:10 +0200 <monochrom> Actually I am only sure that FFFE is surrogate. haven't checked FFFF, could be NotAssigned
2020-09-29 22:32:38 +0200 <koz_> @pl \i x -> foo (bar i) x
2020-09-29 22:32:38 +0200 <lambdabot> foo . bar
2020-09-29 22:34:18 +0200 <monochrom> Generally the whole surrogate block, from today's POV, is a relic of backward compatibility to utf-16.
2020-09-29 22:34:25 +0200 <EvanR> FEFF is a byte order mark
2020-09-29 22:34:42 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-157-9.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-09-29 22:35:22 +0200 <EvanR> so it's possible to see FFFE in utf-16 encoded bytes, so it can't be used as a character too
2020-09-29 22:36:36 +0200 <EvanR> surrogates are for doing stuff beyond FFFF
2020-09-29 22:36:48 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 22:37:16 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 22:38:19 +0200 <monochrom> oops, FFFE is NotAssigned
2020-09-29 22:38:49 +0200 <EvanR> NotAssignInFactNeverWillBeAssignedDueToReasons
2020-09-29 22:38:58 +0200 <monochrom> Yeah
2020-09-29 22:39:11 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 260 seconds)
2020-09-29 22:39:14 +0200 <koz_> Won'tAssign
2020-09-29 22:39:50 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-29 22:39:58 +0200 <monochrom> Surrogates are the D8xx block and the DCxx block.
2020-09-29 22:41:31 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com) (Quit: WeeChat 2.9)
2020-09-29 22:41:37 +0200carldd1(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2020-09-29 22:42:40 +0200 <monochrom> Ah, even that is inaccurate. (The two blocks are each much larger.) I'll shut up now.
2020-09-29 22:42:48 +0200sw1nn(~sw1nn@host86-173-104-87.range86-173.btcentralplus.com)
2020-09-29 22:42:51 +0200 <EvanR> the byte reversed surrogates are "non characters"
2020-09-29 22:43:04 +0200 <EvanR> according to this http://www.unicode.org/faq/private_use.html there are 66 non-characters
2020-09-29 22:44:17 +0200blissful(~azuline@unaffiliated/azuline)
2020-09-29 22:44:23 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-09-29 22:44:51 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-09-29 22:45:04 +0200 <monochrom> fun stuff
2020-09-29 22:45:26 +0200 <monochrom> Math is so much easier. :)
2020-09-29 22:45:28 +0200 <koz_> Conclusion: Writing is hard, we should go back to being illiterate.
2020-09-29 22:45:31 +0200coot(~coot@37.30.59.210.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-09-29 22:45:37 +0200 <monochrom> I think we did?
2020-09-29 22:45:55 +0200 <monochrom> The whole reason why GUI and icons as opposed to CLI.
2020-09-29 22:47:03 +0200 <monochrom> It's like we decided that the Phoenician way (alphabet) is too hard, let's go back to the Egyptian way (icons).
2020-09-29 22:47:03 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 22:47:16 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 22:47:35 +0200 <EvanR> normal fractions are too hard, go back to egyptian fractions
2020-09-29 22:47:51 +0200systemhalted(~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net)
2020-09-29 22:47:55 +0200 <koz_> Normal construction is too hard, go back to Egyptian construction.
2020-09-29 22:48:05 +0200 <koz_> [insert the Ancient Aliens meme]
2020-09-29 22:48:38 +0200 <koz_> https://i.imgflip.com/4gq65v.jpg
2020-09-29 22:48:53 +0200 <EvanR> hey man, if i can learn some chinese after the age of 3 maybe there's hope for us all
2020-09-29 22:49:13 +0200 <monochrom> Good for you.
2020-09-29 22:49:33 +0200GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-09-29 22:49:39 +0200systemhalted(~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection)
2020-09-29 22:49:55 +0200 <monochrom> But don't mistake your special gift for universal human trait.
2020-09-29 22:50:01 +0200 <EvanR> that's what i'm saying
2020-09-29 22:50:29 +0200carldd1(~carldd@90-224-49-113-no56.tbcn.telia.com)
2020-09-29 22:50:52 +0200 <EvanR> somehow people can look at random squiggles and it means something
2020-09-29 22:50:57 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-09-29 22:50:57 +0200GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-09-29 22:50:57 +0200GyroW(~GyroW@unaffiliated/gyrow)
2020-09-29 22:51:19 +0200kw(ac4a6125@cpe-172-74-97-37.nc.res.rr.com) (Ping timeout: 245 seconds)
2020-09-29 22:52:19 +0200mtae(uid179115@gateway/web/irccloud.com/x-cumufbtgommkesrd)
2020-09-29 22:55:29 +0200mmohammadi9812(~mmohammad@5.238.179.190) (Quit: I quit (╯°□°)╯︵ ┻━┻)
2020-09-29 22:56:56 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 22:57:15 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 23:00:02 +0200byte[]1(~byte]@84.39.116.180) ()
2020-09-29 23:00:03 +0200isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com)
2020-09-29 23:00:33 +0200snakemasterflex(~snakemast@213.100.206.23)
2020-09-29 23:01:18 +0200mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 260 seconds)
2020-09-29 23:01:33 +0200justsomeguy(~justsomeg@216.186.218.241)
2020-09-29 23:01:33 +0200justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-09-29 23:01:33 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-09-29 23:02:38 +0200thir(~thir@p200300f27f0fc60094e773283d7bf825.dip0.t-ipconnect.de)
2020-09-29 23:04:23 +0200knupfer(~Thunderbi@200116b82c08f600492c838d09b9ddcd.dip.versatel-1u1.de)
2020-09-29 23:05:18 +0200bitmagie(~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de)
2020-09-29 23:06:42 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-09-29 23:06:49 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 23:06:49 +0200snakemasterflex(~snakemast@213.100.206.23) (Ping timeout: 264 seconds)
2020-09-29 23:07:17 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 23:07:32 +0200luke(~luke@bitnomial/staff/luke) (Quit: sleep)
2020-09-29 23:09:02 +0200bitmagie(~Thunderbi@200116b80673370090ed3453f880395e.dip.versatel-1u1.de) (Client Quit)
2020-09-29 23:12:43 +0200mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-09-29 23:12:47 +0200borne(~fritjof@200116b864231000537d5cc8226f9d9f.dip.versatel-1u1.de)
2020-09-29 23:14:42 +0200thc202(~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
2020-09-29 23:14:51 +0200knupfer(~Thunderbi@200116b82c08f600492c838d09b9ddcd.dip.versatel-1u1.de) (Quit: knupfer)
2020-09-29 23:15:03 +0200knupfer(~Thunderbi@200116b82c08f600518a782c5c52e58a.dip.versatel-1u1.de)
2020-09-29 23:15:18 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds)
2020-09-29 23:17:03 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 23:17:17 +0200mu__(~mu@unaffiliated/mu)
2020-09-29 23:20:28 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 23:24:04 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-09-29 23:24:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-09-29 23:25:58 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-09-29 23:26:49 +0200mu__(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 23:27:09 +0200dhil(~dhil@11.29.39.217.dyn.plus.net)
2020-09-29 23:27:24 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 23:28:07 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-09-29 23:28:26 +0200hololeapwill build a colossal truncated dodecahedron out of peat moss
2020-09-29 23:28:50 +0200 <pjb> That's a plan.
2020-09-29 23:30:27 +0200knupfer(~Thunderbi@200116b82c08f600518a782c5c52e58a.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-09-29 23:30:36 +0200Ariakenom(~Ariakenom@h-82-196-111-138.NA.cust.bahnhof.se) (Quit: Leaving)
2020-09-29 23:31:56 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds)
2020-09-29 23:32:37 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2020-09-29 23:32:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-09-29 23:33:07 +0200hiroaki(~hiroaki@2a02:908:4b18:e20::a362) (Ping timeout: 272 seconds)
2020-09-29 23:33:58 +0200hackagehttp-client-websockets 0.1.0.0 - Glue code for http-client and websockets https://hackage.haskell.org/package/http-client-websockets-0.1.0.0 (amesgen)
2020-09-29 23:36:14 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2020-09-29 23:36:15 +0200falafel_(~falafel@2605:e000:1527:d491:f090:20fe:cddf:2a1a)
2020-09-29 23:36:50 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-09-29 23:36:50 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 23:37:01 +0200zacts(~zacts@dragora/developer/zacts) (Quit: leaving)
2020-09-29 23:37:15 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 23:37:40 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 272 seconds)
2020-09-29 23:38:43 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 23:40:41 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net)
2020-09-29 23:43:50 +0200raehik(~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net)
2020-09-29 23:43:51 +0200zacts(~zacts@dragora/developer/zacts) (Quit: Lost terminal)
2020-09-29 23:44:12 +0200zacts(~zacts@dragora/developer/zacts)
2020-09-29 23:45:48 +0200Gokturk-Away(~Gokturk@ip232-88-173-82.adsl2.static.versatel.nl)
2020-09-29 23:46:14 +0200Gokturk-Away(~Gokturk@ip232-88-173-82.adsl2.static.versatel.nl) ()
2020-09-29 23:46:48 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 23:46:48 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 23:47:18 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 23:47:48 +0200st8less(~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Ping timeout: 272 seconds)
2020-09-29 23:49:13 +0200ransom(~c4264035@undergraduate-jvossen-9690.mines.edu)
2020-09-29 23:49:25 +0200ryansmccoy(~ryansmcco@156.96.151.132) (Ping timeout: 240 seconds)
2020-09-29 23:49:39 +0200ryansmccoy(~ryansmcco@156.96.151.132)
2020-09-29 23:51:11 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-09-29 23:51:47 +0200dhil(~dhil@11.29.39.217.dyn.plus.net) (Ping timeout: 240 seconds)
2020-09-29 23:52:07 +0200yogani(sid42623@gateway/web/irccloud.com/x-yikdyiyitctvugtr) (Ping timeout: 240 seconds)
2020-09-29 23:52:07 +0200gaze__(sid387101@gateway/web/irccloud.com/x-rudberqzemjkvxug) (Ping timeout: 240 seconds)
2020-09-29 23:52:07 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-aktdkimmtnwjggmi) (Ping timeout: 240 seconds)
2020-09-29 23:52:07 +0200gregberns_(sid315709@gateway/web/irccloud.com/x-rlsbvnyekhpgzioc) (Ping timeout: 240 seconds)
2020-09-29 23:52:07 +0200hazard-pointer(sid331723@gateway/web/irccloud.com/x-emxsbfbbibuuxpjg) (Ping timeout: 240 seconds)
2020-09-29 23:52:08 +0200cstrahan(sid36118@gateway/web/irccloud.com/x-ykmbvasjrmtaqanw) (Ping timeout: 244 seconds)
2020-09-29 23:52:08 +0200pasukon(sid49097@gateway/web/irccloud.com/x-giisizmxehyuzjuk) (Ping timeout: 244 seconds)
2020-09-29 23:52:08 +0200alunduil(alunduil@gateway/web/irccloud.com/x-tbwasyjgdwlvrowc) (Ping timeout: 244 seconds)
2020-09-29 23:52:14 +0200Tritlo(sid58727@gateway/web/irccloud.com/x-bpkuocxqeatvohss) (Ping timeout: 246 seconds)
2020-09-29 23:52:14 +0200adius(sid321344@gateway/web/irccloud.com/x-uiqaepphrufnogik) (Ping timeout: 246 seconds)
2020-09-29 23:52:27 +0200benl23(sid284234@gateway/web/irccloud.com/x-ghlogzbejlthcofn) (Ping timeout: 240 seconds)
2020-09-29 23:52:27 +0200drupol(sid117588@gateway/web/irccloud.com/x-awnbfxqpznoqpkyo) (Ping timeout: 240 seconds)
2020-09-29 23:52:27 +0200grfn(sid449115@gateway/web/irccloud.com/x-ydoemzyjkpbwqwwh) (Ping timeout: 240 seconds)
2020-09-29 23:52:35 +0200edmundnoble(sid229620@gateway/web/irccloud.com/x-oyzfxczakjbvmtnw) (Ping timeout: 246 seconds)
2020-09-29 23:52:37 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-spscyafmbmiqsgji) (Ping timeout: 260 seconds)
2020-09-29 23:52:37 +0200dsal(sid13060@gateway/web/irccloud.com/x-ggesknpxulujswrk) (Ping timeout: 260 seconds)
2020-09-29 23:52:37 +0200alanz(sid110616@gateway/web/irccloud.com/x-nlebobwfaogucyez) (Ping timeout: 260 seconds)
2020-09-29 23:52:39 +0200dmj`(sid72307@gateway/web/irccloud.com/x-odngicoenfnwoyvu) (Ping timeout: 244 seconds)
2020-09-29 23:52:45 +0200thi(sid97277@gateway/web/irccloud.com/x-hnhbkpyrjaxopzwq) (Ping timeout: 272 seconds)
2020-09-29 23:52:45 +0200mpickering(sid78412@gateway/web/irccloud.com/x-qlfoyixpkacsyapm) (Ping timeout: 272 seconds)
2020-09-29 23:52:45 +0200buggymcbugfix(sid432603@gateway/web/irccloud.com/x-hztztfmfplqpnzth) (Ping timeout: 272 seconds)
2020-09-29 23:52:47 +0200liszt(sid336875@gateway/web/irccloud.com/x-jndphrjraiimjfeg) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-hqmucughwqwxderw) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200simony(sid226116@gateway/web/irccloud.com/x-fjezusljhbyijwij) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200gluegadget(sid22336@gateway/web/irccloud.com/x-lopxigkfhkxxekjc) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-tjiavkhmuuynmiyn) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200alexknvl(sid259568@gateway/web/irccloud.com/x-iuotkcbnxquozzxj) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200bjs(sid190364@gateway/web/irccloud.com/x-avegidalgukhrltc) (Ping timeout: 240 seconds)
2020-09-29 23:52:47 +0200jackdk(sid373013@gateway/web/irccloud.com/x-jvxjcrsfdwntomgo) (Ping timeout: 240 seconds)
2020-09-29 23:52:57 +0200caasih(sid13241@gateway/web/irccloud.com/x-witsgvtavsidjabf) (Ping timeout: 246 seconds)
2020-09-29 23:52:57 +0200kozowu(uid44796@gateway/web/irccloud.com/x-hqvlesuvhveaoukp) (Ping timeout: 246 seconds)
2020-09-29 23:52:57 +0200kip(sid71464@gateway/web/irccloud.com/x-dfffpddexmzhpgky) (Ping timeout: 260 seconds)
2020-09-29 23:53:07 +0200constR(uid58205@gateway/web/irccloud.com/x-skwrvzxmtmlvbckx) (Ping timeout: 240 seconds)
2020-09-29 23:53:07 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-aoqdwycfabqpemvo) (Ping timeout: 240 seconds)
2020-09-29 23:53:07 +0200xyggos(uid216035@gateway/web/irccloud.com/x-gnstndpjgaocojtu) (Ping timeout: 240 seconds)
2020-09-29 23:53:10 +0200hamishmack(sid389057@gateway/web/irccloud.com/x-dpctrfmaydvjllku) (Ping timeout: 244 seconds)
2020-09-29 23:53:10 +0200nick_h(sid319833@gateway/web/irccloud.com/x-yxzkrhmigqhpumeq) (Ping timeout: 244 seconds)
2020-09-29 23:53:10 +0200bgavran(sid393312@gateway/web/irccloud.com/x-lpoihxszwcoufyws) (Ping timeout: 244 seconds)
2020-09-29 23:53:10 +0200ullbeking(sid5364@gateway/web/irccloud.com/x-tebupervehbjefqp) (Ping timeout: 244 seconds)
2020-09-29 23:53:10 +0200chpatrick(sid239395@gateway/web/irccloud.com/x-glesujyjgaborgwe) (Ping timeout: 244 seconds)
2020-09-29 23:53:12 +0200JSharp(sid4580@wikia/JSharp) (Ping timeout: 260 seconds)
2020-09-29 23:53:12 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-yicffuughjxytvpv) (Ping timeout: 260 seconds)
2020-09-29 23:53:12 +0200^[_(sid43445@gateway/web/irccloud.com/x-fxdjmwbbnqygzcyt) (Ping timeout: 260 seconds)
2020-09-29 23:53:12 +0200enemeth79(sid309041@gateway/web/irccloud.com/x-cpgsitkowcnhohsm) (Ping timeout: 260 seconds)
2020-09-29 23:53:12 +0200idnar(sid12240@gateway/web/irccloud.com/x-lgbnafawhmfrrtxy) (Ping timeout: 260 seconds)
2020-09-29 23:53:17 +0200jetpack_joe(sid146137@gateway/web/irccloud.com/x-ozvqusskhemoywnb) (Ping timeout: 246 seconds)
2020-09-29 23:53:17 +0200nlofaro(sid258233@gateway/web/irccloud.com/x-qhanesmmszvewqrk) (Ping timeout: 246 seconds)
2020-09-29 23:53:18 +0200tnks(sid412124@gateway/web/irccloud.com/x-efpfhxrycxbcbhjo) (Ping timeout: 246 seconds)
2020-09-29 23:53:18 +0200integral(sid296274@p3m/member/integral) (Ping timeout: 246 seconds)
2020-09-29 23:53:18 +0200tiru(tiru@gateway/web/irccloud.com/x-fjglewsekyfbnkaz) (Ping timeout: 246 seconds)
2020-09-29 23:53:18 +0200rdivyanshu(sid322626@gateway/web/irccloud.com/x-uzofhbgtemdbbxba) (Ping timeout: 246 seconds)
2020-09-29 23:53:18 +0200alehander92(sid331460@gateway/web/irccloud.com/x-ozzrcywtgynyigrd) (Ping timeout: 246 seconds)
2020-09-29 23:53:23 +0200Shun131(sid377723@gateway/web/irccloud.com/x-czgeyqhvuxkikuaz) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200AndreasK(sid320732@gateway/web/irccloud.com/x-swfhbbclpahktdbs) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-siffhywpxdihuiyy) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200aristid(sid1599@gateway/web/irccloud.com/x-upybhzrqzplurklw) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200newhoggy(sid198874@gateway/web/irccloud.com/x-xognmkhlwjudtvku) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200fweht(uid404746@gateway/web/irccloud.com/x-rnrthvwccypgvabv) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200SrPx(sid108780@gateway/web/irccloud.com/x-setrbpmzwvmplhxx) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200edwardk(sid47016@haskell/developer/edwardk) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200graingert(sid128301@gateway/web/irccloud.com/x-oaiulwhfwjkhanpm) (Ping timeout: 272 seconds)
2020-09-29 23:53:23 +0200Kamuela(sid111576@gateway/web/irccloud.com/x-ffwzngkqaohtkylu) (Ping timeout: 272 seconds)
2020-09-29 23:53:27 +0200sgraf(sid326656@gateway/web/irccloud.com/x-jfxyumxhbkdnvfol) (Ping timeout: 240 seconds)
2020-09-29 23:53:27 +0200Nascha(sid212230@gateway/web/irccloud.com/x-jkdnlkimcaknykgu) (Ping timeout: 240 seconds)
2020-09-29 23:53:32 +0200rann(sid175221@gateway/web/irccloud.com/x-iiyrjbxtmscqghei) (Ping timeout: 260 seconds)
2020-09-29 23:53:32 +0200lexi-lambda(sid92601@gateway/web/irccloud.com/x-ejlceriojlkpcrvm) (Ping timeout: 260 seconds)
2020-09-29 23:53:32 +0200PoliticsII____(sid193551@gateway/web/irccloud.com/x-ayjlnphasddeuyig) (Ping timeout: 260 seconds)
2020-09-29 23:53:32 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-uvcgkpyqvrycitrg) (Ping timeout: 260 seconds)
2020-09-29 23:53:36 +0200yogani(sid42623@gateway/web/irccloud.com/x-dpwtitcwhdgbddrx)
2020-09-29 23:53:38 +0200ProofTechnique(sid79547@gateway/web/irccloud.com/x-oymjiupjrtcxewbp) (Ping timeout: 246 seconds)
2020-09-29 23:53:39 +0200J_Arcane(sid119274@gateway/web/irccloud.com/x-pttjdeuurfecvkvw) (Ping timeout: 246 seconds)
2020-09-29 23:53:41 +0200parseval(sid239098@gateway/web/irccloud.com/x-xpafjsslpgmpnfxd) (Ping timeout: 244 seconds)
2020-09-29 23:53:44 +0200gregberns_(sid315709@gateway/web/irccloud.com/x-fewxfbpuqadmolrk)
2020-09-29 23:53:47 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-qlcwmrqworrqgvap) (Ping timeout: 240 seconds)
2020-09-29 23:53:47 +0200Boarders(sid425905@gateway/web/irccloud.com/x-mwhqjtpnvbxsnunk) (Ping timeout: 240 seconds)
2020-09-29 23:53:47 +0200FMJz____(sid279245@gateway/web/irccloud.com/x-ltdrvaqbqwgrgkpe) (Ping timeout: 260 seconds)
2020-09-29 23:53:47 +0200albethere(sid457088@gateway/web/irccloud.com/x-hxohvxvcjqpojjdv) (Ping timeout: 260 seconds)
2020-09-29 23:53:48 +0200higherorder(sid185221@gateway/web/irccloud.com/x-wazqaevutzmkbpnh) (Ping timeout: 260 seconds)
2020-09-29 23:53:48 +0200sclv(sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds)
2020-09-29 23:53:48 +0200ibloom(sid350277@gateway/web/irccloud.com/x-otqdduodmhxboldg) (Ping timeout: 260 seconds)
2020-09-29 23:53:48 +0200dgpratt(sid193493@gateway/web/irccloud.com/x-scubtbcgbtduxhny) (Ping timeout: 260 seconds)
2020-09-29 23:53:48 +0200runeks(sid21167@gateway/web/irccloud.com/x-fmnyekuxeoeaxuso) (Ping timeout: 260 seconds)
2020-09-29 23:53:48 +0200glowcoil(sid3405@gateway/web/irccloud.com/x-aducpsaplmgukare) (Ping timeout: 260 seconds)
2020-09-29 23:53:59 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-pmydnplqbvmshcfw) (Ping timeout: 246 seconds)
2020-09-29 23:53:59 +0200adamse(sid72084@gateway/web/irccloud.com/x-ngwbhkuzhtraadxk) (Ping timeout: 246 seconds)
2020-09-29 23:54:01 +0200heyj(sid171370@gateway/web/irccloud.com/x-dyelktlqaszoriye) (Ping timeout: 272 seconds)
2020-09-29 23:54:01 +0200Adeon(sid418992@gateway/web/irccloud.com/x-rzelteelnhmuqmnc) (Ping timeout: 272 seconds)
2020-09-29 23:54:01 +0200mankyKitty(sid31287@gateway/web/irccloud.com/x-rnrltkoeycimcfms) (Ping timeout: 272 seconds)
2020-09-29 23:54:01 +0200spew(uid195861@gateway/web/irccloud.com/x-pyehxyldfhezcjcx) (Ping timeout: 272 seconds)
2020-09-29 23:54:01 +0200drbrule(sid395654@gateway/web/irccloud.com/x-kdjmwhavsxqjkxzh) (Ping timeout: 272 seconds)
2020-09-29 23:54:01 +0200liquorice(sid267884@gateway/web/irccloud.com/x-doobozzftsutluns) (Ping timeout: 272 seconds)
2020-09-29 23:54:07 +0200pent(sid313808@gateway/web/irccloud.com/x-txvaiafqfamllvau) (Ping timeout: 260 seconds)
2020-09-29 23:54:07 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-jtacgyvyddfakhzw) (Ping timeout: 260 seconds)
2020-09-29 23:54:07 +0200feepo(sid28508@gateway/web/irccloud.com/x-nwgrhdtytnogkuwe) (Ping timeout: 260 seconds)
2020-09-29 23:54:07 +0200kyagrd__(sid102627@gateway/web/irccloud.com/x-cczxifxwkgykmgul) (Ping timeout: 260 seconds)
2020-09-29 23:54:07 +0200sethetter__(sid17895@gateway/web/irccloud.com/x-mezhbcfrdugnnivw) (Ping timeout: 240 seconds)
2020-09-29 23:54:22 +0200carter(sid14827@gateway/web/irccloud.com/x-oplagrzaomanclrc) (Ping timeout: 260 seconds)
2020-09-29 23:54:22 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-rxoskppdgceviaxb) (Ping timeout: 260 seconds)
2020-09-29 23:54:22 +0200jonrh(sid5185@gateway/web/irccloud.com/x-rdqetwxjttlljyjv) (Ping timeout: 260 seconds)
2020-09-29 23:54:22 +0200Cir0X(sid221743@gateway/web/irccloud.com/x-pbplgsntntnfncyd) (Ping timeout: 260 seconds)
2020-09-29 23:54:22 +0200bitonic(sid61915@gateway/web/irccloud.com/x-ttnjiqhzlxpwrect) (Ping timeout: 260 seconds)
2020-09-29 23:54:39 +0200dsturnbull(sid347899@gateway/web/irccloud.com/x-inyrzexxuloskcia) (Ping timeout: 272 seconds)
2020-09-29 23:54:39 +0200nh2(sid309956@gateway/web/irccloud.com/x-iisiycrpvvmdqvri) (Ping timeout: 272 seconds)
2020-09-29 23:54:39 +0200cemerick(sid54985@gateway/web/irccloud.com/x-cavipfrpgeccrwhx) (Ping timeout: 272 seconds)
2020-09-29 23:54:39 +0200systemfault(sid267009@gateway/web/irccloud.com/x-wamvuwnhvmmhuwor) (Ping timeout: 272 seconds)
2020-09-29 23:54:39 +0200ReinH__(sid179972@gateway/web/irccloud.com/x-iqviielvspfzhzdh) (Ping timeout: 272 seconds)
2020-09-29 23:54:39 +0200darthThorik(sid39589@gateway/web/irccloud.com/x-bheqtddrvymsaipm) (Ping timeout: 272 seconds)
2020-09-29 23:54:39 +0200srhb(sid400352@NixOS/user/srhb) (Ping timeout: 272 seconds)
2020-09-29 23:54:42 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-sstfhgxjcldlniie) (Ping timeout: 260 seconds)
2020-09-29 23:54:42 +0200wildsebastian(sid324688@gateway/web/irccloud.com/x-fdvhisdzgkkbymer) (Ping timeout: 260 seconds)
2020-09-29 23:54:42 +0200jlpeters(sid25606@gateway/web/irccloud.com/x-asdpksetnctvsero) (Ping timeout: 260 seconds)
2020-09-29 23:54:50 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Read error: Connection reset by peer)
2020-09-29 23:55:01 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-29 23:55:07 +0200Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 240 seconds)
2020-09-29 23:55:24 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 23:55:27 +0200priyesh(~priyesh@84.39.117.57)
2020-09-29 23:55:33 +0200adius(sid321344@gateway/web/irccloud.com/x-hdzjqmobobrptkzk)
2020-09-29 23:55:33 +0200kip(sid71464@gateway/web/irccloud.com/x-fjkihcelyqagzxka)
2020-09-29 23:55:33 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-hgrhllzbreepikwl)
2020-09-29 23:55:35 +0200bjs(sid190364@gateway/web/irccloud.com/x-aabmdlfloeindmzc)
2020-09-29 23:55:38 +0200parseval(sid239098@gateway/web/irccloud.com/x-wfyohitmdltgloed)
2020-09-29 23:55:40 +0200pasukon(sid49097@gateway/web/irccloud.com/x-lvmzgpypnmechtdl)
2020-09-29 23:55:40 +0200koankeeper(sid216950@gateway/web/irccloud.com/x-khuknondgmnqwpfb)
2020-09-29 23:55:40 +0200Kamuela(sid111576@gateway/web/irccloud.com/x-kfraqxxakmiuotqp)
2020-09-29 23:55:41 +0200mpickering(sid78412@gateway/web/irccloud.com/x-gsxeeazgdrkchphy)
2020-09-29 23:55:42 +0200caasih(sid13241@gateway/web/irccloud.com/x-luakympvtdjyqgpe)
2020-09-29 23:55:43 +0200jetpack_joe(sid146137@gateway/web/irccloud.com/x-fcijrdwmdwvwvjor)
2020-09-29 23:55:43 +0200pent(sid313808@gateway/web/irccloud.com/x-yjtwetnkogukpzmx)
2020-09-29 23:55:48 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-cicafdvoiqgnsxlq)
2020-09-29 23:55:51 +0200kozowu(uid44796@gateway/web/irccloud.com/x-mavyewbrkcrhqppw)
2020-09-29 23:55:53 +0200SrPx(sid108780@gateway/web/irccloud.com/x-okcdajrvcwspmiib)
2020-09-29 23:55:54 +0200sclv(sid39734@haskell/developer/sclv)
2020-09-29 23:55:54 +0200rann(sid175221@gateway/web/irccloud.com/x-hsipljbilyngvaij)
2020-09-29 23:55:55 +0200glowcoil(sid3405@gateway/web/irccloud.com/x-lstfnintbamvabrb)
2020-09-29 23:55:56 +0200dgpratt(sid193493@gateway/web/irccloud.com/x-wpigpkrirfdonsca)
2020-09-29 23:55:56 +0200mankyKitty(sid31287@gateway/web/irccloud.com/x-talstgcllctsrrfx)
2020-09-29 23:55:56 +0200gaze__(sid387101@gateway/web/irccloud.com/x-qmornwhjznbupdqr)
2020-09-29 23:55:57 +0200nh2(sid309956@gateway/web/irccloud.com/x-pqceayhznxhzktfg)
2020-09-29 23:55:58 +0200rdivyanshu(sid322626@gateway/web/irccloud.com/x-otfoczynxqkuwcfm)
2020-09-29 23:55:59 +0200idnar(sid12240@gateway/web/irccloud.com/x-mrabweihkflesyxk)
2020-09-29 23:56:00 +0200edmundnoble(sid229620@gateway/web/irccloud.com/x-xrnysnfynyaztlfh)
2020-09-29 23:56:00 +0200bgavran(sid393312@gateway/web/irccloud.com/x-utpuhsntfvyeuxwq)
2020-09-29 23:56:00 +0200enemeth79(sid309041@gateway/web/irccloud.com/x-qzhpyccgmuuqsrsi)
2020-09-29 23:56:02 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-09-29 23:56:03 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-jdjhyordzkibihwa)
2020-09-29 23:56:04 +0200aizen_s(sid462968@gateway/web/irccloud.com/x-xinbndxmgepgligq)
2020-09-29 23:56:05 +0200chpatrick(sid239395@gateway/web/irccloud.com/x-enbwaldjayrccrvg)
2020-09-29 23:56:08 +0200hazard-pointer(sid331723@gateway/web/irccloud.com/x-neubmonftmwlbqas)
2020-09-29 23:56:10 +0200liquorice(sid267884@gateway/web/irccloud.com/x-hozrupsabnlghimn)
2020-09-29 23:56:10 +0200benl23(sid284234@gateway/web/irccloud.com/x-mykntzjgnngsyngw)
2020-09-29 23:56:10 +0200edwardk(sid47016@haskell/developer/edwardk)
2020-09-29 23:56:10 +0200aristid(sid1599@gateway/web/irccloud.com/x-wgvcorkiyhxgnpel)
2020-09-29 23:56:12 +0200cstrahan(sid36118@gateway/web/irccloud.com/x-ceukpoxrsnzpwlkj)
2020-09-29 23:56:14 +0200AndreasK(sid320732@gateway/web/irccloud.com/x-degmzwhevcbnxqim)
2020-09-29 23:56:14 +0200albethere(sid457088@gateway/web/irccloud.com/x-kdubkdobgmtjdtxg)
2020-09-29 23:56:15 +0200drupol(sid117588@gateway/web/irccloud.com/x-rynwclhcvdkvjpek)
2020-09-29 23:56:15 +0200jlpeters(sid25606@gateway/web/irccloud.com/x-exhssvdoqfiaasbd)
2020-09-29 23:56:15 +0200higherorder(sid185221@gateway/web/irccloud.com/x-jdkrtrawpxzgiheg)
2020-09-29 23:56:16 +0200buggymcbugfix(sid432603@gateway/web/irccloud.com/x-fjvfxmicxyzmpfmg)
2020-09-29 23:56:17 +0200bitonic(sid61915@gateway/web/irccloud.com/x-qsklantsesnflaev)
2020-09-29 23:56:17 +0200tnks(sid412124@gateway/web/irccloud.com/x-ucsxwstjhtlsvuiy)
2020-09-29 23:56:18 +0200alunduil(alunduil@gateway/web/irccloud.com/x-upaxhaxxkezwifdm)
2020-09-29 23:56:21 +0200liszt(sid336875@gateway/web/irccloud.com/x-fgkyqbrdplybngov)
2020-09-29 23:56:23 +0200o1lo01ol_(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-09-29 23:56:23 +0200PoliticsII____(sid193551@gateway/web/irccloud.com/x-hownnnwfspnbpudf)
2020-09-29 23:56:24 +0200xyggos(uid216035@gateway/web/irccloud.com/x-lhaarqbamcocycpv)
2020-09-29 23:56:24 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 23:56:26 +0200adamse(sid72084@gateway/web/irccloud.com/x-zzuaotsqlmzvumul)
2020-09-29 23:56:27 +0200nlofaro(sid258233@gateway/web/irccloud.com/x-yqtwjxxgifuvztsm)
2020-09-29 23:56:27 +0200joshmeredith(sid387798@gateway/web/irccloud.com/x-lhhtwrcyukiolswv)
2020-09-29 23:56:27 +0200darthThorik(sid39589@gateway/web/irccloud.com/x-sgyzfgzinerqmyki)
2020-09-29 23:56:29 +0200spew(uid195861@gateway/web/irccloud.com/x-fpkdkamqeywbdxvp)
2020-09-29 23:56:30 +0200heyj(sid171370@gateway/web/irccloud.com/x-lkawpqiwbkazqhbr)
2020-09-29 23:56:31 +0200alexknvl(sid259568@gateway/web/irccloud.com/x-shhushfytlhxjajz)
2020-09-29 23:56:31 +0200Shun131(sid377723@gateway/web/irccloud.com/x-dfpyabbpewgqppso)
2020-09-29 23:56:31 +0200srhb(sid400352@NixOS/user/srhb)
2020-09-29 23:56:32 +0200FMJz____(sid279245@gateway/web/irccloud.com/x-fkwwfjqdqgntnoof)
2020-09-29 23:56:33 +0200feepo(sid28508@gateway/web/irccloud.com/x-pklyfcxlyitgyefj)
2020-09-29 23:56:35 +0200hamishmack(sid389057@gateway/web/irccloud.com/x-joqbkxseaudzewuy)
2020-09-29 23:56:36 +0200carter(sid14827@gateway/web/irccloud.com/x-ulfazeqjsbkemqzk)
2020-09-29 23:56:36 +0200ReinH__(sid179972@gateway/web/irccloud.com/x-vgpjckyigmgjdwtk)
2020-09-29 23:56:38 +0200wildsebastian(sid324688@gateway/web/irccloud.com/x-erwaomugptysqssz)
2020-09-29 23:56:38 +0200drbrule(sid395654@gateway/web/irccloud.com/x-cqgwchvakrtjjklm)
2020-09-29 23:56:39 +0200constR(uid58205@gateway/web/irccloud.com/x-szdnojhbzltywegh)
2020-09-29 23:56:39 +0200Boarders(sid425905@gateway/web/irccloud.com/x-hphcbtvbxebihmwg)
2020-09-29 23:56:40 +0200^[_(sid43445@gateway/web/irccloud.com/x-eiyktghegavpjkto)
2020-09-29 23:56:43 +0200Adeon(sid418992@gateway/web/irccloud.com/x-abdgcghyselnrphw)
2020-09-29 23:56:46 +0200mu_(~mu@unaffiliated/mu) (Read error: Connection reset by peer)
2020-09-29 23:56:47 +0200J_Arcane(sid119274@gateway/web/irccloud.com/x-onnffueiprgvpemg)
2020-09-29 23:56:48 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-09-29 23:56:48 +0200systemfault(sid267009@gateway/web/irccloud.com/x-dhvxgxaiixztrssx)
2020-09-29 23:56:49 +0200Cir0X(sid221743@gateway/web/irccloud.com/x-evcopvnmbvtlefpi)
2020-09-29 23:56:49 +0200fweht(uid404746@gateway/web/irccloud.com/x-tjcgtmdwgfjwwrvb)
2020-09-29 23:56:50 +0200jonrh(sid5185@gateway/web/irccloud.com/x-kooeapdfcwrhfwoh)
2020-09-29 23:56:52 +0200dmj`(sid72307@gateway/web/irccloud.com/x-svykqxbmoatuuexu)
2020-09-29 23:56:54 +0200alanz(sid110616@gateway/web/irccloud.com/x-xxwlmdhgwfiixuer)
2020-09-29 23:56:55 +0200tiru(tiru@gateway/web/irccloud.com/x-gfuwglvcfdlytqib)
2020-09-29 23:56:56 +0200dsal(sid13060@gateway/web/irccloud.com/x-xyknplqixjlyzxrc)
2020-09-29 23:56:56 +0200verlet64_(sid261276@gateway/web/irccloud.com/x-wqinasijpftynmsg)
2020-09-29 23:56:56 +0200JSharp(sid4580@wikia/JSharp)
2020-09-29 23:57:00 +0200Nascha(sid212230@gateway/web/irccloud.com/x-qojdwpoczxkroamg)
2020-09-29 23:57:01 +0200wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-09-29 23:57:02 +0200ullbeking(sid5364@gateway/web/irccloud.com/x-uurdaxugthoxygpu)
2020-09-29 23:57:04 +0200thi(sid97277@gateway/web/irccloud.com/x-mxfhyckwttphlfps)
2020-09-29 23:57:05 +0200grfn(sid449115@gateway/web/irccloud.com/x-wfhscjdtkvezcxxr)
2020-09-29 23:57:05 +0200kyagrd__(sid102627@gateway/web/irccloud.com/x-ueauikqbfiitnall)
2020-09-29 23:57:05 +0200rodlogic__(sid214676@gateway/web/irccloud.com/x-amlajdzmxjyobgrq)
2020-09-29 23:57:07 +0200integral(sid296274@p3m/member/integral)
2020-09-29 23:57:13 +0200cemerick(sid54985@gateway/web/irccloud.com/x-latpmrffuxrdviie)
2020-09-29 23:57:14 +0200hnOsmium0001(uid453710@gateway/web/irccloud.com/x-arhqczabjmakjtmj)
2020-09-29 23:57:14 +0200heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-09-29 23:57:16 +0200mu_(~mu@unaffiliated/mu)
2020-09-29 23:57:16 +0200sethetter__(sid17895@gateway/web/irccloud.com/x-igokhppslfuoizhb)
2020-09-29 23:57:22 +0200lexi-lambda(sid92601@gateway/web/irccloud.com/x-jxufrnuiocmjeutw)
2020-09-29 23:57:23 +0200nick_h(sid319833@gateway/web/irccloud.com/x-utxytiydddaakjtw)
2020-09-29 23:57:28 +0200alehander92(sid331460@gateway/web/irccloud.com/x-nsbojrlduleyvwek)
2020-09-29 23:57:29 +0200graingert(sid128301@gateway/web/irccloud.com/x-bllwrkosbcfwbepb)
2020-09-29 23:57:30 +0200jackdk(sid373013@gateway/web/irccloud.com/x-zfxvkywjzvccpywo)
2020-09-29 23:57:33 +0200ibloom(sid350277@gateway/web/irccloud.com/x-sdzgxluappwccdwo)
2020-09-29 23:57:33 +0200newhoggy(sid198874@gateway/web/irccloud.com/x-ajbxvvzkmwoozmcf)
2020-09-29 23:57:33 +0200runeks(sid21167@gateway/web/irccloud.com/x-goodnfpseiwfywis)
2020-09-29 23:57:36 +0200sgraf(sid326656@gateway/web/irccloud.com/x-xhygnbznyfdcpzbn)
2020-09-29 23:57:50 +0200elliott_(~elliott_@pool-100-36-54-163.washdc.fios.verizon.net)
2020-09-29 23:57:52 +0200ProofTechnique(sid79547@gateway/web/irccloud.com/x-kqyovfdcbjptkkuq)
2020-09-29 23:58:19 +0200mcfilib(sid302703@gateway/web/irccloud.com/x-rynmppnojynjznyn)
2020-09-29 23:58:22 +0200dsturnbull(sid347899@gateway/web/irccloud.com/x-xjhlceifjqvpqvdm)
2020-09-29 23:58:25 +0200betawaffle(sid2730@gateway/web/irccloud.com/x-orjomwskylmorsde)
2020-09-29 23:58:32 +0200Firedancer(sid336191@gateway/web/irccloud.com/x-cywbocoitmzxkenh)
2020-09-29 23:58:34 +0200filwisher(~filwisher@cpc76738-dals23-2-0-cust186.20-2.cable.virginm.net) (Ping timeout: 272 seconds)
2020-09-29 23:59:11 +0200affinespaces(sid327561@gateway/web/irccloud.com/x-vnawyltnmuxsidss)
2020-09-29 23:59:38 +0200o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds)