Home freenode/#haskell: Logs Calendar

Logs on 2021-05-16 (freenode/#haskell)

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

All times are in UTC on 2021-05-16.