2021/05/16

2021-05-16 00:01:53 +0000Tario(~Tario@201.192.165.173) (Ping timeout: 265 seconds)
2021-05-16 00:03:19 +0000ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-05-16 00:04:09 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-05-16 00:04:12 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 00:04:46 +0000 <Maxdamantus> What's the name of the GHC extension that allows `do` notation to reduce to something other than the standard `Monad` class?
2021-05-16 00:06:06 +0000 <Maxdamantus> Ah, RebindableSyntax.
2021-05-16 00:06:13 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970)
2021-05-16 00:08:05 +0000DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-05-16 00:08:58 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-05-16 00:09:16 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 00:10:08 +0000Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-05-16 00:10:12 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970) (Remote host closed the connection)
2021-05-16 00:10:36 +0000lawid(~quassel@2a02:8109:b5c0:bd8:265e:beff:fe2a:dde8) (Quit: lawid)
2021-05-16 00:10:58 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970)
2021-05-16 00:12:50 +0000lawid(~quassel@2a02:8109:b5c0:bd8:265e:beff:fe2a:dde8)
2021-05-16 00:13:39 +0000bennofs__(~quassel@dynamic-078-055-014-180.78.55.pool.telefonica.de)
2021-05-16 00:14:59 +0000TK__(~cinch@2601:1c0:5201:2100:9992:f75f:4988:2a3c) (Ping timeout: 245 seconds)
2021-05-16 00:16:32 +0000Tario(~Tario@201.192.165.173)
2021-05-16 00:17:56 +0000bennofs_(~quassel@dynamic-077-011-131-014.77.11.pool.telefonica.de) (Ping timeout: 268 seconds)
2021-05-16 00:20:51 +0000bitmapper(uid464869@gateway/web/irccloud.com/x-srjmukauatbzsjuh) (Quit: Connection closed for inactivity)
2021-05-16 00:23:19 +0000acidjnk_new(~acidjnk@p200300d0c72b95208d2194a61b0d7b67.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2021-05-16 00:24:33 +0000killsushi_(~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11)
2021-05-16 00:24:37 +0000stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-05-16 00:24:59 +0000killsushi(~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11) (Ping timeout: 245 seconds)
2021-05-16 00:31:05 +0000 <geekosaur> unless you mean ApplicativeDo
2021-05-16 00:33:49 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 00:34:31 +0000ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 252 seconds)
2021-05-16 00:34:51 +0000Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 260 seconds)
2021-05-16 00:34:53 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 00:35:55 +0000no-def(~no-def@modemcable159.116-21-96.mc.videotron.ca)
2021-05-16 00:37:00 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 00:37:39 +0000stree(~stree@68.36.8.116)
2021-05-16 00:39:09 +0000 <Maxdamantus> No, I was thinking specifically about some sort of shadowing behaviour, which RebindableSyntax has, but ApplicativeDo doesn't.
2021-05-16 00:39:26 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 00:40:47 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-16 00:41:36 +0000ByronJohnson(~bairyn@unaffiliated/bob0)
2021-05-16 00:41:36 +0000Tene(~tene@mail.digitalkingdom.org)
2021-05-16 00:41:37 +0000Tene(~tene@mail.digitalkingdom.org) (Changing host)
2021-05-16 00:41:37 +0000Tene(~tene@poipu/supporter/slacker/tene)
2021-05-16 00:46:05 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 00:48:33 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-pqabmrplvmbawjlf) (Quit: Connection closed for inactivity)
2021-05-16 00:48:44 +0000 <yushyin> Maxdamantus: a recent addition is also qualifiedo
2021-05-16 00:48:47 +0000 <yushyin> Maxdamantus: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/qualified_do.html?extension-Q…
2021-05-16 00:49:45 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 00:52:17 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-05-16 00:54:27 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 00:54:45 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 00:54:49 +0000jao(~jao@pdpc/supporter/professional/jao) (Remote host closed the connection)
2021-05-16 00:59:36 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 252 seconds)
2021-05-16 01:02:20 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com)
2021-05-16 01:05:44 +0000afznvzan(4c0ef7dd@76-14-247-221.or.wavecable.com) (Quit: Connection closed)
2021-05-16 01:06:37 +0000geekosaur(45870322@069-135-003-034.biz.spectrum.com) (Quit: Ping timeout (120 seconds))
2021-05-16 01:06:38 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 01:07:15 +0000geekosaur(45870322@069-135-003-034.biz.spectrum.com)
2021-05-16 01:10:36 +0000mouseghost(~draco@wikipedia/desperek) (Remote host closed the connection)
2021-05-16 01:11:29 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-05-16 01:11:36 +0000Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 260 seconds)
2021-05-16 01:16:17 +0000geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-05-16 01:16:25 +0000Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 250 seconds)
2021-05-16 01:16:25 +0000AkechiShiro(~AkechiShi@2a01:e0a:5f9:9681:1473:3dff:fe42:56a9) (Ping timeout: 250 seconds)
2021-05-16 01:17:59 +0000whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-05-16 01:18:19 +0000AkechiShiro(~AkechiShi@2a01:e0a:5f9:9681:5cef:ba41:cf1d:9b70)
2021-05-16 01:18:33 +0000Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578)
2021-05-16 01:19:06 +0000whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-05-16 01:19:20 +0000 <koz_> What's a good way of writing a function of type NonEmpty a -> [[a]], which gives all _proper_ sublists? As in, everything not equal to myself.
2021-05-16 01:19:40 +0000 <koz_> Ideally, order should be from smaller sublists to bigger.
2021-05-16 01:24:58 +0000machinedgod(~machinedg@24.105.81.50)
2021-05-16 01:26:19 +0000jao(~jao@pdpc/supporter/professional/jao)
2021-05-16 01:30:16 +0000dbohdan(dbohdan@unaffiliated/dbohdan) (Read error: Connection reset by peer)
2021-05-16 01:31:10 +0000dbohdan(~dbohdan@81.4.121.116)
2021-05-16 01:32:13 +0000plutoniix(~q@node-ul6.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2021-05-16 01:32:33 +0000geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds)
2021-05-16 01:38:06 +0000olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-16 01:38:25 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 01:41:45 +0000Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-05-16 01:43:23 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-05-16 01:45:04 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-16 01:47:00 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 01:51:39 +0000xff0x(~xff0x@2001:1a81:52ea:b300:4fc0:e5c8:ce10:9b1b) (Ping timeout: 245 seconds)
2021-05-16 01:52:45 +0000geekosaur(45870322@069-135-003-034.biz.spectrum.com) (Quit: Connection closed)
2021-05-16 01:53:51 +0000xff0x(~xff0x@2001:1a81:5322:8600:5cc4:429b:3219:4854)
2021-05-16 01:55:26 +0000mjo(73570cf5@ppp-115-87-12-245.revip4.asianet.co.th)
2021-05-16 01:55:52 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 01:57:12 +0000drbean_(~drbean@TC210-63-209-26.static.apol.com.tw)
2021-05-16 01:59:53 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 02:00:24 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
2021-05-16 02:00:46 +0000killsushi_killsushi
2021-05-16 02:01:14 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 02:01:38 +0000stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-05-16 02:02:02 +0000stree(~stree@68.36.8.116)
2021-05-16 02:05:14 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-05-16 02:05:49 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-05-16 02:06:01 +0000m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2021-05-16 02:07:00 +0000petersen(~petersen@redhat/juhp) (Quit: petersen)
2021-05-16 02:07:41 +0000petersen(~petersen@redhat/juhp)
2021-05-16 02:08:03 +0000yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat)
2021-05-16 02:08:19 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2)
2021-05-16 02:09:27 +0000Tario(~Tario@201.192.165.173)
2021-05-16 02:14:24 +0000chris__(~chris@81.96.113.213)
2021-05-16 02:18:45 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 02:19:09 +0000chris__(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-05-16 02:21:31 +0000kristijonas(~kristijon@78-56-32-39.static.zebra.lt) (Remote host closed the connection)
2021-05-16 02:21:54 +0000kristijonas(~kristijon@78-56-32-39.static.zebra.lt)
2021-05-16 02:23:21 +0000unyu(~pyon@unaffiliated/pyon) (Quit: ERC (IRC client for Emacs 27.2))
2021-05-16 02:23:47 +0000HannaM(~quassel@p54849510.dip0.t-ipconnect.de) (Quit: HannaM)
2021-05-16 02:23:56 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-05-16 02:24:22 +0000FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-16 02:24:22 +0000finn_elijaGuest32020
2021-05-16 02:24:22 +0000FinnElijafinn_elija
2021-05-16 02:26:37 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::5e97) (Ping timeout: 250 seconds)
2021-05-16 02:26:58 +0000TK__(~cinch@2601:1c0:5201:2100:9992:f75f:4988:2a3c)
2021-05-16 02:27:57 +0000Guest32020(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-05-16 02:45:58 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-16 02:47:06 +0000theDon(~td@muedsl-82-207-238-251.citykom.de) (Ping timeout: 240 seconds)
2021-05-16 02:48:33 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 02:49:14 +0000theDon(~td@94.134.91.128)
2021-05-16 02:52:03 +0000roconnor(~roconnor@host-23-91-186-24.dyn.295.ca) (Quit: Konversation terminated!)
2021-05-16 02:53:05 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 02:54:53 +0000mayleesia(~mayleesia@x4dbf5c18.dyn.telefonica.de)
2021-05-16 02:57:26 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 02:57:50 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 02:58:14 +0000maylee(~mayleesia@dynamic-077-013-052-059.77.13.pool.telefonica.de) (Ping timeout: 246 seconds)
2021-05-16 02:58:32 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com)
2021-05-16 03:02:04 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 252 seconds)
2021-05-16 03:04:13 +0000a6a45081-2b83(~aditya@171.76.17.86)
2021-05-16 03:04:52 +0000 <a6a45081-2b83> how to install haskell programs such as hadolint without registering the dependencies in global ghc-pkg (sudo pacman -S hadolint?)
2021-05-16 03:07:38 +0000 <dmwit> I believe the default behavior of cabal these days does not install dependencies into the global package database.
2021-05-16 03:08:16 +0000 <hrnz> I believe the default behaviour of this channel these days is to tell people not to use arch haskell packages
2021-05-16 03:08:21 +0000 <dmwit> So... `cabal install --exes hadolint` would be my recommendation, assuming `hadolint` is the name of the package that provides whatever executable you care about.
2021-05-16 03:08:53 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::5e97)
2021-05-16 03:09:02 +0000mjo(73570cf5@ppp-115-87-12-245.revip4.asianet.co.th) (Quit: Connection closed)
2021-05-16 03:12:25 +0000 <a6a45081-2b83> dmwit: yeah I think that's great. Seems like one downside is that I have to compile it myself.
2021-05-16 03:17:03 +0000 <davean> a6a45081-2b83: I'd warn that using arch will generally be difficult with Haskell because they break packages.
2021-05-16 03:17:10 +0000bitmagie(~Thunderbi@200116b806a58c00ac447dc2fd201add.dip.versatel-1u1.de)
2021-05-16 03:18:11 +0000bitmagie(~Thunderbi@200116b806a58c00ac447dc2fd201add.dip.versatel-1u1.de) (Client Quit)
2021-05-16 03:18:54 +0000boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220) (Quit: Connection closed)
2021-05-16 03:19:18 +0000 <dmwit> koz_: What does "sublist" mean?
2021-05-16 03:20:03 +0000 <koz_> dmwit: The elements at a subset of the valid indices of the list.
2021-05-16 03:20:23 +0000 <dmwit> Okay. I'd probably just drop the last element of `subsequences . toList`.
2021-05-16 03:20:31 +0000 <dmwit> > subsequences "abc"
2021-05-16 03:20:32 +0000 <lambdabot> ["","a","b","ab","c","ac","bc","abc"]
2021-05-16 03:20:38 +0000 <dmwit> > init $ subsequences "abc"
2021-05-16 03:20:40 +0000 <lambdabot> ["","a","b","ab","c","ac","bc"]
2021-05-16 03:20:41 +0000 <koz_> Figures.
2021-05-16 03:20:43 +0000 <koz_> Thanks!
2021-05-16 03:22:20 +0000 <dmwit> > (inits >=> tails) "abc"
2021-05-16 03:22:21 +0000 <lambdabot> ["","a","","ab","b","","abc","bc","c",""]
2021-05-16 03:22:44 +0000 <dmwit> > (drop 1 . inits >=> tails) "abc"
2021-05-16 03:22:46 +0000 <lambdabot> ["a","","ab","b","","abc","bc","c",""]
2021-05-16 03:22:55 +0000 <dmwit> err... hm
2021-05-16 03:23:49 +0000 <dmwit> > [] : (inits >=> drop 1 . tails) "abc"
2021-05-16 03:23:51 +0000 <lambdabot> ["","","b","","bc","c",""]
2021-05-16 03:24:03 +0000 <dmwit> ok I give up
2021-05-16 03:25:02 +0000 <dmwit> > [] : (inits >=> init . tails) "abc" -- I lied
2021-05-16 03:25:05 +0000 <lambdabot> ["","a","ab","b","abc","bc","c"]
2021-05-16 03:28:47 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 03:29:07 +0000 <a6a45081-2b83> davean: I agree, I only limit installing globally usable packages with pacman like pandoc/shellcheck/hadolint. Otherwise I use cabal/stack
2021-05-16 03:33:35 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-05-16 03:33:46 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2021-05-16 03:36:10 +0000 <dmwit> I guess I don't really know what you want. You don't like your distro's package manager, and you don't like the Haskell community's de-facto package managers (both of which build from source). Which is fine and all, but what are you really expecting of us?
2021-05-16 03:36:25 +0000 <dmwit> Should we magic up a different package manager somehow?
2021-05-16 03:40:30 +0000davros(~davros@host86-185-126-190.range86-185.btcentralplus.com) (Remote host closed the connection)
2021-05-16 03:43:39 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 03:45:31 +0000geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-05-16 03:48:13 +0000 <hrnz> https://stuff.hrnz.li/677150485379022858.gif
2021-05-16 03:51:21 +0000xkapastel(uid17782@gateway/web/irccloud.com/x-xbpjbbtirknbijsk) (Quit: Connection closed for inactivity)
2021-05-16 03:51:58 +0000nyd(~nyd@unaffiliated/elysian)
2021-05-16 03:53:55 +0000notzmv(~zmv@unaffiliated/zmv) (Remote host closed the connection)
2021-05-16 03:54:16 +0000 <dmwit> Sure, you can switch distros. I strongly encourage it, if you're starting out on Arch.
2021-05-16 03:54:50 +0000 <dmwit> Seems like kind of a big hammer for this nail.
2021-05-16 03:56:16 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 03:56:22 +0000geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-05-16 03:58:19 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 04:00:26 +0000Rudd0(~Rudd0@185.189.115.103)
2021-05-16 04:00:44 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 04:01:14 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
2021-05-16 04:03:16 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 04:05:49 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-05-16 04:06:00 +0000ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 04:07:32 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-05-16 04:09:09 +0000RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 245 seconds)
2021-05-16 04:10:24 +0000ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
2021-05-16 04:10:25 +0000stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-05-16 04:15:39 +0000no-def(~no-def@modemcable159.116-21-96.mc.videotron.ca) (Remote host closed the connection)
2021-05-16 04:16:23 +0000alx741(~alx741@186.178.108.187) (Quit: alx741)
2021-05-16 04:17:38 +0000a6a45081-2b83(~aditya@171.76.17.86) (Remote host closed the connection)
2021-05-16 04:23:06 +0000stree(~stree@68.36.8.116)
2021-05-16 04:24:16 +0000machinedgod(~machinedg@24.105.81.50)
2021-05-16 04:26:11 +0000notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-05-16 04:27:48 +0000sophi4c4pozzoli3(~sophi4c4p@modemcable159.116-21-96.mc.videotron.ca)
2021-05-16 04:30:12 +0000jao(~jao@pdpc/supporter/professional/jao) (Ping timeout: 240 seconds)
2021-05-16 04:39:40 +0000 <Andriamanitra> why doesn't this work? i'm basically trying to create a union type that can be "Int" or "Reg": https://paste.tomsmeding.com/waFImXzW
2021-05-16 04:40:13 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 04:41:04 +0000 <dmwit> Andriamanitra: Compare `data Reg = A | B` and `data Val = Reg | Int`.
2021-05-16 04:41:17 +0000 <dmwit> (By way of hint.)
2021-05-16 04:41:36 +0000 <dmwit> (If this is not enough of a hint, just say and I'll happily spell it out in full detail.)
2021-05-16 04:42:21 +0000 <Andriamanitra> i think i get what you're saying but i don't know how to get around it
2021-05-16 04:42:42 +0000 <dmwit> The usual way is `data Val = Reg Reg | Int Int`.
2021-05-16 04:42:47 +0000 <dmwit> Kind of sneaky.
2021-05-16 04:43:19 +0000 <dmwit> The first in each pair defines a new computation-level thing, and the second in each pair refers to an existing type-level thing.
2021-05-16 04:43:23 +0000 <Andriamanitra> thanks, that works!
2021-05-16 04:43:25 +0000RusAlex(~Chel@unaffiliated/rusalex)
2021-05-16 04:44:57 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-05-16 04:47:48 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 04:52:04 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 252 seconds)
2021-05-16 04:52:12 +0000urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-05-16 04:53:15 +0000sophi4c4pozzoli3(~sophi4c4p@modemcable159.116-21-96.mc.videotron.ca) (Remote host closed the connection)
2021-05-16 04:57:17 +0000xenon-(~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-05-16 04:57:58 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 252 seconds)
2021-05-16 05:03:53 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-05-16 05:03:53 +0000ozzymcduff(~ozzymcduf@81-234-151-21-no94.tbcn.telia.com)
2021-05-16 05:06:51 +0000jamm_(~jamm@unaffiliated/jamm)
2021-05-16 05:11:14 +0000jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 245 seconds)
2021-05-16 05:13:46 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-16 05:15:42 +0000dcoutts(~dcoutts@unaffiliated/dcoutts) (Remote host closed the connection)
2021-05-16 05:16:05 +0000dcoutts(~dcoutts@unaffiliated/dcoutts)
2021-05-16 05:16:46 +0000motherfsck(~motherfsc@unaffiliated/motherfsck)
2021-05-16 05:18:03 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-05-16 05:20:07 +0000ddellacosta(~ddellacos@83.143.246.103)
2021-05-16 05:23:36 +0000dbohdan(~dbohdan@81.4.121.116) (Changing host)
2021-05-16 05:23:36 +0000dbohdan(~dbohdan@unaffiliated/dbohdan)
2021-05-16 05:23:36 +0000cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2021-05-16 05:25:02 +0000ddellacosta(~ddellacos@83.143.246.103) (Ping timeout: 268 seconds)
2021-05-16 05:25:34 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970) (Remote host closed the connection)
2021-05-16 05:26:11 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970)
2021-05-16 05:29:14 +0000sahlane(~sahlane@node-1w7jr9ql952ys1fkk0nerg9xr.ipv6.telus.net)
2021-05-16 05:32:04 +0000sjsjs(3262559e@d50-98-85-158.bchsia.telus.net)
2021-05-16 05:32:05 +0000waleee-cl(uid373333@gateway/web/irccloud.com/x-srxbyyzektablxju) (Quit: Connection closed for inactivity)
2021-05-16 05:32:38 +0000 <sahlane> yo
2021-05-16 05:32:58 +0000sahlane(~sahlane@node-1w7jr9ql952ys1fkk0nerg9xr.ipv6.telus.net) (Remote host closed the connection)
2021-05-16 05:33:11 +0000sjsjs(3262559e@d50-98-85-158.bchsia.telus.net) (Client Quit)
2021-05-16 05:34:33 +0000mbomba(~mbomba@bras-base-toroon2719w-grc-38-142-114-122-216.dsl.bell.ca)
2021-05-16 05:35:07 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970) (Ping timeout: 250 seconds)
2021-05-16 05:39:10 +0000mbomba(~mbomba@bras-base-toroon2719w-grc-38-142-114-122-216.dsl.bell.ca) (Quit: WeeChat 3.1)
2021-05-16 05:43:26 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-05-16 05:45:35 +0000a6a45081-2b83(~aditya@171.76.17.86)
2021-05-16 05:45:43 +0000 <a6a45081-2b83> which is haskell
2021-05-16 05:45:52 +0000 <a6a45081-2b83> 's REST client/library?
2021-05-16 05:56:52 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 05:56:58 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 05:57:12 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 05:59:05 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::5e97) (Remote host closed the connection)
2021-05-16 06:00:03 +0000cdsmith(~cdsmithus@c-73-184-127-183.hsd1.ga.comcast.net) (Read error: Connection reset by peer)
2021-05-16 06:01:22 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 252 seconds)
2021-05-16 06:01:25 +0000Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 268 seconds)
2021-05-16 06:01:31 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-05-16 06:01:37 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 06:02:19 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 252 seconds)
2021-05-16 06:03:01 +0000gemmaro(~Thunderbi@240f:74:d1f0:1:8859:feb:afd:2b9d) (Quit: gemmaro)
2021-05-16 06:04:16 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::5e97)
2021-05-16 06:05:02 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2021-05-16 06:05:18 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 06:06:32 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-05-16 06:10:45 +0000 <charukiewicz> a6a45081-2b83: are you asking about which Haskell libraries can be used to build a client that interacts with a REST API?
2021-05-16 06:10:54 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-05-16 06:11:13 +0000 <a6a45081-2b83> which haskell libraries can be used to make REST requests...
2021-05-16 06:11:24 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 06:11:40 +0000darjeeling_(~darjeelin@122.245.120.162) (Ping timeout: 252 seconds)
2021-05-16 06:12:07 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 06:12:07 +0000 <charukiewicz> some options in order of simplicity: req, wreq, servant-client
2021-05-16 06:13:28 +0000electricityZZZZ(~electrici@157-131-250-97.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
2021-05-16 06:14:58 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 252 seconds)
2021-05-16 06:15:06 +0000Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-05-16 06:15:41 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-05-16 06:16:17 +0000hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-05-16 06:18:01 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::5e97) (Ping timeout: 250 seconds)
2021-05-16 06:18:53 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 06:20:53 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-05-16 06:23:06 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-05-16 06:23:46 +0000ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 252 seconds)
2021-05-16 06:24:03 +0000shanemikel(~shanemike@desk.roadwar.net) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-05-16 06:24:36 +0000shanemikel(~shanemike@desk.roadwar.net)
2021-05-16 06:24:51 +0000Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 268 seconds)
2021-05-16 06:25:14 +0000Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
2021-05-16 06:25:14 +0000Sgeo_(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-05-16 06:25:25 +0000darjeeling_(~darjeelin@115.215.40.88)
2021-05-16 06:26:53 +0000 <a6a45081-2b83> and should i use sqlite3 or persist ?
2021-05-16 06:27:30 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 06:30:38 +0000ByronJohnson(~bairyn@unaffiliated/bob0)
2021-05-16 06:31:10 +0000Tene(~tene@mail.digitalkingdom.org)
2021-05-16 06:31:11 +0000Tene(~tene@mail.digitalkingdom.org) (Changing host)
2021-05-16 06:31:11 +0000Tene(~tene@poipu/supporter/slacker/tene)
2021-05-16 06:31:28 +0000stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-05-16 06:33:51 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 06:34:44 +0000jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-05-16 06:38:24 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-05-16 06:42:14 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
2021-05-16 06:43:56 +0000stree(~stree@68.36.8.116)
2021-05-16 06:43:57 +0000acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-05-16 06:45:40 +0000Graypup_(Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in)
2021-05-16 06:47:47 +0000Graypup_(Graypup@lfcode.ca)
2021-05-16 06:51:52 +0000acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
2021-05-16 06:57:14 +0000yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp)
2021-05-16 06:57:21 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 06:58:05 +0000sagax(~sagax_nb@213.138.71.146) (Remote host closed the connection)
2021-05-16 07:04:55 +0000ixlun(~user@109.249.184.235)
2021-05-16 07:05:40 +0000ixlun(~user@109.249.184.235) (Remote host closed the connection)
2021-05-16 07:10:45 +0000ddellacosta(~ddellacos@86.106.143.111)
2021-05-16 07:12:20 +0000 <a6a45081-2b83> @hoogle Parser a -> IO a
2021-05-16 07:12:21 +0000 <lambdabot> ELynx.Tools parseIOWith :: Parser a -> IO a
2021-05-16 07:12:21 +0000 <lambdabot> Basement.Monad unsafePrimToIO :: PrimMonad prim => prim a -> IO a
2021-05-16 07:12:21 +0000 <lambdabot> Generic.Data.Internal.Utils coerce' :: Coercible (f x) (g x) => f x -> g x
2021-05-16 07:12:33 +0000 <a6a45081-2b83> what should I use?
2021-05-16 07:15:08 +0000ddellacosta(~ddellacos@86.106.143.111) (Ping timeout: 246 seconds)
2021-05-16 07:21:03 +0000ixlun(~user@109.249.184.235)
2021-05-16 07:21:59 +0000 <olligobber> % :t \x -> interact $ parse x "Standard Input"
2021-05-16 07:21:59 +0000 <yahb> olligobber: ; <interactive>:1:18: error: Variable not in scope: parse :: t -> String -> String -> String
2021-05-16 07:22:26 +0000 <olligobber> wait, you wrote Parser not Parsec
2021-05-16 07:23:37 +0000 <olligobber> % :t \x -> getContents >>= parseTest x
2021-05-16 07:23:37 +0000 <yahb> olligobber: ; <interactive>:1:23: error: Variable not in scope: parseTest :: t -> String -> IO b
2021-05-16 07:24:25 +0000 <olligobber> a6a45081-2b83, what library are you getting Parser from?
2021-05-16 07:25:35 +0000idhugo(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
2021-05-16 07:27:51 +0000oxide(~lambda@unaffiliated/mclaren)
2021-05-16 07:32:36 +0000 <charukiewicz> a6a45081-2b83: If you're using SQLite and want something pretty simple, some good options are going to be sqlite-simple and persistent. sqlite3 is going to be linked into each of these during compile time. I recommend using persistent since it allows you to define your database model types in Haskell and gives you type safety when querying your data.
2021-05-16 07:33:21 +0000 <a6a45081-2b83> charukiewicz: thanks, that's very informative
2021-05-16 07:34:03 +0000 <a6a45081-2b83> olligobber: http-conduit -> aeson -> sqlite-simple . I am trying to get nested objects in json
2021-05-16 07:34:06 +0000 <charukiewicz> Keep in mind, however, that persistent has a pretty simple query API and doesn't support joins. If you need joins then you'll need to write raw SQL (persistent has a function that lets you write perpared statements), or you can use the library called Esqueleto, which expands on persistent and introduces a type-safe SQL syntax that supports joins and other more common SQL operations
2021-05-16 07:34:35 +0000 <a6a45081-2b83> I am getting confused with the fmaps and <$> I am using to get nested object from Json
2021-05-16 07:37:38 +0000Pickchea(~private@unaffiliated/pickchea)
2021-05-16 07:41:45 +0000 <olligobber> a6a45081-2b83, I don't see a Parser in any of those packages
2021-05-16 07:42:10 +0000mayleesiamaylee
2021-05-16 07:43:53 +0000 <a6a45081-2b83> aeson
2021-05-16 07:46:18 +0000 <a6a45081-2b83> probably i should use lens here
2021-05-16 07:47:27 +0000xenon-(~bc817c21@217.29.117.252)
2021-05-16 07:48:42 +0000jakalx(~jakalx@base.jakalx.net)
2021-05-16 07:51:28 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 07:52:08 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 07:54:07 +0000kuribas(~user@ptr-25vy0i8tkv6wdcurvf3.18120a2.ip6.access.telenet.be)
2021-05-16 07:55:49 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
2021-05-16 07:57:25 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-05-16 07:58:04 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 07:59:54 +0000fendor_fendor
2021-05-16 08:00:20 +0000 <pavonia> Is JuicyPixels the best option when dealing with indexed/palletized image formats? For example, it doesn't seem to be able to write PNGs with bit depths smaller than 8. Perhaps there's a better alternative
2021-05-16 08:02:54 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
2021-05-16 08:07:24 +0000hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-05-16 08:10:18 +0000rusua(uid124537@gateway/web/irccloud.com/x-cfwpbwrvytymqnad)
2021-05-16 08:10:21 +0000hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-05-16 08:14:00 +0000nyd(~nyd@unaffiliated/elysian) (Ping timeout: 268 seconds)
2021-05-16 08:14:27 +0000nyd(~nyd@unaffiliated/elysian)
2021-05-16 08:14:56 +0000nyd(~nyd@unaffiliated/elysian) (Client Quit)
2021-05-16 08:24:36 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-16 08:26:12 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 08:26:51 +0000leothrix(~leothrix@elastic/staff/leothrix) (Quit: ZNC 1.8.2 - https://znc.in)
2021-05-16 08:28:42 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-05-16 08:30:44 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
2021-05-16 08:31:13 +0000leothrix(~leothrix@elastic/staff/leothrix)
2021-05-16 08:33:04 +0000rond_(5940206b@89-64-32-107.dynamic.chello.pl)
2021-05-16 08:36:27 +0000jwheare1(~jwheare@178.238.11.35) (Remote host closed the connection)
2021-05-16 08:40:30 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-16 08:43:34 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 08:44:27 +0000Varis(~Tadas@unaffiliated/varis)
2021-05-16 08:47:09 +0000_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-05-16 08:51:52 +0000stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-05-16 08:54:54 +0000danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-05-16 08:54:55 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 08:55:59 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 08:56:59 +0000davros(~davros@host86-185-126-190.range86-185.btcentralplus.com)
2021-05-16 08:59:01 +0000Sgeo_(~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
2021-05-16 09:00:12 +0000madjestic[m](madjesticm@gateway/shell/matrix.org/x-eyqfvievhcxnqgtl) (Quit: Idle for 30+ days)
2021-05-16 09:01:30 +0000ddellacosta(~ddellacos@86.106.143.150)
2021-05-16 09:03:03 +0000oish(~charlie@228.25.169.217.in-addr.arpa)
2021-05-16 09:04:39 +0000stree(~stree@68.36.8.116)
2021-05-16 09:05:27 +0000chris__(~chris@81.96.113.213)
2021-05-16 09:05:28 +0000Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 252 seconds)
2021-05-16 09:06:11 +0000ddellacosta(~ddellacos@86.106.143.150) (Ping timeout: 240 seconds)
2021-05-16 09:09:50 +0000chris__(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-05-16 09:10:41 +0000drbean_(~drbean@TC210-63-209-26.static.apol.com.tw) (Ping timeout: 240 seconds)
2021-05-16 09:13:19 +0000kritzefitz(~kritzefit@212.86.56.80)
2021-05-16 09:14:11 +0000 <a6a45081-2b83> can i limit the elements traversed?
2021-05-16 09:14:29 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
2021-05-16 09:15:47 +0000chris__(~chris@81.96.113.213)
2021-05-16 09:17:55 +0000shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:9164:4bfe:a653:ddb6) (Ping timeout: 276 seconds)
2021-05-16 09:20:17 +0000 <kuribas> How do I make a multiparam instance with template haskell?
2021-05-16 09:20:23 +0000LKoen(~LKoen@2a01cb0407597a004d60e6b5637735bc.ipv6.abo.wanadoo.fr)
2021-05-16 09:20:23 +0000 <kuribas> InstancedD only has one Type.
2021-05-16 09:20:49 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 09:20:59 +0000mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-16 09:23:04 +0000shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:7021:8404:574b:2446)
2021-05-16 09:24:32 +0000 <kuribas> Or do I apply the classname to the types?
2021-05-16 09:24:58 +0000 <[exa]> a6a45081-2b83: "limit" as in "traverse only first 10" ?
2021-05-16 09:25:09 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 09:25:16 +0000kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-05-16 09:29:32 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2021-05-16 09:32:28 +0000_noblegas(uid91066@gateway/web/irccloud.com/x-hodotngawpspamdv)
2021-05-16 09:34:08 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 09:34:38 +0000knupfer(~Thunderbi@2a02:3038:407:42c5:ed2c:8e5a:d2c6:866a)
2021-05-16 09:38:51 +0000 <a6a45081-2b83> yeah
2021-05-16 09:38:59 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-05-16 09:39:07 +0000 <a6a45081-2b83> I think I can do traverse . take n
2021-05-16 09:41:01 +0000__monty__(~toonn@unaffiliated/toonn)
2021-05-16 09:41:36 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 09:43:48 +0000 <[exa]> a6a45081-2b83: yeah that would work nicely for lists I guess. you might need a generic `take` for more complicated stuff
2021-05-16 09:45:05 +0000 <kuribas> take . toList ?
2021-05-16 09:45:33 +0000 <[exa]> it was headed that direction, yes.
2021-05-16 09:45:39 +0000knupfer(~Thunderbi@2a02:3038:407:42c5:ed2c:8e5a:d2c6:866a) (Ping timeout: 260 seconds)
2021-05-16 09:47:45 +0000elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-05-16 09:47:58 +0000 <maerwald> charukiewicz: SQL isn't type safe?
2021-05-16 09:48:56 +0000m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-05-16 09:49:40 +0000 <kuribas> maerwald: not really
2021-05-16 09:49:54 +0000 <kuribas> maerwald: also, defined SQL
2021-05-16 09:50:02 +0000 <kuribas> "define SQL"
2021-05-16 09:50:08 +0000 <kuribas> every dialect is different.
2021-05-16 09:52:59 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 09:55:03 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 09:55:08 +0000acidjnk_new(~acidjnk@p200300d0c72b95208d2194a61b0d7b67.dip0.t-ipconnect.de)
2021-05-16 09:56:32 +0000 <maerwald> the types are weak, but I'm not aware that SQL does random type coercion?
2021-05-16 09:56:55 +0000 <kuribas> define SQL
2021-05-16 09:57:21 +0000 <kuribas> MySQL will do type coercion rather than raise a type error normally.
2021-05-16 09:57:54 +0000 <maerwald> so the standard doesn't define it?
2021-05-16 09:58:18 +0000 <kuribas> what standard?
2021-05-16 09:58:21 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-05-16 09:59:27 +0000 <maerwald> there are multiple?
2021-05-16 09:59:49 +0000 <aldum> there's an SQL standard, and various implementations adhere to it to various degrees
2021-05-16 09:59:59 +0000 <aldum> as it's customary with standards...
2021-05-16 10:00:30 +0000Rudd0(~Rudd0@185.189.115.103)
2021-05-16 10:01:55 +0000 <maerwald> Would be interesting to know whether the standard says something about type safety
2021-05-16 10:02:13 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-05-16 10:03:37 +0000 <aldum> prolly not very safe, it does have NULL after all
2021-05-16 10:04:23 +0000oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 268 seconds)
2021-05-16 10:05:39 +0000ddellacosta(~ddellacos@86.106.143.72)
2021-05-16 10:06:15 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:8515:6952:6c0e:748)
2021-05-16 10:08:18 +0000a6a45081-2b83(~aditya@171.76.17.86) (Remote host closed the connection)
2021-05-16 10:09:27 +0000ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 10:09:56 +0000Schrostfutz(~Schrostfu@p4fc0a70a.dip0.t-ipconnect.de)
2021-05-16 10:10:24 +0000ddellacosta(~ddellacos@86.106.143.72) (Ping timeout: 265 seconds)
2021-05-16 10:10:46 +0000alexander(~alexander@2a02:587:dc19:ab00:49f:5b0e:f658:23e8)
2021-05-16 10:11:15 +0000alexanderGuest72179
2021-05-16 10:12:40 +0000hamflx(79e123b8@121.225.35.184)
2021-05-16 10:13:47 +0000 <Schrostfutz> Hi, I'm trying to parse a binary file using attoparsec and have trouble with ByteString literals. I use the `string` function with a string literal, but get a type mismatch between ByteString & [Char]. I probably specify a String literal instead of ByteString but I did it similar to the documentation... What might I be doing wrong? Disclaimer: I'm a complete novice, trying to learn by doing
2021-05-16 10:15:14 +0000ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-05-16 10:17:40 +0000Pickchea(~private@unaffiliated/pickchea)
2021-05-16 10:18:32 +0000Alleri___(~textual@2603-7000-3040-0000-3dfd-96ce-a198-b5b2.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 10:18:52 +0000 <__monty__> Schrostfutz: I can see the confusion, the example code is written to work for both attoparsec and parsec. I think you'll need to enable overloaded strings, add `{-# LANGUAGE OverloadedStrings #-}` to the top of your file.
2021-05-16 10:18:52 +0000ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-05-16 10:19:11 +0000chris__(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2021-05-16 10:19:34 +0000TK__(~cinch@2601:1c0:5201:2100:9992:f75f:4988:2a3c) (Ping timeout: 245 seconds)
2021-05-16 10:19:38 +0000ixlun(~user@109.249.184.235)
2021-05-16 10:19:50 +0000 <Schrostfutz> __monty__: Thanks a bunch, that fixed it!
2021-05-16 10:20:00 +0000 <__monty__> \o/
2021-05-16 10:20:19 +0000Guest_52(5214e4fd@82.20.228.253)
2021-05-16 10:20:24 +0000vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-05-16 10:20:41 +0000vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-05-16 10:20:44 +0000pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-05-16 10:21:57 +0000 <__monty__> Schrostfutz: One thing to note is that if you want control over the encoding of the characters you'll have to explicitly convert from String to a ByteString with the correct encoding.
2021-05-16 10:22:08 +0000Qwerky(~qwerky@178.197.228.14)
2021-05-16 10:23:27 +0000Qwerky(~qwerky@178.197.228.14) (Remote host closed the connection)
2021-05-16 10:24:11 +0000Qwerky(~qwerky@178.197.228.14)
2021-05-16 10:24:13 +0000 <Schrostfutz> __monty__: Thanks for the heads-up, I started with Parsec and used the encoding to read the binary file before noticing that Parsec won't allow me to parse binary numbers (if I understood that correctly). Probably I'll have to do the conversion by hand at some point. What module can I find the appropriate functions in?
2021-05-16 10:24:34 +0000hamflx(79e123b8@121.225.35.184) (Quit: Connection closed)
2021-05-16 10:29:19 +0000Guest_52(5214e4fd@82.20.228.253) (Quit: Connection closed)
2021-05-16 10:32:16 +0000oish(~charlie@228.25.169.217.in-addr.arpa)
2021-05-16 10:32:46 +0000Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
2021-05-16 10:33:56 +0000Qwerky(~qwerky@178.197.228.14) (Remote host closed the connection)
2021-05-16 10:34:54 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 10:36:43 +0000 <xenon-> what do you mean it won't allow you to parse binary numbers?
2021-05-16 10:37:56 +0000Alleria__(~textual@2603-7000-3040-0000-3dfd-96ce-a198-b5b2.res6.spectrum.com)
2021-05-16 10:38:07 +0000 <xenon-> oh, the file is bianary.. didn't read entire sentenc3e
2021-05-16 10:38:13 +0000 <xenon-> I'm not sure if Pasrec allows that
2021-05-16 10:38:27 +0000ddellacosta(~ddellacos@86.106.143.137)
2021-05-16 10:39:36 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970)
2021-05-16 10:40:04 +0000oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 252 seconds)
2021-05-16 10:42:04 +0000Alleria__(~textual@2603-7000-3040-0000-3dfd-96ce-a198-b5b2.res6.spectrum.com) (Ping timeout: 245 seconds)
2021-05-16 10:42:34 +0000 <Schrostfutz> xenon-: I managed to convince it to read the file but there's no functions to read those. So I switched to attoparsec only to notice that it also doesn't provide them by default...
2021-05-16 10:42:36 +0000 <__monty__> Schrostfutz: It depends on the encoding and which type you're working with. For UTF-8 and String, look at the utf8-string package. For Text, look at the text package.
2021-05-16 10:42:51 +0000juuandyy(~juuandyy@90.106.228.121)
2021-05-16 10:43:14 +0000ddellacosta(~ddellacos@86.106.143.137) (Ping timeout: 268 seconds)
2021-05-16 10:43:15 +0000 <__monty__> Schrostfutz: The problem is there's too many ways of representing integers or even floats in a binary format.
2021-05-16 10:44:28 +0000 <Schrostfutz> __monty__: Thanks! But for things like integers there's just big/little endian, isn't there?
2021-05-16 10:45:44 +0000 <__monty__> No, one's complement, two's complement, variable length encodings...
2021-05-16 10:46:33 +0000 <__monty__> Haskell's Integer for example would need a variable length encoding.
2021-05-16 10:47:08 +0000 <Schrostfutz> Hm, true... So I'll write my own then. Was it then even necessary/sensible to switch to attoparsec If I'll write my own functions for that anyway?
2021-05-16 10:47:35 +0000Pickchea(~private@unaffiliated/pickchea)
2021-05-16 10:48:45 +0000 <Schrostfutz> I also got another type mismatch issue, expected type Char -> IO (), Actual type [Char] -> IO () in the second argument of >>= (putStrLn): http://sprunge.us/5LcIaV But I defined the function to return String, so I don't see how it returns a char.
2021-05-16 10:49:16 +0000 <__monty__> Schrostfutz: Depends, attoparsec is more specialized to binary formats. If you can provide sensible error messages though, megaparsec's probably much nicer to work with.
2021-05-16 10:49:26 +0000Qwerky(~qwerky@178.197.228.14)
2021-05-16 10:50:06 +0000 <Schrostfutz> Okay, then I'll stick to attoparsec for now. Focus is anyway not completing the task but learning the language so I can figure out my type mismatches myself.
2021-05-16 10:51:18 +0000 <__monty__> Learning to work with megaparsec has a little bit more utility than attoparsec imho. But either's probably fine as a means rather than a goal.
2021-05-16 10:52:03 +0000 <__monty__> @type >>=
2021-05-16 10:52:05 +0000 <lambdabot> error: parse error on input ‘>>=’
2021-05-16 10:52:10 +0000 <__monty__> @type (>>=)
2021-05-16 10:52:11 +0000 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2021-05-16 10:52:32 +0000 <__monty__> Schrostfutz: Can you match that type to `readStream >>= putStrLn`?
2021-05-16 10:53:00 +0000 <__monty__> Oh, but pretend readStream's been applied to something.
2021-05-16 10:53:20 +0000 <__monty__> So `readStream someByteString >>= putStrLn`.
2021-05-16 10:53:52 +0000Qwerky(~qwerky@178.197.228.14) (Ping timeout: 240 seconds)
2021-05-16 10:55:15 +0000juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-05-16 10:55:32 +0000 <Schrostfutz> So this is how I understand it (terminology is probably way off...): readStream returns a String that is within the IO Monad so I have `IO String -> (String -> IO b)` -> IO b. putStrLn has type String -> IO (), so b == (), and I get `IO String -> (String -> IO ()) -> IO ()`?
2021-05-16 10:56:20 +0000juuandyy(~juuandyy@90.106.228.121)
2021-05-16 10:57:24 +0000Rudd0^(~Rudd0@185.189.115.103)
2021-05-16 10:58:08 +0000 <__monty__> Where do you get IO? Afaict readStream takes a String and returns a ByteString.
2021-05-16 10:58:31 +0000Rudd0(~Rudd0@185.189.115.103) (Read error: Connection reset by peer)
2021-05-16 11:00:25 +0000 <Schrostfutz> __monty__: Ah! I thought it was implicitly added into the monad, but I suppose I'll have to `liftM` it
2021-05-16 11:00:26 +0000zephyz(~zephyz@109.175.155.98)
2021-05-16 11:00:27 +0000p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in)
2021-05-16 11:01:47 +0000p3n(~p3n@217.198.124.246)
2021-05-16 11:03:00 +0000 <__monty__> Not quite, you're still inputting a ByteString, not IO ByteString.
2021-05-16 11:04:18 +0000 <__monty__> So either use (pure (or return) . readStream) or fmap readStream over the previous action. `readStream <$> (hGetContents stdin)`.
2021-05-16 11:07:32 +0000Rudd0^(~Rudd0@185.189.115.103) (Ping timeout: 246 seconds)
2021-05-16 11:08:06 +0000nrl^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-05-16 11:09:07 +0000chris__(~chris@81.96.113.213)
2021-05-16 11:11:29 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 11:12:45 +0000stree(~stree@68.36.8.116) (Ping timeout: 265 seconds)
2021-05-16 11:14:07 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection)
2021-05-16 11:14:33 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-05-16 11:16:03 +0000 <Schrostfutz> __monty__: Okay, I'm trying to wrap my head around that, thanks!
2021-05-16 11:16:37 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-05-16 11:20:03 +0000acidjnk_new(~acidjnk@p200300d0c72b95208d2194a61b0d7b67.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-05-16 11:20:25 +0000 <Schrostfutz> Ah, now I understood. I actually tried using return before but with $ just because I mostly saw it used with that so far. Probably that messed up the associativity.
2021-05-16 11:21:02 +0000 <__monty__> Yeah, feel free to pretend $ doesn't exist for now, just use parentheses.
2021-05-16 11:21:40 +0000 <Schrostfutz> Alright. In the code above I should also probably use pure over return because Applicative is weaker than a Monad.
2021-05-16 11:23:52 +0000 <tomjaguarpaw> It seems like I want a backwards version of trace that prints its message *after* something has been evaluated, something like ecart :: String -> a -> a; ecart msg a = seq a (trace msg a) . Has anyone else very wanted that or am I thinking about this wrong?
2021-05-16 11:25:55 +0000stree(~stree@68.36.8.116)
2021-05-16 11:25:57 +0000 <tomjaguarpaw> *ever wanted that
2021-05-16 11:27:20 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 11:29:17 +0000juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-05-16 11:31:18 +0000sagax(~sagax_nb@213.138.71.146)
2021-05-16 11:32:16 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-05-16 11:33:03 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:8c8b:ebd7:353b:3970) (Ping timeout: 250 seconds)
2021-05-16 11:33:48 +0000LKoen(~LKoen@2a01cb0407597a004d60e6b5637735bc.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-05-16 11:34:54 +0000 <kilolympus> Is there any way to achieve this? f x a b c d e f g.... -> f a b c d e f g.... x
2021-05-16 11:35:10 +0000 <kilolympus> Mainly for syntactic cleanness for my DSL
2021-05-16 11:35:40 +0000rdivyanshu(sid322626@gateway/web/irccloud.com/x-svjqbhamqhuglbzu)
2021-05-16 11:37:48 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:e1fb:f26b:5787:688a)
2021-05-16 11:38:29 +0000 <tomjaguarpaw> @type flip . fmap flip . (fmap . fmap) flip . (fmap . fmap . fmap) flip
2021-05-16 11:38:30 +0000 <lambdabot> (a1 -> a2 -> a3 -> a4 -> b -> c) -> b -> a1 -> a2 -> a3 -> a4 -> c
2021-05-16 11:39:08 +0000 <tomjaguarpaw> @type (fmap . fmap . fmap) flip . (fmap . fmap) flip . fmap flip . flip
2021-05-16 11:39:10 +0000 <lambdabot> (a -> b1 -> b2 -> b3 -> b4 -> c) -> b1 -> b2 -> b3 -> b4 -> a -> c
2021-05-16 11:39:27 +0000 <tomjaguarpaw> kilolympus: I guess you wanted the second one. I'm not sure how to make that simpler though
2021-05-16 11:40:20 +0000xenon-(~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout))
2021-05-16 11:40:49 +0000 <kilolympus> Hmm
2021-05-16 11:41:05 +0000 <kilolympus> That's exactly what I want, but with arbitrary elements
2021-05-16 11:41:09 +0000 <kilolympus> s/elements/arguments
2021-05-16 11:41:16 +0000 <kilolympus> which makes it much more difficult
2021-05-16 11:41:35 +0000 <kilolympus> Maybe I'll take a look at redesigning my DSL then
2021-05-16 11:42:02 +0000xenon-(~bc817c21@217.29.117.252)
2021-05-16 11:42:04 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:e1fb:f26b:5787:688a) (Ping timeout: 245 seconds)
2021-05-16 11:42:45 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2021-05-16 11:43:17 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-05-16 11:45:55 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 11:46:14 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 11:48:50 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 11:51:01 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 252 seconds)
2021-05-16 11:52:09 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 11:53:52 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 11:54:28 +0000dsrt^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-05-16 11:54:46 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
2021-05-16 11:56:02 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-05-16 11:56:07 +0000drbean_(~drbean@TC210-63-209-154.static.apol.com.tw)
2021-05-16 11:56:26 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 11:56:58 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 11:57:49 +0000zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-05-16 11:59:09 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-05-16 11:59:32 +0000Deide(~Deide@217.155.19.23)
2021-05-16 11:59:39 +0000LKoen(~LKoen@2a01cb0407597a007cd760cb85ed420d.ipv6.abo.wanadoo.fr)
2021-05-16 12:01:52 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 12:11:33 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 12:14:01 +0000jamm_(~jamm@unaffiliated/jamm)
2021-05-16 12:14:07 +0000jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-05-16 12:17:06 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-05-16 12:18:51 +0000ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-05-16 12:20:05 +0000LKoen(~LKoen@2a01cb0407597a007cd760cb85ed420d.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-05-16 12:20:17 +0000ixlun(~user@109.249.184.235)
2021-05-16 12:20:52 +0000trepanger_(~z@ics141-225.icsincorporated.com) (Ping timeout: 252 seconds)
2021-05-16 12:25:52 +0000Alleria(~textual@mskresolve-a.mskcc.org)
2021-05-16 12:26:16 +0000AlleriaGuest53193
2021-05-16 12:26:36 +0000olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-05-16 12:28:05 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 12:32:59 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-05-16 12:33:47 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 12:35:12 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2)
2021-05-16 12:36:05 +0000oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 246 seconds)
2021-05-16 12:36:23 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 12:36:42 +0000 <kuribas> is there a template haskell function to remove qualifiers? For example: GHC.Base.<> => <>
2021-05-16 12:38:16 +0000oxide(~lambda@unaffiliated/mclaren)
2021-05-16 12:40:09 +0000 <kuribas> it's just for pretty printing
2021-05-16 12:40:25 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 12:41:07 +0000rond_(5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed)
2021-05-16 12:41:11 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-05-16 12:42:13 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2)
2021-05-16 12:44:43 +0000dmytrish_(~mitra@37.228.247.154)
2021-05-16 12:47:06 +0000zephyz(~zephyz@109.175.155.98) (Quit: zephyz)
2021-05-16 12:48:14 +0000Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-05-16 12:49:53 +0000Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-05-16 12:50:03 +0000rusua(uid124537@gateway/web/irccloud.com/x-cfwpbwrvytymqnad) (Quit: Connection closed for inactivity)
2021-05-16 12:51:18 +0000Lord_of_Life_Lord_of_Life
2021-05-16 12:52:30 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 12:55:13 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-05-16 12:56:03 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2)
2021-05-16 12:56:30 +0000guriya(a0ee4bc4@unaffiliated/guriya)
2021-05-16 12:57:04 +0000 <guriya> someone here write python inspired from haskell?
2021-05-16 12:57:33 +0000dsrt^(~hph@ip98-184-89-2.mc.at.cox.net) (Ping timeout: 240 seconds)
2021-05-16 12:57:55 +0000dsrt^(caef@ip98-184-89-2.mc.at.cox.net)
2021-05-16 12:57:58 +0000sord937(~sord937@gateway/tor-sasl/sord937)
2021-05-16 12:58:03 +0000 <Logio> it's generally not worth the trouble to emulate Haskellisms in Python
2021-05-16 12:58:07 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 12:58:27 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 12:58:37 +0000 <Logio> it just makes you pine for purity even more than writing python in general
2021-05-16 12:59:37 +0000 <juri_> i've had a haskell program i've written re-written in python at least three times. all of that effort was wasted, sadly.
2021-05-16 13:00:09 +0000 <kuribas> juri_: just why?
2021-05-16 13:00:26 +0000 <juri_> kuribas: people don't want to learn haskell, so they emulate it, badly.
2021-05-16 13:03:26 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-05-16 13:03:42 +0000 <juri_> at least one of the rewrites was written to get around the license, and was a commercial success, however.
2021-05-16 13:04:05 +0000juri_makes obscene gestures in that paticular user's direction.
2021-05-16 13:04:08 +0000ddellacosta(~ddellacos@86.106.143.59)
2021-05-16 13:05:04 +0000 <kuribas> juri_: so it wasn't your program?
2021-05-16 13:06:10 +0000 <juri_> in a strict sense, no. it was just written while refering to my program, with the intent of selling it to do exactly what my program does.
2021-05-16 13:07:18 +0000 <Axman6> Any onw know how in SBV to say that a symbolic value is equal to a specific value? I can't for the life of me figure out how to say that something of SBV Digit (where Digit = D1 | D2 | ...) is equal to D1
2021-05-16 13:07:44 +0000 <Axman6> urgh, after 10 minutes of searching, I find `literal` immediately
2021-05-16 13:08:17 +0000 <maerwald> guriya: yes
2021-05-16 13:08:38 +0000ddellacosta(~ddellacos@86.106.143.59) (Ping timeout: 246 seconds)
2021-05-16 13:08:49 +0000 <maerwald> there's only coconut and the abstractions aren't clean
2021-05-16 13:08:53 +0000 <guriya> maerwald is it possible to show me any of your program?
2021-05-16 13:09:01 +0000 <maerwald> so they creep through
2021-05-16 13:09:13 +0000 <guriya> coconut?
2021-05-16 13:09:14 +0000 <maerwald> no, I wrote a proprietary program using coconut
2021-05-16 13:09:29 +0000 <maerwald> http://coconut-lang.org/
2021-05-16 13:09:38 +0000 <maerwald> valid python is valid coconut
2021-05-16 13:10:34 +0000 <maerwald> it was a great way to make sure whoever comes after me is going to hate me
2021-05-16 13:10:48 +0000 <guriya> maerwald thank you
2021-05-16 13:11:21 +0000fg(5f5bd79b@ip5f5bd79b.dynamic.kabel-deutschland.de)
2021-05-16 13:11:44 +0000fgGuest81993
2021-05-16 13:12:12 +0000 <guriya> maerwald you takedecissions in your team? no objections?
2021-05-16 13:12:24 +0000 <maerwald> there was no team
2021-05-16 13:12:35 +0000 <maerwald> no one asked, they just wanted a program
2021-05-16 13:12:38 +0000 <maerwald> so they got one
2021-05-16 13:13:02 +0000 <maerwald> advice: don't do it :p
2021-05-16 13:13:17 +0000 <maerwald> the bus factor of this language is 1, afair
2021-05-16 13:13:48 +0000 <kuribas> is there a way to pretty print a data structure with indentation?
2021-05-16 13:14:08 +0000 <guriya> maerwald (y)
2021-05-16 13:14:33 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-05-16 13:14:59 +0000 <maerwald> @hackage pretty-simple -- kuribas?
2021-05-16 13:14:59 +0000 <lambdabot> https://hackage.haskell.org/package/pretty-simple -- kuribas?
2021-05-16 13:15:12 +0000 <kuribas> maerwald: *with indentation*
2021-05-16 13:15:15 +0000 <maerwald> that's basically converting stuff to json and then printing
2021-05-16 13:15:29 +0000 <kuribas> No, readable in a haskell source file.
2021-05-16 13:15:36 +0000 <maerwald> kuribas: ah
2021-05-16 13:17:01 +0000HannaM(~quassel@p54849510.dip0.t-ipconnect.de)
2021-05-16 13:17:19 +0000boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220)
2021-05-16 13:19:32 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 13:21:46 +0000guriya(a0ee4bc4@unaffiliated/guriya) (Quit: Connection closed)
2021-05-16 13:24:52 +0000 <kuribas> maerwald: hmm, I could indent the pretty-simple generated text.
2021-05-16 13:27:53 +0000LKoen(~LKoen@lfbn-idf2-1-1523-141.w92-169.abo.wanadoo.fr)
2021-05-16 13:29:02 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 13:30:44 +0000 <Guest81993> hi, is there a common function of type `(a -> Either b a) -> a -> b` ? Hoogle doesn't find anything, but it feels like a pretty common behavior - simply unfold from a starting point until you get a `b` which breaks the recursion.
2021-05-16 13:31:35 +0000idhugo(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2021-05-16 13:32:15 +0000 <Guest81993> I implemented it as `unfold f x = either id (unfold f) $ f x`
2021-05-16 13:32:36 +0000 <xenon-> :t either
2021-05-16 13:32:37 +0000 <lambdabot> (a -> c) -> (b -> c) -> Either a b -> c
2021-05-16 13:33:28 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-05-16 13:33:29 +0000 <xenon-> :t either id
2021-05-16 13:33:30 +0000 <lambdabot> (b -> c) -> Either c b -> c
2021-05-16 13:33:51 +0000 <xenon-> nope
2021-05-16 13:34:11 +0000stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-05-16 13:34:24 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 13:34:53 +0000boooooooo(~Username@51.179.118.142)
2021-05-16 13:36:10 +0000boooooooo(~Username@51.179.118.142) (Excess Flood)
2021-05-16 13:42:08 +0000ddellac__(~ddellacos@86.106.143.124)
2021-05-16 13:42:38 +0000geekosaur(45870322@069-135-003-034.biz.spectrum.com)
2021-05-16 13:43:05 +0000urodna(~urodna@unaffiliated/urodna)
2021-05-16 13:44:13 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 13:44:24 +0000 <kuribas> @hoogle [m [a]] -> m [a]
2021-05-16 13:44:25 +0000 <lambdabot> No results found
2021-05-16 13:44:31 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 13:44:34 +0000 <kuribas> @hoogle Monad m => [m [a]] -> m [a]
2021-05-16 13:44:35 +0000 <lambdabot> No results found
2021-05-16 13:45:45 +0000nicholasbulka(~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net)
2021-05-16 13:47:01 +0000ddellac__(~ddellacos@86.106.143.124) (Ping timeout: 260 seconds)
2021-05-16 13:47:06 +0000p8m_(p8m@gateway/vpn/protonvpn/p8m)
2021-05-16 13:47:18 +0000stree(~stree@68.36.8.116)
2021-05-16 13:48:11 +0000p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
2021-05-16 13:48:52 +0000Schrostfutz(~Schrostfu@p4fc0a70a.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-05-16 13:49:17 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-05-16 13:50:37 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 13:52:30 +0000knupfer(~Thunderbi@200116b82287f900d8c73651d44749fb.dip.versatel-1u1.de)
2021-05-16 13:53:20 +0000sw1nn(~sw1nn@2a00:23c7:622f:2c00:b3c5:5aba:31d5:7216) (Quit: WeeChat 3.1)
2021-05-16 13:54:33 +0000kritzefitz(~kritzefit@212.86.56.80)
2021-05-16 13:54:46 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 13:55:13 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 13:55:26 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-05-16 13:56:16 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 13:57:35 +0000sw1nn(~sw1nn@host86-180-104-205.range86-180.btcentralplus.com)
2021-05-16 13:59:16 +0000drbean_(~drbean@TC210-63-209-154.static.apol.com.tw) (Ping timeout: 260 seconds)
2021-05-16 13:59:41 +0000oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 240 seconds)
2021-05-16 13:59:58 +0000mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-05-16 13:59:59 +0000mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-05-16 13:59:59 +0000mouseghost(~draco@wikipedia/desperek)
2021-05-16 13:59:59 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-05-16 14:03:11 +0000cfricke(~cfricke@unaffiliated/cfricke)
2021-05-16 14:04:50 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-05-16 14:05:26 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 14:07:48 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com)
2021-05-16 14:08:15 +0000 <kuribas> :t fmap concat . sequence
2021-05-16 14:08:16 +0000 <lambdabot> (Traversable t, Monad f) => t (f [a]) -> f [a]
2021-05-16 14:08:51 +0000hiroaki(~hiroaki@2a02:8108:8c40:2bb8:fb4d:5a47:92ec:2ac2) (Ping timeout: 260 seconds)
2021-05-16 14:09:12 +0000abrar(~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Ping timeout: 240 seconds)
2021-05-16 14:09:39 +0000abrar(~abrar@static-108-30-103-121.nycmny.fios.verizon.net)
2021-05-16 14:09:43 +0000bennofs__(~quassel@dynamic-078-055-014-180.78.55.pool.telefonica.de) (Read error: Connection reset by peer)
2021-05-16 14:10:00 +0000Guest81993(5f5bd79b@ip5f5bd79b.dynamic.kabel-deutschland.de) (Quit: Connection closed)
2021-05-16 14:10:07 +0000bennofs_(~quassel@dynamic-078-055-014-180.78.55.pool.telefonica.de)
2021-05-16 14:10:32 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2)
2021-05-16 14:13:14 +0000Lycurgus(~niemand@cpe-45-46-140-49.buffalo.res.rr.com)
2021-05-16 14:14:16 +0000zaquest(~notzaques@5.128.210.178)
2021-05-16 14:14:39 +0000jamm_(~jamm@unaffiliated/jamm)
2021-05-16 14:15:13 +0000oxide(~lambda@unaffiliated/mclaren)
2021-05-16 14:18:20 +0000machinedgod(~machinedg@24.105.81.50)
2021-05-16 14:18:44 +0000jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 245 seconds)
2021-05-16 14:20:52 +0000LKoen(~LKoen@lfbn-idf2-1-1523-141.w92-169.abo.wanadoo.fr) (Remote host closed the connection)
2021-05-16 14:23:09 +0000ddellac__(~ddellacos@86.106.143.176)
2021-05-16 14:23:48 +0000jao(~jao@pdpc/supporter/professional/jao)
2021-05-16 14:26:55 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-azmheisgydotdkpn)
2021-05-16 14:27:51 +0000ddellac__(~ddellacos@86.106.143.176) (Ping timeout: 260 seconds)
2021-05-16 14:35:37 +0000benin(~benin@183.82.177.199)
2021-05-16 14:36:29 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-05-16 14:36:51 +0000cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
2021-05-16 14:40:29 +0000idhugo(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
2021-05-16 14:46:58 +0000Lycurgus(~niemand@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-05-16 14:48:46 +0000nicholasbulka(~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
2021-05-16 14:50:55 +0000ixlun(~user@109.249.184.235) (Remote host closed the connection)
2021-05-16 14:51:15 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2021-05-16 14:51:39 +0000ixlun(~user@109.249.184.235)
2021-05-16 14:52:29 +0000notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 245 seconds)
2021-05-16 14:52:37 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-05-16 14:54:50 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-16 14:55:37 +0000vchlup(~vchlup@115.128.broadband17.iol.cz)
2021-05-16 14:57:00 +0000ddellacosta(~ddellacos@86.106.143.189)
2021-05-16 14:59:46 +0000vchlup(~vchlup@115.128.broadband17.iol.cz) (Ping timeout: 240 seconds)
2021-05-16 15:01:41 +0000ddellacosta(~ddellacos@86.106.143.189) (Ping timeout: 240 seconds)
2021-05-16 15:02:27 +0000vchlup(~vchlup@115.128.broadband17.iol.cz)
2021-05-16 15:06:56 +0000vchlup(~vchlup@115.128.broadband17.iol.cz) (Ping timeout: 260 seconds)
2021-05-16 15:07:11 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 15:07:33 +0000hmachado(~hmachado@185.163.110.100)
2021-05-16 15:09:08 +0000cfricke(~cfricke@unaffiliated/cfricke)
2021-05-16 15:11:25 +0000frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-05-16 15:12:24 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection)
2021-05-16 15:12:49 +0000trepanger_(~z@208.38.228.32)
2021-05-16 15:12:58 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-05-16 15:14:32 +0000Tario(~Tario@201.192.165.173)
2021-05-16 15:15:04 +0000frozenErebus(~frozenEre@37.231.244.249)
2021-05-16 15:15:41 +0000Schrostfutz(~Schrostfu@p4fc0a70a.dip0.t-ipconnect.de)
2021-05-16 15:16:26 +0000alx741(~alx741@186.178.108.187)
2021-05-16 15:26:53 +0000malumore(~malumore@151.62.113.85)
2021-05-16 15:28:17 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 15:30:29 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 15:32:53 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-05-16 15:34:46 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-05-16 15:34:58 +0000tungki_(uid469991@gateway/web/irccloud.com/x-xceaiesvmlpclmms)
2021-05-16 15:35:30 +0000tungki_tungki
2021-05-16 15:37:26 +0000oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 240 seconds)
2021-05-16 15:37:46 +0000Lycurgus(~niemand@cpe-45-46-140-49.buffalo.res.rr.com)
2021-05-16 15:41:17 +0000xkapastel(uid17782@gateway/web/irccloud.com/x-vnzmonwkhmlwwzsx)
2021-05-16 15:42:00 +0000oxide(~lambda@unaffiliated/mclaren)
2021-05-16 15:42:58 +0000Lycurgus(~niemand@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-05-16 15:44:22 +0000cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-05-16 15:48:35 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 15:48:44 +0000supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-05-16 15:49:16 +0000 <Schrostfutz> I find myself getting lots of naming clashes from imports. What is the idiomatic way to handle this? In python the haskell default import behavior is actually not liked, but is it recommended for haskell? I consider just qualifying all imports with some abbreviation like I'd do in python, but is that good style?
2021-05-16 15:49:48 +0000 <hpc> sometimes, yes
2021-05-16 15:50:10 +0000 <boxscape> Schrostfutz there are some commonly used abbreviations for common modules, like `import Data.Text as T`, for example
2021-05-16 15:50:10 +0000 <hpc> if you're doing lots of stuff with text/bytestring you might want multiple modules imported that all have the same definitions
2021-05-16 15:50:33 +0000 <boxscape> (actually `import qualified Data.Text as T`)
2021-05-16 15:52:32 +0000 <Schrostfutz> hpc: That's exactly my situation. Thanks for the advice :)
2021-05-16 15:52:58 +0000tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2021-05-16 15:53:37 +0000tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2021-05-16 15:54:58 +0000 <dmwit> ?hoogle (a -> m a) -> m b
2021-05-16 15:54:59 +0000 <lambdabot> No results found
2021-05-16 15:55:06 +0000stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-05-16 15:55:29 +0000 <hpc> dmwit: looking for mfix?
2021-05-16 15:55:38 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 15:55:57 +0000 <dmwit> No, I want the version that loops rather than executing just once.
2021-05-16 15:56:52 +0000 <dmwit> Oh, I see, I got the wrong type, then, huh?
2021-05-16 15:57:00 +0000 <dmwit> ?hoogle Monad m => (a -> m a) -> a -> m b
2021-05-16 15:57:01 +0000 <lambdabot> Control.Monad.Loops iterateM_ :: Monad m => (a -> m a) -> a -> m b
2021-05-16 15:57:01 +0000 <lambdabot> Data.ListLike mapM :: (ListLike full item, Monad m, ListLike full' item') => (item -> m item') -> full -> m full'
2021-05-16 15:57:01 +0000 <lambdabot> Data.ListLike.Base mapM :: (ListLike full item, Monad m, ListLike full' item') => (item -> m item') -> full -> m full'
2021-05-16 15:57:29 +0000 <hpc> :t \f -> fix (f >=>)
2021-05-16 15:57:31 +0000 <lambdabot> Monad m => (a -> m a) -> a -> m c
2021-05-16 15:57:39 +0000 <dmwit> Right, that.
2021-05-16 15:57:55 +0000 <hpc> except without a starting point
2021-05-16 15:57:56 +0000 <hpc> hmm
2021-05-16 15:58:07 +0000 <hpc> not sure where it would be in hackage
2021-05-16 15:58:22 +0000veverak(~veverak@ip-89-102-98-161.net.upcbroadband.cz) (Quit: WeeChat 3.0)
2021-05-16 15:58:26 +0000 <dmwit> iterateM_ looks like what I want.
2021-05-16 15:58:44 +0000 <dmwit> No, I'm okay with it having a starting point. I just had a weakness in my thinking on the first query.
2021-05-16 15:59:02 +0000 <hpc> ah
2021-05-16 15:59:03 +0000 <dmwit> Turns out I'm not as good at type inference as my computer is. ;-)
2021-05-16 16:00:14 +0000mith[m](mithmatrix@gateway/shell/matrix.org/x-enrsmyespcxtywvd) (Quit: Idle for 30+ days)
2021-05-16 16:00:14 +0000Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-05-16 16:00:15 +0000frozenErebus(~frozenEre@37.231.244.249) (Quit: leaving)
2021-05-16 16:00:35 +0000Rudd0(~Rudd0@185.189.115.108)
2021-05-16 16:01:26 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-05-16 16:01:28 +0000Tario(~Tario@201.192.165.173)
2021-05-16 16:02:04 +0000elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2021-05-16 16:02:46 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 16:06:02 +0000elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net)
2021-05-16 16:06:28 +0000 <trepanger_> exit
2021-05-16 16:06:33 +0000trepanger_(~z@208.38.228.32) (Quit: leaving)
2021-05-16 16:07:40 +0000stree(~stree@68.36.8.116)
2021-05-16 16:08:03 +0000ddellacosta(~ddellacos@86.106.143.228)
2021-05-16 16:09:00 +0000Salvo_(~Username@host-79-35-109-26.retail.telecomitalia.it)
2021-05-16 16:09:05 +0000Salvo_(~Username@host-79-35-109-26.retail.telecomitalia.it) (Excess Flood)
2021-05-16 16:09:33 +0000Salvo_(~Username@host-79-35-109-26.retail.telecomitalia.it)
2021-05-16 16:09:33 +0000Salvo_(~Username@host-79-35-109-26.retail.telecomitalia.it) (Client Quit)
2021-05-16 16:10:49 +0000notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 245 seconds)
2021-05-16 16:11:30 +0000idhugo(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds)
2021-05-16 16:12:36 +0000ddellacosta(~ddellacos@86.106.143.228) (Ping timeout: 252 seconds)
2021-05-16 16:12:50 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 16:12:51 +0000oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 260 seconds)
2021-05-16 16:15:07 +0000hiroaki(~hiroaki@2a02:8108:8c40:2bb8:c2b0:caa:38f9:fe49)
2021-05-16 16:15:35 +0000zgrep(~zgrep@ircpuzzles/2015/april-fools/sixth/zgrep) (Ping timeout: 250 seconds)
2021-05-16 16:16:34 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 16:18:28 +0000Kaeipi(~Kaiepi@47.54.252.148)
2021-05-16 16:18:34 +0000dcoutts__(~dcoutts@unaffiliated/dcoutts)
2021-05-16 16:18:56 +0000dcoutts(~dcoutts@unaffiliated/dcoutts) (Remote host closed the connection)
2021-05-16 16:18:56 +0000ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-05-16 16:18:57 +0000kristijonas(~kristijon@78-56-32-39.static.zebra.lt) (Remote host closed the connection)
2021-05-16 16:18:57 +0000Kaiepi(~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
2021-05-16 16:19:04 +0000kristijonas_(~kristijon@78-56-32-39.static.zebra.lt)
2021-05-16 16:19:08 +0000zgrep(~zgrep@ircpuzzles/2015/april-fools/sixth/zgrep)
2021-05-16 16:20:15 +0000ixlun(~user@109.249.184.235)
2021-05-16 16:20:38 +0000mawk(mawk@serveur.io) (Ping timeout: 265 seconds)
2021-05-16 16:20:56 +0000mawk(mawk@serveur.io)
2021-05-16 16:21:07 +0000kiprasz(~kipras@re199n846.sritis.lt) (Ping timeout: 265 seconds)
2021-05-16 16:21:28 +0000jess(jess@freenode/staff/jess) ()
2021-05-16 16:21:35 +0000kipras`away(~kipras@92.61.39.34)
2021-05-16 16:21:48 +0000jess(jess@freenode/staff/jess)
2021-05-16 16:22:32 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Remote host closed the connection)
2021-05-16 16:23:12 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 16:23:15 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Read error: Connection reset by peer)
2021-05-16 16:23:26 +0000geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-05-16 16:23:31 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 16:23:33 +0000Kaeipi(~Kaiepi@47.54.252.148) (Read error: Connection timed out)
2021-05-16 16:23:37 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Remote host closed the connection)
2021-05-16 16:23:58 +0000Kaeipi(~Kaiepi@47.54.252.148)
2021-05-16 16:26:40 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 16:26:51 +0000Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 260 seconds)
2021-05-16 16:29:10 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 16:29:23 +0000_noblegas(uid91066@gateway/web/irccloud.com/x-hodotngawpspamdv) (Quit: Connection closed for inactivity)
2021-05-16 16:31:18 +0000oxide(~lambda@unaffiliated/mclaren)
2021-05-16 16:33:16 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 16:33:45 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 16:34:25 +0000 <charukiewicz> maerwald[m]: No SQL isn't completely type safe, especially not SQLite that OP was using, which is untyped and only has "type affinity", which the SQLite docs describe as "The type affinity of a column is the recommended type for data stored in that column." https://www.sqlite.org/datatype3.html
2021-05-16 16:36:09 +0000 <charukiewicz> Moreover, even if you are using a SQL database with good typing (PostgreSQL), if you're writing raw SQL, your queries probably aren't statically checked. That's the value of using a pair of libraries like Persistent+Esqueleto - defining your database models in Haskell and then writing queries against them that are checked by Haskell's type system
2021-05-16 16:36:25 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 16:36:45 +0000undvrainbowvita8(~egp_@128-71-13-3.broadband.corbina.ru) (Quit: EXIT)
2021-05-16 16:37:29 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-05-16 16:39:40 +0000juri_(~juri@178.63.35.222) (Ping timeout: 268 seconds)
2021-05-16 16:44:00 +0000ddellacosta(~ddellacos@86.106.143.33)
2021-05-16 16:44:58 +0000LKoen(~LKoen@2a01cb0407597a00994eae699d6833c6.ipv6.abo.wanadoo.fr)
2021-05-16 16:45:46 +0000fosterite(~fosterite@2600:6c46:7800:fecf:a998:e20e:aef2:c048)
2021-05-16 16:46:17 +0000 <geekosaur> and strictly speaking SQL types don't quite align with common programming language types, so there's always some room for potential mismatch (less with strings [but is its string a ByteString, a Text, or something else e.g. localized?], more with numbers)
2021-05-16 16:46:40 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 16:47:57 +0000hololeap(~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds)
2021-05-16 16:48:41 +0000ddellacosta(~ddellacos@86.106.143.33) (Ping timeout: 240 seconds)
2021-05-16 16:49:08 +0000cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2021-05-16 16:50:49 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 245 seconds)
2021-05-16 16:50:50 +0000chris__(~chris@81.96.113.213) (Remote host closed the connection)
2021-05-16 16:50:53 +0000Schrostfutz(~Schrostfu@p4fc0a70a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-05-16 16:51:56 +0000fosterite(~fosterite@2600:6c46:7800:fecf:a998:e20e:aef2:c048) ()
2021-05-16 16:52:19 +0000reaverb(~reaverb@071-008-105-088.res.spectrum.com)
2021-05-16 16:54:46 +0000a6a45081-2b83(~aditya@171.76.17.86)
2021-05-16 16:55:28 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 16:55:45 +0000chris__(~chris@81.96.113.213)
2021-05-16 16:58:15 +0000hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-05-16 16:58:35 +0000undvrainbowvita8(~egp_@128-71-13-3.broadband.corbina.ru)
2021-05-16 17:00:11 +0000chris__(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2021-05-16 17:00:41 +0000amosbird_amosbird
2021-05-16 17:00:42 +0000mysterybear(333457a3@51.52.87.163)
2021-05-16 17:01:05 +0000juri_(~juri@178.63.35.222)
2021-05-16 17:03:20 +0000 <mysterybear> Hey I'm trying to find an old paper
2021-05-16 17:03:24 +0000 <mysterybear> it has a tree-drawing exercise in it
2021-05-16 17:03:32 +0000 <mysterybear> I could've sworn it was about polymorphism :\
2021-05-16 17:03:40 +0000 <mysterybear> I can no longer find it... does this ring a bell for anybody?
2021-05-16 17:07:41 +0000oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 260 seconds)
2021-05-16 17:08:19 +0000 <mysterybear> ah I found it
2021-05-16 17:08:23 +0000 <mysterybear> https://web.cecs.pdx.edu/~mpj/pubs/springschool95.pdf mark p. jones
2021-05-16 17:09:23 +0000electricityZZZZ(~electrici@157-131-250-97.fiber.dynamic.sonic.net)
2021-05-16 17:10:54 +0000paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2021-05-16 17:14:47 +0000 <hpc> the classic asked-and-answered - doesn't matter how long you wait to ask the question, as soon as you ask you find the answer 5 minutes later
2021-05-16 17:20:38 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 17:22:39 +0000waleee-cl(uid373333@gateway/web/irccloud.com/x-vunmjolaodtynkaq)
2021-05-16 17:23:13 +0000reaverb(~reaverb@071-008-105-088.res.spectrum.com) (Quit: Leaving)
2021-05-16 17:24:59 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-05-16 17:25:04 +0000Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-05-16 17:25:11 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 17:25:53 +0000notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 265 seconds)
2021-05-16 17:26:12 +0000stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-05-16 17:27:11 +0000hendursa1(~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1)
2021-05-16 17:28:11 +0000hendursaga(~weechat@gateway/tor-sasl/hendursaga)
2021-05-16 17:28:52 +0000blankhart(~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net)
2021-05-16 17:29:35 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2)
2021-05-16 17:30:08 +0000vchlup(~vchlup@nat.brnet.cz)
2021-05-16 17:30:36 +0000 <blankhart> is "type case" a synonym for GADTs?
2021-05-16 17:31:34 +0000 <blankhart> looking at https://github.com/gelisam/klister/blob/71c71e6ab768e7e6b43e9402bc127423cd6e562b/src/Evaluator.hs#…
2021-05-16 17:31:41 +0000 <electricityZZZZ> so i am writing a recursive function in haskell, and when i make the return value [] + myVal the program terminates, but if the return value is myVal + [], it does not terminate.
2021-05-16 17:32:08 +0000 <maerwald> charukiewicz: you can easily mess up in persistent as well, when you write your manual PersistField instances
2021-05-16 17:32:31 +0000 <Rembane> electricityZZZZ: Do you have more code than that available?
2021-05-16 17:32:42 +0000 <electricityZZZZ> correction: [] ++ myVal terminates, whereas myVal ++ [] does not. i recognize totality in programming (and feel more comfortable using it), but since i am using haskell to get out of my comfort zone, what is this property where the ordering is significant for termination
2021-05-16 17:32:44 +0000 <maerwald> I found it mostly to be unnecessary chore. DB queries should have 100% test coverage
2021-05-16 17:32:49 +0000 <Uniaika> electricityZZZZ: first, "+" is not appropriate, it's a numerical operator. Second, due to commutativity, they are fundamentally the same results
2021-05-16 17:32:56 +0000 <electricityZZZZ> yeah that was a typo
2021-05-16 17:33:00 +0000 <Uniaika> ok cool
2021-05-16 17:33:33 +0000 <Uniaika> maerwald: my opinion as well, which is why I'm sticking with https://github.com/tchoutri/pg-entity
2021-05-16 17:33:41 +0000 <charukiewicz> maerwald: true, but in several years of using Persistent I have seldom found the need to write my own instances. The one time I've done so recently is to map custom PostgreSQL enum types to Haskell types
2021-05-16 17:34:35 +0000vchlup(~vchlup@nat.brnet.cz) (Ping timeout: 265 seconds)
2021-05-16 17:34:55 +0000 <charukiewicz> The reason for this is because I'm okay with keeping my model types as comprised of mostly primitive types and then convert them to domain types through simple conversion functions, as necessary
2021-05-16 17:34:56 +0000 <maerwald> so when ppl talk about typesafety in SQL, what they actually mean most of the time is mapping their backend types into SQL types
2021-05-16 17:35:35 +0000cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
2021-05-16 17:35:40 +0000 <Uniaika> or they mean Squeal, at which point I can only comment their soul to whatever divinity they believe in
2021-05-16 17:35:45 +0000 <charukiewicz> Again, I find this not particularly error prone if you're using Persistent Entity Syntax
2021-05-16 17:35:52 +0000Pickchea(~private@unaffiliated/pickchea)
2021-05-16 17:36:06 +0000 <Uniaika> electricityZZZZ: I don't think there is such a propertu
2021-05-16 17:36:10 +0000 <Uniaika> *property
2021-05-16 17:36:11 +0000 <maerwald> I'd much rather write that mapping manually instead of having a bunch of obscure TH and a looot of instances I easily lose overview over
2021-05-16 17:38:21 +0000 <blankhart> nm looks like the usage is some kind of pure form of dispatching on types https://github.com/gelisam/klister/blob/71c71e6ab768e7e6b43e9402bc127423cd6e562b/examples/which-pr…
2021-05-16 17:38:53 +0000 <charukiewicz> If you prefer to write 60 lines of boilerplate per table instead of using some TH, that's your decision, but after my experience, I much prefer to use the entity syntax to define my types
2021-05-16 17:40:19 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 17:40:38 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 17:43:10 +0000 <charukiewicz> and more broadly, marshalling data in and out of Haskell is going to be the most error prone part of your code. I try to keep that hand written code at a minimum, which is why I'm a fan of both persistent entity syntax on the database side and using deriveJSON in Aeson to define my encoders/decoders on the http side
2021-05-16 17:44:09 +0000Khisanth(~Khisanth@255.sub-174-197-131.myvzw.com) (Read error: No route to host)
2021-05-16 17:44:18 +0000oxide(~lambda@unaffiliated/mclaren)
2021-05-16 17:46:11 +0000elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2021-05-16 17:46:11 +0000shailangsa(~shailangs@host217-35-224-205.range217-35.btcentralplus.com) (Ping timeout: 240 seconds)
2021-05-16 17:48:12 +0000 <charukiewicz> The Yesod book gives a good side-by-side as to what the TH generates, and just seeing what's necessary for a 3 column table, I wouldn't recommend anyone write that by hand for their whole database. Here's the relevant bit from the book: https://www.yesodweb.com/book/persistent#persistent_code_generation
2021-05-16 17:49:44 +0000Khisanth(~Khisanth@255.sub-174-197-131.myvzw.com)
2021-05-16 17:53:42 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 17:56:29 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 17:57:02 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 17:58:51 +0000 <a6a45081-2b83> any idea how to convert HashMap to Persistent Entities?
2021-05-16 17:59:26 +0000curiousgay(~gay@178.217.208.8) (Ping timeout: 240 seconds)
2021-05-16 18:00:34 +0000idhugo(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
2021-05-16 18:00:36 +0000cfricke(~cfricke@unaffiliated/cfricke)
2021-05-16 18:00:53 +0000Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 246 seconds)
2021-05-16 18:01:14 +0000xenon-(~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/)
2021-05-16 18:01:41 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-05-16 18:02:08 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 18:02:18 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-05-16 18:02:27 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 18:02:30 +0000benin7(~benin@183.82.177.199)
2021-05-16 18:03:15 +0000mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-05-16 18:04:29 +0000kapil_(~kapil@o-k.website)
2021-05-16 18:04:51 +0000benin(~benin@183.82.177.199) (Ping timeout: 260 seconds)
2021-05-16 18:04:52 +0000benin7benin
2021-05-16 18:05:09 +0000curiousgay(~gay@178.217.208.8)
2021-05-16 18:06:03 +0000mysterybear(333457a3@51.52.87.163) (Ping timeout: 240 seconds)
2021-05-16 18:07:04 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
2021-05-16 18:07:11 +0000machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2021-05-16 18:08:11 +0000plutoniix(~q@node-ufy.pool-125-24.dynamic.totinternet.net)
2021-05-16 18:08:24 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Remote host closed the connection)
2021-05-16 18:08:56 +0000neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 246 seconds)
2021-05-16 18:09:06 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 18:10:00 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-16 18:10:23 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 18:11:11 +0000guriya(a0ee4bcd@unaffiliated/guriya)
2021-05-16 18:11:24 +0000chenin(bab72646@186.183.38.70)
2021-05-16 18:11:36 +0000leo_80(~leo@76.209.246.53)
2021-05-16 18:12:18 +0000leo_80(~leo@76.209.246.53) (Remote host closed the connection)
2021-05-16 18:13:27 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Ping timeout: 250 seconds)
2021-05-16 18:15:58 +0000chenin(bab72646@186.183.38.70) ()
2021-05-16 18:15:59 +0000neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-05-16 18:16:01 +0000stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-05-16 18:16:23 +0000 <charukiewicz> a6a45081-2b83: do you want each KV pair in your HashMap to be its own record in your DB?
2021-05-16 18:17:07 +0000cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
2021-05-16 18:17:41 +0000 <a6a45081-2b83> for e.g. Person {name :: String, age :: Int} then I want f (fromList [("name", "Foo"), ("age", 3)]) == Person "Foo" 3
2021-05-16 18:17:59 +0000 <a6a45081-2b83> obviously this is easy to define for few record fields but what if I have lot of them ...
2021-05-16 18:18:50 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::cafd)
2021-05-16 18:18:53 +0000 <a6a45081-2b83> there are some JSON utilities though: https://hackage.haskell.org/package/persistent-2.13.0.1/docs/Database-Persist.html#g:4
2021-05-16 18:18:54 +0000ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-05-16 18:19:05 +0000 <a6a45081-2b83> I am not sure how to use them
2021-05-16 18:19:09 +0000 <geekosaur> that looks like a type error to me
2021-05-16 18:19:48 +0000 <a6a45081-2b83> sorry, the actual link is https://hackage.haskell.org/package/persistent-2.13.0.1/docs/Database-Persist-Class.html#g:9
2021-05-16 18:20:25 +0000 <a6a45081-2b83> this one in particular: keyValueEntityFromJSON :: (PersistEntity record, FromJSON record) => Value -> Parser (Entity record)
2021-05-16 18:21:57 +0000finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-05-16 18:22:23 +0000shailangsa(~shailangs@host86-186-177-159.range86-186.btcentralplus.com)
2021-05-16 18:23:10 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 252 seconds)
2021-05-16 18:23:53 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 18:24:21 +0000finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-16 18:26:10 +0000ixlun(~user@109.249.184.235)
2021-05-16 18:27:01 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds)
2021-05-16 18:28:30 +0000stree(~stree@68.36.8.116)
2021-05-16 18:28:37 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 18:29:41 +0000killsushi(~killsushi@2607:fea8:3d40:767:a826:23b7:521c:2d11) (Quit: Leaving)
2021-05-16 18:31:41 +0000geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-05-16 18:31:46 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-16 18:32:01 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2021-05-16 18:33:42 +0000rajivr(uid269651@gateway/web/irccloud.com/x-vnrovmdtqzryhchz) (Quit: Connection closed for inactivity)
2021-05-16 18:33:44 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds)
2021-05-16 18:34:56 +0000neiluj(~jco@91-167-203-101.subs.proxad.net) (Remote host closed the connection)
2021-05-16 18:35:11 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-05-16 18:35:13 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 18:38:00 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 18:38:45 +0000rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2021-05-16 18:39:59 +0000Alleria(~textual@mskresolve-a.mskcc.org)
2021-05-16 18:40:23 +0000AlleriaGuest69218
2021-05-16 18:40:49 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 18:41:13 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-16 18:41:17 +0000ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-05-16 18:41:21 +0000notzmv(~zmv@unaffiliated/zmv) (Remote host closed the connection)
2021-05-16 18:41:50 +0000Guest53193(~textual@mskresolve-a.mskcc.org) (Ping timeout: 252 seconds)
2021-05-16 18:42:48 +0000 <charukiewicz> a6a45081-2b83: that function requires your JSON to objects to have "key" and "value" keys
2021-05-16 18:43:17 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 18:43:52 +0000notzmv(~zmv@unaffiliated/zmv)
2021-05-16 18:44:16 +0000notzmv(~zmv@unaffiliated/zmv) (Remote host closed the connection)
2021-05-16 18:44:24 +0000Guest69218(~textual@mskresolve-a.mskcc.org) (Ping timeout: 252 seconds)
2021-05-16 18:44:52 +0000 <charukiewicz> I think you're better off writing your own toPersonEntity :: HashMap k v -> Maybe Person
2021-05-16 18:45:09 +0000mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-05-16 18:45:39 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Quit: Leaving)
2021-05-16 18:45:52 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-05-16 18:47:26 +0000xenon-(~bc817c21@217.29.117.252)
2021-05-16 18:47:28 +0000 <charukiewicz> very easy to write such a function with do-notation where you pull each field you need to build a person out of the HashMap and the whole thing returns a Nothing if any of your lookups fail (e.g. name <- lookup "name" personMap)
2021-05-16 18:47:38 +0000notzmv-(~zmv@unaffiliated/zmv)
2021-05-16 18:48:20 +0000Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-05-16 18:49:07 +0000 <a6a45081-2b83> this looks like a valid definition, f = Person <$> (! "name") <*> (! "age")
2021-05-16 18:49:13 +0000jumper149(~jumper149@80.240.31.34)
2021-05-16 18:49:32 +0000 <a6a45081-2b83> to avoid the type error that geekosaur pointed out assume that data Person = Person {name :: String, age :: String} deriving (Show, Eq, Ord)
2021-05-16 18:50:38 +0000 <a6a45081-2b83> I have 70 fields in dict, and I think this gets quite verbose, although in worst case i'm ok with writing this out
2021-05-16 18:51:21 +0000juuandyy(~juuandyy@90.106.228.121)
2021-05-16 18:51:28 +0000 <charukiewicz> I'd be careful about using ! since it will return an error if the key isn't in the map
2021-05-16 18:51:44 +0000 <charukiewicz> !? is the safe version that will return a maybe
2021-05-16 18:52:24 +0000notzmv-(~zmv@unaffiliated/zmv) (Ping timeout: 265 seconds)
2021-05-16 18:58:31 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-05-16 18:58:37 +0000rond_(5940206b@89-64-32-107.dynamic.chello.pl)
2021-05-16 18:59:38 +0000Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2021-05-16 18:59:59 +0000ixlun(~user@109.249.184.235) (Ping timeout: 245 seconds)
2021-05-16 19:00:43 +0000ixlun(~user@109.249.184.235)
2021-05-16 19:01:01 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 19:02:59 +0000fendor(~fendor@91.141.2.211.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-05-16 19:03:02 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 19:03:45 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 19:05:01 +0000fendor(~fendor@91.141.2.211.wireless.dyn.drei.com)
2021-05-16 19:05:26 +0000 <a6a45081-2b83> well I found deriveJSON in Data.Aeson.TH that seems helpful
2021-05-16 19:05:31 +0000ixlun(~user@109.249.184.235) (Ping timeout: 252 seconds)
2021-05-16 19:06:18 +0000oish(~charlie@228.25.169.217.in-addr.arpa)
2021-05-16 19:06:57 +0000TK__(~cinch@2601:1c0:5201:2100:9992:f75f:4988:2a3c)
2021-05-16 19:08:50 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-05-16 19:09:47 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::cafd) (Ping timeout: 250 seconds)
2021-05-16 19:09:47 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 19:10:29 +0000 <charukiewicz> yup, we use that all the time in our projects and hardly ever write decoders/encoders by hand
2021-05-16 19:11:04 +0000 <charukiewicz> Just define a type that corresponds to what you want your JSON to look like and then run it through deriveJSON to get your ToJSON/FromJSON instances
2021-05-16 19:11:38 +0000ixlun(~user@109.249.184.235)
2021-05-16 19:11:38 +0000ixlun(~user@109.249.184.235) (Remote host closed the connection)
2021-05-16 19:11:53 +0000ixlun(~user@109.249.184.235)
2021-05-16 19:12:13 +0000 <charukiewicz> you can also override the defaultOptions that deriveJSON takes to do things like modify the camel case behavior (so userFirstName becomes user_first_name) or omit a field prefix (userFirstName becomes first_name) when converting from Haskell values to JSON and back again
2021-05-16 19:12:38 +0000oxide(~lambda@unaffiliated/mclaren) (Ping timeout: 252 seconds)
2021-05-16 19:12:40 +0000mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-16 19:13:18 +0000 <a6a45081-2b83> charukiewicz: they haven't written documentation on what each option does here: https://hackage.haskell.org/package/aeson-1.5.6.0/docs/Data-Aeson-TH.html#t:Options
2021-05-16 19:13:32 +0000tungki(uid469991@gateway/web/irccloud.com/x-xceaiesvmlpclmms) (Quit: Connection closed for inactivity)
2021-05-16 19:13:32 +0000 <a6a45081-2b83> some I can gues, some I am not sure
2021-05-16 19:14:09 +0000 <charukiewicz> yeah some examples would be helpful. The most common option we override is fieldLabelModifier
2021-05-16 19:14:16 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-05-16 19:14:52 +0000 <charukiewicz> So an example of how to use it would be $(deriveJSON defaultOptions{fieldLabelModifier = camelTo2 '_'} ''Person)
2021-05-16 19:15:24 +0000 <charukiewicz> This says all camel cased fields in your Haskell record (e.g. firstName) become snake cased (first_name)
2021-05-16 19:16:29 +0000machinedgod(~machinedg@24.105.81.50)
2021-05-16 19:16:41 +0000 <a6a45081-2b83> nice, what about omitting prefix?
2021-05-16 19:17:58 +0000 <charukiewicz> usually our prefixes are a consistent length so we just drop by that length. Here's both camel case and drop prefix composed together: $(deriveJSON defaultOptions{fieldLabelModifier = Prelude.drop 6 . camelTo2 '_'} ''Email)
2021-05-16 19:18:12 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-16 19:19:23 +0000idhugo(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2021-05-16 19:19:27 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-16 19:19:44 +0000rond_(5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed)
2021-05-16 19:20:50 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com)
2021-05-16 19:23:14 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 19:26:39 +0000 <a6a45081-2b83> charukiewicz: thanks!
2021-05-16 19:30:10 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 19:30:51 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 19:31:32 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::cafd)
2021-05-16 19:34:35 +0000jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
2021-05-16 19:36:07 +0000jumper149(~jumper149@80.240.31.34)
2021-05-16 19:36:15 +0000jumper149(~jumper149@80.240.31.34) (Client Quit)
2021-05-16 19:36:47 +0000gedda(~gedda@s176125235103.blix.com)
2021-05-16 19:38:45 +0000 <gedda> category theory question, isn't the Functor typeclass actually Endofunctor?
2021-05-16 19:39:20 +0000 <gedda> since fmap remains in the same functor, or am I missing something?
2021-05-16 19:40:02 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 19:40:20 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 19:40:26 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 19:40:57 +0000 <boxscape> Yes, generally speaking the category theory analogies only concern themselves with the single category of Haskell types, "Hask"
2021-05-16 19:41:34 +0000jumper(~jumper@gateway/tor-sasl/jumper149)
2021-05-16 19:41:48 +0000 <boxscape> though.. I'm not sure the reason you're saying it should be an Endofunctor is the correct reason
2021-05-16 19:42:04 +0000jumper(~jumper@gateway/tor-sasl/jumper149) (Client Quit)
2021-05-16 19:42:24 +0000 <gedda> boxscape, i suspected my argument was flawed. Just picked up Bartosz book/blogposts
2021-05-16 19:42:29 +0000 <boxscape> I would say any Haskell functor is an endofunctor because it maps objects in Hask (i.e., types) to other objects in Hask, (i.e., types that have a "Maybe" prefix, for example)
2021-05-16 19:43:22 +0000 <boxscape> I should note I'm not exactly an expert in category theory
2021-05-16 19:43:23 +0000guriya(a0ee4bcd@unaffiliated/guriya) (Quit: Connection closed)
2021-05-16 19:43:56 +0000 <boxscape> (also for the second i.e., s/i.e./e.g)
2021-05-16 19:43:58 +0000 <gedda> so, then for instance kind `* -> *` would be in Hask aswell, as it is a function on types?
2021-05-16 19:44:03 +0000 <boxscape> yes
2021-05-16 19:44:12 +0000 <boxscape> or wait
2021-05-16 19:44:23 +0000 <gedda> such as Maybe
2021-05-16 19:44:26 +0000 <gedda> ans not Maybe a
2021-05-16 19:44:28 +0000 <gedda> and*
2021-05-16 19:44:31 +0000 <boxscape> I actually don't think kinds are in Hask
2021-05-16 19:44:33 +0000 <mniip> a haskell type constructor F that has a lawful instance Functor F is an endofunctor Hask -> Haske
2021-05-16 19:44:40 +0000 <mniip> Hask *
2021-05-16 19:44:43 +0000 <boxscape> but then again... types and kinds are unified
2021-05-16 19:44:49 +0000 <mniip> its obejct mapping function is X mapsto F X
2021-05-16 19:44:49 +0000 <boxscape> hmmm
2021-05-16 19:44:54 +0000Guest87676(~laudiacay@45.162.228.190)
2021-05-16 19:44:59 +0000knupfer(~Thunderbi@200116b82287f900d8c73651d44749fb.dip.versatel-1u1.de) (Ping timeout: 245 seconds)
2021-05-16 19:45:04 +0000 <mniip> its morphism mapping function maps f : X -> Y into fmap f : F X -> F Y
2021-05-16 19:45:15 +0000 <boxscape> % undefined :: Maybe (* -> *)
2021-05-16 19:45:15 +0000 <yahb> boxscape: ; <interactive>:107:1: error:; * No instance for (Show (* -> *)) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it
2021-05-16 19:45:38 +0000 <boxscape> gedda I think you're right, it's in Hask
2021-05-16 19:45:51 +0000 <mniip> Hask and * are somewhat synonyms
2021-05-16 19:46:01 +0000 <mniip> however in other contexts Hask and (->) are synonyms
2021-05-16 19:46:15 +0000 <boxscape> gedda the stereotypical exponential objects are more things like `String -> Int` and such
2021-05-16 19:46:20 +0000 <mniip> because in a lot of practical haskell code, an (enriched) category is described by its profunctor
2021-05-16 19:46:54 +0000 <gedda> mniip, thanks for the more proper definition, never saw it as a morhpism between f and fmap f before
2021-05-16 19:47:21 +0000 <mniip> that's not a correct way to call it
2021-05-16 19:47:44 +0000 <gedda> yea sorry, between implies iso which is not in this case
2021-05-16 19:47:50 +0000 <mniip> no
2021-05-16 19:48:21 +0000 <mniip> saying "f : X -> Y" aka "f is a morphism from X to Y" means that X is an object that is its domain, and Y is an object that is its codomain
2021-05-16 19:48:32 +0000 <mniip> "f(x) = y" or "f maps x to y" is completely different
2021-05-16 19:48:42 +0000 <mniip> here x is an element of X (whatever that means)
2021-05-16 19:49:09 +0000Guest87676(~laudiacay@45.162.228.190) (Ping timeout: 245 seconds)
2021-05-16 19:51:10 +0000Alleria(~textual@2603-7000-3040-0000-a930-38e4-f357-846f.res6.spectrum.com)
2021-05-16 19:51:33 +0000AlleriaGuest36185
2021-05-16 19:51:52 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Remote host closed the connection)
2021-05-16 19:52:31 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 19:53:08 +0000jneira(4f9b01f9@gateway/web/cgi-irc/kiwiirc.com/ip.79.155.1.249)
2021-05-16 19:53:48 +0000poljar(~poljar@93-139-93-177.adsl.net.t-com.hr)
2021-05-16 19:54:02 +0000falafel(~falafel@2603-8001-ca00-f555-b4a5-fa93-bc1a-b3d6.res6.spectrum.com)
2021-05-16 19:55:55 +0000 <boxscape> A crude illustrations, for morphisms from sets to sets https://i.imgur.com/WO1HeYN.png
2021-05-16 19:56:20 +0000ThinkPad(~user@2603-8080-4904-7592-f1d1-497c-8bbd-901a.res6.spectrum.com)
2021-05-16 19:56:39 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Ping timeout: 245 seconds)
2021-05-16 19:56:39 +0000poljar1(~poljar@78-1-53-252.adsl.net.t-com.hr) (Ping timeout: 245 seconds)
2021-05-16 19:56:41 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-05-16 20:04:36 +0000mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer)
2021-05-16 20:05:13 +0000mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-05-16 20:05:41 +0000geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-16 20:06:38 +0000mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-05-16 20:06:38 +0000mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-05-16 20:06:38 +0000mouseghost(~draco@wikipedia/desperek)
2021-05-16 20:06:46 +0000pavonia(~user@unaffiliated/siracusa)
2021-05-16 20:06:55 +0000ddellaco_(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 20:08:30 +0000 <gedda> cheers!
2021-05-16 20:10:11 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 20:11:48 +0000TK__(~cinch@2601:1c0:5201:2100:9992:f75f:4988:2a3c) (Remote host closed the connection)
2021-05-16 20:15:13 +0000xff0x(~xff0x@2001:1a81:5322:8600:5cc4:429b:3219:4854) (Ping timeout: 250 seconds)
2021-05-16 20:16:03 +0000xff0x(~xff0x@2001:1a81:5322:8600:89e1:ee88:e1af:1ae6)
2021-05-16 20:16:17 +0000finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-05-16 20:16:50 +0000finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-16 20:18:08 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com)
2021-05-16 20:18:27 +0000Guest72179(~alexander@2a02:587:dc19:ab00:49f:5b0e:f658:23e8) (Ping timeout: 260 seconds)
2021-05-16 20:19:09 +0000supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Ping timeout: 245 seconds)
2021-05-16 20:20:45 +0000mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-05-16 20:20:47 +0000romesrf(~romesrf@44.190.189.46.rev.vodafone.pt)
2021-05-16 20:21:36 +0000_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-05-16 20:22:26 +0000geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-05-16 20:25:52 +0000 <ThinkPad> Hi. I am the ghost of Johnny von Neumann. I know almost nothing about modern programming but I have a question : Why would you need anything other than machine code? köszönöm szépen
2021-05-16 20:30:18 +0000Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-05-16 20:30:55 +0000Sheilong(uid293653@gateway/web/irccloud.com/x-azmheisgydotdkpn) ()
2021-05-16 20:34:04 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-05-16 20:34:06 +0000ddellaco_(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 20:34:10 +0000elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-05-16 20:34:11 +0000Benzi-Junior(~BenziJuni@dsl-149-64-251.hive.is) (Ping timeout: 260 seconds)
2021-05-16 20:36:48 +0000stree(~stree@68.36.8.116) (Ping timeout: 265 seconds)
2021-05-16 20:37:20 +0000mozzarella(~sam@unaffiliated/sam113101) (Ping timeout: 252 seconds)
2021-05-16 20:38:14 +0000 <hpc> machine code? FPGAs should be enough for anyone
2021-05-16 20:40:41 +0000bennofs_(~quassel@dynamic-078-055-014-180.78.55.pool.telefonica.de) (Read error: Connection reset by peer)
2021-05-16 20:41:07 +0000bennofs_(~quassel@dynamic-078-055-014-180.78.55.pool.telefonica.de)
2021-05-16 20:43:43 +0000safinaskar(~user@109.252.90.136)
2021-05-16 20:44:04 +0000 <safinaskar> hi. i'm reading docs for Happy. And I see that Happy can count lines, but not characters!!!
2021-05-16 20:44:15 +0000 <safinaskar> are Happy really so bad, or this is just old docs?
2021-05-16 20:44:45 +0000juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-05-16 20:45:24 +0000 <pjb> ThinkPad: what you need is abstractions. You can start from machine code, but when you clim the abstraction layers, you will implement progressively higher level programming languages.
2021-05-16 20:46:25 +0000 <pjb> ThinkPad: https://www.smart-jokes.org/programmer-evolution.html
2021-05-16 20:46:29 +0000boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220) (Quit: Connection closed)
2021-05-16 20:46:46 +0000 <pjb> ThinkPad: note the "Senior Manager" level of abstraction.
2021-05-16 20:47:10 +0000cfricke(~cfricke@unaffiliated/cfricke)
2021-05-16 20:47:25 +0000 <pjb> ThinkPad: then ask Siri to say Hello World!
2021-05-16 20:48:44 +0000ozzymcduff(~ozzymcduf@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 20:48:44 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 20:49:45 +0000stree(~stree@68.36.8.116)
2021-05-16 20:50:04 +0000boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220)
2021-05-16 20:50:44 +0000mozzarella(~sam@unaffiliated/sam113101)
2021-05-16 20:52:51 +0000Guest82031(~zmv@unaffiliated/zmv)
2021-05-16 20:53:32 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 20:54:35 +0000ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2021-05-16 20:55:48 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 20:56:08 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-16 20:57:44 +0000acidjnk_new(~acidjnk@p5487d90a.dip0.t-ipconnect.de)
2021-05-16 20:58:24 +0000knupfer(~Thunderbi@200116b82287f900f69634fffef0b45f.dip.versatel-1u1.de)
2021-05-16 21:00:55 +0000danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
2021-05-16 21:02:25 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 21:02:54 +0000knupfer(~Thunderbi@200116b82287f900f69634fffef0b45f.dip.versatel-1u1.de) (Ping timeout: 245 seconds)
2021-05-16 21:04:33 +0000romesrf(~romesrf@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.1)
2021-05-16 21:06:33 +0000Guest82031(~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-05-16 21:07:04 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-05-16 21:07:13 +0000neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-05-16 21:07:13 +0000neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-05-16 21:07:13 +0000neiluj(~jco@unaffiliated/neiluj)
2021-05-16 21:08:05 +0000ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Quit: Leaving...)
2021-05-16 21:09:38 +0000DavidEichmann(~david@185.178.93.209.dyn.plus.net)
2021-05-16 21:10:39 +0000kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-05-16 21:11:06 +0000royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-16 21:13:42 +0000DavidEichmann(~david@185.178.93.209.dyn.plus.net) (Remote host closed the connection)
2021-05-16 21:16:56 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-05-16 21:18:03 +0000patlv(~patlv@unaffiliated/patlv)
2021-05-16 21:20:02 +0000cdsmith(~cdsmithus@c-73-184-127-183.hsd1.ga.comcast.net)
2021-05-16 21:20:47 +0000wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2021-05-16 21:20:57 +0000viluon(uid453725@gateway/web/irccloud.com/x-ldrzezyrskjdiqmn)
2021-05-16 21:24:54 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 21:24:59 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::cafd) (Ping timeout: 245 seconds)
2021-05-16 21:26:36 +0000 <cdsmith> > pi == (pi * 10000) / 10000
2021-05-16 21:26:38 +0000 <lambdabot> True
2021-05-16 21:26:47 +0000 <cdsmith> How is that true? There should be loss of precision, right?
2021-05-16 21:27:40 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 21:27:41 +0000 <cdsmith> Oh wait... I guess it's mostly just changing the exponent
2021-05-16 21:28:22 +0000 <HannaM> of course it's true .. only if some crap ilke floating points are involved, it may not, but in a mathematical sense ..
2021-05-16 21:28:45 +0000 <HannaM> the right side can be reduced to just pi
2021-05-16 21:29:05 +0000 <cdsmith> Yeah, the loss of floating point precision is exactly what I was looking for.
2021-05-16 21:29:58 +0000cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-05-16 21:30:00 +0000 <boxscape> > pi == pi * 1e30 / 1e30
2021-05-16 21:30:04 +0000 <lambdabot> True
2021-05-16 21:30:35 +0000kuribas(~user@ptr-25vy0i8tkv6wdcurvf3.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-05-16 21:31:10 +0000 <cdsmith> I think I understand why, though. Multiplication is mostly changing the exponent. I might get lucky and achieve 1 ulp or so of inaccuracy due to rounding, but I need something else to really lose accuracy
2021-05-16 21:32:14 +0000LKoen(~LKoen@2a01cb0407597a00994eae699d6833c6.ipv6.abo.wanadoo.fr) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-05-16 21:33:52 +0000 <ThinkPad> pi /= asin(sin(pi)) for example
2021-05-16 21:34:15 +0000 <ThinkPad> Wait arcsin would just give you 0
2021-05-16 21:34:25 +0000 <boxscape> > pi /= asin (sin pi)
2021-05-16 21:34:27 +0000 <lambdabot> True
2021-05-16 21:34:39 +0000 <ThinkPad> or close to 0
2021-05-16 21:35:42 +0000 <cdsmith> > pi == pi * 11 / 11
2021-05-16 21:35:44 +0000 <lambdabot> False
2021-05-16 21:35:47 +0000 <cdsmith> That works!
2021-05-16 21:37:57 +0000 <a6a45081-2b83> map ^.. members . _Object this gives me all values which are objects, how can I also get the key. There is a folding concept too but I'm unsure how to use that?
2021-05-16 21:38:08 +0000 <a6a45081-2b83> *map :: Object
2021-05-16 21:38:19 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-05-16 21:39:23 +0000safinaskar(~user@109.252.90.136) ()
2021-05-16 21:39:35 +0000davros(~davros@host86-185-126-190.range86-185.btcentralplus.com) (Remote host closed the connection)
2021-05-16 21:39:36 +0000 <cdsmith> > > (pi * 11 / 11 - pi, encodeFloat 1 (snd (decodeFloat pi)))
2021-05-16 21:39:38 +0000 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘>’
2021-05-16 21:39:42 +0000 <cdsmith> > (pi * 11 / 11 - pi, encodeFloat 1 (snd (decodeFloat pi)))
2021-05-16 21:39:44 +0000 <lambdabot> (-4.440892098500626e-16,4.440892098500626e-16)
2021-05-16 21:39:53 +0000 <cdsmith> There we go! 1 ulp of error
2021-05-16 21:40:24 +0000mounty(~mounty@236.216.214.218.sta.wbroadband.net.au)
2021-05-16 21:42:19 +0000falafel(~falafel@2603-8001-ca00-f555-b4a5-fa93-bc1a-b3d6.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-05-16 21:42:51 +0000usr25(~usr25@unaffiliated/usr25)
2021-05-16 21:43:17 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 21:44:04 +0000mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Quit: Leaving)
2021-05-16 21:44:26 +0000notzmv-(~zmv@unaffiliated/zmv)
2021-05-16 21:44:41 +0000mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-05-16 21:46:14 +0000patlv(~patlv@unaffiliated/patlv) (Ping timeout: 245 seconds)
2021-05-16 21:47:15 +0000 <boxscape> > (pi, pi * 11/11)
2021-05-16 21:47:16 +0000 <lambdabot> (3.141592653589793,3.1415926535897927)
2021-05-16 21:47:43 +0000 <boxscape> > (pi :: Double, pi * 11/11)
2021-05-16 21:47:45 +0000 <lambdabot> (3.141592653589793,3.1415926535897927)
2021-05-16 21:47:53 +0000 <boxscape> oh wait, Double is the default
2021-05-16 21:47:59 +0000 <boxscape> > (pi :: Float, pi * 11/11)
2021-05-16 21:48:00 +0000 <lambdabot> (3.1415927,3.1415926535897927)
2021-05-16 21:48:07 +0000 <boxscape> > (pi :: Float, pi * 11/11 :: Float)
2021-05-16 21:48:09 +0000 <lambdabot> (3.1415927,3.141593)
2021-05-16 21:48:16 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-05-16 21:48:36 +0000 <boxscape> still works
2021-05-16 21:49:07 +0000dmytrish_(~mitra@37.228.247.154) (Quit: Konversation terminated!)
2021-05-16 21:49:16 +0000dmytrish_(~mitra@37.228.247.154)
2021-05-16 21:49:53 +0000 <cdsmith> Yeah, but I think that's coincidence.
2021-05-16 21:50:15 +0000Lycurgus(~niemand@cpe-45-46-140-49.buffalo.res.rr.com)
2021-05-16 21:50:24 +0000 <cdsmith> > (1*11/11 :: Double, 1*11/11 :: Float)
2021-05-16 21:50:25 +0000 <lambdabot> (1.0,1.0)
2021-05-16 21:50:37 +0000 <cdsmith> Yeah, works for pi,. but not for 1.0
2021-05-16 21:50:50 +0000wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-05-16 21:51:08 +0000 <cdsmith> But, at least that gives me one example, which is enough for a unit test. :)
2021-05-16 21:51:30 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-16 21:51:40 +0000dmytrish_(~mitra@37.228.247.154) (Client Quit)
2021-05-16 21:51:47 +0000dmytrish(~mitra@37.228.247.154)
2021-05-16 21:52:00 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::cafd)
2021-05-16 21:52:08 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 21:52:17 +0000dmytrish(~mitra@37.228.247.154) (Client Quit)
2021-05-16 21:52:40 +0000fendor(~fendor@91.141.2.211.wireless.dyn.drei.com) (Remote host closed the connection)
2021-05-16 21:53:58 +0000dmytrish(~mitra@2a02:8084:a82:d900:581:a2bd:73ab:25fb)
2021-05-16 21:56:48 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-16 21:58:26 +0000dmytrish_(~mitra@2a02:8084:a82:d900:5051:16e0:8e89:e082)
2021-05-16 22:00:28 +0000Rudd0(~Rudd0@185.189.115.108)
2021-05-16 22:01:56 +0000Ariakenom(~Ariakenom@2001:9b1:efb:fc00:8515:6952:6c0e:748) (Quit: Leaving)
2021-05-16 22:02:31 +0000dmytrish(~mitra@2a02:8084:a82:d900:581:a2bd:73ab:25fb) (Ping timeout: 260 seconds)
2021-05-16 22:04:20 +0000 <cdsmith> Oh, found a better example, though.
2021-05-16 22:04:25 +0000 <cdsmith> > sum (replicate 100 0.01)
2021-05-16 22:04:26 +0000 <lambdabot> 1.0000000000000007
2021-05-16 22:06:36 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:8dd2:2363:77ad:18a2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 22:06:41 +0000 <boxscape> > 0.1 + 0.2
2021-05-16 22:06:43 +0000 <lambdabot> 0.30000000000000004
2021-05-16 22:07:59 +0000chris__(~chris@81.96.113.213)
2021-05-16 22:08:22 +0000Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-05-16 22:08:59 +0000 <cdsmith> Yeah, but I like (replicate 100 0.01) because it's basically guaranteed to give an incorrect result regardless of details (unless the radix is a multiple of 10...)
2021-05-16 22:09:26 +0000Lycurgus(~niemand@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-05-16 22:10:50 +0000oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 245 seconds)
2021-05-16 22:11:53 +0000hololeap(~hololeap@gateway/tor-sasl/hololeap)
2021-05-16 22:12:01 +0000gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-05-16 22:12:02 +0000mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-05-16 22:12:31 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-16 22:16:28 +0000Rudd0^(~Rudd0@185.189.115.103)
2021-05-16 22:18:59 +0000ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-05-16 22:19:09 +0000Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 252 seconds)
2021-05-16 22:19:57 +0000__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-05-16 22:20:24 +0000hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 245 seconds)
2021-05-16 22:21:14 +0000Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2021-05-16 22:22:54 +0000hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-05-16 22:23:09 +0000hololeap(~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds)
2021-05-16 22:23:19 +0000Tario(~Tario@201.192.165.173) (Ping timeout: 245 seconds)
2021-05-16 22:23:55 +0000patlv(~patlv@unaffiliated/patlv)
2021-05-16 22:24:16 +0000ddellacosta(~ddellacos@86.106.143.113)
2021-05-16 22:25:28 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 22:25:29 +0000gedda(~gedda@s176125235103.blix.com) (Quit: leaving)
2021-05-16 22:26:14 +0000ixlun(~user@109.249.184.235)
2021-05-16 22:26:58 +0000tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-16 22:27:57 +0000olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-16 22:28:48 +0000ddellacosta(~ddellacos@86.106.143.113) (Ping timeout: 252 seconds)
2021-05-16 22:30:37 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-16 22:30:51 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Ping timeout: 250 seconds)
2021-05-16 22:31:24 +0000neiluj(~jco@unaffiliated/neiluj) (Remote host closed the connection)
2021-05-16 22:33:27 +0000sheepduck(~sheepduck@2607:fea8:2a60:b700::cafd) (Ping timeout: 250 seconds)
2021-05-16 22:35:14 +0000 <inkbottle[m]> Are Haskell libraries regular `elf` `.so` files? (I'm trying to get more aware of the building process, so I don't freak out every time something goes wrong. Next link says, when it's compiled, it's `.so` file: https://rufflewind.com/2017-02-25/using-libraries.)
2021-05-16 22:35:37 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-05-16 22:35:50 +0000 <mniip> haskell libraries consist of .so objects containing executable code, and .hi files containing haskell interfaces
2021-05-16 22:36:14 +0000 <inkbottle[m]> tx
2021-05-16 22:36:29 +0000 <mniip> the latter includes anything to do with types, pragmas, unfoldings for inlinings, etc
2021-05-16 22:36:48 +0000 <mniip> stuff like how to better optimize a program using this library etc
2021-05-16 22:37:43 +0000 <mniip> you don't need that information at runtime, hence not part of the .so, but you need that information to compile something against the library using a *haskell* library barrier and not a *C* library barrier
2021-05-16 22:37:57 +0000 <inkbottle[m]> This latter part is used during the first stages of the compilation: type checking, etc?
2021-05-16 22:38:11 +0000 <inkbottle[m]> okay
2021-05-16 22:38:16 +0000 <mniip> it's used throughout
2021-05-16 22:39:25 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-16 22:39:50 +0000 <mniip> I had some slides for this somewhere
2021-05-16 22:39:51 +0000star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-16 22:40:23 +0000 <mniip> http://tcp.st/dhupy.png
2021-05-16 22:40:30 +0000 <inkbottle[m]> nice.
2021-05-16 22:40:35 +0000 <mniip> http://tcp.st/yh_mh.png
2021-05-16 22:40:44 +0000 <mniip> vastly simplified but generally the idea
2021-05-16 22:40:59 +0000 <mniip> dependent modules' hi files are loaded somewhere around parse/rename
2021-05-16 22:43:13 +0000Tario(~Tario@201.192.165.173)
2021-05-16 22:43:16 +0000cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-05-16 22:44:35 +0000 <inkbottle[m]> So, usually, when you need a haskell-library to compile some haskell file of yours, you do not need the source code for the lib. The elf-amd64 binaries and `.hi` files, installed at the right location, might be sufficient?
2021-05-16 22:45:10 +0000 <mniip> yes
2021-05-16 22:45:21 +0000ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-05-16 22:45:27 +0000 <mniip> the story has a few more steps in it to do with packages though
2021-05-16 22:45:48 +0000 <mniip> ghc has a package database which lists for every package its modules and where to find the so's, hi's etc
2021-05-16 22:45:58 +0000 <mniip> when you import a module ghc looks into the package database
2021-05-16 22:46:15 +0000hmachado(~hmachado@185.163.110.100) (Remote host closed the connection)
2021-05-16 22:46:36 +0000 <geekosaur> the package db tells it not only where to find the .so and .hi but also how to link them and any dependencies including external/C dependencies
2021-05-16 22:46:38 +0000patlv(~patlv@unaffiliated/patlv) (Remote host closed the connection)
2021-05-16 22:46:47 +0000 <mniip> good point
2021-05-16 22:46:56 +0000 <mniip> another thing to mention is that ghc has these things called "ways"
2021-05-16 22:47:20 +0000 <mniip> which are significant alterations of what the compiled code (and possibly the RTS) looks like
2021-05-16 22:47:40 +0000 <mniip> this includes stuff like threaded-ness, profiling, dynamic linking support
2021-05-16 22:48:13 +0000 <mniip> enabling/disabling these options will produce vastly different code, hence ghc will use different suffixes for compilation products
2021-05-16 22:48:27 +0000 <mniip> e.g. .dyn_o, .dyn_hi
2021-05-16 22:49:54 +0000 <mniip> this is the foe of archlinux's haskell packages
2021-05-16 22:50:34 +0000 <mniip> because they only include things built in the "dyn" way, hence you cannot link against the libraries you install unless you also compile your program in the "dyn" way
2021-05-16 22:51:09 +0000jamm_(~jamm@unaffiliated/jamm)
2021-05-16 22:51:12 +0000 <mniip> the generally accepted understanding is that using distribution-provided packages for developing haskell programs is a Bad Idea
2021-05-16 22:51:38 +0000 <inkbottle[m]> That I gathered
2021-05-16 22:54:20 +0000DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2021-05-16 22:54:21 +0000finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-05-16 22:54:27 +0000 <inkbottle[m]> Cabal is finding the libraries installed on your system (I mean among other things).
2021-05-16 22:54:44 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-16 22:55:33 +0000jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-05-16 22:56:29 +0000nbloomf(~nbloomf@2600:1700:ad14:3020:5d48:8adb:4f7a:141b)
2021-05-16 22:57:04 +0000alx741(~alx741@186.178.108.187) (Ping timeout: 252 seconds)
2021-05-16 22:57:22 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 22:57:46 +0000stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-05-16 22:58:04 +0000finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-16 22:58:57 +0000DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-05-16 22:58:59 +0000Lucci0(~Lucci0@modemcable159.116-21-96.mc.videotron.ca)
2021-05-16 22:59:20 +0000Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-05-16 22:59:55 +0000 <geekosaur> cabal is maintaining per-project package databases to avoid version conflicts, among other things
2021-05-16 23:01:41 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-05-16 23:02:09 +0000xcmw(~textual@2603-6011-2200-f103-1090-4073-ea46-f74d.res6.spectrum.com)
2021-05-16 23:02:31 +0000pav5088(~pav5088@138.199.47.158)
2021-05-16 23:03:08 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 23:03:10 +0000zfnmxt(~zfnmxt@unaffiliated/zfnmxt) (Quit: Bye!)
2021-05-16 23:05:35 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06)
2021-05-16 23:05:40 +0000elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-05-16 23:05:47 +0000a6a45081-2b83(~aditya@171.76.17.86) (Quit: Konversation terminated!)
2021-05-16 23:05:56 +0000elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net)
2021-05-16 23:07:41 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-05-16 23:08:47 +0000 <inkbottle[m]> "Kpathsea is a library to do path searching". I suppose the way Cabal is finding things is unrelated to "kpathsea". I suppose the libraries, which are packaged, can be installed in different places on the system: like system wide (which we said is discouraged), in ~/.local (?), in the project directory itself. And Cabal is looking for them at these places.
2021-05-16 23:10:11 +0000stree(~stree@68.36.8.116)
2021-05-16 23:10:49 +0000nicholasbulka(~nicholasb@2601:900:4301:da0:b0b3:4831:47cc:ab06) (Ping timeout: 245 seconds)
2021-05-16 23:10:59 +0000hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Quit: Konversation terminated!)
2021-05-16 23:11:54 +0000alx741(~alx741@186.178.108.105)
2021-05-16 23:12:09 +0000 <geekosaur> ghc does that looking. cabal is about managing things so ghc sees only what it should see for a given project, to avoid it grabbing the wrong versions of things
2021-05-16 23:12:39 +0000 <inkbottle[m]> ok
2021-05-16 23:12:47 +0000 <geekosaur> because grabbing the wrong versions of things was what it did under cabal v1 which only managed global and per-user packages
2021-05-16 23:14:46 +0000conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-05-16 23:14:47 +0000 <geekosaur> hence what was miscalled "cabal hell" but was really ghc's fault because rather than track version dependencies it grabbed the first version of something it found, and would do things like diamond dependencies where package A was built against B 1.0, package C was built against B 1.1, then ghc would happily try to link A with C without recomciling
2021-05-16 23:14:47 +0000 <geekosaur> Bs
2021-05-16 23:17:44 +0000conal(~conal@64.71.133.70)
2021-05-16 23:18:26 +0000 <inkbottle[m]> Was it that "gap" that "stack" was here to fix? (I mean I've always used stack...)
2021-05-16 23:18:58 +0000ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-05-16 23:19:27 +0000 <inkbottle[m]> Trying to introduce more consistency in which version of the package was used?
2021-05-16 23:19:43 +0000 <geekosaur> stack was the first to address this problem. cabal v2 then came up with an alternative solution
2021-05-16 23:19:59 +0000 <inkbottle[m]> got it
2021-05-16 23:20:06 +0000 <geekosaur> stack's solution being to start from well defined ghc+set of packages
2021-05-16 23:20:34 +0000 <geekosaur> so everything would have  a consistent baseline to work from
2021-05-16 23:20:50 +0000 <inkbottle[m]> So maybe easier to use.
2021-05-16 23:21:11 +0000 <geekosaur> esier in some ways, but nearly impossible if you needed a combination there isn't an lts for
2021-05-16 23:21:16 +0000acidjnk_new(~acidjnk@p5487d90a.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-05-16 23:21:28 +0000ixlun(~user@109.249.184.235)
2021-05-16 23:21:36 +0000 <inkbottle[m]> Yes, that I understand
2021-05-16 23:21:58 +0000mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer)
2021-05-16 23:22:00 +0000son0p(~ff@181.136.122.143) (Remote host closed the connection)
2021-05-16 23:22:36 +0000 <Uniaika> geekosaur: <3 thanks for signing the letter on Freenode's independence, with dibblego
2021-05-16 23:23:01 +0000 <geekosaur> np
2021-05-16 23:23:12 +0000 <dibblego> :)
2021-05-16 23:23:53 +0000 <Uniaika> (:
2021-05-16 23:23:53 +0000 <sclv> well, sandboxes were the first solution
2021-05-16 23:24:14 +0000 <sclv> there was a seperate tool for them cabal-dev or something. then cabal incorporated them. then stack sort of "generalized" them
2021-05-16 23:24:41 +0000 <geekosaur> stack came before cabal sandboxes, I think?
2021-05-16 23:25:08 +0000 <dcoutts__> no, cabal sandboxes were first
2021-05-16 23:25:12 +0000dcoutts__dcoutts
2021-05-16 23:25:20 +0000 <sclv> and also there was an external tool for sandboxes before cabal incorporated them
2021-05-16 23:25:34 +0000 <dcoutts> yeah, cabal-dev
2021-05-16 23:25:34 +0000 <sclv> btw what letter on freenode?
2021-05-16 23:25:37 +0000 <geekosaur> right, I know the external tool came first
2021-05-16 23:26:00 +0000 <geekosaur> https://gist.github.com/shadowcat-mst/998cea12794768bdb3da2daeff31baad
2021-05-16 23:26:21 +0000 <geekosaur> the owner of PIA's trying to stage a takeover
2021-05-16 23:27:18 +0000 <geekosaur> discussion currently taking place in #haskell-ops
2021-05-16 23:27:57 +0000 <sclv> ugh ok thanks
2021-05-16 23:28:04 +0000jamm_(~jamm@unaffiliated/jamm)
2021-05-16 23:31:40 +0000geekosaur(45870322@069-135-003-034.biz.spectrum.com) (Quit: Ping timeout (120 seconds))
2021-05-16 23:32:22 +0000geekosaur(45870322@069-135-003-034.biz.spectrum.com)
2021-05-16 23:32:23 +0000jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-05-16 23:35:02 +0000machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2021-05-16 23:36:14 +0000machinedgod(~machinedg@24.105.81.50)
2021-05-16 23:36:59 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-16 23:38:22 +0000heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-16 23:41:02 +0000conal(~conal@64.71.133.70) (Ping timeout: 252 seconds)
2021-05-16 23:41:35 +0000conal(~conal@64.71.133.70)
2021-05-16 23:42:05 +0000ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-05-16 23:42:28 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-05-16 23:42:51 +0000mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-05-16 23:43:17 +0000geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-16 23:43:56 +0000conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-05-16 23:45:53 +0000patlv(~patlv@unaffiliated/patlv)
2021-05-16 23:46:04 +0000conal(~conal@64.71.133.70)
2021-05-16 23:47:38 +0000xenon-(~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-05-16 23:47:54 +0000elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 245 seconds)
2021-05-16 23:49:22 +0000stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
2021-05-16 23:51:05 +0000 <Axman6> "These are not to be confused with unit types like C's void or Haskell's (), which are types that have a single value (and consequently carry no information)." - from this statement, can it be said that Void carried more information than (), because it implies non-termination?
2021-05-16 23:51:30 +0000aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-05-16 23:51:46 +0000 <Axman6> carries*
2021-05-16 23:53:39 +0000 <hpc> Void has one value, bottom
2021-05-16 23:53:45 +0000 <hpc> () has bottom and ()
2021-05-16 23:53:58 +0000 <hpc> but usefully distinguishing between bottom and () breaks the rules, depending on how you look at it
2021-05-16 23:55:45 +0000 <hpc> so maybe you can say that, depends on what you decide to take into account in your reasoning
2021-05-16 23:57:00 +0000 <Axman6> yeahb I was mostly choosing to ignore bottoms for now
2021-05-16 23:57:29 +0000patlv(~patlv@unaffiliated/patlv) (Ping timeout: 245 seconds)