Home liberachat/#haskell: Logs Calendar

Logs on 2021-10-27 (liberachat/#haskell)

00:02:56 <PuzzledSA> Good day, I had a question about installing ghc and cabal-install from source. For various reasons, it is impractical to use prepackaged versions, and I need it to be installed in /opt. I've successfully bootstrapped ghc (using a prepackaged version on a temporary system to build it) along with Cabal libs, but could find no clear instructions,
00:02:57 <PuzzledSA> muddled through some of cabal-install and dependencies, and got stuck on ghc-prim with an error I don't understand. I'm more of a sysadmin than a developer and was hoping someone could interpret this for me?
00:06:20 <PuzzledSA> I had been doing "runhaskell Setup configure --prefix=/opt; runhaskell Setup build; runhaskell Setup install" inside each package, and have installed Cabal, echo, network, th-compat, network-uri, HTTP, hashable, async, base16-bytestring, resolv, zlib, cryptohash-sha256, splitmix, random, edit-distance, and base64-bytestring successfully. Upon
00:06:21 <PuzzledSA> trying to build ghc-prim as a dependency for ed25519, I came up against "Setup: Error: could not find module: GHC.CString with any suffix: ["hi"] in the search path: ["dist/build"]
00:08:38 <PuzzledSA> If anyone has a pointer to a recent set of instructions on how to build this from source, or can explain what needs to happen to correct the error I'm seeing, I'd be grateful.
00:11:56 <geekosaur> if you have ghc then it should have installed ghc-prim along with it
00:14:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
00:14:24 <geekosaur> so this suggests something is wrong with your ghc install, or you are simply trying to install a package that cannot be installed standalone like that
00:14:51 <geekosaur> ghc-prim should be listed in `ghc-pkg list --global`
00:15:27 <geekosaur> (I don't think ghc-prim can be installed from outside the GHC source tree)
00:17:14 <PuzzledSA> looking... thanks. It does look like ghc-prim 0.6.1 is installed. Let me chase down dependencies here and see what the reason is for this.
00:17:52 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
00:18:12 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
00:18:29 <geekosaur> (also, welcome! I'm an ex-sysadmin myself.)
00:19:08 Lord_of_Life_ is now known as Lord_of_Life
00:20:03 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
00:20:38 <PuzzledSA> cabal-install-3.6.0.0 is asking for hackage-security >=0.6.0.1 && < 0.7. hackage-security-0.6.0.1 wants ed25519 >= 0.0 && <0.1. ed25519 wants ghc-prim >=0.1 && <0.5, so the installed version of 0.6.1 does not fulfill the dependency
00:21:13 <PuzzledSA> I'm totally unfamiliar with Haskell but totally familiar with dependency hell (thanks, Perl, Node, PHP, etc. heheh)
00:21:28 <geekosaur> that… sounds odd. afaik 3.6.0.0 and deps shouldbuild with ghc 8.10.7 and its ghc-prim
00:21:50 <sclv> wait are you trying to build cabal with ghc 9?
00:22:06 <geekosaur> 0.6.1 is with my 8.10.7
00:22:12 <PuzzledSA> this is ghc-8.10.7
00:22:53 <sclv> ah ok maybe try a newer cabal install? 3.6.2.0?
00:23:25 <PuzzledSA> it is possible something went awry during the bootstrap, I suppose, I had to use ghc-8.6.3 to boorstrap
00:23:35 <PuzzledSA> aaaaah bootstrap
00:26:31 <PuzzledSA> 3.6.0.0 is the latest listed on the downloads page at https://www.haskell.org/cabal/download.html
00:27:17 <PuzzledSA> trawling round...
00:27:27 <sclv> yeah we need to update that sigh. You can find the newer in the dir structure but it shouldn’t matter
00:27:38 <sclv> For bootstrapping look at the github repo
00:27:50 <PuzzledSA> ok found https://hackage.haskell.org/package/cabal-install-3.6.2.0/cabal-install-3.6.2.0.tar.gz
00:28:00 <PuzzledSA> lemme give this a shot
00:28:06 <sclv> There’s scripts there, in the repo
00:28:38 <sclv> https://github.com/haskell/cabal/tree/master/bootstrap
00:29:01 op_4 joins (~op_4@user/op-4/x-9116473)
00:30:14 <op_4> does anyone have a resource/quick explanation for what monad transformers are, assuming i know sufficiently much category theory?
00:32:05 <PuzzledSA> Unfortunately the target machines do not have direct Internet access so git is a bit painful. cabal-install-3.6.2.0 has the same dependency on hackage-security >=0.6.0.1 && <0.7
00:32:36 <geekosaur> op_4, imo you don't need category theory to understand monad transformers
00:33:34 <op_4> geekosaur: ah, sorry, perhaps i misrepresented my stance: what if i want to know what monad transformers are, categorically? :p
00:33:39 <geekosaur> https://www.fpcomplete.com/haskell/tutorial/monad-transformers/ https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.71.596&rep=rep1&type=pdf
00:34:04 <geekosaur> not sure they have one, they're more of an adaptation to haskell limitations I think
00:34:13 <geekosaur> just as haskell monads are not full CT monads
00:34:37 <op_4> geekosaur: ok, great, that's useful to know too. Thanks for the links!
00:34:48 <jackdk> "endofunctors on the category of monads", perhaps? https://hackage.haskell.org/package/mmorph-1.2.0/docs/Control-Monad-Morph.html
00:35:00 × xff0x quits (~xff0x@2001:1a81:53d3:900:4e53:4d86:e32e:4caf) (Ping timeout: 260 seconds)
00:35:02 <jackdk> I don't know CT well enough to say - I'm just banging words together
00:35:33 <op_4> geekosaur: what do you mean they're not actually monads? Is this something like laws for unit and multiplication aren't actually enforced?
00:35:47 × Cale quits (~cale@2607:fea8:995f:d3e0:a7e3:45a3:f953:e812) (Ping timeout: 264 seconds)
00:35:50 <op_4> jackdk: interesting, thanks, that certainly seems reasonable
00:35:50 xff0x joins (~xff0x@2001:1a81:53d3:900:1ab0:e69a:7282:ec2c)
00:36:07 <geekosaur> more like they're limited to the (pseudo)category Hask instead of all categories
00:36:41 <geekosaur> that is, theyy are only defined in the not-quite-a-category of Haskell types
00:38:31 <PuzzledSA> okay, I see what may be the issue here. The webpage for ed25519 at https://hackage.haskell.org/package/ed25519 describes the ghc-prim dependency as >= 0.1 && < 0.7 but when I run the configure in ed25519-0.0.5.0 it says the dependency is >= 0.1 && <0.5
00:38:46 <op_4> geekosaur: oh, sure. i don't know that this robs them of being monads in any meaningful way. Covariant powerset is a monoid only on set, but it's still a monad.
00:39:14 <op_4> geekosaur: but you did say something completely new to me. What do you mean by pseudo-category?
00:39:22 <geekosaur> Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
00:40:09 <geekosaur> I mean that Hask is commonly considered a category, but because of bottom it isn't one. There are extensions to categories that would admit it, but I don't know how much theoreticla work has gone into that
00:40:43 <sclv> PuzzledSA: since you’re building everything by hand you can do that manually
00:40:49 <sclv> The change
00:40:49 <op_4> afaik, a pseudo-category is a weakened category object in a 2-category where composition is only associative and unital up to structured 2-cells
00:40:52 <PuzzledSA> I am trying to *build* cabal in the first place... can I just edit the "ed25519.cabal" file?
00:40:55 <op_4> geekosaur: aha, i see, thanks!
00:42:08 <geekosaur> PuzzledSA, yes, that's whyat a metadata revision is
00:42:21 <PuzzledSA> It builds and seems to be fine.
00:42:22 <geekosaur> so you should be able to simply change the upper bound to < 7
00:43:44 <PuzzledSA> Already did and it works. Thanks, broke the dependency logjam (at least for now!)
00:46:16 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
00:48:29 × echoSMILE quits (~echoSMILE@user/echosmile) (Ping timeout: 256 seconds)
00:48:56 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
00:49:45 <PuzzledSA> Okay that got me through several more. I'm now working on "base" which is giving me three repeated stanzas of "<interactive>:1:1: error: attempting to use module 'main:Prelude' (./Prelude.hs) which is not loaded"
00:49:55 × MQ-17J quits (~MQ-17J@8.6.144.197) (Ping timeout: 260 seconds)
00:50:22 <geekosaur> you have another dependency issue somewhere, base can't be installed outside of ghc
00:50:38 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
00:50:49 <geekosaur> you should have base 4.14.3.0 installed already
00:50:52 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
00:51:23 <PuzzledSA> Okay, looking around. This is due to tar-0.5.1.1 wanting base >=4 && <4.14 ... will inspect things a bit
00:51:45 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
00:52:08 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
00:52:21 <PuzzledSA> 4.17 on the webpage
00:52:44 <geekosaur> metadata rev 4 bumped the base revision to >=4 and <4.17
00:53:10 <PuzzledSA> so if I skip trying to build base and just bump tar dependency for base to 4.17 it looks good
00:53:21 <geekosaur> metadata revisions do complicate doing things this way
00:53:57 <geekosaur> but they greatly simplify hackage administration, when all that's needed is a rev bump in the cabal file and not a whole new upload
00:54:21 <awpr> download the whole 00-index.tgz and extract the cabal files?
00:54:21 <PuzzledSA> Yeah, sorry, and I'm coming into this with zero familiarity with the tools, so I wasn't even really sure where to look at first
00:54:34 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
00:55:04 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds)
00:55:15 <geekosaur> basically, if you're pulling stuff from hackage, look for the string "metadata revisions". it's a link. follow the link to see what package dependency revisions have been made
00:55:17 <awpr> Hackage uses the, uh, _interesting_ technique of appending revised cabal files to the .tar, so the last one will overwrite all the others and will be the most recent
00:55:58 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
00:56:00 <awpr> so if you put that index tarball on the target machine, you can just grab the latest .cabal file for the current package out of it
00:57:05 × fluffyballoon quits (~user@131.93.208.196) (Ping timeout: 260 seconds)
00:57:50 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
01:00:58 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
01:01:08 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
01:05:00 <PuzzledSA> awpr, ah, I see. Okay, well, I think I am past my logjam here, and I appreciate the hints folks
01:06:02 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
01:16:32 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds)
01:16:35 <sclv> You can download the revised cabal files from hackage directly too
01:32:24 Guest4914 joins (~Guest49@99-125-181-14.lightspeed.miamfl.sbcglobal.net)
01:35:12 × xff0x quits (~xff0x@2001:1a81:53d3:900:1ab0:e69a:7282:ec2c) (Ping timeout: 260 seconds)
01:35:56 xff0x joins (~xff0x@2001:1a81:53d3:900:7766:a729:f554:f683)
01:36:01 × Guest4914 quits (~Guest49@99-125-181-14.lightspeed.miamfl.sbcglobal.net) (Client Quit)
01:38:50 dd joins (~dd@99-125-181-14.lightspeed.miamfl.sbcglobal.net)
01:39:31 × dd quits (~dd@99-125-181-14.lightspeed.miamfl.sbcglobal.net) (Remote host closed the connection)
01:46:52 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
01:47:10 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
01:47:11 × xff0x quits (~xff0x@2001:1a81:53d3:900:7766:a729:f554:f683) (Ping timeout: 245 seconds)
01:49:16 xff0x joins (~xff0x@2001:1a81:5218:9100:819b:8b2:7ae0:c230)
01:49:16 <PuzzledSA> WOO SUCCESS! Some more various dependencies later, it all builds. Thanks very much geekosaur and awpr, your assistance is much appreciated
01:49:21 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
01:52:25 nehsou^ joins (~nehsou@wsip-68-227-92-38.mc.at.cox.net)
01:52:26 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
01:53:07 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
01:53:10 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
02:00:04 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
02:00:56 trillp joins (~user@69.233.98.238)
02:05:25 × PuzzledSA quits (~PuzzledSA@cache0-req.hlcrwi.sol.net) (Quit: Client closed)
02:10:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:14:42 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
02:18:27 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
02:19:30 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
02:24:01 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
02:29:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
02:32:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:33:59 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
02:35:23 × td_ quits (~td@94.134.91.24) (Ping timeout: 260 seconds)
02:37:00 td_ joins (~td@muedsl-82-207-238-060.citykom.de)
02:37:58 bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
02:40:04 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
02:40:59 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
02:41:40 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:44:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
02:48:59 lavaman joins (~lavaman@98.38.249.169)
02:53:35 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
02:59:05 × bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Quit: Leaving)
02:59:23 bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
03:04:15 × yrlnry quits (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 260 seconds)
03:06:38 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
03:11:34 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:11:34 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
03:11:34 wroathe joins (~wroathe@user/wroathe)
03:12:41 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
03:17:16 × bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Quit: Leaving)
03:17:35 bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
03:22:04 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
03:23:50 lavaman joins (~lavaman@98.38.249.169)
03:28:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
03:30:25 yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net)
03:30:38 zebrag joins (~chris@user/zebrag)
03:33:05 lavaman joins (~lavaman@98.38.249.169)
03:34:47 trillp` joins (~user@2600:1700:28e2:14d0:4e6b:a714:bd6d:a4b5)
03:35:26 × trillp quits (~user@69.233.98.238) (Ping timeout: 260 seconds)
03:41:30 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
03:43:32 × bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Ping timeout: 260 seconds)
03:43:35 jinsun joins (~quassel@user/jinsun)
03:46:49 trillp` is now known as trillp
03:58:11 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:58:11 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
03:58:11 wroathe joins (~wroathe@user/wroathe)
04:00:48 × yrlnry quits (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 260 seconds)
04:03:07 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
04:06:26 × zmt00 quits (~zmt00@user/zmt00) (Quit: Gone.)
04:06:29 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
04:06:48 zmt00 joins (~zmt00@user/zmt00)
04:10:56 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 245 seconds)
04:12:35 jinsun joins (~quassel@user/jinsun)
04:12:47 × evertedsphere quits (sid434122@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:15:25 × brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Ping timeout: 260 seconds)
04:15:56 phma_ joins (~phma@host-67-44-208-16.hnremote.net)
04:17:00 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
04:18:59 × phma quits (~phma@host-67-44-208-12.hnremote.net) (Ping timeout: 260 seconds)
04:25:11 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
04:41:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:03:34 × zmt00 quits (~zmt00@user/zmt00) (Quit: Gone.)
05:05:06 zmt00 joins (~zmt00@user/zmt00)
05:12:49 × nehsou^ quits (~nehsou@wsip-68-227-92-38.mc.at.cox.net) (Remote host closed the connection)
05:15:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
05:15:55 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
05:16:00 phma_ is now known as phma
05:16:08 lavaman joins (~lavaman@98.38.249.169)
05:16:16 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
05:22:55 × brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection)
05:28:40 dsrt^ joins (~dsrt@wsip-68-227-92-38.mc.at.cox.net)
05:29:50 mei joins (~mei@user/mei)
05:31:07 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:35:14 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
05:43:27 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
05:44:39 × zebrag quits (~chris@user/zebrag) (Remote host closed the connection)
05:44:41 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 245 seconds)
05:47:37 Liudvikas joins (~Liudvikas@213.197.176.162)
05:49:55 jinsun joins (~quassel@user/jinsun)
05:51:22 × trillp quits (~user@2600:1700:28e2:14d0:4e6b:a714:bd6d:a4b5) (Remote host closed the connection)
05:55:56 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 245 seconds)
05:59:55 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
06:00:16 alzgh joins (~alzgh@user/alzgh)
06:01:04 × Liudvikas quits (~Liudvikas@213.197.176.162) (Quit: Konversation terminated!)
06:01:43 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
06:03:30 geekosaur joins (~geekosaur@xmonad/geekosaur)
06:03:32 × xff0x quits (~xff0x@2001:1a81:5218:9100:819b:8b2:7ae0:c230) (Ping timeout: 260 seconds)
06:04:12 xff0x joins (~xff0x@2001:1a81:5218:9100:c348:b23d:7d32:f26e)
06:06:10 × dsrt^ quits (~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds)
06:06:44 michalz joins (~michalz@185.246.204.125)
06:17:33 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
06:24:01 mishugana joins (~mishugana@user/mishugana)
06:24:24 <mishugana> hello folks, has anybody read the book, "functional programming made easier" by Scalfani? (The book teached purescript)
06:24:53 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
06:24:59 <mishugana> if so, can you please share your review briefly?
06:25:35 × xff0x quits (~xff0x@2001:1a81:5218:9100:c348:b23d:7d32:f26e) (Ping timeout: 264 seconds)
06:26:24 xff0x joins (~xff0x@2001:1a81:5218:9100:27b2:477a:f50:38f5)
06:26:50 <mishugana> also, if possible, a comparison to "haskell programming from first principles" would be useful for me
06:27:23 <mishugana> for reference, I've devoured Graham Hutton's "Programming in Haskell", now wish to start learning Haskell for real-world projects
06:27:34 <mishugana> merci beaucoup!
06:29:59 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
06:34:45 <mishugana> anybody?
06:35:54 <jackdk> Possibly a better fit for a discussion forum - you are asking for an in-depth comparison between multiple large books
06:36:25 fendor joins (~fendor@77.119.200.17.wireless.dyn.drei.com)
06:38:05 <mishugana> Hmmm
06:38:19 kuribas joins (~user@ptr-25vy0i9jhzblfidtsev.18120a2.ip6.access.telenet.be)
06:39:39 chomwitt joins (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374)
06:40:16 × michalz quits (~michalz@185.246.204.125) (Remote host closed the connection)
06:43:49 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
06:44:15 michalz joins (~michalz@185.246.204.109)
06:49:46 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
06:49:48 × michalz quits (~michalz@185.246.204.109) (Remote host closed the connection)
06:50:55 michalz joins (~michalz@185.246.204.109)
06:53:51 jakalx joins (~jakalx@base.jakalx.net)
06:55:07 lortabac joins (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr)
06:56:24 zincy joins (~tom@2a00:23c8:970c:4801:d180:6949:f6bd:3923)
06:57:23 ubert joins (~Thunderbi@91.141.66.139.wireless.dyn.drei.com)
07:00:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:01:45 × mishugana quits (~mishugana@user/mishugana) (Quit: leaving)
07:06:38 chele joins (~chele@user/chele)
07:08:43 <Inst> @mishugana use ##programming for that, this is #haskell central and has a #haskell-offtopic
07:08:43 <lambdabot> Unknown command, try @list
07:10:14 marinelli parts (~marinelli@gateway/tor-sasl/marinelli) ()
07:10:31 <yushyin> also this is IRC, you don't need @ before of nicks
07:15:07 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:19:00 mbuf joins (~Shakthi@122.178.244.237)
07:20:55 <ski> (in fact, it's confusing, since `@', in connection with nicknames, is already used to mean something else. if you mean to refer to, or address, someone, simply mention their nickname)
07:21:03 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
07:23:24 ub joins (~Thunderbi@91.141.66.139.wireless.dyn.drei.com)
07:32:46 × ub quits (~Thunderbi@91.141.66.139.wireless.dyn.drei.com) (Quit: ub)
07:33:17 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:35:46 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
07:37:58 gehmehgeh joins (~user@user/gehmehgeh)
07:38:16 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 265 seconds)
07:39:02 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
07:39:46 fef joins (~thedawn@user/thedawn)
07:42:17 <dminuoso> Conflating naming conventions is an ubiquitous problem. The way we name channels in IRC is how twitter identifies processible tags
07:42:18 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 260 seconds)
07:46:38 ski always wondered how it distinguished between different topics, whose tags happen to be spelled the same way
07:46:43 × ubert quits (~Thunderbi@91.141.66.139.wireless.dyn.drei.com) (Quit: ubert)
07:56:23 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
08:00:07 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
08:03:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
08:04:29 acidjnk_new joins (~acidjnk@p200300d0c7238d51605dadc8a3f75380.dip0.t-ipconnect.de)
08:04:34 cfricke joins (~cfricke@user/cfricke)
08:05:17 hendursa1 joins (~weechat@user/hendursaga)
08:07:20 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:08:24 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:15:45 echoSMILE joins (~echoSMILE@user/echosmile)
08:16:58 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
08:17:33 geekosaur joins (~geekosaur@xmonad/geekosaur)
08:17:35 d0ku joins (~d0ku@178.43.15.137.ipv4.supernova.orange.pl)
08:20:43 × chomwitt quits (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds)
08:24:52 <zincy> applyToFive :: (forall a. a -> a) -> Int
08:24:54 <zincy> applyToFive f = f 5
08:25:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
08:25:43 <zincy> Is rankN types all about delaying the instantiation of type parameters?
08:26:31 <ski> i suppose that's one way to phrase it
08:26:55 <ski> but it's also about controlling *who* gets to pick and choose (caller or callee)
08:26:55 × echoSMILE quits (~echoSMILE@user/echosmile) (Ping timeout: 256 seconds)
08:27:22 osewingsn joins (~ngpc@2603-8081-3e05-e2d0-bb2d-8519-eb6b-baf1.res6.spectrum.com)
08:27:27 <ski> and about restricting the scope of the tyvar. and possibly being able to pick more than one time, for a single call to the main operation
08:27:48 × osewingsn quits (~ngpc@2603-8081-3e05-e2d0-bb2d-8519-eb6b-baf1.res6.spectrum.com) (Client Quit)
08:27:59 <zincy> So applyToFive is basically delegating the responsibility of ensuring tyVar a is picked correctly to the caller
08:28:06 <ski> and can be used for hiding of implementation details (which type(s) your implementation actually operates with)
08:28:22 <zincy> Is that hiding related to existential types
08:28:36 <ski> somewhat
08:28:50 <zincy> I am trying to understand existential types as I heard that information hiding is tantamount to existential types
08:29:14 <ski> from `exists a. (..a.. -> ...)', `(forall a. ..a..) -> ...' follows (but not vice versa, in general)
08:29:24 <ski> yes
08:30:03 × xff0x quits (~xff0x@2001:1a81:5218:9100:27b2:477a:f50:38f5) (Ping timeout: 260 seconds)
08:30:42 <ski> in your case, you could just as well think of it as `applyToFive :: exists a. (a -> a) -> Int' (because you only pick a single type for `a', and it doesn't depend on any run-time input (arguments) to `applyToFive')
08:31:29 <ski> (but if you had `foo f = (f (5 :: Int),f False)', then you couldn't express it like that)
08:32:08 <zincy> oh so rankNTypes are somewhat related to information hiding, but existential types are directly related??
08:32:38 xff0x joins (~xff0x@2001:1a81:5218:9100:27b2:477a:f50:38f5)
08:33:38 nschoe joins (~quassel@178.251.84.79)
08:36:20 <zincy> Just to clarify, `applyToFive :: (forall a. a -> a) -> Int` can be thought of as `applyToFive :: exists a. (a -> a) -> Int
08:36:25 <zincy> Is that right?
08:36:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:37:01 jumper149 joins (~jumper149@80.240.31.34)
08:38:08 <ski> `Rank2Types' refers to being able to use `forall' in an argument type. `RankNTypes' to also be able to use `forall' in argument types of (callback) arguments types, and so on
08:38:55 <zincy> So N is the number of nestings of our quantifier
08:39:13 <ski> `forall' and `exists' are dual, they give opposite patterns of who gets to pick a type and who has to handle whatever is picked (without knowing what the choice was, in general), out of caller vs. callee
08:39:26 <ski> the number of *left*-nestings inside `->', yes
08:40:04 mc47 joins (~mc47@xmonad/TheMC47)
08:41:01 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
08:41:05 <ski> <zincy> Just to clarify, `applyToFive :: (forall a. a -> a) -> Int` can be thought of as `applyToFive :: exists a. (a -> a) -> Int
08:41:29 <ski> not in general. in this particular case, yes, because you're picking `a' exactly once (and not depending on run-time input)
08:41:48 <ski> consider
08:41:57 <ski> length :: forall a. ([a] -> Int)
08:42:25 echoSMILE joins (~echoSMILE@user/echosmile)
08:42:25 <ski> this says that, for all types `a', `length' can be called with a list of `a's, and will produce an `Int' as result
08:42:32 <ski> now, this is equivalent to
08:42:42 <ski> length :: (exists a. [a]) -> Int
08:43:15 <ski> which says that, calling `length' will produce an `Int' as result, provided there exists some type `a' such that the argument is a list of `a's
08:43:45 <ski> in general, `(exists a. ..a..) -> ...' is equivalent to `forall a. (..a.. -> ...)'
08:44:04 <ski> also, `... -> (forall a. ..a..)' is equivalent to `forall a. (... -> ..a..)'
08:44:17 <ski> so, e.g.
08:44:29 <ski> replicate :: forall a. (Int -> a -> [a])
08:44:33 <ski> is equivalent to
08:44:42 <ski> replicate :: Int -> (forall a. a -> [a])
08:44:57 osewingsn joins (~ngpc@2603-8081-3e05-e2d0-bb2d-8519-eb6b-baf1.res6.spectrum.com)
08:44:57 <ski> zincy : this making any sense, so far ?
08:45:21 × osewingsn quits (~ngpc@2603-8081-3e05-e2d0-bb2d-8519-eb6b-baf1.res6.spectrum.com) (Remote host closed the connection)
08:46:30 <zincy> So the normal length (no lang extensions) function can be thought of as 'exists'?
08:47:49 <ski> you could think of the *argument* type as being wrapped in an `exists', sure
08:48:37 <ski> `length' doesn't care about the element type. as long as there exists some element type such that the argument is a lost of such elements, `length' will work fine
08:48:45 <zincy> *argument* type is (exists a. [a]) -> Int ?
08:48:57 <zincy> I mean (exists a. [a])
08:49:05 <ski> no, `exists a. [a]' is the argument type there
08:49:06 <ski> yea
08:49:26 <ski> `forall' is what expresses polymorphism
08:49:45 <ski> a polymorphic value is one whose type has a shape `forall a. ..a..'
08:50:46 <zincy> I am confused about how in `length :: forall a. ([a] -> Int)` [a] can be thought as (exists a [a])
08:51:02 <ski> and it means it has type `..Int..',`..Bool..',`..[String,Bool -> IO ()]..', &c. .. for any possible (concrete) type that you can plug (consistently) for `a', it has that type
08:51:12 <ski> no
08:52:38 <ski> consider `\x -> x'. this has type `Int -> Int'. but it can also be given the type `Bool -> Bool', as well as the type `[(String,Bool -> IO ())] -> [(String,Bool -> IO ())]' .. in short, for all types `a', it has type `a -> a'
08:52:55 <ski> and we express this by saying it has type `forall a. a -> a'
08:53:39 <zincy> Right, the forall is saying that every parameterisation is treated the same
08:53:45 <ski> now, a value of type `exists a. ..a..' doesn't have type `..a..' for *all* types `a' .. but rather, there exists *some* (unknown/forgotten/abstract/opque/skolem) type `a' such that it has type `..a..'
08:53:56 <ski> take `[False,True,False]'
08:53:58 <ski> we have
08:54:07 <ski> [False,True,False] :: [Bool]
08:54:16 <ski> therefore, we can also claim
08:54:23 <ski> [False,True,False] :: exists a. [a]
08:54:40 <ski> meaning : there exists some type `a' such that `[False,True,False]' is a list of `a's
08:54:58 <ski> therefore, we can apply `length :: (exists a. [a]) -> Int' to this list, getting back an `Int'
08:55:55 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
08:55:55 <ski> for `forall', we can go from `blah :: forall a. ..a..' *to* `blah :: ..T..', by picking/choosing a *particular* type `T'
08:55:57 <zincy> Ah I think that makes sense
08:56:19 <zincy> So in the general case you can go from forall to exists but not backwards
08:56:30 × Tordek_ quits (tordek@triton.blinkenshell.org) (Ping timeout: 260 seconds)
08:56:45 <ski> while for `exists', we can go *to* `blah :: exists a. ..a..' *from* `blah :: ..T..', by *forgetting/hiding* which type `T' we had used, hiding it behind the tyvar `a'
08:57:13 <ski> now, consider again `... -> (forall a. ..a..)' -- this usage of `forall' is not "serious"
08:57:57 <ski> in the sense that it gives us nothing new, no extra expressivity. because this is equivalent to `forall a. (... -> ..a..)'. and we already know how to interpret `forall's occuring just after the `::' in a type signature
08:58:05 Guest39 joins (~Guest39@2601:645:4101:b390:4521:34c:ac77:836e)
08:58:21 × Guest39 quits (~Guest39@2601:645:4101:b390:4521:34c:ac77:836e) (Client Quit)
08:58:55 <ski> now, `(forall a. ..a..) -> ...' *is* a "serious" use of `forall', giving us a new power. so this is what (`PolymorphicComponents' and) `Rank2Types' and `RankNTypes' gives us
08:59:28 <ski> (note, all those three now turn on `RankNTypes' in GHC, so there's no difference between them there)
09:00:06 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 245 seconds)
09:00:24 <ski> similarly, `(exists a. ..a..) -> ...' is not "serious", since this is equivalent to `forall a. (..a.. -> ...)', which we already understand from ordinary polymorphism
09:00:44 <ski> however, `... -> (exists a. ..a..)' *would* be a "serious" usage of `exists'
09:01:18 <ski> likewise, putting `exists' inside some data structure, e.g. `[exists a. ..a..]' or `Map String (exists a. ..a..)'
09:02:07 <kritzefitz> would `exists a. ..a..` where the exists comes directly after `::` also be serious?
09:02:08 <zincy> So the extra expressiveness comes from pushing the forall inside the LHS of an arrow which is supplied by the caller
09:02:40 <ski> kritzefitz : yes
09:03:48 <ski> (also `forall' inside other type constructors .. but that's `ImpredicativeTypes', which for a long time didn't work properly. there's a recent new implementation around now, though, which hopefully works better)
09:04:03 <ski> anyway, consider e.g.
09:04:29 <ski> foo :: Bool -> exists a. (a,a -> a,a -> String)
09:04:42 <ski> foo False = (False,not,show)
09:05:00 <ski> foo True = ("True",reverse,id)
09:05:55 <ski> note how, despite the two bodies here seemingly having different types, they actually share the common *abstract* type `exists a. (a,a -> a,a -> String)'
09:06:08 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
09:06:18 <ski> and note that the type that is picked by `foo' for `a' here *depends* on the argument passed to `foo'
09:06:48 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
09:08:58 <zincy> Interesting
09:09:30 <zincy> So from the callers perspective what is the return type?
09:09:37 <zincy> Changes based on the argument?
09:10:24 <zincy> Kind of like an interface hiding information about how polymorphic it really is to the caller
09:10:41 ikex1 joins (~ash@user/ikex)
09:11:08 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
09:11:47 × ikex quits (~ash@user/ikex) (Ping timeout: 264 seconds)
09:11:48 ikex1 is now known as ikex
09:13:09 × michalz quits (~michalz@185.246.204.109) (Remote host closed the connection)
09:13:42 michalz joins (~michalz@185.246.204.104)
09:14:07 lavaman joins (~lavaman@98.38.249.169)
09:14:44 <ski> zincy : well, consider a polymorphic value `blah :: forall a. ..a..'. the caller/consumer/user of it may pick and choose any type they like for `a'. the callee/producer/definer/implementor must be prepared to handle any possible choice, and furthermore can't inspect or depend on which choice was made (except if special provisions were made for that)
09:16:28 <ski> zincy : now, for an "abstract" value `bleh :: exists a. ..a..', the callee/producer/definer/implementor may pick and choose whatever type they like for `a'. while now, otoh, the caller/consumer/user must be prepared to handle any possible choice, and furthermore can't inspect or depend on which choice was made (except if special provisions were made)
09:16:35 × SquidDev quits (~SquidDev@autoclave.squiddev.cc) (Quit: Bye!)
09:16:55 SquidDev joins (~SquidDev@autoclave.squiddev.cc)
09:17:18 <zincy> ski: Need to go out for a bit but will be back in a couple of hours
09:17:19 <ski> zincy : so, `forall' vs. `exists' swaps/reverses the rôles that the caller/consumer/user vs. callee/producer/definer/implementor has, with regards to handling the type `a'
09:17:49 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:18:36 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
09:18:59 Midjak joins (~Midjak@82-65-111-221.subs.proxad.net)
09:19:12 <ski> now, the left part of the function arrow `->' is known to swap the rules of caller vs. callee. therefore, `(forall a. ..a..) -> ...' is bound to be "similar" to `exists a. (..a.. -> ...)' (which not exactly the same, as i hinted at previously, both involve the *callee* choosing some type(s) for `a', and the caller having to make do with that/those choice(s))
09:19:37 chomwitt joins (~chomwitt@ppp-94-68-249-8.home.otenet.gr)
09:20:06 <ski> (while `(exist a. ..a..) -> ...' is completely equivalent to `forall a. (..a..) -> ...')
09:20:42 <ski> this means that it's incorrect to refer to all the rank-`n' types as some kind of "higher polymorphism"
09:20:55 <ski> sure, `foo :: forall a. ..a..' is polymorphism
09:22:04 <ski> but `foo :: (forall a. ..a..) -> ...' is not like polymorphism, it's more like "abstraction" (if i may use that term for whatever feature it is that allowing `exists' in types enable)
09:23:35 <ski> while `foo :: ((forall a. ..a..) -> ...) -> ...' *is* quite like polymorphism (as with polymorphism, it's the *callee* of `foo' (via the callback, receiving a polymorphic argument) that gets to pick and choose `a'
09:23:40 <ski> )
09:23:45 <arahael> With coredata, is it possible to create the code generation for the models and stuff on the command line, without relying on the xcode GUI?
09:23:56 <ski> so it alternates
09:27:48 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 258 seconds)
09:28:17 × michalz quits (~michalz@185.246.204.104) (Remote host closed the connection)
09:28:54 michalz joins (~michalz@185.246.204.125)
09:30:50 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
09:34:08 fendor_ joins (~fendor@178.165.200.199.wireless.dyn.drei.com)
09:35:30 ubert joins (~Thunderbi@91.141.66.139.wireless.dyn.drei.com)
09:36:24 × michalz quits (~michalz@185.246.204.125) (Remote host closed the connection)
09:36:49 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
09:36:50 × fendor quits (~fendor@77.119.200.17.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
09:36:57 × ubert quits (~Thunderbi@91.141.66.139.wireless.dyn.drei.com) (Client Quit)
09:36:59 michalz joins (~michalz@185.246.204.125)
09:43:19 ubert joins (~Thunderbi@91.141.66.139.wireless.dyn.drei.com)
09:49:43 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
09:51:45 geekosaur joins (~geekosaur@xmonad/geekosaur)
09:57:45 dyeplexer joins (~dyeplexer@user/dyeplexer)
09:59:01 jstolarek joins (~jstolarek@137.220.120.162)
10:05:18 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:09:21 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
10:14:02 × Neuromancer quits (~Neuromanc@user/neuromancer) (Remote host closed the connection)
10:14:50 evertedsphere joins (uid434122@id-434122.hampstead.irccloud.com)
10:15:07 drownbes joins (~drownbes@200-149-20-81.sta.estpak.ee)
10:20:55 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
10:20:58 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds)
10:24:10 oxide joins (~lambda@user/oxide)
10:26:08 mei joins (~mei@user/mei)
10:27:37 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
10:29:08 tomboy64 joins (~tomboy64@user/tomboy64)
10:43:42 dsrt^ joins (~dsrt@wsip-68-227-92-38.mc.at.cox.net)
10:45:23 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:47:30 × drownbes quits (~drownbes@200-149-20-81.sta.estpak.ee) (Quit: leaving)
10:54:17 __monty__ joins (~toonn@user/toonn)
10:58:04 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
10:59:52 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 260 seconds)
11:01:06 jespada joins (~jespada@181.28.253.200)
11:02:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 245 seconds)
11:02:52 × xff0x quits (~xff0x@2001:1a81:5218:9100:27b2:477a:f50:38f5) (Ping timeout: 258 seconds)
11:03:51 xff0x joins (~xff0x@2001:1a81:5218:9100:aa26:25c9:f09a:101d)
11:07:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:11:52 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
11:12:18 × Midjak quits (~Midjak@82-65-111-221.subs.proxad.net) (*.net *.split)
11:12:18 × jumper149 quits (~jumper149@80.240.31.34) (*.net *.split)
11:12:18 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split)
11:12:18 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (*.net *.split)
11:12:18 × deni quits (~deni@user/deni) (*.net *.split)
11:12:18 × pbrisbin quits (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net) (*.net *.split)
11:12:18 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split)
11:12:18 × mcglk_ quits (~mcglk@131.191.49.120) (*.net *.split)
11:12:19 × pie_ quits (~pie_bnc@user/pie/x-2818909) (*.net *.split)
11:12:19 × Unode quits (~Unode@194.94.44.220) (*.net *.split)
11:12:19 × nshepperd2 quits (~nshepperd@li364-218.members.linode.com) (*.net *.split)
11:12:19 × choucavalier quits (~choucaval@peanutbuttervibes.com) (*.net *.split)
11:12:19 × ptrcmd quits (~ptrcmd@user/ptrcmd) (*.net *.split)
11:12:19 × micro quits (~micro@user/micro) (*.net *.split)
11:12:19 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (*.net *.split)
11:12:19 × platz quits (~platz@user/platz) (*.net *.split)
11:12:19 × Partmedia quits (~kevinz@172-221-159-029.res.spectrum.com) (*.net *.split)
11:12:19 × ozzymcduff quits (~mathieu@81-234-151-21-no94.tbcn.telia.com) (*.net *.split)
11:12:19 × drdo quits (~drdo@roach0.drdo.eu) (*.net *.split)
11:12:19 × emergence quits (~emergence@vm0.max-p.me) (*.net *.split)
11:12:19 × sshine quits (~simon@hubris.eta.solutions) (*.net *.split)
11:12:19 × fluxit quits (~fluxit@techsmix.net) (*.net *.split)
11:12:19 × tv quits (~tv@user/tv) (*.net *.split)
11:12:19 × sm2n quits (~sm2n@user/sm2n) (*.net *.split)
11:12:19 × nitrix quits (~nitrix@user/nitrix) (*.net *.split)
11:12:19 × CannabisIndica quits (~herb@user/mesaboogie) (*.net *.split)
11:12:19 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (*.net *.split)
11:12:19 × ellie quits (~ellie@user/ellie) (*.net *.split)
11:12:19 × cls quits (~cls@chalk.lubutu.com) (*.net *.split)
11:12:19 × Hecate quits (~mariposa@user/hecate) (*.net *.split)
11:12:19 × gnyeki quits (~gnyeki@li578-216.members.linode.com) (*.net *.split)
11:12:19 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (*.net *.split)
11:12:19 × hueso quits (~root@user/hueso) (*.net *.split)
11:12:19 × hubvu quits (sid495858@user/hubvu) (*.net *.split)
11:12:19 × whez quits (sid470288@lymington.irccloud.com) (*.net *.split)
11:12:19 × TMA quits (tma@twin.jikos.cz) (*.net *.split)
11:12:19 × _xor quits (~xor@72.49.199.147) (*.net *.split)
11:12:20 × ski quits (~ski@remote12.chalmers.se) (*.net *.split)
11:12:20 × elvishjerricco quits (sid237756@helmsley.irccloud.com) (*.net *.split)
11:12:20 × iteratee quits (~kyle@162.218.222.107) (*.net *.split)
11:12:20 × astra` quits (sid289983@user/amish) (*.net *.split)
11:12:20 × etrepum quits (sid763@uxbridge.irccloud.com) (*.net *.split)
11:12:20 × niko quits (~niko@libera/staff/niko) (*.net *.split)
11:12:20 × sm[i]_ quits (~user@li229-222.members.linode.com) (*.net *.split)
11:12:20 × davl quits (~davl@207.154.228.18) (*.net *.split)
11:12:20 × Megant quits (megant@user/megant) (*.net *.split)
11:12:20 × cjay quits (cjay@nerdbox.nerd2nerd.org) (*.net *.split)
11:12:20 × p3n quits (~p3n@217.198.124.246) (*.net *.split)
11:12:20 × a1paca quits (~a1paca@user/a1paca) (*.net *.split)
11:12:20 × dminuoso quits (~dminuoso@user/dminuoso) (*.net *.split)
11:12:20 × tput quits (~tim@S0106a84e3fe54613.ed.shawcable.net) (*.net *.split)
11:12:20 × tlax quits (tlax@kapsi.fi) (*.net *.split)
11:12:20 × aweinstock quits (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (*.net *.split)
11:15:27 Midjak joins (~Midjak@82-65-111-221.subs.proxad.net)
11:15:27 jumper149 joins (~jumper149@80.240.31.34)
11:15:27 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
11:15:27 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:15:27 deni joins (~deni@user/deni)
11:15:27 pbrisbin joins (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net)
11:15:27 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
11:15:27 mcglk_ joins (~mcglk@131.191.49.120)
11:15:27 pie_ joins (~pie_bnc@user/pie/x-2818909)
11:15:27 Unode joins (~Unode@194.94.44.220)
11:15:27 nshepperd2 joins (~nshepperd@li364-218.members.linode.com)
11:15:27 choucavalier joins (~choucaval@peanutbuttervibes.com)
11:15:27 micro joins (~micro@user/micro)
11:15:27 ptrcmd joins (~ptrcmd@user/ptrcmd)
11:15:27 tomjaguarpaw joins (~tom@li367-225.members.linode.com)
11:15:27 platz joins (~platz@user/platz)
11:15:27 Partmedia joins (~kevinz@172-221-159-029.res.spectrum.com)
11:15:27 ozzymcduff joins (~mathieu@81-234-151-21-no94.tbcn.telia.com)
11:15:27 drdo joins (~drdo@roach0.drdo.eu)
11:15:27 emergence joins (~emergence@vm0.max-p.me)
11:15:27 sshine joins (~simon@hubris.eta.solutions)
11:15:27 fluxit joins (~fluxit@techsmix.net)
11:15:27 tv joins (~tv@user/tv)
11:15:27 sm2n joins (~sm2n@user/sm2n)
11:15:27 nitrix joins (~nitrix@user/nitrix)
11:15:27 CannabisIndica joins (~herb@user/mesaboogie)
11:15:27 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
11:15:27 ellie joins (~ellie@user/ellie)
11:15:27 cls joins (~cls@chalk.lubutu.com)
11:15:27 Hecate joins (~mariposa@user/hecate)
11:15:27 gnyeki joins (~gnyeki@li578-216.members.linode.com)
11:15:27 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
11:15:27 hueso joins (~root@user/hueso)
11:15:27 hubvu joins (sid495858@user/hubvu)
11:15:27 whez joins (sid470288@lymington.irccloud.com)
11:15:27 TMA joins (tma@twin.jikos.cz)
11:15:27 _xor joins (~xor@72.49.199.147)
11:15:27 ski joins (~ski@remote12.chalmers.se)
11:15:27 elvishjerricco joins (sid237756@helmsley.irccloud.com)
11:15:27 iteratee joins (~kyle@162.218.222.107)
11:15:27 astra` joins (sid289983@user/amish)
11:15:27 etrepum joins (sid763@uxbridge.irccloud.com)
11:15:27 niko joins (~niko@libera/staff/niko)
11:15:27 sm[i]_ joins (~user@li229-222.members.linode.com)
11:15:27 davl joins (~davl@207.154.228.18)
11:15:27 Megant joins (megant@user/megant)
11:15:27 cjay joins (cjay@nerdbox.nerd2nerd.org)
11:15:27 p3n joins (~p3n@217.198.124.246)
11:15:27 a1paca joins (~a1paca@user/a1paca)
11:15:27 dminuoso joins (~dminuoso@user/dminuoso)
11:15:27 tput joins (~tim@S0106a84e3fe54613.ed.shawcable.net)
11:15:27 tlax joins (tlax@kapsi.fi)
11:15:27 aweinstock joins (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com)
11:16:12 trcc joins (~trcc@users-1190.st.net.au.dk)
11:17:24 × emanuele6 quits (~emanuele6@user/emanuele6) (Ping timeout: 244 seconds)
11:18:33 × achapman quits (~ajc@vmx14030.hosting24.com.au) (Quit: WeeChat 1.9.1)
11:31:05 lavaman joins (~lavaman@98.38.249.169)
11:35:48 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
11:37:58 ksqsf joins (~user@211.86.152.198)
11:38:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
11:38:01 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
11:38:01 wroathe joins (~wroathe@user/wroathe)
11:40:59 × connrs quits (~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in)
11:42:00 connrs joins (~connrs@user/connrs)
11:42:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds)
11:42:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:42:55 phma_ joins (~phma@host-67-44-208-16.hnremote.net)
11:43:45 themc47 joins (~mc47@xmonad/TheMC47)
11:43:53 Gestotterd joins (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net)
11:43:59 tcard_ joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
11:44:02 maxime_ joins (~maxime@2a01cb0883359800bfca837605fff927.ipv6.abo.wanadoo.fr)
11:44:04 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
11:44:04 allbery_b joins (~geekosaur@xmonad/geekosaur)
11:44:08 allbery_b is now known as geekosaur
11:44:28 ncopa0 joins (~ncopa@gbr2-dev1.alpinelinux.org)
11:44:49 ub joins (~Thunderbi@91.141.66.139.wireless.dyn.drei.com)
11:44:54 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:45:10 gregberns___ joins (sid315709@id-315709.helmsley.irccloud.com)
11:45:10 parseval_ joins (sid239098@id-239098.helmsley.irccloud.com)
11:45:11 b20n_ joins (sid115913@id-115913.uxbridge.irccloud.com)
11:45:11 alanz_ joins (sid110616@id-110616.uxbridge.irccloud.com)
11:45:12 philpax__ joins (sid516926@id-516926.lymington.irccloud.com)
11:45:12 dsal_ joins (sid13060@id-13060.lymington.irccloud.com)
11:45:16 christiaanb_ joins (sid84827@id-84827.lymington.irccloud.com)
11:45:16 brettgilio7 joins (~brettgili@x-node.gq)
11:45:17 kaychaks___ joins (sid236345@id-236345.helmsley.irccloud.com)
11:45:20 dwt__ joins (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net)
11:45:20 taeaad_ joins (~taeaad@user/taeaad)
11:45:24 sndr joins (~sander@user/sander)
11:45:33 Andrew_ joins (~andrew@user/andrewyu)
11:45:37 pieguy128_ joins (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca)
11:45:42 neightchan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
11:45:43 int-e_ joins (~noone@int-e.eu)
11:45:50 × int-e quits (~noone@int-e.eu) (Killed (NickServ (GHOST command used by int-e_)))
11:45:58 int-e_ is now known as int-e
11:46:59 obfusk_ joins (~quassel@a82-161-150-56.adsl.xs4all.nl)
11:47:02 fjmorazan_ joins (~quassel@user/fjmorazan)
11:47:17 nschoe_ joins (~quassel@178.251.84.79)
11:47:31 mjrosenb_ joins (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net)
11:47:46 byorgey_ joins (~byorgey@155.138.238.211)
11:47:54 ppseafield[m] joins (~elementpp@2001:470:69fc:105::1:250a)
11:48:01 gdd1 joins (~gdd@129.199.146.230)
11:48:03 AWizzArd_ joins (~code@gehrels.uberspace.de)
11:48:08 kjak_ joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
11:48:14 kritzefitz_ joins (~kritzefit@212.86.56.80)
11:48:17 hrdl_ joins (~hrdl@mail.hrdl.eu)
11:48:18 finstern1s joins (~X@23.226.237.192)
11:48:18 ringo__ joins (~ringo@157.230.117.128)
11:48:24 eco_ joins (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com)
11:49:11 kmein_ joins (~weechat@user/kmein)
11:49:12 robbert joins (~robbert@robbertvanderhelm.nl)
11:49:40 × robbert quits (~robbert@robbertvanderhelm.nl) (Client Quit)
11:49:51 × byorgey quits (~byorgey@155.138.238.211) (Killed (NickServ (GHOST command used by byorgey_)))
11:49:55 robbert joins (~robbert@robbertvanderhelm.nl)
11:49:57 byorgey_ is now known as byorgey
11:51:00 orhan89_ joins (~orhan89@151.91.188.35.bc.googleusercontent.com)
11:51:10 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
11:51:12 stefan-__ joins (~cri@42dots.de)
11:51:26 × robbert-vdh quits (~robbert@robbertvanderhelm.nl) (Killed (silver.libera.chat (Nickname regained by services)))
11:51:26 robbert is now known as robbert-vdh
11:52:11 × kritzefitz quits (~kritzefit@212.86.56.80) (Killed (silver.libera.chat (Nickname regained by services)))
11:52:11 kritzefitz_ is now known as kritzefitz
11:52:27 × ubert quits (~Thunderbi@91.141.66.139.wireless.dyn.drei.com) (*.net *.split)
11:52:27 × michalz quits (~michalz@185.246.204.125) (*.net *.split)
11:52:27 × mc47 quits (~mc47@xmonad/TheMC47) (*.net *.split)
11:52:27 × nschoe quits (~quassel@178.251.84.79) (*.net *.split)
11:52:27 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (*.net *.split)
11:52:27 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (*.net *.split)
11:52:27 × phma quits (~phma@host-67-44-208-16.hnremote.net) (*.net *.split)
11:52:27 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (*.net *.split)
11:52:27 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (*.net *.split)
11:52:27 × juhp quits (~juhp@128.106.188.220) (*.net *.split)
11:52:27 × gdd quits (~gdd@129.199.146.230) (*.net *.split)
11:52:27 × Stotteren quits (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) (*.net *.split)
11:52:27 × Ranhir quits (~Ranhir@157.97.53.139) (*.net *.split)
11:52:27 × fjmorazan quits (~quassel@user/fjmorazan) (*.net *.split)
11:52:27 × dwt_ quits (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (*.net *.split)
11:52:27 × stefan-_ quits (~cri@42dots.de) (*.net *.split)
11:52:27 × mjrosenb quits (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (*.net *.split)
11:52:27 × natechan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (*.net *.split)
11:52:27 × brettgilio quits (~brettgili@x-node.gq) (*.net *.split)
11:52:27 × synthmeat quits (~synthmeat@user/synthmeat) (*.net *.split)
11:52:27 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split)
11:52:27 × acowley_ quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (*.net *.split)
11:52:28 × tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split)
11:52:28 × eco quits (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (*.net *.split)
11:52:28 × ncopa quits (~ncopa@alpine/developer/ncopa) (*.net *.split)
11:52:28 × APic quits (apic@apic.name) (*.net *.split)
11:52:28 × AndrewYu quits (~andrew@user/andrewyu) (*.net *.split)
11:52:28 × hiredman quits (~hiredman@frontier1.downey.family) (*.net *.split)
11:52:28 × sander quits (~sander@user/sander) (*.net *.split)
11:52:28 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (*.net *.split)
11:52:28 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (*.net *.split)
11:52:28 × obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (*.net *.split)
11:52:28 × Xnuk quits (~xnuk@45.76.202.58) (*.net *.split)
11:52:28 × kmein quits (~weechat@user/kmein) (*.net *.split)
11:52:28 × hrdl quits (~hrdl@mail.hrdl.eu) (*.net *.split)
11:52:28 × ringo_ quits (~ringo@157.230.117.128) (*.net *.split)
11:52:28 × pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca) (*.net *.split)
11:52:28 × AWizzArd quits (~code@user/awizzard) (*.net *.split)
11:52:28 × finsternis quits (~X@23.226.237.192) (*.net *.split)
11:52:28 × kaychaks__ quits (sid236345@helmsley.irccloud.com) (*.net *.split)
11:52:28 × gregberns__ quits (sid315709@helmsley.irccloud.com) (*.net *.split)
11:52:28 × parseval quits (sid239098@helmsley.irccloud.com) (*.net *.split)
11:52:28 × christiaanb quits (sid84827@lymington.irccloud.com) (*.net *.split)
11:52:28 × dsal quits (sid13060@lymington.irccloud.com) (*.net *.split)
11:52:28 × b20n quits (sid115913@uxbridge.irccloud.com) (*.net *.split)
11:52:28 × taeaad quits (~taeaad@user/taeaad) (*.net *.split)
11:52:28 × philpax_ quits (sid516926@lymington.irccloud.com) (*.net *.split)
11:52:28 × alanz quits (sid110616@uxbridge.irccloud.com) (*.net *.split)
11:52:28 × typedfern_ quits (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) (*.net *.split)
11:52:28 × jjhoo quits (~jahakala@user/jjhoo) (*.net *.split)
11:52:28 × dmwit quits (~dmwit@pool-173-73-185-183.washdc.fios.verizon.net) (*.net *.split)
11:52:28 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (*.net *.split)
11:52:28 × orhan89 quits (~orhan89@151.91.188.35.bc.googleusercontent.com) (*.net *.split)
11:52:28 brettgilio7 is now known as brettgilio
11:52:28 sndr is now known as sander
11:52:28 ncopa0 is now known as ncopa
11:52:28 gregberns___ is now known as gregberns__
11:52:28 parseval_ is now known as parseval
11:52:28 ub is now known as ubert
11:52:29 dsal_ is now known as dsal
11:52:29 b20n_ is now known as b20n
11:52:29 alanz_ is now known as alanz
11:52:29 kaychaks___ is now known as kaychaks__
11:52:29 christiaanb_ is now known as christiaanb
11:52:31 philpax__ is now known as philpax_
11:52:32 TheCoffeMaker_ joins (~TheCoffeM@125-121-245-190.fibertel.com.ar)
11:53:04 dmwit joins (~dmwit@pool-173-73-185-183.washdc.fios.verizon.net)
11:53:09 jjhoo joins (jahakala@user/jjhoo)
11:53:13 hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
11:53:14 tolt joins (~weechat-h@li219-154.members.linode.com)
11:53:19 hiredman joins (~hiredman@frontier1.downey.family)
11:53:24 takuan joins (~takuan@178-116-218-225.access.telenet.be)
11:53:41 kritzefitz is now known as kritzefitz_
11:53:53 kritzefitz_ is now known as kritzefitz[m]
11:54:01 kritzefitz[m] is now known as kritzefitz
11:54:27 Xnuk joins (~xnuk@vultr.xnu.kr)
11:58:12 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
11:58:18 MQ-17J joins (~MQ-17J@8.6.144.240)
11:58:38 APic joins (apic@apic.name)
11:58:55 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
11:59:04 synthmeat joins (~synthmeat@user/synthmeat)
11:59:25 Ranhir joins (~Ranhir@157.97.53.139)
11:59:37 typedfern_ joins (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net)
12:00:20 × maxime_ quits (~maxime@2a01cb0883359800bfca837605fff927.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
12:00:48 ubert1 joins (~Thunderbi@91.141.66.139.wireless.dyn.drei.com)
12:01:00 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 260 seconds)
12:01:21 burnsidesLlama joins (~burnsides@dhcp168-028.wadham.ox.ac.uk)
12:03:34 mmhat joins (~mmh@55d4b27c.access.ecotel.net)
12:03:35 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:06:05 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
12:06:40 × fendor_ quits (~fendor@178.165.200.199.wireless.dyn.drei.com) (Remote host closed the connection)
12:07:54 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:11:27 shriekingnoise joins (~shrieking@186.137.144.80)
12:20:24 michalz joins (~michalz@185.246.204.97)
12:22:13 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
12:23:20 Farzad joins (~FarzadBek@178.131.26.34)
12:23:36 Pickchea joins (~private@user/pickchea)
12:24:10 guniberas joins (~guniberas@42.191.188.121)
12:40:19 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:46:18 bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
12:49:37 kmein_ is now known as kmein
12:55:58 × ubert1 quits (~Thunderbi@91.141.66.139.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
12:56:29 × NieDzejkob quits (~quassel@212.87.13.106) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:56:31 × trcc quits (~trcc@users-1190.st.net.au.dk) (Ping timeout: 260 seconds)
12:57:07 × bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Quit: Leaving)
12:57:15 × kritzefitz quits (~kritzefit@212.86.56.80) (Changing host)
12:57:15 kritzefitz joins (~kritzefit@debian/kritzefitz)
12:59:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
13:03:25 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
13:04:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 245 seconds)
13:09:10 × Pickchea quits (~private@user/pickchea) (Ping timeout: 260 seconds)
13:12:51 fendor joins (~fendor@178.165.200.199.wireless.dyn.drei.com)
13:21:34 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
13:27:36 × oxide quits (~lambda@user/oxide) (Ping timeout: 245 seconds)
13:28:16 × acidjnk_new quits (~acidjnk@p200300d0c7238d51605dadc8a3f75380.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:29:19 hrdl_ is now known as hrdl
13:29:25 oxide joins (~lambda@user/oxide)
13:29:35 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds)
13:36:33 maxime_ joins (~maxime@2a01cb0883359800dd400544f01795c9.ipv6.abo.wanadoo.fr)
13:38:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:42:28 yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net)
13:43:45 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
13:49:26 Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com)
13:49:54 Pickchea joins (~private@user/pickchea)
13:56:09 × agoraphobic quits (~agoraphob@ip11-173.bon.riksnet.se) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
13:57:54 agoraphobic joins (~agoraphob@ip11-173.bon.riksnet.se)
13:59:29 × MQ-17J quits (~MQ-17J@8.6.144.240) (Ping timeout: 268 seconds)
14:00:04 Andrew_ is now known as AndrewYu
14:00:58 lavaman joins (~lavaman@98.38.249.169)
14:07:24 ub joins (~Thunderbi@91.141.46.110.wireless.dyn.drei.com)
14:07:45 vpan joins (~0@212.117.1.172)
14:08:11 × ubert quits (~Thunderbi@91.141.66.139.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
14:08:11 ub is now known as ubert
14:09:42 phma_ is now known as phma
14:10:06 × burnsidesLlama quits (~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
14:10:06 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
14:10:16 burnsidesLlama joins (~burnsides@dhcp168-028.wadham.ox.ac.uk)
14:10:26 × burnsidesLlama quits (~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
14:10:34 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 260 seconds)
14:15:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
14:16:31 × Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
14:20:18 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:24:15 Inst_ joins (~Inst@2600:1006:b01a:69bf:f8cc:5081:41af:e624)
14:25:40 Inst__ joins (~Inst@2601:6c4:4080:3f80:6dd4:3be6:70ce:10d9)
14:25:40 × Inst_ quits (~Inst@2600:1006:b01a:69bf:f8cc:5081:41af:e624) (Read error: Network is unreachable)
14:27:59 × Inst quits (~Inst@2601:6c4:4080:3f80:c4ab:4275:2f29:1458) (Ping timeout: 264 seconds)
14:36:27 emanuele6 joins (~emanuele6@net-2-36-98-113.cust.vodafonedsl.it)
14:36:28 × emanuele6 quits (~emanuele6@net-2-36-98-113.cust.vodafonedsl.it) (Changing host)
14:36:28 emanuele6 joins (~emanuele6@user/emanuele6)
14:42:06 burnsidesLlama joins (~burnsides@dhcp168-028.wadham.ox.ac.uk)
14:42:26 × ksqsf quits (~user@211.86.152.198) (Remote host closed the connection)
14:42:52 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
14:44:36 pottsy joins (~pottsy@2400:4050:b560:3700:7603:23f2:b945:e694)
14:45:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
14:45:16 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
14:46:53 × burnsidesLlama quits (~burnsides@dhcp168-028.wadham.ox.ac.uk) (Ping timeout: 264 seconds)
14:49:28 × chele quits (~chele@user/chele) (Ping timeout: 260 seconds)
14:50:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
14:53:50 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
14:54:22 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
14:54:26 × Farzad quits (~FarzadBek@178.131.26.34) (Quit: Leaving)
14:56:56 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
14:58:50 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 260 seconds)
15:00:19 × pottsy quits (~pottsy@2400:4050:b560:3700:7603:23f2:b945:e694) (Quit: Leaving)
15:00:30 pottsy joins (~pottsy@2400:4050:b560:3700:7603:23f2:b945:e694)
15:00:49 Sgeo joins (~Sgeo@user/sgeo)
15:00:54 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
15:01:18 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
15:02:11 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
15:02:37 fef joins (~thedawn@user/thedawn)
15:03:54 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:04:23 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
15:05:31 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 245 seconds)
15:05:53 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
15:15:55 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
15:16:57 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
15:21:33 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:23:32 pavonia joins (~user@user/siracusa)
15:23:45 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
15:24:02 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Remote host closed the connection)
15:24:27 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:25:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:31:19 chele joins (~chele@user/chele)
15:34:37 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
15:35:28 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
15:38:24 × lortabac quits (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) (Quit: WeeChat 2.8)
15:38:27 Guest91 joins (~Guest91@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
15:39:05 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
15:41:27 × pottsy quits (~pottsy@2400:4050:b560:3700:7603:23f2:b945:e694) (Quit: Leaving)
15:43:06 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:46:31 themc47 is now known as mc47
15:47:15 Guest73 joins (~Guest73@24-116-245-6.cpe.sparklight.net)
15:49:04 <Guest73> Having some trouble running wai server (I think the problem is there, I'm trying to get a servant API up). To reproduce:
15:49:38 <Guest73> stack new my-project servant; cd my-project; stack build; stack exec my-project-exe
15:49:42 <Guest73> freezes there. help?
15:49:47 × echoSMILE quits (~echoSMILE@user/echosmile) (Quit: Client closed)
15:51:00 <c_wraith> how is "freezes" distinct from "works correctly"?
15:51:18 <c_wraith> It is supposed to block there
15:51:40 <Guest73> shouldn't it report that it's running on {port} or something? if I browse to localhost:8080 I get a blank page
15:52:17 <c_wraith> a blank page or an error page?
15:52:32 <c_wraith> because if there wasn't a server running on localhost at port 8080, you'd get an error page
15:53:15 <Guest73> blank when i use firefox. 404 when i use chromium
15:53:16 <c_wraith> that is, your browser would tell you it can't connect
15:53:24 <c_wraith> 404 means there is a server running
15:54:03 <c_wraith> not running would be "can't find the server at localhost:8080"
15:54:25 <Guest73> ok, pebkac for sure
15:54:27 <c_wraith> now, it's possible something is still broken.
15:54:40 × evertedsphere quits (uid434122@id-434122.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
15:54:45 <c_wraith> It could be the case that something *else* is running on localhost:8080
15:55:01 <Guest73> no i'm good, was just confused, thanks. localhost:8080/users returns expected results
15:55:07 <c_wraith> ah, good
15:55:20 bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
15:56:51 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
15:57:11 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
15:57:29 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
15:59:52 × bongobrown quits (~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Remote host closed the connection)
16:00:02 × werneta_ quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
16:00:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:00:30 lbseale joins (~lbseale@user/ep1ctetus)
16:01:07 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
16:01:26 × Guest73 quits (~Guest73@24-116-245-6.cpe.sparklight.net) (Quit: Client closed)
16:02:11 × chele quits (~chele@user/chele) (Ping timeout: 245 seconds)
16:02:43 burnsidesLlama joins (~burnsides@dhcp168-028.wadham.ox.ac.uk)
16:05:46 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
16:05:59 thyriaen joins (~thyriaen@dynamic-077-013-059-156.77.13.pool.telefonica.de)
16:10:51 <dsal> Is it possible to compose FromRow instances in PostgreSQL-simple? I might try it and see what happens.
16:11:21 × nschoe_ quits (~quassel@178.251.84.79) (Ping timeout: 245 seconds)
16:16:55 hippoid joins (~idris@184.105.6.88)
16:17:42 × vpan quits (~0@212.117.1.172) (Quit: Leaving.)
16:18:32 × Guest91 quits (~Guest91@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
16:19:06 <hippoid> :t (>>=) (Just (Just 1)) id
16:19:07 <lambdabot> Num b => Maybe b
16:19:17 <hippoid> :t (>>=)
16:19:18 <lambdabot> Monad m => m a -> (a -> m b) -> m b
16:20:03 <hippoid> Why am I able to pass `id`, when (>>=) requires a (a-> m b) for the 2nd arg, and `id` is (a->a)?
16:20:28 <hippoid> I thought I'd need a (a -> m b) for the 2nd arg of >>=
16:21:03 <c_wraith> hippoid: a can be m b
16:21:12 <c_wraith> hippoid: then id :: m b -> m b
16:21:45 <hippoid> ah right, something about universal quantification?
16:21:59 <c_wraith> yes. and unification in general
16:22:45 justsomeguy joins (~justsomeg@user/justsomeguy)
16:23:01 <c_wraith> When you look at the types of id and (>>=), the a in each type is a different type variable. that's the universal quantification part
16:23:21 <c_wraith> So when you unify the types, those variables are different
16:23:54 <c_wraith> So you can say "the a from id is the same as the m b from from (>>=)" to unify those types
16:24:21 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
16:24:30 <hippoid> I try to learn more unification, but I don't find any resources where the unification constraints are solved in something other than writing out a full program to solve it. I'd rather solve the unification constraints with paper at first, to get a better intuition about it.
16:24:45 <hippoid> Do you recommend any resources that are like that?
16:25:44 <yrlnry> Does lambdabot have a help function? I tried `:h` `:help` :?` but got no response.
16:26:27 <geekosaur> not much of one
16:26:30 <geekosaur> @help
16:26:30 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
16:26:33 <geekosaur> @list
16:26:34 <lambdabot> What module? Try @listmodules for some ideas.
16:27:02 <yrlnry> Thanks.
16:30:25 × dsrt^ quits (~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds)
16:31:30 <geekosaur> this only does a subset of the commands plus one I added back when I was running one, but it's also the only reference I'm aware of for the admin commands. http://users.ece.cmu.edu/~allbery/lambdabot/COMMANDS.more
16:32:06 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
16:32:41 fef joins (~thedawn@user/thedawn)
16:35:30 dsrt^ joins (~dsrt@wsip-68-227-92-38.mc.at.cox.net)
16:35:47 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
16:40:12 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
16:40:44 vicfred joins (~vicfred@user/vicfred)
16:42:16 anotherbruce[m] joins (~anotherbr@2001:470:69fc:105::1:2548)
16:44:00 econo joins (uid147250@user/econo)
16:47:32 echoSMILE joins (~echoSMILE@user/echosmile)
16:48:05 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 264 seconds)
16:51:19 × guniberas quits (~guniberas@42.191.188.121) (Ping timeout: 268 seconds)
16:52:31 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
16:59:36 × maxime_ quits (~maxime@2a01cb0883359800dd400544f01795c9.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
17:00:37 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
17:02:47 aegon joins (~mike@174.127.249.180)
17:05:10 jstolarek joins (~jstolarek@137.220.120.162)
17:05:46 × mbuf quits (~Shakthi@122.178.244.237) (Quit: Leaving)
17:25:01 Null_A joins (~null_a@2601:645:8700:2290:25a5:cf0c:746a:f835)
17:30:20 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
17:30:34 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
17:39:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
17:44:29 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
17:46:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
17:47:51 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
17:48:00 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 260 seconds)
17:53:13 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
17:56:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:59:24 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
18:01:12 echoSMILE7 joins (~echoSMILE@user/echosmile)
18:01:44 echoSMILE7 is now known as echosmile7000
18:01:44 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
18:02:13 ystael joins (~ystael@user/ystael)
18:02:40 × echoSMILE quits (~echoSMILE@user/echosmile) (Ping timeout: 256 seconds)
18:02:40 × hippoid quits (~idris@184.105.6.88) (Quit: Lost terminal)
18:04:18 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 268 seconds)
18:05:58 zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
18:07:11 × justache quits (~justache@user/justache) (Quit: The Lounge - https://thelounge.chat)
18:07:18 zincy_89 joins (~zincy_@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
18:08:02 justache joins (~justache@user/justache)
18:11:56 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
18:14:47 × echosmile7000 quits (~echoSMILE@user/echosmile) (Quit: Client closed)
18:15:39 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
18:21:36 vicfred joins (~vicfred@user/vicfred)
18:25:15 alx741 joins (~alx741@181.196.69.72)
18:25:57 <zincy_> ski: I am back, sorry it took a while, I think your explanation makes sense thanks!
18:26:23 max22- joins (~maxime@2a01cb0883359800f0a95b292418059d.ipv6.abo.wanadoo.fr)
18:26:24 echoSMILE joins (~echoSMILE@user/echosmile)
18:28:12 × max22- quits (~maxime@2a01cb0883359800f0a95b292418059d.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
18:30:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
18:31:08 × td_ quits (~td@muedsl-82-207-238-060.citykom.de) (Ping timeout: 260 seconds)
18:32:46 td_ joins (~td@94.134.91.76)
18:34:08 max22- joins (~maxime@2a01cb0883359800761b1c69d9198b7f.ipv6.abo.wanadoo.fr)
18:34:45 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
18:36:40 <unit73e> looks like HLS doesn't like Paths_* with GHC 9.0.1 for some reason
18:36:57 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:36:58 <unit73e> I'm using the latest releases
18:38:06 <unit73e> I'm going to complete the text example and share here to see if it's just me. It will take a while though.
18:39:27 <unit73e> also hello
18:40:59 <shapr> hi unit73e !
18:41:25 <shapr> unit73e: you may get a response from the devs on #haskell-language-server
18:41:34 <shapr> high latency, but probably at some point :-)
18:41:42 <shapr> or you could report a bug on the github repo
18:42:06 <unit73e> shapr, thanks. I'll do that. My bet is that it's not very compatible with 9.x yet
18:42:44 <unit73e> or I'm being a noob lol
18:43:47 boxscape_ joins (~boxscape_@i577BCBDC.versanet.de)
18:46:23 <boxscape_> I don't need this for anything at the moment but I'm curious - is there a combinator you could replace <*> with in `gcd <*> minimum <$> maximum` that would evaluate minimum and maximum in parallel?
18:46:25 <boxscape_> (in this particular case you could implement a function that computes the minimum and maximum in one pass, but other cases might not allow this)
18:47:22 <boxscape_> (I suppose maybe you would have to use something other than <$> as well)
18:48:47 <awpr> this looks like the Applicative instance of https://hackage.haskell.org/package/foldl-1.4.12/docs/Control-Foldl.html
18:49:07 <boxscape_> Ah, nice, thank you
18:49:23 <awpr> generally "I want the Applicative operators to mean parallel/concurrent/simultaneous operation" means "I want something that's intentionally not also a Monad"
18:49:31 <boxscape_> right, that makes sense
18:49:39 <awpr> unless you're Haxl, which just ignores that law
18:49:45 <awpr> (last I heard)
18:56:05 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
18:56:36 <remexre> 2 unrelated questions
18:56:53 <remexre> - are lawful monad instances unique?
18:57:04 mei joins (~mei@user/mei)
18:57:39 Guest30 joins (~Guest30@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
18:57:43 × Guest30 quits (~Guest30@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit)
18:57:47 <monochrom> No.
18:58:12 Guest21 joins (~Guest21@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
18:59:57 Inst_ joins (~Inst@2601:6c4:4080:3f80:9ce5:6f05:3959:43f5)
18:59:57 <remexre> is there a noteworthy counterexample?
19:01:10 <remexre> second question, what logging library do people recommend for an application that's mostly ResourceT (ReaderT r IO), so I'm only really logging in IO. Ideally it'd have structured logging (via Generic?), at least three log levels, and be configurable
19:01:59 <monochrom> I think that something like tardis shows that S->(a,S) can be a monad in two ways. (And then tardis goes on to combine them into one monster monad.)
19:02:44 <monochrom> OTOH I know a lengthy proof of why, e.g., "data P a = MkP a a" is a monad in a unique way.
19:03:07 <monochrom> So, uniqueness happens for some types but not some others.
19:03:11 <remexre> what's the way that isn't the normal state monad? for s->(a, s)?
19:03:16 <remexre> or is that only for concrete S
19:03:22 <maerwald> remexre: roll your own logger
19:03:28 <maerwald> it takes only a couple of lines
19:03:39 <remexre> maerwald: fair, ok
19:03:51 × Inst__ quits (~Inst@2601:6c4:4080:3f80:6dd4:3be6:70ce:10d9) (Ping timeout: 245 seconds)
19:03:58 <remexre> oh wait tardis is a package not a username lol
19:04:06 <remexre> oh neat
19:04:12 <maerwald> even if you shove it into ReaderT or use LabelOptics, it's still only a couple of lines
19:04:44 <maerwald> logging is, imo, application specific
19:05:03 <maerwald> no point fighting libraries
19:05:12 <remexre> LabelOptics == the Optics.Label module?
19:05:46 <maerwald> yeah
19:06:40 <maerwald> it's a neat way to separate your application state elegantly
19:06:45 <remexre> huh, should I be using optics-core, etc; if I'm using microlens now?
19:06:59 <remexre> yeah not having to namespace my record fields would be very nice :)
19:07:16 × kuribas quits (~user@ptr-25vy0i9jhzblfidtsev.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
19:07:18 <monochrom> Oh yeah actually logging, or simply the writer monad, may show two ways of being a monad.
19:07:23 <remexre> been waiting for ghc2021 for the record changes, but if this works, might as well use it
19:07:38 <remexre> monochrom: oh, take-rightmost versus join-left-and-right?
19:07:48 <remexre> or is that unlawful
19:07:49 <maerwald> yeah, never used Write for logging... I print to screen or write to log files
19:08:03 <boxscape_> I did find a couple of the features in RIOs logging library quite nice, like displaying the line/column of the logging call (via a HasCallStack constraint) when you're in verbose mode
19:08:11 <monochrom> join right and left
19:08:45 <boxscape_> (admittedly still fairly easy to write but I wouldn't have thought on it without using a logging library)
19:08:48 <boxscape_> s/on/of
19:09:10 <monochrom> W a w1 >>= k = case unW (k a) of W b w2 -> W b (w2 <> w1) -- so, the other order
19:09:33 <remexre> ah yeah
19:09:51 ss4 joins (~wootehfoo@user/wootehfoot)
19:09:52 <maerwald> I forgot... doesn't Writer leak memory?
19:09:54 <remexre> yeah I'll probably do HasCallStack too; never used rio, but from the readme it sounds potentially nice
19:10:09 <remexre> yeah, I think the standard advice is to always use State to impl Writer
19:11:00 <monochrom> Some ways of using Writer leaks memory. But some other ways don't. I'm a scientist and when I see both I attribute to the difference, not the commonality.
19:11:26 <monochrom> But programmers are pastors not scientists.
19:11:46 <zincy_> Programmers should be scientists
19:12:04 <maerwald> There's no such separation of programmer vs scientist.
19:12:11 <monochrom> "pastors" means people who write weekly blogs on their religious beliefs.
19:12:30 <zincy_> I feel like at the heart of every emotional opinion in software there is a deep truth which can be explained rationally
19:12:46 <geekosaur> not always
19:12:49 <monochrom> zincy_: Politicians should be honest, rational, and moral people, too. Bwahahahaha.
19:13:01 <geekosaur> programming has its share of flat-earthers
19:13:10 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
19:13:11 <zincy_> hahaha
19:13:14 <maerwald> The thing is... programming isn't just about technology. It's also about art.
19:14:16 <zincy_> What I mean to say isnt that every programmer opinion is valid but its either logically falsifiable or nonsense and can be just discarded
19:14:29 <zincy_> I guess I just negated myself oops
19:14:31 <maerwald> Well, it isn't that easy.
19:14:41 <maerwald> Because once *art* is involved, opinion becomes more complicated.
19:14:50 <unit73e> imo programming itself doesn't really make you a scientist, engineer or flat-earther imo, it depends on what you do
19:14:59 <unit73e> I like doing simple programs correctly
19:15:05 <zincy_> I believe a lot more of the *art* is logic/science than people realise
19:15:11 <unit73e> some like adding features and making things pretty
19:15:16 <zincy_> Thats what I am trying to get across
19:15:18 <maerwald> zincy_: I don't understand that sentence
19:15:57 <maerwald> unit73e: sounds like you *believe* in the unix principle. It has mostly been lost today.
19:16:47 <maerwald> The latest addition to the anti-unix fleet has been nix. Now apparently, you can't do anything without it (like... installing GHCJS).
19:16:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
19:17:01 × boxscape_ quits (~boxscape_@i577BCBDC.versanet.de) (Quit: Connection closed)
19:17:01 <zincy_> A lot of seemingly subjective statements programmers make can be ruled out as wrong even though they *feel* subjective
19:17:07 <unit73e> maerwald, yeah I guess it's becoming rare but I see it resurecting often. One example, IDEs are being replaced with modular editors. Not perfect but better than nothing.
19:17:29 <maerwald> well, I'm not sure how I feel about LSP
19:17:43 <geekosaur> so they're reinventing emacs (probably poorly)?
19:19:05 <unit73e> yup
19:19:05 <unit73e> that's what vscode and friends are
19:19:05 <unit73e> and atom
19:19:05 <maerwald> I mean... now we have client-server architecture everywhere and my editor consumes large chunks of json that gets then dumped into my home folder and that I have to look at pretty often, because the server crashes or my client forgot what to do
19:19:05 <unit73e> I use neovim but emacs is nice
19:19:05 <geekosaur> atom I can surely say does so poorly; I waited a few versions for it to stabilize, installed it, ran it, leaving it open overnight nearly killed my system
19:19:05 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
19:19:05 <geekosaur> uninstalled it and didn't look back
19:19:05 Feuermagier joins (~Feuermagi@user/feuermagier)
19:19:08 <geekosaur> I may try vscode at some point but am betting it's not much better
19:19:20 <unit73e> vscode is better but it's kind of weird in some ways
19:19:41 <maerwald> vscode was bearable with the vim plugin, but it had a lot of shortcomings and bugs
19:20:39 × Guest21 quits (~Guest21@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
19:22:30 <maerwald> it feels more like a social media platform to me... there's constantly popups and stuff trying to get my attention
19:22:56 <unit73e> that's one thing I don't like about vscode
19:23:00 <geekosaur> this is making me want to stay with emacs
19:23:14 <unit73e> vscode feels like IDE light
19:23:22 <unit73e> too much distractions
19:23:28 × zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
19:23:28 × zincy_89 quits (~zincy_@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Quit: Client closed)
19:23:38 <maerwald> those give you dopamine kicks and increase screen time
19:23:53 <unit73e> but it's the best GUI only editor I've used so far
19:24:02 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
19:24:03 <unit73e> that's something
19:24:06 <maerwald> not a coincidence that MS spearheaded all this popup nonsense
19:24:12 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
19:24:32 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
19:24:50 <unit73e> I feel like it was some Microsoft Joe that was sick and tired of Visual Studio that made vscode
19:25:06 <maerwald> https://github.com/microsoft/vscode/issues/14840
19:25:30 <maerwald> "I am CONSTANTLY hitting escape to get rid of them so I can see my code."
19:25:32 <maerwald> xD
19:26:05 <monochrom> s/Joe/Bob/ # right? RIGHT? >:)
19:26:29 <unit73e> lol Bob is better yes
19:26:36 <monochrom> or Paperclip
19:27:10 zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
19:27:29 <maerwald> but vscode has a nice plugin where you can save your settings into a github gist
19:30:47 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
19:32:10 <sm> vscode is great (even as a lifelong emacser)
19:32:16 <sm> the power to weight ratio is high!
19:36:21 <jneira[m]> i missed the total power to customize emacs last time i had to fight with the vscode api
19:38:10 <maerwald> if I was new to programming today, I totally would pick vscode
19:38:14 × zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
19:38:29 zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
19:38:37 <maerwald> the only reason I stuck to vim was that I had a phase where I enjoyed wasting days and days configuring it
19:39:24 <geekosaur> I did most of my emacs configuration in the mid-80s :þ
19:40:01 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
19:40:02 <geekosaur> I think the only change I've had to make since then is (require 'cl) instead of the old common lisp compatibility stuff
19:40:24 <geekosaur> well, and adding haskell-mode :)
19:42:53 <zincy_> mid-80s wow
19:43:45 <maerwald> there was great music back then
19:43:53 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 264 seconds)
19:43:58 <maerwald> and software was still fast
19:44:29 <geekosaur> actually I have that backwards, common lisp compat is now standard and I had to remove (require 'cl)
19:44:58 <monochrom> https://www.gnu.org/fun/jokes/ed-msg.en.html
19:45:21 AWizzArd_ is now known as AWizzArd
19:45:32 <monochrom> Note how emacs took up 6e37 bytes.
19:46:37 × danso quits (~danso@23-233-111-52.cpe.pppoe.ca) (Quit: WeeChat 3.2)
19:47:01 <zincy_> Im sure I read somewhere that Bryan O Sullivan still uses Ed
19:47:09 <monochrom> (Note how the whole world could not possibly have that much disk space back then :) )
19:47:58 <sm> I got legimitately use ed for work yesterday
19:48:30 <sm> I needed to insert the contents of a file after a certain line in another file
19:49:02 geekosaur used to script ed in buildscripts. (didn't get to use fancy build systems, they wouldn't even try to build on the pmaxen)
19:49:03 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
19:49:08 × pbrisbin quits (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net) (Quit: WeeChat 3.3)
19:49:24 pbrisbin joins (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net)
19:49:28 <sm> correction, I needed to insert a bash heredoc after a certain line
19:49:46 <monochrom> Nice, maybe I should teach ed in my unix course too.
19:49:48 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
19:50:09 <zincy_> you're teaching a course just on unix?
19:50:15 × pbrisbin quits (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net) (Client Quit)
19:51:08 <monochrom> Don't worry, it would be pitched as another program you could use in a shell script, for inserting a file into the middle of another file, like you said.
19:51:51 <monochrom> I teach a c-and-unix course in summers.
19:52:41 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
19:53:01 <zincy_> oh cool
19:53:07 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Client Quit)
19:53:26 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
19:55:46 <maerwald> "how to configure systemd"
19:56:39 <monochrom> I think something smug like "you don't configure it, you program it" is in order :)
19:56:46 × thyriaen quits (~thyriaen@dynamic-077-013-059-156.77.13.pool.telefonica.de) (Remote host closed the connection)
19:56:56 bongobrown joins (~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
19:57:29 <monochrom> Aaannnddd.... let's have a sequel to the "what's interpreter vs compiler" discussion....
19:57:36 lavaman joins (~lavaman@98.38.249.169)
19:57:42 <monochrom> What's configuration vs programming? >:)
19:58:39 <trcc> I have a function that in success cases returns a stablePointer, but in failure cases I have to return a nullPtr. However, stablePtr and nullPtr do not seem to match very well, i.e. expected type: IO (StablePtr (IORef (FMIT.FMIComponent a))) Actual type: IO (Ptr a0)
19:58:45 <trcc> am I being to explicit about my type or?
19:58:52 <maerwald> configuration is what I don't get paid for
19:59:38 <geekosaur> https://github.com/CleverRaven/Cataclysm-DDA/blob/master/data/json/portal_storm_effect_on_condition.json
20:01:11 <monochrom> ooohhh... using the amount of {}s to define "programming" :)
20:02:35 <maerwald> "software engineer" is just a marketing term
20:02:47 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
20:02:49 <maerwald> it looks better on my CV
20:03:22 <maerwald> what if I wrote "I put libraries together, of which I don't understand 95%"
20:03:46 <monochrom> trcc: So perhaps you should always return Ptr. In the success case, use castStablePtrToPtr.
20:03:58 <jneira[m]> put the program in the configuration and bang, money again
20:03:58 <sm> software technician
20:07:07 × ubert quits (~Thunderbi@91.141.46.110.wireless.dyn.drei.com) (Quit: ubert)
20:07:10 juhp joins (~juhp@128.106.188.220)
20:07:25 ubert joins (~Thunderbi@91.141.46.110.wireless.dyn.drei.com)
20:09:07 <trcc> monochrom: I am vorried about Ptr because it shall not be garbage collected, therefore StablePtr
20:09:40 × oxide quits (~lambda@user/oxide) (Quit: oxide)
20:11:13 <monochrom> Pretty sure GC isn't actually told about the types.
20:11:53 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
20:14:48 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
20:15:00 × alx741 quits (~alx741@181.196.69.72) (Ping timeout: 260 seconds)
20:15:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:15:21 lavaman joins (~lavaman@98.38.249.169)
20:15:21 <monochrom> Also pretty sure Ptr obtained from malloc is not GCed or moved either.
20:15:28 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:15:58 <monochrom> And Ptr obtained from alloca, in the duration when the alloca call hasn't terminated.
20:17:09 acidjnk_new joins (~acidjnk@p200300d0c7238d76b9ac87bdf676c186.dip0.t-ipconnect.de)
20:17:29 <monochrom> Generally anything that says "you need to call freeFoo or write a finalizer to free".
20:18:19 <trcc> monochrom: thanks, but it is because of the docs in StablePtr that reads: "A stable pointer is a reference to a Haskell expression that is guaranteed not to be affected by garbage collection, i.e., it will neither be deallocated nor will the value of the stable pointer itself change during garbage collection (ordinary references may be relocated during garbage collection). Consequently, stable pointers can be passed to fore
20:18:19 <trcc> ign code, which can treat it as an opaque reference to a Haskell value."
20:18:26 <trcc> and I am exactly passing it to foreign code
20:19:52 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
20:20:01 <trcc> anywas, found a castPtrToStablePtr
20:22:16 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
20:23:37 × burnsidesLlama quits (~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
20:24:32 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:24:41 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
20:26:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:27:37 alx741 joins (~alx741@186.178.109.79)
20:35:55 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:40:33 <dsal> I have a simple enum sum type and a function that takes one of those and some arbitrary `a`. Is there a way I can constrain the `a` to be of a type associated with a value from that sum?
20:40:59 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
20:41:13 <dsal> I feel like there's some kind of datakinds magic. Basically, I want to be able to call `f True a` but not `f False a`
20:41:19 × ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 258 seconds)
20:43:53 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 246 seconds)
20:46:00 lavaman joins (~lavaman@98.38.249.169)
20:48:47 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
20:50:37 <AWizzArd> Linear: when I have foo :: Int 1%-> Double and inside foo I want to call `bar` and pass it that Int argument, does then `bar` also have to accept a linear argument. Does this linearity get passed on/inherited?
20:50:40 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
20:50:50 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
20:51:02 Cajun joins (~Cajun@user/cajun)
20:55:33 <geekosaur> I would be surprised if passing a parameter was a gtet out of jail free card for linearity
20:56:42 jstolarek joins (~jstolarek@137.220.120.162)
20:59:41 burnsidesLlama joins (~burnsides@dhcp168-028.wadham.ox.ac.uk)
21:00:02 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:00:23 alzgh joins (~alzgh@user/alzgh)
21:00:28 <AWizzArd> geekosaur: I would also assume that this constraint will get passed on.
21:01:12 <AWizzArd> geekosaur: But what about `dup`? Or is it called `dup2`? It seems that I can do: let (x', x'') = dup x
21:01:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
21:01:37 <AWizzArd> Now x is consumed and I can't use it anymore. But I have x' and x'' and can/must use both of them.
21:02:12 <AWizzArd> So this seems to be a way out of linearity for free. I may be missing something here tho.
21:03:32 × zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
21:04:00 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds)
21:05:10 × burnsidesLlama quits (~burnsides@dhcp168-028.wadham.ox.ac.uk) (Ping timeout: 260 seconds)
21:05:23 sedeki joins (~textual@user/sedeki)
21:05:27 burnsidesLlama joins (~burnsides@dhcp168-028.wadham.ox.ac.uk)
21:08:22 lavaman joins (~lavaman@98.38.249.169)
21:08:45 zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
21:13:11 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
21:13:57 hendursaga joins (~weechat@user/hendursaga)
21:13:59 <aegon> i'm getting a Thread Terminated and i don't see a reason for it, how can i get more info out of ghc about why its being terminated
21:18:01 × xff0x quits (~xff0x@2001:1a81:5218:9100:aa26:25c9:f09a:101d) (Ping timeout: 245 seconds)
21:18:54 <aegon> derp i was killin it by messing up timeout logic :X
21:18:55 xff0x joins (~xff0x@2001:1a81:5218:9100:9942:dd03:d29b:2938)
21:20:31 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
21:21:06 × fendor quits (~fendor@178.165.200.199.wireless.dyn.drei.com) (Remote host closed the connection)
21:21:31 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:21:52 alzgh joins (~alzgh@user/alzgh)
21:24:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
21:25:31 <dolio> AWizzArd: What is the type of dup?
21:25:34 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
21:26:12 <unit73e> Looks like HLS works with Paths_* if I open a file without it first lol. Weird but I guess it's a workaround.
21:26:41 <AWizzArd> https://hackage.haskell.org/package/linear-base-0.1.0/docs/Prelude-Linear.html#v:dup2
21:26:53 <AWizzArd> dup2 :: a %1 -> (a, a)
21:28:37 <dolio> No, that's not the type. :)
21:28:47 <dolio> Dupable a => a %1 -> (a, a)
21:30:23 × d0ku quits (~d0ku@178.43.15.137.ipv4.supernova.orange.pl) (Ping timeout: 264 seconds)
21:32:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:33:01 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
21:33:45 hyiltiz joins (~quassel@31.220.5.250)
21:33:50 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
21:34:40 <AWizzArd> dolio: true.
21:34:56 × sedeki quits (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com)
21:35:20 <AWizzArd> You see, no ghci support here. One more proof that I need Haskell to support me (:
21:35:59 <dolio> Some types can be duplicated, say becasue they can be represented in a stable way in memory or something.
21:36:31 <dolio> But it's not free, and you can't do it to everything.
21:37:43 × Skyfire quits (~pyon@user/pyon) (Quit: WeeChat 3.3)
21:39:35 <dolio> The linear arrow itself is an example of something that might not be able to be duplicated, because linear functions might be a reification of ephemeral control flow points in the program, like continuations.
21:40:21 <dolio> If you duplicate/discard those control flow points, you get the non-deterministic results of, e.g. call/cc.
21:41:39 <dolio> So in that sense, it only makes sense to be able to duplicate linear functions that are represented by code.
21:46:54 echoSMILE parts (~echoSMILE@user/echosmile) ()
21:51:39 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
21:52:11 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
21:54:16 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:57:05 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 260 seconds)
21:57:08 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
21:58:27 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
21:59:37 Guest|12 joins (~Guest|12@89.187.239.178)
22:00:06 Guest|12 parts (~Guest|12@89.187.239.178) ()
22:07:31 × zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
22:11:20 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
22:12:09 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:17:23 f-a joins (f2a@f2a.jujube.ircnow.org)
22:22:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
22:22:07 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
22:22:08 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
22:22:31 ss4 joins (~wootehfoo@user/wootehfoot)
22:24:47 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
22:25:16 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:27:06 justsomeguy joins (~justsomeg@user/justsomeguy)
22:29:41 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
22:30:34 Skyfire joins (~pyon@user/pyon)
22:30:57 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds)
22:37:32 × dsrt^ quits (~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds)
22:37:59 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:37:59 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
22:37:59 wroathe joins (~wroathe@user/wroathe)
22:42:14 dsrt^ joins (~dsrt@wsip-68-227-92-38.mc.at.cox.net)
22:44:04 <ski> zincy : anyway .. Haskell doesn't have an `exists' keyword (a few implementations did have it as extension, but only in the "trivial" case of occuring to the left of a function arrow (possibly indirected through type synonyms, iirc)). so, in actual current Haskell (with extensions), you do need to *encode* `exists' (in one of two main ways, sometimes a third applies). nonetheless, i think it helps to think
22:44:10 <ski> about it conceptually, at the level i described, with a pseudo-Haskell `exists', before delving into how to actually get code today working
22:45:04 f-a parts (f2a@f2a.jujube.ircnow.org) ()
22:45:30 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 260 seconds)
22:52:41 lavaman joins (~lavaman@98.38.249.169)
22:53:10 × AlexNoo quits (~AlexNoo@178.34.150.219) (Read error: Connection reset by peer)
22:53:53 AlexNoo joins (~AlexNoo@178.34.150.219)
22:57:07 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
22:57:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:59:24 gdd1 is now known as gdd
23:01:44 Psybur joins (~Psybur@mobile-166-170-30-165.mycingular.net)
23:03:33 × max22- quits (~maxime@2a01cb0883359800761b1c69d9198b7f.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
23:04:06 × chomwitt quits (~chomwitt@ppp-94-68-249-8.home.otenet.gr) (Remote host closed the connection)
23:12:55 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
23:13:35 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
23:13:53 MQ-17J joins (~MQ-17J@8.6.144.240)
23:15:23 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
23:21:59 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 264 seconds)
23:22:59 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
23:25:15 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:25:56 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
23:26:06 × michalz quits (~michalz@185.246.204.97) (Remote host closed the connection)
23:26:10 yinghua joins (~yinghua@2800:2121:1400:900:b457:83cc:995e:57e)
23:32:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
23:35:52 × acidjnk_new quits (~acidjnk@p200300d0c7238d76b9ac87bdf676c186.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:38:42 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
23:44:45 mvk joins (~mvk@2607:fea8:5cc1:300::d3fb)
23:49:52 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 260 seconds)
23:49:57 × Null_A quits (~null_a@2601:645:8700:2290:25a5:cf0c:746a:f835) (Remote host closed the connection)
23:51:10 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
23:52:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
23:52:59 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
23:55:44 × alx741 quits (~alx741@186.178.109.79) (Quit: alx741)
23:57:04 alx741 joins (~alx741@186.178.109.79)
23:57:59 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 264 seconds)

All times are in UTC on 2021-10-27.