Home freenode/#haskell: Logs Calendar

Logs on 2021-04-29 (freenode/#haskell)

00:01:01 × sayola quits (~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Read error: Connection reset by peer)
00:02:59 × sm2n quits (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) (Ping timeout: 265 seconds)
00:05:00 × nineonin_ quits (~nineonine@50.216.62.2) (Remote host closed the connection)
00:05:27 nineonine joins (~nineonine@50.216.62.2)
00:06:29 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
00:07:56 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
00:12:47 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
00:16:18 × stree quits (~stree@68.36.8.116) (Quit: Caught exception)
00:16:41 stree joins (~stree@68.36.8.116)
00:18:59 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
00:20:26 tanuki_ joins (~quassel@173.168.178.1)
00:21:22 × tanuki quits (~quassel@173.168.178.1) (Ping timeout: 252 seconds)
00:23:12 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
00:26:31 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
00:28:43 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
00:32:14 × carlomagno quits (~cararell@148.87.23.8) (Remote host closed the connection)
00:32:18 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com)
00:32:21 × mounty quits (~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 260 seconds)
00:32:50 TheScoop joins (~TheScoop@unaffiliated/tryte)
00:32:53 mounty joins (~mounty@236.216.214.218.sta.wbroadband.net.au)
00:33:40 carlomagno joins (~cararell@148.87.23.8)
00:35:15 jamm_ joins (~jamm@unaffiliated/jamm)
00:35:22 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
00:36:46 × bennofs_ quits (~quassel@x4dbff94d.dyn.telefonica.de) (Ping timeout: 252 seconds)
00:36:55 bennofs__ joins (~quassel@x4dbf4f4d.dyn.telefonica.de)
00:38:55 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
00:39:12 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
00:40:13 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 276 seconds)
00:41:01 sh9 joins (~sh9@softbank060116136158.bbtec.net)
00:41:34 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
00:42:12 × proofofkeags quits (~proofofke@205.209.28.54) (Ping timeout: 240 seconds)
00:43:25 × Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com) (Remote host closed the connection)
00:43:53 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com)
00:44:01 × myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 260 seconds)
00:44:45 × Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com) (Client Quit)
00:48:48 × davros quits (~davros@host86-185-126-190.range86-185.btcentralplus.com) (Remote host closed the connection)
00:49:34 letmein joins (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1)
00:55:45 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:56:03 × letmein quits (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) (Ping timeout: 260 seconds)
01:01:23 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:03:04 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-a9d5-4324-7c94-d209.res6.spectrum.com)
01:04:27 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
01:09:08 × Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-a9d5-4324-7c94-d209.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
01:09:54 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:10:27 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:11:14 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:11:30 × whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:37 whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:14:28 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-15c1-181a-a12b-d412.res6.spectrum.com)
01:15:39 davros joins (~davros@host86-185-126-190.range86-185.btcentralplus.com)
01:16:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:16:15 × carlomagno quits (~cararell@148.87.23.8) (Quit: Leaving.)
01:21:39 hidedagger joins (~nate@unaffiliated/hidedagger)
01:22:52 × Tario quits (~Tario@200.119.186.3) (Ping timeout: 268 seconds)
01:23:29 Tario joins (~Tario@201.192.165.173)
01:28:13 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
01:30:00 × remby quits (~remby@bras-base-london1483w-grc-43-65-95-173-128.dsl.bell.ca) (Quit: remby)
01:33:22 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
01:35:42 sm2n joins (~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca)
01:41:19 × xff0x quits (~xff0x@2001:1a81:5216:4600:d365:aa72:75db:f7b9) (Ping timeout: 276 seconds)
01:41:46 × horatiohb quits (~horatiohb@159.203.66.243) (Ping timeout: 260 seconds)
01:43:01 xff0x joins (~xff0x@2001:1a81:524d:ea00:c15c:a6f:641:7fe3)
01:49:33 drbean_ joins (~drbean@TC210-63-209-92.static.apol.com.tw)
01:49:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:54:03 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds)
01:57:52 × slack1256 quits (~slack1256@200-112-90-35.baf.movistar.cl) (Ping timeout: 240 seconds)
01:59:27 cronts joins (~croissant@180.190.216.146)
02:02:20 × Wuzzy quits (~Wuzzy@p5790e74f.dip0.t-ipconnect.de) (Quit: Wuzzy)
02:07:19 ddellacosta joins (~ddellacos@86.106.143.229)
02:10:27 remby joins (~remby@bras-base-london1483w-grc-43-65-95-173-128.dsl.bell.ca)
02:10:36 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
02:11:42 × ddellacosta quits (~ddellacos@86.106.143.229) (Ping timeout: 252 seconds)
02:14:28 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 276 seconds)
02:14:54 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:17:56 × Igloo quits (~igloo@matrix.chaos.earth.li) (Ping timeout: 246 seconds)
02:20:43 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
02:21:02 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
02:24:32 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
02:25:31 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Ping timeout: 276 seconds)
02:26:02 Igloo joins (~igloo@81.2.99.210)
02:28:58 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
02:30:52 × theDon quits (~td@94.134.91.183) (Ping timeout: 240 seconds)
02:31:09 × cronts quits (~croissant@180.190.216.146) (Ping timeout: 252 seconds)
02:31:20 myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net)
02:32:53 theDon joins (~td@muedsl-82-207-238-033.citykom.de)
02:36:07 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
02:37:40 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
02:37:40 finn_elija is now known as Guest25670
02:37:40 FinnElija is now known as finn_elija
02:38:01 remby parts (~remby@bras-base-london1483w-grc-43-65-95-173-128.dsl.bell.ca) ("Good Bye")
02:38:15 stree joins (~stree@68.36.8.116)
02:40:45 × Guest25670 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
02:43:11 × __minoru__shirae quits (~shiraeesh@46.34.207.120) (Ping timeout: 240 seconds)
02:45:43 frozenErebus joins (~frozenEre@37.231.244.249)
02:45:55 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
02:46:08 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
02:50:36 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
02:50:45 × ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
02:58:47 × vladan1 quits (~vladan@195.140.213.38) (Remote host closed the connection)
03:00:25 × snowflake quits (~snowflake@gateway/tor-sasl/snowflake) (Remote host closed the connection)
03:00:25 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
03:00:48 snowflake joins (~snowflake@gateway/tor-sasl/snowflake)
03:00:49 jb55 joins (~jb55@gateway/tor-sasl/jb55)
03:03:05 laudiacay joins (~laudiacay@67.176.215.84)
03:03:29 laudiacay is now known as Guest87676
03:04:10 × Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 252 seconds)
03:12:03 × howdoi quits (uid224@gateway/web/irccloud.com/x-skcvldmujnozgzqc) (Quit: Connection closed for inactivity)
03:14:47 tadeo joins (~tadeo@217.146.82.202)
03:15:10 × blankhart quits (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Ping timeout: 252 seconds)
03:19:13 rajivr joins (uid269651@gateway/web/irccloud.com/x-lxchinolehixafmd)
03:22:52 × Igloo quits (~igloo@81.2.99.210) (Ping timeout: 240 seconds)
03:23:38 ddellacosta joins (~ddellacos@86.106.143.242)
03:27:38 cercerilla joins (~user@024-178-254-009.res.spectrum.com)
03:28:22 × ddellacosta quits (~ddellacos@86.106.143.242) (Ping timeout: 252 seconds)
03:31:07 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
03:31:37 cercerilla parts (~user@024-178-254-009.res.spectrum.com) ()
03:32:45 × timCF quits (~i.tkachuk@m91-129-104-226.cust.tele2.ee) (Ping timeout: 252 seconds)
03:33:02 timCF joins (~i.tkachuk@m91-129-104-226.cust.tele2.ee)
03:34:11 egorbelibov joins (~65676f72@2001:8a0:5708:2a00:2014:4cc0:2f98:ce70)
03:35:41 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
03:39:55 numb3r joins (~numb3r@75-32-237-142.lightspeed.rnpsca.sbcglobal.net)
03:46:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:47:52 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
03:47:58 × hidedagger quits (~nate@unaffiliated/hidedagger) (Quit: WeeChat 3.1)
03:48:17 jakalx parts (~jakalx@base.jakalx.net) ()
03:51:34 numb3r parts (~numb3r@75-32-237-142.lightspeed.rnpsca.sbcglobal.net) ()
03:52:00 <egorbelibov> anybody using https://github.com/jschaf/hsearch (hsearch-mode) [Emacs]?
03:52:32 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
03:58:48 desophos joins (~desophos@2601:249:1680:a570:ad52:b454:fe1c:2cc3)
03:58:53 jakalx joins (~jakalx@base.jakalx.net)
04:00:08 Qwerky joins (~qwerky@37.171.11.15)
04:01:14 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:04:07 × jao quits (~jao@pdpc/supporter/professional/jao) (Remote host closed the connection)
04:04:26 × Qwerky quits (~qwerky@37.171.11.15) (Ping timeout: 240 seconds)
04:05:26 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
04:09:22 × alx741 quits (~alx741@181.196.68.118) (Quit: alx741)
04:09:30 × epicte7us quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer)
04:10:21 Qwerky joins (~qwerky@37.171.11.15)
04:11:53 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
04:14:55 × Qwerky quits (~qwerky@37.171.11.15) (Ping timeout: 252 seconds)
04:15:32 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 268 seconds)
04:15:52 coot joins (~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl)
04:18:00 conal joins (~conal@64.71.133.70)
04:20:10 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:df5:3e62:d261:3647)
04:21:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
04:25:19 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
04:28:17 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-plkwxelyikqpwdno)
04:29:11 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds)
04:30:21 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 268 seconds)
04:30:38 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
04:31:24 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
04:31:40 fivebox joins (~x@unaffiliated/fivebox)
04:32:31 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds)
04:35:06 × drbean_ quits (~drbean@TC210-63-209-92.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
04:37:24 jao joins (~jao@pdpc/supporter/professional/jao)
04:46:42 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
04:47:26 × fivebox quits (~x@unaffiliated/fivebox) (Ping timeout: 240 seconds)
04:48:09 nineonin_ joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
04:51:58 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 252 seconds)
04:57:35 × myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Quit: Leaving)
04:58:28 jakalx parts (~jakalx@base.jakalx.net) ()
04:59:33 stree joins (~stree@68.36.8.116)
05:00:06 jakalx joins (~jakalx@base.jakalx.net)
05:00:28 pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
05:01:19 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
05:05:14 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
05:06:33 aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
05:10:30 <desophos> why does `sequence` return a cross-product of a list of lists? i can intuitively understand how it works for other Monads like Maybe and Either but i'm struggling to understand what it means to collect [] actions
05:11:23 ddellacosta joins (~ddellacos@86.106.143.86)
05:14:47 <c_wraith> desophos: you can think of the [] instance for monad modeling nondeterministic choice. Internally, you never know what element you'll get, just that it's going to be *something*
05:15:35 superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
05:15:42 <c_wraith> > do { a <- [1,2] ; b <- [3,4,5] ; c <- [7, 8] ; return (a, b, c) }
05:15:44 <lambdabot> [(1,3,7),(1,3,8),(1,4,7),(1,4,8),(1,5,7),(1,5,8),(2,3,7),(2,3,8),(2,4,7),(2,...
05:16:00 <superstar64> is there anyway i can make cabal run be interpreted rather then compiled?
05:16:10 × ddellacosta quits (~ddellacos@86.106.143.86) (Ping timeout: 252 seconds)
05:16:29 <c_wraith> desophos: you can see how each bind picks one element from the list it's pulling from in the example above
05:17:11 <c_wraith> desophos: well, that's basically what sequence does, except instead of working on tuples, it works on arbitrary length lists.
05:17:25 <desophos> ah ok, so it represents all possible values returned from accessing each list -- like a product type?
05:17:30 <c_wraith> yes
05:17:34 <desophos> interesting
05:18:26 <desophos> the product of all possible values of each list
05:18:30 <desophos> thanks, that makes sense!
05:18:39 <c_wraith> cartesian product is the standard term
05:19:01 <desophos> right, i was just trying to reconcile that with how sequence works on other Monads
05:19:45 <desophos> the idea of combining each of the nondeterministic choices makes sense
05:19:48 × xkapastel quits (uid17782@gateway/web/irccloud.com/x-odtfelnunqxapxmp) (Quit: Connection closed for inactivity)
05:20:20 <c_wraith> yep. it recursively binds elements from the input. in the case of the [] monad, that's a choice operation in some sense.
05:21:11 <c_wraith> from the outside there's nothing non-deterministic about it. But from the inside, that's how it acts. You just don't know which element you'll be working with.
05:22:05 <desophos> right, non-deterministic in the sense that it can evaluate to any of its possible values when accessed
05:22:19 <desophos> right?
05:22:24 <c_wraith> exactly
05:22:34 <curiousgay> > lastDigit :: [Integer] -> Integer
05:22:34 <curiousgay> > lastDigit = (`mod` 10) . foldr (\x y -> if y == 0 then 1 else x ^ ((y-1) `mod` 40 + 1)) 1
05:22:34 <curiousgay> I have an exercise to find the last digit of x1^(x2^(...)), I've made 3 different versions of working code, but they all are slower then what codewars expect from me, I have no idea how can it be faster than that
05:22:36 <lambdabot> error:
05:22:36 <lambdabot> Variable not in scope: lastDigit :: [Integer] -> Integer
05:22:36 <lambdabot> <hint>:1:11: error: <hint>:1:11: error: parse error on input ‘=’
05:23:30 <curiousgay> s/then/than/
05:23:50 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
05:26:06 <c_wraith> superstar64: https://www.reddit.com/r/haskell/comments/ko6zgn/cabal_project_for_scripts_with_no_build_artifacts/ has a couple ideas
05:27:21 solidus-river joins (~fuag1@174.127.249.180)
05:27:28 frozenErebus joins (~frozenEre@37.231.244.249)
05:29:37 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 250 seconds)
05:29:47 hololeap joins (hololeap@gateway/vpn/protonvpn/hololeap)
05:30:07 <superstar64> oh, so it's single file only?
05:31:01 <solidus-river> i gotta gush for a second or two. I've been a c++ coder in gaming for about 12 years now or so. Just finished what I hope to open source come august of a decentralized mesh Augmented reality simulation protocol with foundations in zmq and I cannot fathom writing it in the time i did in a langaue aside from haskell
05:31:07 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
05:31:41 ukari joins (~ukari@unaffiliated/ukari)
05:32:04 <c_wraith> superstar64: probably could work with multiple-file stuff, but it might be a bit weird with source directories. I don't know for sure - this doesn't look like a deeply-developed feature
05:32:34 <solidus-river> this community and language is a true gem, the concise descriptions and low level control so far have been amazingly fruitful in design without feeling sacraficial to performance. I'm sure that will change but.. wow fellow beings, this stuff is legit cool. I love it.
05:32:48 <superstar64> i wanted to try it because apt broke my linker, but i'll guess i'll have to fix it
05:33:22 <solidus-river> i have to translate my prototype library into c++ and I'm dreading the task
05:33:26 × jao quits (~jao@pdpc/supporter/professional/jao) (Ping timeout: 240 seconds)
05:33:29 <superstar64> also, what's the best way to format a project? i'm currently doing `ormolu -o -XTypeApplications -i `find source -type f`
05:34:06 × mounty quits (~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 240 seconds)
05:34:15 <superstar64> solidus-river what's a simulation protocol?
05:34:48 <solidus-river> superstar64, its a new type of mesh network for locality based augmented reality hosted on a mesh network of peers
05:35:07 <solidus-river> or specifically, its a protocol specification that allows simulation between networked actors
05:35:35 <solidus-river> and I'm being redundant but i'm also having a couple beers in celebration of end to end tests working out :\
05:35:47 <solidus-river> s/protocol specification/protocol/g
05:36:18 <solidus-river> i'm shooting to open source in august for siggraph
05:36:26 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
05:37:04 <solidus-river> but tldr, haskell is amazeballs to work with. It's painful to go back to c++ land to make the client libs for devices / engines
05:37:43 <solidus-river> and i'm super grateful to have the learnings from building those proto libraries in hask
05:37:57 <superstar64> this thing https://en.wikipedia.org/wiki/Mesh_networking i know nothing about networking
05:38:40 <solidus-river> allows non-mediated set of peers to partake in an augmented reality with other peers nearby
05:39:27 <solidus-river> i'm using the term mesh because stuff like ipfs is involved, i don't even know if thats accurate
05:39:42 <solidus-river> but the end result is rad and i'm stoked to flush it out and share :D
05:39:56 <sshine> sounds cool, solidus-river.
05:40:29 <sshine> congrats on your tests succeeding. :)
05:40:38 <solidus-river> thanks :)
05:41:48 × shailangsa quits (~shailangs@host86-186-132-95.range86-186.btcentralplus.com) (Ping timeout: 265 seconds)
05:42:10 <superstar64> solidus-river, do you have any recommendation where i can learn about this stuff?
05:42:24 <superstar64> it would be nice to at least have a cursory overview
05:42:37 <solidus-river> i've got a lot of problems around federated peers to sort out i'm hoping to steal a lot from BGM for but i'm also hoping to drop a less open network, in oss land around august
05:42:56 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
05:43:04 <solidus-river> superstar64, the zeromq guide has a lot of hyperbolie but also a good overview of the space
05:43:47 <solidus-river> superstar64, there are various iot type protocols out there that are working on more general solutions but less suited for real time / coordinated AR experiences
05:44:18 <solidus-river> i think a bunch of the larger tech firms today are working on similar projects, the thing I hope to beat them on is open sourcing it
05:44:28 Ro joins (b54123e9@181.65.35.233)
05:44:36 × Ro quits (b54123e9@181.65.35.233) (Client Quit)
05:45:04 <solidus-river> I've had the priviledge of being poached by apple / facebook for leadership roles around this area. I think the world where they own this stuff is balls though. We need like an ar www type thing built on top of existing infra
05:45:42 <solidus-river> its criminal how little we ask of our smart devices in terms of meshing imo. but i'm not qualified to weigh in there
05:45:58 <superstar64> i wish i had a job, i'm still in college
05:46:41 <solidus-river> there's endless work out there
05:47:13 <solidus-river> focus on what you want to manifest with tech vs what will pay the bills
05:47:24 <solidus-river> imo
05:47:46 ddellacosta joins (~ddellacos@86.106.143.203)
05:47:50 <superstar64> i think it depends on where you live, also i'm mostly into compiler dev, which i don't think there are many jobs for
05:48:56 <solidus-river> ah, yeah it might. I'm from america and i consider this culture pretty brutal
05:49:14 <solidus-river> i think in a less brutal culture i'd be more concerned about area of expertise
05:49:34 <superstar64> i'm in suburban florida
05:49:39 <solidus-river> but i'm pretter sure in these barrens knowing a bit of code is a ticket to decent money under the hand of those with power
05:50:20 <solidus-river> your golden then, this country doesn't care about intelligence and doesn't educate its citizens
05:50:31 <solidus-river> just knowing code you got income set up for you imo
05:50:41 wonko7 joins (~wonko7@62.115.229.50)
05:50:57 <solidus-river> its terribly stupid and i should shut up
05:51:11 <solidus-river> i'm only 30-ish and i'll regret saying all that later
05:51:41 <solidus-river> tldr, haskell is really cool. I super respect it and those that have helped make it real and hope to contribute some of that back
05:52:08 × ddellacosta quits (~ddellacos@86.106.143.203) (Ping timeout: 246 seconds)
05:52:19 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
05:52:38 <solidus-river> if your in suburban florda, live anywhere else, preferably outside of the states after the pandemic
05:52:41 <superstar64> https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs/Haskell.html
05:52:41 <superstar64> i wish more colleges though haskell so the industry would adopt it more
05:53:18 <solidus-river> in my experience the industry doesn't care, but also gives a lot of autonomy to coders
05:53:36 <solidus-river> so its kinda a chicken fight to get folks to consider haskell
05:53:51 <solidus-river> and its hard because its got a name for being "haughty" or what you will
05:55:11 sord937 joins (~sord937@gateway/tor-sasl/sord937)
05:55:33 <solidus-river> I envy you, you'll probably see neural nets really impact how we think about coding
05:55:49 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
05:56:11 <solidus-river> and maybe even something like haskell go mainstream
05:57:26 × gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
06:00:07 shad0w_ joins (a0ca2598@160.202.37.152)
06:00:33 <solidus-river> we should move to haskell otw, but do you think its universities who need to guide industry?
06:00:51 <solidus-river> moving to #haskell-offtopic
06:01:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:01:48 × aerona quits (~aerona@2600:6c54:4600:f300:1d6a:6687:1ec3:ebd2) (Read error: Connection reset by peer)
06:02:50 michalz joins (~user@185.246.204.103)
06:05:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
06:05:59 Shailangsa_ joins (~shailangs@host86-186-132-95.range86-186.btcentralplus.com)
06:11:24 Guest87676 joins (~laudiacay@67.176.215.84)
06:11:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:12:26 × fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 240 seconds)
06:13:11 × shad0w_ quits (a0ca2598@160.202.37.152) (Quit: Connection closed)
06:15:45 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 260 seconds)
06:15:54 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
06:16:09 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
06:17:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:18:29 × timCF quits (~i.tkachuk@m91-129-104-226.cust.tele2.ee) (Ping timeout: 252 seconds)
06:20:11 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
06:20:56 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:22:11 × bennofs__ quits (~quassel@x4dbf4f4d.dyn.telefonica.de) (Read error: Connection reset by peer)
06:22:27 bennofs_ joins (~quassel@x4dbf4f4d.dyn.telefonica.de)
06:25:51 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
06:26:53 cfricke joins (~cfricke@unaffiliated/cfricke)
06:27:10 ddellacosta joins (~ddellacos@86.106.143.242)
06:27:28 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
06:29:36 fryguybob joins (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
06:30:16 idhugo__ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
06:30:21 plutoniix joins (~q@ppp-124-120-200-197.revip2.asianet.co.th)
06:30:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:31:42 × nineonin_ quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Remote host closed the connection)
06:32:16 × ddellacosta quits (~ddellacos@86.106.143.242) (Ping timeout: 260 seconds)
06:32:23 nineonine joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
06:33:10 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
06:33:43 × Shailangsa_ quits (~shailangs@host86-186-132-95.range86-186.btcentralplus.com) (Ping timeout: 252 seconds)
06:34:43 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
06:35:41 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-plkwxelyikqpwdno) (Quit: Connection closed for inactivity)
06:35:56 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
06:37:04 × nineonine quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 276 seconds)
06:38:52 jgt_ joins (~jgt@88.225.221.135)
06:40:40 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:45:20 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
06:48:51 × aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 260 seconds)
06:51:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
06:51:40 swater joins (bouhier200@perso.iiens.net)
06:57:23 Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
06:59:34 shailangsa joins (~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
07:01:19 Varis joins (~Tadas@unaffiliated/varis)
07:03:07 ddellacosta joins (~ddellacos@86.106.143.151)
07:04:26 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
07:06:38 × Sgeo quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
07:07:23 × stree quits (~stree@68.36.8.116) (Ping timeout: 246 seconds)
07:07:31 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:69f7:7042:9b54:a0e6) (Ping timeout: 260 seconds)
07:07:49 × ddellacosta quits (~ddellacos@86.106.143.151) (Ping timeout: 252 seconds)
07:08:44 nineonine joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
07:09:37 × nineonine quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Remote host closed the connection)
07:10:44 nineonine joins (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
07:10:53 chele joins (~chele@5.53.222.202)
07:14:04 thc202 joins (~thc202@unaffiliated/thc202)
07:16:04 × nineonine quits (~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Ping timeout: 276 seconds)
07:19:45 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:97f0:170a:ab39:7a21)
07:20:51 stree joins (~stree@68.36.8.116)
07:21:52 × tempate quits (~tempate@unaffiliated/tempate) (Ping timeout: 240 seconds)
07:23:46 × solidus-river quits (~fuag1@174.127.249.180) (Ping timeout: 240 seconds)
07:26:34 SolidusRiver joins (~fuag1@174.127.249.180)
07:30:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:31:25 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
07:32:28 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
07:32:48 jb55 joins (~jb55@gateway/tor-sasl/jb55)
07:33:15 × waleee-cl quits (uid373333@gateway/web/irccloud.com/x-godfdjwdzqpwbqck) (Quit: Connection closed for inactivity)
07:35:33 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:35:59 takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be)
07:36:12 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
07:37:41 × takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Client Quit)
07:38:09 <desophos> what's the recommended way to export things for testing only? i don't want to expose internal functions but i want a separate test module for quickcheck
07:38:32 LKoen joins (~LKoen@22.249.88.92.rev.sfr.net)
07:39:26 jokester_ joins (~mono@unaffiliated/jokester)
07:39:26 × jokester quits (~mono@unaffiliated/jokester) (Read error: Connection reset by peer)
07:39:41 <desophos> currently i have some quickcheck properties running with doctest in the source file so i don't have to export anything, but it doesn't feel right because they're too complex to be documentation
07:40:49 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
07:41:15 <tomsmeding> desophos: I believe the standard approach is to make an .Internal module that exports all you want, and have the outside-visible module export only the public interfaces
07:41:37 <tomsmeding> i.e. that outside-visible module only contains some imports and some re-exports, no actual code
07:42:03 <Philonous> I would export everything via »Internal« modules. Avoids abstraction inversion and allows you to test everything
07:42:33 ServerStatsDisco joins (serverstat@gateway/shell/matrix.org/x-oxgvtvxuexgkqkan)
07:42:52 <desophos> hmm ok, that makes sense. should i put them both in the same file?
07:43:30 <Philonous> You can only have exactly one module per file
07:43:39 <tomsmeding> (with ghc)
07:43:51 <desophos> oh ok, thanks
07:45:24 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:46:19 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
07:46:49 frozenErebus joins (~frozenEre@37.231.244.249)
07:47:57 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
07:50:38 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:52:59 alexander joins (~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d)
07:53:28 alexander is now known as Guest35908
07:55:20 nineonine joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
07:55:36 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
07:56:39 <nut> is it possible to pattern match on data type? myfunc:: (MyClass a) => [a] -> ... I want to do different things on different a
07:57:15 <opqdonut> you need type classes for that
07:57:51 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 252 seconds)
07:58:11 <opqdonut> so something like `class MyFunc a where myfunc :: MyClass a => [a] -> Result; instance MyFunc Int where myfunc :: [Int] -> Result; instance MyFunc String where myfunc :: [String] -> Result`
07:58:26 hyiltiz joins (~quassel@31.220.5.250)
07:58:28 × hyiltiz quits (~quassel@31.220.5.250) (Changing host)
07:58:29 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
07:58:50 <nut> i see
07:59:32 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
07:59:34 <nut> My use case is to wrap the gnu gsl lib in Haskell and need to create gsl_vector to hold different haskell types.
07:59:49 <nut> even with the type class method, there'll be lots of repetitive code
08:00:04 enoq joins (~textual@194-208-146-143.lampert.tv)
08:01:44 × nineonine quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 250 seconds)
08:01:49 m1dnight_ is now known as ssdflkjshflkjhsf
08:01:52 ssdflkjshflkjhsf is now known as m1dnight_
08:03:04 is_null joins (~jpic@pdpc/supporter/professional/is-null)
08:03:30 m1dnight_ is now known as ssdflkjshflkjhsf
08:03:30 ssdflkjshflkjhsf is now known as m1dnight_
08:03:33 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
08:05:00 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Quit: leaving)
08:05:29 takuan joins (~takuan@178-116-218-225.access.telenet.be)
08:05:33 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
08:06:08 m1dnight_ is now known as m1dnight__
08:08:17 hendursa1 joins (~weechat@gateway/tor-sasl/hendursaga)
08:09:07 <hololeap> nut: typeclasses essentially match on a data type
08:09:52 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
08:11:09 × hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
08:11:29 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
08:12:34 × gitgood quits (~gitgood@80-44-9-246.dynamic.dsl.as9105.com) (Quit: Probably away to do something really awesome)
08:12:35 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:13:35 kritzefitz joins (~kritzefit@p200300ecdf3c5b009ca7d9f9eb7bbe17.dip0.t-ipconnect.de)
08:14:15 heatsink_ joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:14:23 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
08:14:25 <hololeap> also note that what opqdonut suggested requires FlexibleInstances
08:15:19 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
08:15:33 jgt joins (~jgt@46.154.91.194)
08:15:50 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
08:16:58 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
08:17:07 × jgt_ quits (~jgt@88.225.221.135) (Ping timeout: 252 seconds)
08:17:16 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
08:18:27 × heatsink_ quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
08:20:21 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
08:21:19 m1dnight__ is now known as m1dnight_
08:21:27 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
08:22:23 Qwerky joins (~qwerky@37.171.11.15)
08:23:04 jakalx parts (~jakalx@base.jakalx.net) ()
08:24:39 frozenErebus joins (~frozenEre@37.231.244.249)
08:25:16 × bennofs_ quits (~quassel@x4dbf4f4d.dyn.telefonica.de) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
08:25:26 acidjnk_new2 joins (~acidjnk@p200300d0c72b9548b4aacef2f046ba0b.dip0.t-ipconnect.de)
08:25:33 m1dnight_ is now known as m1dnight__
08:26:33 lowdude[m] joins (lowdudemat@gateway/shell/matrix.org/x-tuvkranqrmxuckyh)
08:27:04 vchlup_ joins (~vchlup@nat.brnet.cz)
08:27:06 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
08:29:27 × xff0x quits (~xff0x@2001:1a81:524d:ea00:c15c:a6f:641:7fe3) (Ping timeout: 250 seconds)
08:29:28 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
08:30:12 xff0x joins (~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2)
08:31:16 nineonine joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
08:34:59 jakalx joins (~jakalx@base.jakalx.net)
08:35:06 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
08:35:31 × nineonine quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 250 seconds)
08:35:35 enobayram joins (4eaf3ebd@78.175.62.189)
08:40:05 <olligobber> so it turns out IO doesn't satisfy the laws for Alternative, in that I have f and x such that `f (x <|> empty) == pure True' and `f (empty <|> x) == pure False'
08:45:43 malumore joins (~malumore@151.62.116.76)
08:47:10 <olligobber> IO was a mistake
08:48:24 <hololeap> % (pure True <|> empty) :: IO Bool
08:48:24 <yahb> hololeap: True
08:48:30 ania123 joins (5e89ad7c@94.137.173.124)
08:48:36 <hololeap> % (empty <|> pure True) :: IO Bool
08:48:36 <yahb> hololeap: True
08:48:45 jpe90 joins (~user@pool-108-31-85-19.washdc.fios.verizon.net)
08:48:53 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
08:49:15 jgt_ joins (~jgt@46.154.77.142)
08:49:40 × jgt quits (~jgt@46.154.91.194) (Remote host closed the connection)
08:49:45 <enobayram> What is the f and the x that you have?
08:50:00 <olligobber> x is `fail "Error"'
08:50:26 <olligobber> f is `((==) <$> try empty) <*>)'
08:50:41 <olligobber> % (==) <$> (try empty :: IO (Either IOError String)) <*> try (fail "Error" <|> empty)
08:50:41 <yahb> olligobber: True
08:50:53 <olligobber> % (==) <$> (try empty :: IO (Either IOError String)) <*> try (empty <|> fail "Error")
08:50:53 <yahb> olligobber: False
08:51:01 <olligobber> oh, and the try as well
08:51:17 <olligobber> f is `((==) <$> try empty) <*>) . try'
08:52:03 <enobayram> I see, seems to me like the Alternative instance is at fault here
08:52:54 <olligobber> yeah, it always goes with the second option if the first is an error
08:53:55 <olligobber> well, not "is an error" but "produces an error"
08:53:56 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
08:54:07 <hololeap> % (fail "Error" <|> empty) :: IO a
08:54:07 <yahb> hololeap: *** Exception: user error (mzero)
08:54:14 <enobayram> If empty is supposed to be the identity element of <|>, it should be throwing an exception that <|> recognizes
08:54:20 <olligobber> yeah
08:54:22 <hololeap> % (empty <|> fail "Error") :: IO a
08:54:22 <yahb> hololeap: *** Exception: user error (Error)
08:54:52 <olligobber> % (==) <$> try (fail "mzero") <*> try empty
08:54:52 <yahb> olligobber: ; <interactive>:152:1: error:; * Ambiguous type variable `e0' arising from a use of `=='; prevents the constraint `(Eq e0)' from being solved.; Probable fix: use a type annotation to specify what `e0' should be.; These potential instances exist:; instance Eq a => Eq (ZipList a) -- Defined in `Control.Applicative'; instance Eq (Chan a) -- Defined in `Control.Concurren
08:55:06 <olligobber> % (==) <$> try (fail "mzero") <*> try (empty :: IO ())
08:55:06 <yahb> olligobber: ; <interactive>:153:1: error:; * Ambiguous type variable `e0' arising from a use of `=='; prevents the constraint `(Eq e0)' from being solved.; Probable fix: use a type annotation to specify what `e0' should be.; These potential instances exist:; instance Eq a => Eq (ZipList a) -- Defined in `Control.Applicative'; instance Eq (Chan a) -- Defined in `Control.Concurren
08:55:16 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
08:55:16 <olligobber> % (==) <$> try (fail "mzero") <*> (try empty :: IO IOError ())
08:55:16 <yahb> olligobber: ; <interactive>:154:47: error:; * Expected kind `* -> *', but `IO IOError' has kind `*'; * In an expression type signature: IO IOError (); In the second argument of `(<*>)', namely `(try empty :: IO IOError ())'; In the expression: (==) <$> try (fail "mzero") <*> (try empty :: IO IOError ())
08:55:25 <olligobber> % (==) <$> try (fail "mzero") <*> (try empty :: IO (Either IOError ()))
08:55:26 <yahb> olligobber: True
08:55:44 <olligobber> I see
08:56:44 <hololeap> i would think that the issue lies in the difference between `fail "Error" <|> empty` and `empty <|> fail "Error"`
08:57:01 <hololeap> maybe someone can explain why those are different
08:57:34 <enobayram> Because <|> tries the left operand and if it throws then it tries the right operand and if that throws as well, it throws the last exception
08:58:06 <hololeap> makes sense
08:58:29 <hololeap> i assumed it would throw at the first error
08:58:36 <merijn> hololeap: heh
08:58:47 <merijn> hololeap: That'd rather defeat the point of Alternative?
08:59:00 <hololeap> good point
08:59:51 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
08:59:54 <olligobber> yeah, throwing the first error is what `>>` does
09:00:03 <enobayram> I think if empty is supposed to be the identity element of <|>, it should be throwing an exception that <|> recognizes and then throws the exception from the other operand
09:00:10 bennofs_ joins (~quassel@x4dbf4f4d.dyn.telefonica.de)
09:00:31 <enobayram> Though, even then, I think the Alternative IO instance is distasteful
09:00:47 fendor_ is now known as fendor
09:01:04 <enobayram> I don't think one should swallow exceptions nilly willy like that
09:01:12 <olligobber> probably
09:01:42 <olligobber> though someone once asked me to write a program that wouldn't crash, so I just added `<|> print 0` to the end of main
09:02:19 × pjb quits (~pjb@2a01cb04063ec50065c90891fe55ba7a.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
09:02:47 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:97f0:170a:ab39:7a21) (Ping timeout: 260 seconds)
09:03:00 <enobayram> What if my program is unsafeCoerce (1 :: Int) :: IO String
09:03:34 <olligobber> % unsafeCoerce (1 :: Int) <|> pure "End" :: IO String
09:03:34 <yahb> olligobber: "[Segmentation fault]
09:03:52 <olligobber> wait what
09:04:15 <enobayram> That's what you get for messing with memory :)
09:04:15 <Taneb> Once you've segfaulted the runtime can't recover
09:04:25 <Taneb> It's not an exception, it's a things are horribly broken
09:04:35 zariuq joins (~zar@89-24-35-159.nat.epc.tmcz.cz)
09:04:39 <olligobber> % unsafeCoerce (empty :: IO ()) :: Int
09:04:40 <yahb> olligobber: 0
09:04:49 <hololeap> so (empty == empty) in IO, but (empty /= fail "Error")
09:05:05 <olligobber> % unsafeCoerce (print 1 :: IO ()) :: Int
09:05:06 <yahb> olligobber: 2199023255808
09:05:16 <hololeap> this doesn't seem that surprising although i suppose it would break the Alternative laws
09:05:19 × ania123 quits (5e89ad7c@94.137.173.124) (Quit: Connection closed)
09:05:32 <olligobber> % unsafeCoerce (2199023255808 :: Int) :: IO ()
09:05:33 <yahb> olligobber:
09:06:04 <olligobber> I'm surprised that didn't seg fault
09:06:15 <olligobber> I assume 2199023255808 is a pointer
09:07:29 <enobayram> I don't think one can talk about any sort of reasoning in the presence of memory corruption
09:07:48 <olligobber> no
09:08:03 × jgt_ quits (~jgt@46.154.77.142) (Remote host closed the connection)
09:08:15 <enobayram> for all you know unsafeCoerce (2199023255808 :: Int) :: IO () might have caused an earthquake somewhere
09:08:33 <olligobber> I assume the developers of yahb safeguarded against that
09:08:50 <olligobber> % readFile "/etc/passwd"
09:08:50 <yahb> olligobber: *** Exception: /etc/passwd: openFile: does not exist (No such file or directory)
09:08:52 × zariuq quits (~zar@89-24-35-159.nat.epc.tmcz.cz) (Ping timeout: 240 seconds)
09:09:09 <olligobber> looks like it
09:09:25 <hololeap> it's hard to make any assumptions in programming if we take into account hardware issues
09:09:41 <enobayram> I'm sure that's the intension, but there's no guarantee that your corrupt program didn't just discover a zero day vulnerability in their sandbox :P
09:09:51 × nehsou^ quits (nehsou@ip98-184-89-2.mc.at.cox.net) ()
09:09:55 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
09:10:11 <olligobber> what you're saying is I should continue to send random numbers to yahb until I find a vulnerability?
09:10:21 <hololeap> will your function terminate? what if the power goes out?
09:10:41 <hololeap> olligobber: yes
09:10:55 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:cd02:6757:782f:7e4d)
09:11:03 <enobayram> That's a valid interpretation! Though I was rather going for the perils of unsafeCoerce
09:12:38 <olligobber> yeah, in retrospect I'm glad I didn't test that on my own machine
09:12:43 is_null_ joins (~jpic@pdpc/supporter/professional/is-null)
09:12:54 takuan joins (~takuan@178-116-218-225.access.telenet.be)
09:13:01 <maerwald> yolo
09:13:58 jakalx joins (~jakalx@base.jakalx.net)
09:14:06 <olligobber> I did `rm -rf ~' once, ended up just reinstalling the os from scratch
09:14:21 <enobayram> same here!
09:14:52 <enobayram> Some stupid build script interpreted my ~ from a previous command as the name of a file name
09:15:00 <enobayram> so it created a file called ~
09:15:14 <maerwald> that's why you should always quite your filepaths
09:15:29 <maerwald> enobayram: ~ is a shellism
09:15:30 <enobayram> And my immediate reaction was rm -rf ~
09:15:39 <maerwald> it's a valid file name indeed
09:15:44 ania123 joins (5e89ad7c@94.137.173.124)
09:15:54 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
09:16:00 <maerwald> and non-shell programs that interpret ~ as HOME have a bug
09:16:00 <enobayram> Yep, but to this day I don't know how that build script received my ~ as a literal ~
09:16:08 <enobayram> I thought the shell was supposed to replace it
09:16:15 <maerwald> did you quote it?
09:16:19 <enobayram> nope
09:16:54 <olligobber> oh yeah, using "~" as a file name actually creates a file with that name
09:17:10 <olligobber> uh, now to delete that file without deleting my home directory
09:17:24 <olligobber> rm "~"
09:17:33 <maerwald> just don't use -f :)
09:17:39 is_null joins (~jpic@pdpc/supporter/professional/is-null)
09:17:46 × SolidusRiver quits (~fuag1@174.127.249.180) (Ping timeout: 252 seconds)
09:17:50 hololeap runs `mkdir -p ~/~/~`
09:17:52 <enobayram> Are you brave enough to run that command now?
09:18:09 <olligobber> I ran it and survived
09:18:25 <enobayram> if I were implementing a shell, I'd treat having a ~ in your command while there's a file named ~ in the current directory as an error
09:18:38 × tadeo quits (~tadeo@217.146.82.202) (Remote host closed the connection)
09:18:52 <maerwald> that's probably going to break lots of scripts
09:19:11 <enobayram> while saving many lives!
09:19:16 <olligobber> yeah, having scripts that only break if you happen to have a file with a specific name would be great
09:19:23 <maerwald> lol
09:19:26 <hololeap> that's why "-r" is a thing
09:19:36 × is_null_ quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
09:19:40 dsrt^ joins (dsrt@ip98-184-89-2.mc.at.cox.net)
09:19:49 <maerwald> rm --interactive
09:20:07 <hololeap> if ~/~ is a dir, that could be an issue
09:21:16 <maerwald> I don't remember if -r behave correctly if you have recursive bind-mounts. At least most file managers don't
09:22:04 <hololeap> i'm saying don't use "-r" and there will be no chance of recursively deleting your home
09:22:34 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
09:22:38 <olligobber> is there a way of deleting an empty directory other than -r?
09:22:44 <hololeap> rmdir
09:22:51 <olligobber> or rm -d
09:22:57 <enobayram> how do you delete a non-empty directory then?
09:22:58 <olligobber> I should probably use that instead
09:23:05 <olligobber> delete its contents first
09:23:18 <hololeap> rm "./~/*"; rmdir "./~/"
09:23:20 <enobayram> what if there are non-empty directories inside?
09:23:21 is_null joins (~jpic@pdpc/supporter/professional/is-null)
09:23:34 <maerwald> enobayram: find . -type f -delete
09:23:38 <olligobber> remove them first?
09:23:49 <maerwald> don't run that command, lol
09:24:03 <enobayram> and how does that save me if the directory happens to be my home directory :)
09:24:06 <hololeap> then you write a complicated shell script, or maybe figure out why you have a complex file tree in "$HOME/~" in the first place
09:24:20 <maerwald> enobayram: you'll still have empty directories!
09:24:45 <enobayram> Better than nothing I guess!
09:25:04 <maerwald> yeah, like a cleaned up room
09:25:13 <maerwald> the doors are still there
09:25:49 <enobayram> I think the solution is to write all software to use nothing but directory names for local storage
09:25:50 <hololeap> more like a bunch of picture frames with nothing in them
09:26:45 <maerwald> that could be annoying, since filename length is capped at 255
09:27:03 <enobayram> you just nest those directories
09:27:12 <maerwald> yes, annoying :D
09:27:40 × Qwerky quits (~qwerky@37.171.11.15) (Remote host closed the connection)
09:27:41 __monty__ joins (~toonn@unaffiliated/toonn)
09:27:50 <enobayram> blablabla/blablabla is the same as blablablablablabla, unless of course "blablabla/blablabla" is a valid input to your program
09:27:53 <maerwald> on linux, the upside is: filenames can be binary data
09:28:13 <maerwald> so you can just dump your binary in to file names
09:28:28 <maerwald> your shell with thank you, though
09:28:32 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
09:29:04 <maerwald> this might be the dawn of a new OS
09:29:19 <enobayram> in that world, your shell would be interpreting all those directory names properly, so it would present them to you as a file system with directories and files in them
09:29:35 <hololeap> just name everything in haskell record style: /homeHololeapDownloadsBunnies.gif
09:30:22 × ania123 quits (5e89ad7c@94.137.173.124) (Quit: Connection closed)
09:30:32 <maerwald> it should be snake case
09:30:41 is_null_ joins (~jpic@pdpc/supporter/professional/is-null)
09:31:13 <hololeap> :p
09:31:31 ClaudiusMaximus joins (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
09:31:31 × ClaudiusMaximus quits (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host)
09:31:31 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
09:31:32 <enobayram> I'm glad we've arrived at a satisfactory solution
09:32:06 mikoto-chan joins (~mikoto-ch@gateway/tor-sasl/mikoto-chan)
09:33:19 ddellacosta joins (~ddellacos@86.106.143.21)
09:33:33 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
09:35:10 <olligobber> how about we do snake case, but instead of _ we use some other character
09:35:30 <olligobber> something that wouldn't normally get used in file names
09:35:37 <maerwald> (
09:35:40 <olligobber> maybe /
09:35:44 <maerwald> lol
09:36:12 <yushyin> i do like kebab-case
09:36:37 <olligobber> hmm, if _ is snake and - is kebab, what is /?
09:36:41 <olligobber> or . too
09:36:50 <olligobber> pebble.case ?
09:36:58 <olligobber> book/shelf/case?
09:37:15 <maerwald> why limit to ascii?
09:37:40 <olligobber> ogham case
09:37:59 Qwerky joins (~qwerky@37.171.11.15)
09:38:03 × ddellacosta quits (~ddellacos@86.106.143.21) (Ping timeout: 268 seconds)
09:38:42 <hololeap> bookshelf-after-an-earthquake-case
09:40:27 Synthetica joins (uid199651@gateway/web/irccloud.com/x-lthemimjkmqujsuh)
09:40:46 <maerwald> double__snake__case
09:40:50 <enobayram> I'd go for bookshelf_after_an_earthquake_case
09:41:07 <enobayram> unless we're talking about the top-facing side of the bookshelf of course
09:41:25 <olligobber> bookshelf…after…a…fire…case
09:42:22 × is_null_ quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
09:42:22 stree joins (~stree@68.36.8.116)
09:42:30 × Qwerky quits (~qwerky@37.171.11.15) (Ping timeout: 265 seconds)
09:42:54 <enobayram> bookshelf!after!installing!roller!wheels!case
09:43:23 <opqdonut> this::is::obviously::the::superior::case
09:43:27 <opqdonut> it has history!
09:43:39 <olligobber> oh god
09:44:25 is_null joins (~jpic@pdpc/supporter/professional/is-null)
09:44:39 <maerwald> time to write up a language proposal
09:44:44 <maerwald> I think we're settled
09:45:02 <olligobber> (bubble)(case)
09:45:32 × frozenErebus quits (~frozenEre@37.231.244.249) (Remote host closed the connection)
09:45:36 × mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
09:45:42 Guest87676 joins (~laudiacay@67.176.215.84)
09:47:16 <hololeap> % toBookshelfAfterAFire = intersperse '/' (map (const Nothing))
09:47:17 <yahb> hololeap: ; <interactive>:14:42: error:; * Couldn't match expected type: [Char]; with actual type: [a0] -> [Maybe a1]; * Probable cause: `map' is applied to too few arguments; In the second argument of `intersperse', namely `(map (const Nothing))'; In the expression: intersperse '/' (map (const Nothing)); In an equation for `toBookshelfAfterAFire': toBookshelfAfterAFire
09:47:42 <hololeap> % toBookshelfAfterAFire = intercalate "/" . (map (show . const Nothing))
09:47:42 <yahb> hololeap:
09:48:27 <opqdonut> oh right, let me amend my proposal to this::::is::::obviously::::the::::superior::::case
09:48:35 <opqdonut> since : and :: are reserved, and ::: is used by many libraries
09:48:44 <olligobber> % toBookshelfAfterAFire ["this","is","a","test"]
09:48:45 <yahb> olligobber: "Nothing/Nothing/Nothing/Nothing"
09:48:51 <olligobber> I see
09:49:04 <opqdonut> we could also go with ::::: to leave some expansion room for libraries
09:50:03 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 252 seconds)
09:50:25 mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh)
09:52:05 <hololeap> i guess that should be earthquake+fire
09:52:46 × son0p quits (~ff@181.136.122.143) (Ping timeout: 240 seconds)
10:00:08 lowdude[m] < https://matrix.org/_matrix/media/r0/download/matrix.org/wAfYwylrBClGeOzlynmOGEkz/message.txt >
10:02:05 <tomsmeding> more∷∷superior∷∷case
10:03:09 <tomsmeding> lowdude[m]: where does Rand come from?
10:04:21 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:04:25 <lowdude[m]> <tomsmeding "lowdude: where does Rand come fr"> I just took that over from Control.Monad.Random
10:04:40 Rudd0 joins (~Rudd0@185.189.115.108)
10:04:45 <lowdude[m]> it's apparently a basic random monad
10:05:04 <tomsmeding> I see
10:05:26 <enikar> In this case I wrap the random generator in a State monad.
10:05:37 <tomsmeding> lowdude[m]: fairToss >>= \coin -> case coin of { Head -> ... ; Tail -> ... }
10:06:03 <tomsmeding> or: do coin <- fairToss ; case coin of { ... }
10:06:12 <tomsmeding> Rand is a monad :)
10:06:57 <enikar> is it the new interface to random values ?
10:07:07 × stree quits (~stree@68.36.8.116) (Quit: Caught exception)
10:07:31 <tomsmeding> "the new"?
10:07:33 stree joins (~stree@68.36.8.116)
10:07:43 ddellacosta joins (~ddellacos@86.106.143.60)
10:07:47 <tomsmeding> the 'random' library is still the standard, as far as I know
10:07:57 <tomsmeding> though 'MonadRandom' (which this comes from) I guess also works
10:08:07 × Miroboru quits (~myrvoll@2001:700:301:11::24f) (Ping timeout: 260 seconds)
10:09:28 × malumore quits (~malumore@151.62.116.76) (Remote host closed the connection)
10:09:48 malumore joins (~malumore@151.62.116.76)
10:09:52 Miroboru joins (~myrvoll@78.91.103.181)
10:10:18 <enikar> I use ghc 8.8.4 yet. There is no Control.Monad.Random in the random library. I steel use System.Random.
10:10:36 <lowdude[m]> <tomsmeding "lowdude: fairToss >>= \coin -> c"> Okay thanks, I'll have a go with that.
10:10:45 pjb joins (~pjb@2a01cb04063ec5003930e59e19b6ded2.ipv6.abo.wanadoo.fr)
10:12:11 × ddellacosta quits (~ddellacos@86.106.143.60) (Ping timeout: 240 seconds)
10:15:16 Qwerky joins (~qwerky@37.171.11.15)
10:15:21 is_null_ joins (~jpic@pdpc/supporter/professional/is-null)
10:15:49 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:16:04 dvdp73 joins (59736826@38.104.115.89.rev.vodafone.pt)
10:18:06 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
10:19:41 × Qwerky quits (~qwerky@37.171.11.15) (Ping timeout: 240 seconds)
10:20:05 <enikar> I found it, it's in monadrandom package.
10:20:07 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
10:23:01 × malumore quits (~malumore@151.62.116.76) (Remote host closed the connection)
10:23:53 malumore joins (~malumore@151.62.116.76)
10:29:44 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
10:31:40 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
10:34:09 <tomsmeding> enikar: System.Random is from the 'random' library, which happens to be a library included with a base ghc installation; but it's not in 'base'
10:36:11 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
10:39:55 Igloo joins (~igloo@81.2.99.210)
10:40:27 × Igloo quits (~igloo@81.2.99.210) (Read error: No route to host)
10:40:55 Igloo joins (~igloo@matrix.chaos.earth.li)
10:41:45 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
10:42:54 × mapperr quits (~mapperr@vmi389916.contaboserver.net) (Remote host closed the connection)
10:43:05 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
10:44:03 × superstar64 quits (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed)
10:44:10 mapperr joins (~mapperr@vmi389916.contaboserver.net)
10:45:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:46:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:47:08 ddellacosta joins (~ddellacos@86.106.143.242)
10:50:03 <enikar> tomsmeding: yes. I use it sometimes.
10:51:39 × ddellacosta quits (~ddellacos@86.106.143.242) (Ping timeout: 252 seconds)
10:52:35 × TheWizardTower[m quits (thewizardt@gateway/shell/matrix.org/x-wdmliecptdlzuqsx) (Ping timeout: 248 seconds)
10:52:36 × lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-nlffnpghzfabpuxw) (Ping timeout: 248 seconds)
10:52:36 × jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-gdynpirehvttuqgd) (Ping timeout: 248 seconds)
10:52:44 TheWizardTower[m joins (thewizardt@gateway/shell/matrix.org/x-mhynxqoxcylcdnln)
10:52:56 lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-vcssvhrxheznsnah)
10:53:09 jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-hqewufefunqmyffr)
10:53:19 × xff0x quits (~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2) (Ping timeout: 250 seconds)
10:53:39 × Miroboru quits (~myrvoll@78.91.103.181) (Quit: WeeChat 3.1)
10:55:24 Qwerky joins (~qwerky@37.171.11.15)
10:55:24 xff0x joins (~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2)
10:57:35 × polux2001 quits (~polux@51.15.169.172) (Quit: Ping timeout (120 seconds))
10:57:44 polux2001 joins (~polux@51.15.169.172)
11:00:10 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
11:02:23 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
11:02:54 <desophos> i use Test.QuickCheck.Gen and i'm pretty happy with it so far
11:03:57 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:04:04 desophos_ joins (~desophos@2601:249:1680:a570:63:12af:fbca:ad9f)
11:04:10 <desophos> i haven't tried working with other RNG libraries though
11:05:42 <desophos> i don't really know how much difference there is
11:05:51 × desophos quits (~desophos@2601:249:1680:a570:ad52:b454:fe1c:2cc3) (Read error: Connection reset by peer)
11:06:01 × Guest21568 quits (~textual@2603-7000-3040-0000-057f-238e-9cc1-6931.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:07:04 jgt_ joins (~jgt@88.225.221.135)
11:11:12 × jgt_ quits (~jgt@88.225.221.135) (Ping timeout: 240 seconds)
11:15:58 <lowdude[m]> <lowdude[m] "Okay thanks, I'll have a go with"> i meant to reply again earlier, but i was away for a little while. so that worked, thank you!
11:16:37 dmytrish joins (~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec)
11:18:29 ddellacosta joins (~ddellacos@86.106.143.151)
11:18:54 × plutoniix quits (~q@ppp-124-120-200-197.revip2.asianet.co.th) (Quit: Leaving)
11:21:29 Qwerky_ joins (~qwerky@37.170.132.154)
11:21:36 × Irenes quits (~irenes@NixOS/user/irenes) (Ping timeout: 245 seconds)
11:22:25 × desophos_ quits (~desophos@2601:249:1680:a570:63:12af:fbca:ad9f) (Ping timeout: 276 seconds)
11:23:06 jgt_ joins (~jgt@46.154.73.47)
11:23:25 philderbeast joins (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
11:23:30 × ddellacosta quits (~ddellacos@86.106.143.151) (Ping timeout: 268 seconds)
11:24:17 × Qwerky quits (~qwerky@37.171.11.15) (Ping timeout: 252 seconds)
11:26:05 __minoru__shirae joins (~shiraeesh@46.34.207.120)
11:26:29 desophos_ joins (~desophos@2601:249:1680:a570:63:12af:fbca:ad9f)
11:28:16 desophos_ is now known as desophos
11:29:19 × dmytrish quits (~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec) (Ping timeout: 260 seconds)
11:29:24 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8)
11:29:40 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
11:32:51 zva joins (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
11:33:41 Irenes joins (~irenes@NixOS/user/irenes)
11:35:34 × desophos quits (~desophos@2601:249:1680:a570:63:12af:fbca:ad9f) (Quit: Mutter: www.mutterirc.com)
11:37:03 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 265 seconds)
11:37:43 <tomsmeding> lowdude[m]: nice :)
11:44:03 <DigitalKiwi> if laziness is so good then how come people mention it so often without being asked
11:44:08 kami_ joins (~kami@228.243.254.87.static.monaco.mc)
11:44:38 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
11:47:31 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
11:47:31 cfricke joins (~cfricke@unaffiliated/cfricke)
11:47:43 <DigitalKiwi> monochrom: ^
11:48:22 is_null joins (~jpic@pdpc/supporter/professional/is-null)
11:51:19 son0p joins (~ff@181.136.122.143)
11:51:33 × is_null_ quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 265 seconds)
11:51:34 × egorbelibov quits (~65676f72@2001:8a0:5708:2a00:2014:4cc0:2f98:ce70) (Remote host closed the connection)
11:53:06 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
11:53:23 is_null joins (~jpic@pdpc/supporter/professional/is-null)
11:55:35 Guest31772 joins (~mattl@185.204.1.185)
11:59:30 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
12:00:29 Alleria joins (~textual@zrcout.mskcc.org)
12:00:51 Alleria is now known as Guest23245
12:03:52 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
12:04:02 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:09:29 <nshepperd> do they don't have to remember to do that later
12:10:00 <nitrix> Expectations tends to lead to surprises.
12:10:23 × enobayram quits (4eaf3ebd@78.175.62.189) (Quit: Connection closed)
12:10:43 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:14:16 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
12:15:34 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
12:15:38 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
12:17:25 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:17:46 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
12:21:22 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
12:21:53 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
12:22:23 × bennofs_ quits (~quassel@x4dbf4f4d.dyn.telefonica.de) (Read error: Connection reset by peer)
12:22:38 bennofs_ joins (~quassel@x4dbf4f4d.dyn.telefonica.de)
12:25:16 × Qwerky_ quits (~qwerky@37.170.132.154) (Remote host closed the connection)
12:27:02 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:27:19 timCF joins (~i.tkachuk@200-149-20-81.sta.estpak.ee)
12:28:36 stree joins (~stree@68.36.8.116)
12:28:49 teme joins (56733f9f@dsl-hkibng42-56733f-159.dhcp.inet.fi)
12:30:00 Qwerky joins (~qwerky@37.170.132.154)
12:30:12 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
12:30:30 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
12:30:33 <timCF> Hello! I'm using `KatipContextT` transformer for stuctural logging of my app, and it works quite well. But unfortunately part of my app which is using Esqueleto/Persistent libraries has its own opinion about logging and uses `LoggingT` under the hood. Is there any smart way to map `LoggingT` into `KatipContextT` to make all my logs looking the same way?
12:31:14 ddellacosta joins (~ddellacos@86.106.143.177)
12:32:17 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
12:32:44 nineonine joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
12:32:57 <merijn> timCF: Yes
12:33:09 <merijn> LoggingT is just a function you can replac
12:33:22 ukari joins (~ukari@unaffiliated/ukari)
12:33:41 <merijn> timCF: https://hackage.haskell.org/package/monad-logger-0.3.36/docs/Control-Monad-Logger.html#t:LoggingT
12:35:42 × ddellacosta quits (~ddellacos@86.106.143.177) (Ping timeout: 260 seconds)
12:35:42 × xelxebar_ quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
12:35:59 × teme quits (56733f9f@dsl-hkibng42-56733f-159.dhcp.inet.fi) (Quit: Connection closed)
12:36:11 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
12:37:02 <timCF> merijn: It's now really clear how, because this function don't have any side-effect rich arguments which can define how exactly it should do logging
12:37:12 × nemesit|znc_ quits (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in)
12:37:19 <timCF> In my case I'm using this function from Persistent https://hackage.haskell.org/package/persistent-postgresql-2.12.1.1/docs/Database-Persist-Postgresql.html#v:createPostgresqlPool
12:37:19 × nineonine quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 250 seconds)
12:37:42 nemesit|znc joins (~nemesit@myriadvisuals.com)
12:38:17 <timCF> It has class restriction `MonadLoggerIO m` and value can be passed to `runStdoutLoggingT`
12:39:16 × Qwerky quits (~qwerky@37.170.132.154) (Remote host closed the connection)
12:39:18 frozenErebus joins (~frozenEre@37.231.244.249)
12:39:37 Qwerky joins (~qwerky@37.170.132.154)
12:39:37 <timCF> And I don't undestand how to map output of `createPostresqlPool` into something what `runKatipContextT` will understand
12:40:07 <timCF> To use it instead of `runStdoutLoggingT`
12:45:11 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
12:45:15 × idhugo__ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Remote host closed the connection)
12:45:42 idhugo__ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
12:46:47 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
12:47:12 <merijn> I recall overriding it for my own logging
12:47:22 <merijn> but, tbh, I don't remember how
12:47:44 <merijn> and I can't quickly find the relevant code
12:48:41 is_null joins (~jpic@pdpc/supporter/professional/is-null)
12:50:07 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
12:50:16 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
12:50:21 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
12:50:31 × zva quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
12:52:54 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
12:54:50 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
12:55:49 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
12:55:57 × acidjnk_new2 quits (~acidjnk@p200300d0c72b9548b4aacef2f046ba0b.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
12:56:11 Tario joins (~Tario@201.192.165.173)
12:56:26 jgt joins (~jgt@88.225.221.135)
12:58:03 × jgt_ quits (~jgt@46.154.73.47) (Remote host closed the connection)
12:59:11 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
12:59:31 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
12:59:37 × idhugo__ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds)
12:59:51 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
13:00:39 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
13:02:01 carlomagno joins (~cararell@148.87.23.6)
13:03:02 slack1256 joins (~slack1256@181.203.33.200)
13:03:50 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
13:05:11 urodna joins (~urodna@unaffiliated/urodna)
13:05:40 ddellacosta joins (~ddellacos@86.106.143.47)
13:05:53 × __minoru__shirae quits (~shiraeesh@46.34.207.120) (Ping timeout: 252 seconds)
13:06:10 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
13:06:22 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
13:06:25 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
13:08:22 zva joins (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
13:08:56 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
13:09:41 is_null_ joins (~jpic@pdpc/supporter/professional/is-null)
13:10:06 × ddellacosta quits (~ddellacos@86.106.143.47) (Ping timeout: 240 seconds)
13:11:47 <timCF> merijn: thanks anyway!
13:13:41 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
13:14:46 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
13:15:26 lleb joins (5c91ba7e@amarseille-158-1-23-126.w92-145.abo.wanadoo.fr)
13:17:34 <lleb> hello o/ i have a beginner question : i'm trying to send a post http request, with a json body. To add the body request, im using Http.Network.Simple setRequestBodyJSON : https://hackage.haskell.org/package/http-conduit-2.3.8/docs/Network-HTTP-Simple.html#v:setRequestBodyJSON
13:17:35 <lleb> But it seems that the request i send it invalid, the server answer me with a 400. setRequestBodyJSON document talk about a flag aeson that should be enabled. I looked at the aeson hackage page, and it seems that aeson expose multiple flags. I tried all of them but it didnt fix my issue. I wonder if im doing it correctly
13:18:17 <lleb> i added this to my stack.yaml file :
13:18:18 <lleb> 2 flags:
13:18:18 <lleb> + 1 aeson:
13:18:19 <lleb> + 48 <flagname>: true
13:18:38 <lleb> flags:
13:18:38 <lleb>   aeson:
13:18:39 <lleb>    <flagname>: true
13:19:12 <lleb> i dont even know if my issue come from this, what is the expected behavior if i use setRequestBodyJSON without the proper flag enabled ?
13:19:35 <lleb> i hope im asking this in the right place
13:19:41 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
13:19:49 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
13:20:20 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
13:22:21 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
13:24:45 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
13:24:45 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
13:24:59 × kritzefitz quits (~kritzefit@p200300ecdf3c5b009ca7d9f9eb7bbe17.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
13:25:17 kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49)
13:25:25 × whosit quits (~whosit@109-252-94-126.nat.spd-mgts.ru) (Quit: Lost terminal)
13:26:51 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:27:01 sord937 joins (~sord937@gateway/tor-sasl/sord937)
13:27:49 chimera joins (~chimera@168-182-134-95.pool.ukrtel.net)
13:30:01 __minoru__shirae joins (~shiraeesh@46.34.207.120)
13:32:53 × Qwerky quits (~qwerky@37.170.132.154) (Remote host closed the connection)
13:34:42 Qwerky joins (~qwerky@37.170.132.154)
13:35:23 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
13:35:39 slac48041 joins (~slack1256@200.112.85.255)
13:36:05 ukari joins (~ukari@unaffiliated/ukari)
13:36:47 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
13:37:53 × slack1256 quits (~slack1256@181.203.33.200) (Ping timeout: 265 seconds)
13:37:56 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 268 seconds)
13:38:00 <tomsmeding> lleb: can you check what exactly you're sending to the server, and if that's what you expect?
13:38:57 <tomsmeding> lleb: also, that's not the way you set flags, I think; but in any case the 'aeson' flag is enabled by default for http-conduit, so that should be fine
13:39:06 <lleb> i would love to, i have no clue of how i cant see or print the actual http request that is sent to the server tomsmeding
13:39:17 <lleb> i can*
13:39:49 <lleb> i see how to print a Request object, but that's style an haskell data structure and not an actual http request
13:39:58 <lleb> that's still*
13:41:49 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
13:42:09 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
13:42:32 × whatisRT quits (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
13:42:45 <lleb> im confident about what the server expect since i with a curl request i had the answer i expected, but im not aware of a tool to debug that kind of thing in haskell
13:43:46 whatisRT joins (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
13:43:49 <lleb> (im not the owner of the server so i cant print the incoming request from the server side)
13:43:55 <tomsmeding> lleb: https://requestbin.com exists (make sure to click the 'public bin' link)
13:44:57 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
13:45:12 × timCF quits (~i.tkachuk@200-149-20-81.sta.estpak.ee) (Quit: leaving)
13:46:03 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
13:46:05 <lleb> tomsmeding cool, i didnt tough about that kind of solution
13:46:23 Guest87676 joins (~laudiacay@67.176.215.84)
13:46:26 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
13:48:15 <tomsmeding> lleb: when something goes wrong, always look at what the data in question actually looks like :)
13:48:37 <tomsmeding> instead of trying to imagine what it should be -- indeed, that's what you should then _compare_ it to
13:48:51 <tomsmeding> often that produces some surprises ;)
13:48:52 × Eoco quits (~ian@x-160-94-179-157.acm.umn.edu) (Ping timeout: 240 seconds)
13:48:53 frozenErebus joins (~frozenEre@37.231.244.249)
13:49:33 xkapastel joins (uid17782@gateway/web/irccloud.com/x-emokxuotemcxsfjh)
13:49:37 <lleb> tomsmeding i compared my haskell request body and my curl request body. I added \ character in the haskell one ( { \"key\": value } ) and they are appearing in the final request body
13:50:26 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
13:50:36 <tomsmeding> lleb: is your Content-Type header correct? Are those \ characters actually sent to the server (if so, that sounds wrong -- json doesn't need backslashes)?
13:50:50 Tario joins (~Tario@garza.riseup.net)
13:51:40 <lleb> tomsmeding content-type application/json; charset=utf-8 in the curl request and content-type application/json in the haskell one
13:51:49 <lleb> i dont think that the charset part is mandatory
13:51:56 <lleb> and yes those \ chars are sent to the server
13:52:52 <tomsmeding> lleb: I don't think they should be sent
13:53:04 <tomsmeding> and no the charset doesn't sound necessary usually
13:53:32 <lleb> tomsmeding i dont think so neither and i didnt expect this behavior...
13:54:08 <lleb> https://pastebin.com/vdQP0f2d
13:54:46 <lleb> here is my code. I wanted to represent my request body as a string in the code, before passing it to setRequestBodyJSON, and i cant do that without adding the \ chars
13:54:57 jgt joins (~jgt@88.225.221.135)
13:55:08 × Tario quits (~Tario@garza.riseup.net) (Ping timeout: 246 seconds)
13:55:48 <tomsmeding> lleb: are you _sure_ those \ characters are actually sent to the server?
13:56:17 <tomsmeding> lleb: oh wait: are there " characters around your request body?
13:56:34 malumore_ joins (~malumore@151.62.116.76)
13:56:54 waleee-cl joins (uid373333@gateway/web/irccloud.com/x-qamskrartzxwuohd)
13:57:00 <tomsmeding> I think the library is json-encoding your json string
13:57:35 <tomsmeding> it takes a ToJson a => a, and you're passing it a String -- which can indeed be converted to json, but that's not what you wanted
13:57:42 <lleb> tomsmeding indeed... here is the raw body that i get in requestbin : "{\"operationName\":null,\"variables\":{},\"query\":\"{\n pages {\n list {\n title\n }\n }\n}\n\"}"
13:57:49 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:58:02 <tomsmeding> yeah
13:58:36 <lleb> tomsmeding let finalReq = setRequestBodyJSON requestBody req
13:58:41 <lleb> here requestBody is a string
13:58:41 <tomsmeding> try either getting an aeson json value object and passing that to setRequestBodyJSON, or using e.g. setRequestBodyLBS with the literal json string and set the content-type manually
13:59:00 tomsmeding has to go unfortunately
13:59:02 <tomsmeding> good luck!
13:59:05 <lleb> ok... i expected ToJson a => a to turn my string into a json
13:59:06 × malumore quits (~malumore@151.62.116.76) (Ping timeout: 260 seconds)
13:59:13 <tomsmeding> it did!
13:59:13 <lleb> thanks a lot tomsmeding
13:59:16 rj joins (~x@gateway/tor-sasl/rj)
13:59:25 <tomsmeding> but you don't want any conversion at all :p
14:02:01 × __minoru__shirae quits (~shiraeesh@46.34.207.120) (Ping timeout: 260 seconds)
14:03:24 × mikoto-chan quits (~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
14:04:43 mikoto-chan joins (~mikoto-ch@gateway/tor-sasl/mikoto-chan)
14:10:03 Pickchea joins (~private@unaffiliated/pickchea)
14:10:21 idhugo__ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
14:11:35 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
14:13:21 Qwerky_ joins (~qwerky@37.170.132.154)
14:14:11 __minoru__shirae joins (~shiraeesh@46.34.207.120)
14:14:58 Tario joins (~Tario@201.192.165.173)
14:16:33 × Qwerky quits (~qwerky@37.170.132.154) (Ping timeout: 265 seconds)
14:16:37 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
14:17:22 × LKoen quits (~LKoen@22.249.88.92.rev.sfr.net) (Remote host closed the connection)
14:17:28 Sheilong joins (uid293653@gateway/web/irccloud.com/x-cinqhqsiyvsglyzn)
14:17:37 is_null joins (~jpic@pdpc/supporter/professional/is-null)
14:17:50 × lleb quits (5c91ba7e@amarseille-158-1-23-126.w92-145.abo.wanadoo.fr) (Quit: Connection closed)
14:18:25 ddellacosta joins (~ddellacos@86.106.143.229)
14:20:26 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer)
14:20:39 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.9)
14:21:03 <absence> ReaderT has the withReaderT function that can modify the type of the environment, but MonadReader only has the local function which can modify the value of the environment, but not the type. is this a limitation of how typeclasses work? would it be necessary/possible to use a different effect system to implement the ability to change the environment's type?
14:21:06 × is_null_ quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
14:22:37 is_null joins (~jpic@pdpc/supporter/professional/is-null)
14:22:47 × ddellacosta quits (~ddellacos@86.106.143.229) (Ping timeout: 246 seconds)
14:22:56 <merijn> absence: MonadReader can't guarantee the type is changeable
14:25:15 alx741 joins (~alx741@181.196.68.118)
14:26:06 bitmagie joins (~Thunderbi@200116b80605cb00d83ce53866d6a8fa.dip.versatel-1u1.de)
14:26:57 ulidtko|kk joins (~ulidtko@31.133.98.224)
14:27:00 × bitmagie quits (~Thunderbi@200116b80605cb00d83ce53866d6a8fa.dip.versatel-1u1.de) (Client Quit)
14:28:26 ram19890 joins (~ram@49.205.84.15)
14:29:03 <absence> merijn: because other layers in the stack could depend on it?
14:29:13 <merijn> Who says there is a stack
14:29:29 × ulidtko|k quits (~ulidtko@194.54.80.38) (Ping timeout: 260 seconds)
14:30:18 <absence> merijn: if there isn't, why wouldn't the type be changeable?
14:30:56 <geekosaur> MonadReader says only that there's some vaguely Reader-like thing there, not that it's something one could change the type of
14:31:02 <geekosaur> I think
14:32:42 rond_ joins (5940206b@89-64-32-107.dynamic.chello.pl)
14:33:07 <merijn> Semi-relatedly: All the typeclasses in mtl are terrible and should never be part of any public API
14:33:44 <absence> merijn: what do you suggest instead?
14:34:08 <merijn> for what
14:35:01 <tdammers> my guess would be "for abstracting 'ask' beyond literally Reader / ReaderT"
14:35:19 <merijn> "don't"
14:35:27 <merijn> ask is part of the problem
14:35:53 LKoen joins (~LKoen@22.249.88.92.rev.sfr.net)
14:36:00 <tdammers> ask is what Reader is all about, isn't it
14:36:13 <merijn> Sure
14:36:26 × stree quits (~stree@68.36.8.116) (Ping timeout: 246 seconds)
14:36:40 <merijn> But Reader, while useful for some early prototyping, is a terrible public API
14:38:25 <merijn> Wrap it with an application/use specific newtype (see LoggingT, for example)
14:38:32 × jpe90 quits (~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
14:40:28 <absence> a newtype for each part of the environment?
14:41:09 <merijn> What do you mean "each part"
14:41:24 jao joins (~jao@pdpc/supporter/professional/jao)
14:41:55 <absence> you used logger as one example, but there are usually other things, like a database handle, a kafka handle, some metrics stuff, etc
14:42:57 <merijn> You define "MonadLogging", "MonadKafka" that provide you the primitives you need, then have one single type that implements all those things
14:43:10 <merijn> The problem with MonadReader is that is overly broad
14:43:10 cfricke joins (~cfricke@unaffiliated/cfricke)
14:43:39 <merijn> You can only ever have exactly *one* MonadReader instance, and making that class part of your public API means your hosed when 2 APIs use MonadReader for different thing
14:44:02 <tdammers> arguably, the "s" parameter to the MonadReader class (or "r" or whatever letter you pick) could make that distinction for you, if it weren't that typeclasses don't quite work that way
14:44:12 <merijn> The tagless final style classes like MonadX are ok, but only if there's a sensible globally unique meaning for them
14:44:51 <tdammers> otherwise, you could have sth like (MonadReader Foo m, MonadReader Bar m) => ..., and then instantiate that as ReaderT Foo (Reader Bar) or sth
14:45:20 <absence> right, i see what you mean
14:45:23 <merijn> tdammers: Right, but that's just the same as having meaningful MonadX classes
14:45:28 <merijn> absence: Example: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Sql/Core.hs#L130-L133
14:45:39 <merijn> absence: All my query logic is built on those 3 functions
14:45:41 <tdammers> merijn: sure, totally agree there
14:46:07 <merijn> absence: Whether you get those from a ReaderT, some other type or dark voodoo really isn't important to my querying logic
14:46:45 <merijn> absence: This also makes refactoring easier
14:46:45 × whatisRT quits (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
14:46:48 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
14:47:07 <merijn> absence: Instead of having "a specific monad stack" you just have "a type that lets me implement these primitives"
14:47:43 <merijn> absence: most of my logic is just a single opaque newtype (that internally uses some transformers, but the fact that I do is irrelevant to the code using that type)
14:49:32 whatisRT joins (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
14:49:48 stree joins (~stree@68.36.8.116)
14:49:55 <tdammers> the mtl classes kind of try to give you "a type that lets me implement these primitives", it's just that the primitives are too meaning-agnostic, a bit like the Boolean Blindness problem
14:49:57 <absence> merijn: i can see there would be benefits in general, but i'm not sure my original problem would be solvable with specific MonadX classes either. say you have some class "MonadLogger msg m" where msg is the type of whatever you want to log. while the name is less likely to clash when there are multiple apis, could the class have a function that changes the msg type?
14:49:58 acidjnk_new2 joins (~acidjnk@p5487d90a.dip0.t-ipconnect.de)
14:50:07 Sgeo joins (~Sgeo@ool-18b9875e.dyn.optonline.net)
14:50:25 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
14:50:26 ddellacosta joins (~ddellacos@86.106.143.21)
14:55:38 × ddellacosta quits (~ddellacos@86.106.143.21) (Ping timeout: 268 seconds)
15:00:18 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
15:00:35 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
15:03:21 × Raito_Bezarius quits (~Raito@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 250 seconds)
15:03:29 × L29Ah quits (~L29Ah@unaffiliated/l29ah) (Quit: Gateway shutdown)
15:04:12 <kuribas> yay, I can make our next service in haskell! :-)
15:09:21 cr3 joins (~cr3@192.222.143.195)
15:09:57 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:11:26 × kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
15:13:32 × chele quits (~chele@5.53.222.202) (Remote host closed the connection)
15:14:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
15:16:40 Raito_Bezarius joins (~Raito@unaffiliated/raito-bezarius/x-8764578)
15:18:03 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
15:19:57 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
15:20:37 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
15:22:07 L29Ah joins (~L29Ah@unaffiliated/l29ah)
15:22:13 proofofkeags joins (~proofofke@205.209.28.54)
15:26:11 mmfood joins (~mmfood@185.176.246.118)
15:26:15 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
15:26:23 nineonine joins (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
15:30:32 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
15:33:51 <[exa]> kuribas: well good luck. :D
15:38:27 × __minoru__shirae quits (~shiraeesh@46.34.207.120) (Remote host closed the connection)
15:38:38 __minoru__shirae joins (~shiraeesh@46.34.207.120)
15:38:46 <kuribas> it'll be a small service for now, but we can make it bigger later.
15:39:12 nineonin_ joins (~nineonine@50.216.62.2)
15:43:00 joncol joins (~jco@c83-248-173-38.bredband.comhem.se)
15:43:04 × nineonine quits (~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 276 seconds)
15:44:11 × enoq quits (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
15:46:47 minoru_shiraeesh joins (~shiraeesh@46.34.207.120)
15:48:03 × malumore_ quits (~malumore@151.62.116.76) (Ping timeout: 268 seconds)
15:48:07 × __minoru__shirae quits (~shiraeesh@46.34.207.120) (Remote host closed the connection)
15:48:21 <maerwald> why write it in haskell?
15:49:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:49:49 <kuribas> maerwald: why not?
15:50:36 <maerwald> a) access to software developers, b) access to cheap software developers, c) bus factor
15:51:09 <tdammers> however d) access to non-shitty software developers
15:51:23 <tdammers> and e) guaranteeing an absolute minimum baseline of "documentation"
15:51:38 <Taneb> f) fun
15:52:02 <tdammers> that's actually a valid business concern
15:52:02 <kuribas> a) 1 we have good developers, b) we pay them a good salary c) I'll train them
15:52:20 <maerwald> ok, so you're the only experienced haskell dev?
15:52:46 <kuribas> maerwald: nah, there are many, the guys here, well-typed, etc...
15:52:58 <maerwald> kuribas: I mean in your team
15:53:16 <kuribas> currently, yes
15:53:40 <tdammers> fwiw, if you screw up and hire well-typed to mop up the pieces, I won't object
15:53:43 <maerwald> what happens if you get sick or leave the company, because well-typed made you an offer? ;)
15:54:02 <kuribas> maerwald: depends how well the service does?
15:54:06 × acidjnk_new2 quits (~acidjnk@p5487d90a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
15:54:17 <tomsmeding> given "data Dir = Fwd | Rev ; type family Flip (a :: Dir) = r | r -> a where Flip 'Fwd = 'Rev ; Flip 'Rev = 'Fwd", is there a nice way to prove to ghc that "a ~ Flip (Flip a)" ?
15:54:31 <kuribas> maerwald: if it happens in the next month (unlikely) it'll get rewritten in clojure.
15:54:32 <tomsmeding> for a :: Dir
15:54:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
15:55:10 × Qwerky_ quits (~qwerky@37.170.132.154) (Remote host closed the connection)
15:55:12 <maerwald> so in 3 years, you are gone, the service uses an ancient stackage LTS that you can't build with current stack anymore and the CTO orders to rewrite it in Go, because they can't compete with blockchain companies for haskell dev salaries :p
15:55:12 <kuribas> maerwald: if it happens next year, I suppose the other guys should know enough to get shit done.
15:56:07 × conal quits (~conal@64.71.133.70) (Ping timeout: 265 seconds)
15:56:14 <kuribas> I doubt it. Not go for sure, maybe clojure.
15:56:18 × zva quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
15:56:22 <minoru_shiraeesh> write everything in pseudo-code and transpile to actual code
15:56:51 <kuribas> maerwald: or more likely, when I leave they hire another guy who knows haskell well.
15:57:14 <maerwald> tbh, I've always said "no" if someone asked me if haskell is a good idea for some commercial project
15:57:31 <maerwald> Either CTO and CEO know the deal and are all-in on it, or don't do it
15:57:31 <kuribas> maerwald: I guess you are in the wrong channel then?
15:57:32 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
15:57:36 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:57:38 <maerwald> why is that?
15:58:00 × mikoto-chan quits (~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-chan)
15:58:06 <maerwald> I'm not talking about open source or ppl who know what they are doing. I'm talking about someone asking what they should do
15:58:09 <kuribas> maerwald: if you don't like haskell, this isn't the place?
15:58:18 <maerwald> kuribas: sorry what?
15:58:26 <tomsmeding> liking haskell is something else than thinking it's good for task X
15:58:36 × coot quits (~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
15:58:42 <tomsmeding> where here, task X is quite broad: using it as a company
15:58:47 <kuribas> tomsmeding: eh, "haskell is wrong for commercial use" is very generic.
15:58:53 <maerwald> that's not what I said either
15:59:10 <kuribas> tomsmeding: that's very different from saying, haskell isn't suited for this particular task.
15:59:18 <tomsmeding> true
15:59:48 <maerwald> If someone asks me "We will use haskell in our commercial project, will you help us?" I will likely say yes ;)
15:59:50 conal joins (~conal@64.71.133.70)
15:59:58 <maerwald> but if they ask me if they should use haskell, I say "no"
16:00:03 × adziahel[m] quits (adziahelma@gateway/shell/matrix.org/x-qwxmblcrsukkaonc) (Quit: Idle for 30+ days)
16:00:17 <kuribas> maerwald: it depends.
16:00:20 × L29Ah quits (~L29Ah@unaffiliated/l29ah) (Quit: Gateway shutdown)
16:00:32 <kuribas> maerwald: "yes" isn't a good generic answer, neither is "no".
16:01:33 <kuribas> maerwald: it depends on company culture, existing practices, expectations, scope of project, etc...
16:01:47 <maerwald> it depends on them asking me the question :p
16:03:47 <maerwald> if you ask a Buddhist, if you should become a Buddhist, they'll either say "no" or say nothing
16:03:59 <maerwald> saying nothing is kinda rude, so...
16:04:27 <kuribas> maerwald: it's biased against haskell, so I wonder why you are here.
16:04:28 <tdammers> a Zen Buddhist might answer "mu."
16:04:33 <maerwald> hehe
16:04:33 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
16:04:39 Qwerky joins (~qwerky@37.170.132.154)
16:04:45 <maerwald> kuribas: no
16:04:55 <kuribas> maerwald: I don't find you are either enlightend, nor objective.
16:05:02 <kuribas> not that I am...
16:05:12 <tdammers> alternatively: "There is no 'Buddhism'. There is no 'should'. There is no 'I'."
16:05:24 <maerwald> kuribas: I don't engage in ad-hominemisms :p
16:05:39 <maerwald> tdammers: that's too abstract for me :>
16:05:42 howdoi joins (uid224@gateway/web/irccloud.com/x-qncwqauoexuittvy)
16:06:04 <maerwald> but in general, I despise envangelism in tech
16:06:06 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
16:06:17 <kuribas> maerwald: I am not saying you should be biased for haskell, it's just strange that you are here...
16:06:26 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
16:06:36 <maerwald> kuribas: I find it strange too... world is full of miracles :>
16:06:54 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
16:07:06 <tdammers> kuribas: he's kind of right though. as fantastic Haskell is as a language, from a business perspective it has downsides that can prove crucial
16:07:28 <maerwald> once I recommended rust to a startup company... sometimes I have nightmares about how they're doing
16:08:05 <maerwald> but my data point was: Microsoft rewrote some of their stuff in rust and achieved the same velocity after a couple of weeks
16:08:08 <kuribas> tdammers: what about clojure then?
16:08:10 electricityZZZZ joins (~electrici@157-131-250-97.fiber.dynamic.sonic.net)
16:08:19 <kuribas> tdammers: is clojure "better" from a business perspective?
16:08:43 <maerwald> with haskell, your velocity is harder to predict as well
16:08:45 geekosaur would like to point out that clojure is a possibility because of evangelism, which maerwald has rejected
16:08:49 <maerwald> sometime way faster, sometimes not
16:08:50 <minoru_shiraeesh> otoh graham hutton, iirc, described lisp as one of his advantages over competition
16:08:52 <tdammers> kuribas: clojure has some advantages that Haskell lacks, most notably running on JVM and having relatively painless Java interop
16:08:59 L29Ah joins (~L29Ah@unaffiliated/l29ah)
16:09:12 × Qwerky quits (~qwerky@37.170.132.154) (Ping timeout: 240 seconds)
16:09:22 <minoru_shiraeesh> so, it's not always a matter of using a language with cheapest coders
16:09:23 <maerwald> tdammers: and not crashing, although your code is completely wrong
16:09:27 <joncol> I see the words Clojure and Haskell mentioned here. Anyone that did the switch from a Clojure job to a Haskell dito around here? Would be fun to hear something about the change in experience.
16:09:57 <tdammers> minoru_shiraeesh: I'm not saying the downsides are *always* show stoppers. Something like Lisp or Haskell can be your productivity superweapon that gives you an edge over the competition. But that only works if you know how to play its strength, and have a plan to deal with the downsides.
16:10:33 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
16:10:35 ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
16:10:57 conal joins (~conal@64.71.133.70)
16:11:03 <kuribas> tdammers: I find the quality of some clojure libraries quite bad actually.
16:11:08 <tdammers> joncol: technically, yes - one of the jobs I had before making the jump to "professional Haskeller" used clojure almost exclusively. in reality, however, I had been using Haskell for personal stuff long before that, so I really came to clojure from Haskell, and found the experience thoroughly underwhelming
16:11:23 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
16:11:26 <kuribas> tdammers: and the documentation is abysmal
16:12:01 <maerwald> tdammers: I worked on a pretty large clojurescript codebase and one day I deleted on bracket too many, the compiler didn't complain and the customer page would go blank
16:12:12 <minoru_shiraeesh> "otoh graham hutton, iirc, described lisp as one of his advantages over competition" or paul graham? not sure
16:12:14 Guest87676 joins (~laudiacay@67.176.215.84)
16:12:18 <maerwald> I'm not sure how that passed the compiler, but it did
16:12:25 <joncol> tdammers: What I find most difficult with Clojure is the maintenance/refactoring. Also adding features etc. So easy to make stupid mistakes that take too long to track down.
16:12:25 <tdammers> minoru_shiraeesh: the latter
16:13:04 <kuribas> joncol: maintanance is aweful in clojure. I find even now that we have a comprehensive test suite, pipelines, stuff still breaks often.
16:13:08 <minoru_shiraeesh> yeah, it was paul graham
16:13:12 <joncol> Especially when in a team of multiple programmers, each having their own preferences when it comes to what libraries to use etc.
16:14:00 <kuribas> joncol: haskell is more robust with a tiny test suite, than clojure with a comprehensive one.
16:14:08 <tdammers> clojure shares all the downsides of the rest of the "dynamic" bunch, but it cranks that up to 11
16:14:46 <tdammers> you think monkey-patching is bad? here, have some macros.
16:15:04 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 252 seconds)
16:15:10 <kuribas> tdammers: I happily don't see that many macros in our clojure base
16:15:16 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
16:15:27 <tdammers> kuribas: maybe you don't even notice them
16:15:29 <kuribas> tdammers: but the leniency is really annoying
16:16:19 <joncol> kuribas: What leniency you mean specifically?
16:16:55 <kuribas> joncol: nil punning, everything is a hashmap, ...
16:17:02 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 268 seconds)
16:17:13 <kuribas> in scheme, there is no nil punning, structures are quite strict, etc...
16:19:44 Lycurgus joins (~niemand@98.4.118.65)
16:20:11 × puffnfresh1 quits (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 252 seconds)
16:20:21 slack1256 joins (~slack1256@200-112-64-179.baf.movistar.cl)
16:20:49 puffnfresh1 joins (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
16:22:39 epicte7us joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
16:22:40 × slac48041 quits (~slack1256@200.112.85.255) (Read error: Connection reset by peer)
16:24:15 × philderbeast quits (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:25:33 <maerwald> kuribas: so, is it a servant based HTTP microsoverice?
16:25:37 gitgood joins (~gitgood@80-44-9-246.dynamic.dsl.as9105.com)
16:26:05 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
16:26:18 × ep1ctetus quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 268 seconds)
16:27:38 juuandyy joins (~juuandyy@90.106.228.121)
16:28:27 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
16:29:35 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
16:29:55 malumore_ joins (~malumore@151.62.116.76)
16:31:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:32:41 jpe90 joins (~user@pool-108-31-85-19.washdc.fios.verizon.net)
16:32:57 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
16:35:52 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
16:37:06 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
16:37:11 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
16:37:16 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
16:39:31 bennofs__ joins (~quassel@dynamic-089-014-017-218.89.14.pool.telefonica.de)
16:40:41 <carbolymer> I'm running ekg, and I have 16.5GB current memory residency and 12GB max residency - it does not make sense, doesn't it?
16:40:42 × bennofs_ quits (~quassel@x4dbf4f4d.dyn.telefonica.de) (Ping timeout: 246 seconds)
16:41:08 <carbolymer> also top shows 9.1G usage, so how 16.5GB current residency is possible?
16:44:40 ddellac__ joins (~ddellacos@86.106.143.34)
16:45:05 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:46:26 jgt joins (~jgt@88.225.221.135)
16:46:38 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
16:48:41 × marek quits (~mmahut@209.250.249.245) (Changing host)
16:48:41 marek joins (~mmahut@fedora/pyxel)
16:49:09 × ddellac__ quits (~ddellacos@86.106.143.34) (Ping timeout: 252 seconds)
16:49:10 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
16:52:11 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 268 seconds)
16:52:12 × clynamen quits (~clynamen@net-93-66-1-11.cust.vodafonedsl.it) (Ping timeout: 268 seconds)
16:54:23 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
16:54:41 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
16:55:12 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
16:56:20 Aquazi joins (uid312403@gateway/web/irccloud.com/x-bpamshvzisvwzxre)
16:56:54 Guest87676 joins (~laudiacay@67.176.215.84)
16:57:06 <Lycurgus> looks like it's reporting something from the ghc rts which needn't map directly to OS resource reported in top
16:57:43 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
16:57:46 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
16:57:59 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 265 seconds)
16:58:11 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
16:59:02 Deide joins (~Deide@217.155.19.23)
17:00:14 × whatisRT quits (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
17:00:32 × idhugo__ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
17:00:51 whatisRT joins (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
17:01:12 <Lycurgus> hs peoples like the super static
17:01:27 <Lycurgus> memory comes in 16GB chunks igess
17:01:38 <DigitalKiwi> it is well known that maerwald hates haskell but not why they're still here ;(
17:02:31 <monochrom> I used to think that maerwald hated haskell. Then I learned that he made ghcup.
17:02:43 <monochrom> Also ghcup used to be a shell script but is now in Haskell.
17:03:09 <monochrom> In the end I concluded: maerwald : haskell :: me : humanity
17:03:23 <DigitalKiwi> i say write everything in haskell with the assumption that new people will have to maintain it and you'll end up better off; amataur haskell is still better than professional php lol
17:03:42 <monochrom> just a healthy dose of cynicism against certain ideals.
17:03:57 daniil joins (8967c375@d-137-103-195-117.fl.cpe.atlanticbb.net)
17:04:33 <DigitalKiwi> https://twitter.com/ProgrammerDude/status/1081145066369044480
17:04:44 <DigitalKiwi> "healthy"
17:04:45 <monochrom> "haskell is very statically safe, right? RIGHT?" is very much like "humans are very good-willed, right? RIGHT?"
17:05:07 <monochrom> even "humans are very intelligent"
17:05:19 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
17:05:20 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
17:05:20 neiluj joins (~jco@unaffiliated/neiluj)
17:05:39 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:06:16 <Lycurgus> humongs are like babies at the wheel of a ferrari
17:06:31 <catern> does anyone have a good example of really old documents of people saying "functional programming is the future"? I want to replace the current citation I have in the third bullet in http://catern.com/iceberg.html which is mostly not about that
17:06:45 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
17:08:41 is_null joins (~jpic@pdpc/supporter/professional/is-null)
17:08:55 <monochrom> I don't know whether Landin's paper "the next 700 programming languages" counts, but it comes close.
17:09:07 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 248 seconds)
17:09:19 <monochrom> Otherwise, it's only Internet fanatics who say that.
17:09:45 <monochrom> (So, IRC logs, blog posts, mailing lists, newsgroups.)
17:09:49 <DigitalKiwi> monochrom: that fact that humans are not intelligent as they think they are is why i am repulsed by the idea of writing, say, python
17:10:15 stree joins (~stree@68.36.8.116)
17:10:18 <liyang> catern: “Why Functional Programming Matters” Hughes 1990?
17:10:27 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
17:10:37 <DigitalKiwi> why your https bad :9
17:11:03 <catern> liyang: hm, not old enough
17:11:23 <maerwald> DigitalKiwi: you should hear me talk about languages I actually hate :)
17:11:41 <Lycurgus> look for industry reviews of ML
17:11:42 <DigitalKiwi> maerwald: that i might enjoy more lol
17:12:15 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:13:01 × Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt)
17:13:07 <maerwald> but the languages I really hate, I'm not proficient enough with to provide a proper rant
17:13:11 <maerwald> (e.g. C++)
17:13:24 <catern> ah I think https://dl.acm.org/doi/abs/10.1145/359576.359579 is perfect
17:13:44 is_null_ joins (~jpic@pdpc/supporter/professional/is-null)
17:14:22 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
17:14:28 <catern> (and obviously, classic and important)
17:14:50 <DigitalKiwi> python a week ago is harder to fix than adding features to haskell i wrote years ago ;(
17:15:12 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
17:15:40 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
17:16:19 <maerwald> if you write a small django app, then it should be fine
17:16:22 <liyang> catern: I 'member. Good choice. (I should read it again.)
17:16:34 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
17:16:46 <maerwald> python is my go-to prototyping language
17:17:00 <maerwald> because once you're done, you *really* want to throw away the result
17:17:00 × rajivr quits (uid269651@gateway/web/irccloud.com/x-lxchinolehixafmd) (Quit: Connection closed for inactivity)
17:17:11 <monochrom> :)
17:17:23 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Client Quit)
17:18:23 <DigitalKiwi> maerwald: lol that python that's supposed to get thrown away ends up being in prod for 30 years
17:18:49 <Rembane> That's true for all prototype code regardless of language :/
17:19:05 letmein joins (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1)
17:19:07 <monochrom> People fall in love with their own creations.
17:19:21 <monochrom> blindly fall in love
17:19:50 × is_null_ quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
17:20:16 <maerwald> DigitalKiwi: in haskell, whatever you prototyped usually ends up uploaded on hackage and used by companies you don't know...
17:20:32 <DigitalKiwi> ...and not in the good way. like in the perpetually broken and maintenance burden and always "we really need to rewrite this"
17:20:38 <maerwald> I've never uploaded a python lib, ever
17:20:51 <geekosaur> DigitalKiwi, thta again happens in any language
17:20:58 <DigitalKiwi> yes
17:21:18 <DigitalKiwi> so start with something better ;)
17:21:51 <maerwald> I actually believe in prototyping
17:22:25 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
17:22:51 <maerwald> and same-language rewrites
17:23:06 <DigitalKiwi> so prototype in haskell
17:23:32 <maerwald> if the requiremens changes go beyond a certain point, your architecture will inevitably fail
17:23:32 jgt joins (~jgt@88.225.221.135)
17:23:36 <maerwald> DigitalKiwi: too slow
17:24:00 <maerwald> because too many toys
17:24:14 <DigitalKiwi> lol oh i know lol
17:24:31 Lycurgus joins (~niemand@98.4.118.65)
17:24:59 <DigitalKiwi> but that's a problem of self control not of haskell ;p
17:25:09 <maerwald> python is so boring that you just focus on the task
17:25:17 <maerwald> no FRP, no effects systems, no nothing
17:25:27 × Lycurgus quits (~niemand@98.4.118.65) (Client Quit)
17:26:00 <maerwald> so haskell prototypes turn out to be library experiments, rather than prototypes
17:26:26 <maerwald> and then you like the result a little too much
17:26:27 <monochrom> I am unfamiliar with python libraries, so it is the opposite for me. When in Python, too many toys.
17:26:46 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
17:26:58 <monochrom> When in Haskell I write boring code.
17:27:41 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 240 seconds)
17:28:24 <DigitalKiwi> https://github.com/nix-community/nixops-digitalocean/actions
17:29:10 <maerwald> what's that
17:30:48 <DigitalKiwi> python being a pita
17:31:07 <maerwald> or is it nix :p
17:31:14 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:31:29 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
17:31:40 <DigitalKiwi> fair question but in this case it is python
17:32:03 <maerwald> I believe nix is like perl... it'll have a steady decline over the next couple of years, but you'll never get rid of it completely
17:33:37 <catern> not sure why you'd expect a decline, it's growing rapidly the last couple years
17:33:44 is_null joins (~jpic@pdpc/supporter/professional/is-null)
17:33:49 <maerwald> catern: perl also had a peak
17:33:57 <monochrom> oooohhhhhh
17:33:58 <catern> yes, not sure why you expect that peak is right now
17:34:16 <DigitalKiwi> i've written a lot more python than haskell in my life and it's horrible ;(
17:34:19 <monochrom> The O'Reily Perl book has a camel. Perhaps we should expect two peaks.
17:34:32 <maerwald> I hope not
17:35:28 <maerwald> catern: because it's well established now, there's not much more growth potential in terms of tech and the quality standards (or the lack thereof) have been established
17:36:13 <maerwald> I don't expect much change in the ecosystem
17:36:39 <maerwald> And I believe the disadvantages outweigh, so that people will slowly migrate away
17:36:39 nut joins (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
17:36:56 <catern> sure, that was all true two years ago too, nevertheless usage has grown a lot in the past two years; why do you expect it's going to stop sometime in the next year and turn into a decline?
17:37:40 <catern> "the inherent badness" isn't a sufficient reason for software projects to decline in usage, unfortunately :)
17:38:33 <maerwald> catern: yes, because it has been 2+ years now that users can observe that there won't be any more change
17:39:40 <DigitalKiwi> https://logs.nix.samueldr.com/nixos-chat/2021-03-14#1615715873-1615710746
17:39:40 frozenErebus joins (~frozenEre@37.231.244.249)
17:39:41 × bobey88 quits (~bobey@72-172-218-188.fidnet.com) (Ping timeout: 240 seconds)
17:40:07 <monochrom> I expected that perl declined when php and python rose. Indeed my sysadmin, being the sysadmin type, sworn by perl back then but now swears by python.
17:40:40 <monochrom> But also indeed I have no data other than that one and that my university used to teach perl but not any more.
17:41:04 <maerwald> There I wonder: how would you teach nix?
17:41:56 bobey88 joins (~bobey@72-172-218-188.fidnet.com)
17:41:56 × malumore_ quits (~malumore@151.62.116.76) (Ping timeout: 260 seconds)
17:43:12 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
17:43:54 × jpe90 quits (~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
17:44:25 ech joins (~user@gateway/tor-sasl/ech)
17:46:23 × dcoutts__ quits (~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
17:46:46 dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net)
17:48:01 Pickchea joins (~private@unaffiliated/pickchea)
17:50:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:51:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:52:23 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
17:53:01 × dcoutts__ quits (~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 260 seconds)
17:53:18 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
17:54:57 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
17:56:11 shaanjeet1 joins (~kunwar@20.51.250.64)
17:58:24 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
18:00:13 × xff0x quits (~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2) (Ping timeout: 276 seconds)
18:00:40 xff0x joins (~xff0x@2001:1a81:524d:ea00:6e93:d8:4f43:8c54)
18:01:46 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
18:01:51 vicfred joins (~vicfred@unaffiliated/vicfred)
18:01:52 × nut quits (~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
18:03:36 × rond_ quits (5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed)
18:03:44 <DigitalKiwi> maerwald: nix shell nixpkgs#dateutils nixpkgs#jq -c bash -c 'ddiff "$(curl -s https://api.github.com/repos/input-output-hk/haskell.nix |jq -r '.created_at' )" "now" -f "%y"'
18:03:46 <DigitalKiwi> 3
18:04:24 <DigitalKiwi> a lot's happened with just that project in the last year
18:04:47 nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
18:05:45 × nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
18:06:37 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
18:06:42 <maerwald> yep, 3 years sounds like the amount of time you need to invest to do anything non-trivial with it :p
18:07:57 Qwerky joins (~qwerky@37.170.132.154)
18:08:00 <DigitalKiwi> https://input-output-hk.github.io/haskell.nix/tutorials/getting-started/
18:08:33 <DigitalKiwi> https://haskell4nix.readthedocs.io/
18:08:46 <maerwald> ?
18:09:19 <maerwald> You're suggesting one can make anything work with *just* reading the docs?
18:09:48 <maerwald> Usually you end up going on an issue-hunt through IRC, reddit, blog posts and obscure github gists
18:10:33 <DigitalKiwi> yeah that's just tech lol
18:10:37 <maerwald> no
18:10:54 <maerwald> that's poor ergonomics
18:11:03 × DavidEichmann quits (~david@156.59.147.147.dyn.plus.net) (Remote host closed the connection)
18:11:06 <DigitalKiwi> that so much has happened in the last few years is actually one of the problems, finding old stack overflows ;p
18:11:59 <maerwald> I've used ansible mostly by just reading the docs. It's not a great piece of tech, but it has better ergonomics.
18:12:26 <DigitalKiwi> and what i was suggesting was that at some point it was 'project nobody else could use' and 'project that is increasingly easy for a wide variety of other people to use'
18:12:51 × geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
18:12:52 <DigitalKiwi> how much nix docs have you read and related to what?
18:13:01 <maerwald> I think by now the only interesting use case that remains of nix is cross-compiling static binaries.
18:13:24 <maerwald> That can get a little hairy even with containerized alpine
18:13:29 <DigitalKiwi> there's actually quite a bit of nix docs, but sometimes it's hard to know which of the several manuals to look in
18:13:52 <maerwald> yes, poorly structured docs aren't very useful... hence why I asked: how would one teach nix?
18:14:11 <maerwald> I think packaging systems are too messy in general, some more than others
18:14:49 <DigitalKiwi> because nix the language, nix the program, nixos the distro, nixpkgs the expression set, are different things...
18:15:37 <DigitalKiwi> and then there's all of the things that have been built with it
18:16:42 <maerwald> yeah, too much complexity for the gains
18:16:49 ADG1089 joins (~aditya@171.76.29.233)
18:17:37 <DigitalKiwi> like nixops, hydra, node2nix, home-manager, ... https://github.com/nix-community
18:17:49 <monochrom> I imagine that "ActiveX" would suffer the same problem. It really is a consortium of several not really related things that are grouped together only because some marketting people said to.
18:18:12 <DigitalKiwi> that's like saying you don't want to use haskell because edwardk already wrote a library you need
18:18:16 <monochrom> But this is where human nature is utterly broken.
18:18:29 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
18:18:40 <maerwald> DigitalKiwi: abstractions in haskell are usually no that brittle
18:18:44 <monochrom> Human nature is such that they learn a mess and then they think it's a bragging right.
18:19:33 <Clint> that explains corporate culture
18:19:42 <maerwald> DigitalKiwi: it starts with nix the language being poor (module system anyone?)
18:20:03 <monochrom> People fall in love with both what they create and what they learn. These are specially cases of the sunk cost policy.
18:20:09 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
18:20:13 <maerwald> reasoning about 2 lines of nix code is already a challenge
18:20:18 <DigitalKiwi> i'm not even good at nix lol i just hit shit with hammers until it works
18:20:39 <maerwald> exactly, you don't reason about nix code, you just play with it until it does what you want
18:20:40 <monochrom> If you have wasted time, you can either admit it's a waste or rebrand it as an investment. Which one feels better?
18:20:46 <Cale> Yeah, nix-the-language not having a module system goes a fair way to explaining all of my own frustrations with it. Of course, I wouldn't be frustrated if nix wasn't actually irreplaceable in many other ways.
18:20:58 <DigitalKiwi> https://github.com/tazjin/nix-1p
18:21:00 <monochrom> And yes people have made this a policy, I didn't have a typo.
18:21:49 z0 joins (~zzz@2a03:b0c0:3:d0::3095:3001)
18:21:53 geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com)
18:21:58 <DigitalKiwi> https://nixos.org/guides/nix-pills/index.html
18:22:06 <maerwald> but I don't see an alternative that will target the same audience
18:22:10 <Cale> It's really a style thing that is influenced by that lack of module system though: people make gigantic attrsets of things that behave a bit like modules, then they tweak those collections of definitions recursively, repeatedly, in ways that affect how things inside them behave deeply.
18:22:48 <maerwald> That's basically how OOP works
18:22:50 <maerwald> :)
18:23:11 <Cale> The end result is that even though the nix language is basically a pure functional programming language, you struggle to extract the benefit of that, because equational reasoning is only helpful if you can actually find the equations that define the things you're working with.
18:23:30 malumore_ joins (~malumore@151.62.116.76)
18:23:34 × xff0x quits (~xff0x@2001:1a81:524d:ea00:6e93:d8:4f43:8c54) (Remote host closed the connection)
18:23:52 xff0x joins (~xff0x@2001:1a81:524d:ea00:4bc5:b0ea:c9c9:30a8)
18:23:56 <maerwald> right, so what remains useful is nix the package manager istelf (the approach, that was used by stack, cabal, ...)
18:23:58 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
18:24:23 <maerwald> you could just reboot it with a better language, but probably not gonna happen soon
18:24:49 <Cale> and all the descriptions of how to build every package, and the fact that you can set up reasonably consistent environments between developer machines and deployed machines
18:24:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:25:00 <Cale> all that stuff is great
18:25:24 × zzz quits (~zzz@2a03:b0c0:3:d0::3095:3001) (Ping timeout: 258 seconds)
18:25:25 z0 is now known as zzz
18:25:53 <Cale> Nix the desktop OS, not as great imo -- it takes a lot of fiddling to get things into a usable configuration, so I don't even bother with it. Once you have a configuration you like, deploying it to more machines is easy though, which I have to admit is cool.
18:26:23 <Cale> But it feels a lot like fucking around trying to get Slackware to work in 1999.
18:26:27 <DigitalKiwi> https://logs.nix.samueldr.com/nixos/2021-04-28#1619579644-1619575351;
18:26:58 <monochrom> slackware :)
18:27:06 <maerwald> Yep, nixOS feels like gentoo, except with less QA
18:27:27 timCF joins (~i.tkachuk@m91-129-104-226.cust.tele2.ee)
18:28:09 <maerwald> I think in the beginning, because there was too much community contribution to establish strict QA policies
18:28:11 <Cale> But yeah, I love the ability to quickly set up a default.nix for my projects such that I can nix-shell and be in an environment with whatever dependencies (both Haskell and system) that I'd need to work on or build the project.
18:28:25 <maerwald> And later, because ppl stopped using it as a desktop OS
18:28:30 <Cale> That's cool, and worth learning nix for.
18:28:38 <DigitalKiwi> well i am https://twitter.com/ArchKiwi
18:31:31 <DigitalKiwi> https://logs.nix.samueldr.com/nixos-chat/2021-03-14#1615715873-1615710746
18:32:09 <carbolymer> >using twatter
18:32:45 × timCF quits (~i.tkachuk@m91-129-104-226.cust.tele2.ee) (Quit: leaving)
18:33:09 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
18:34:27 <DigitalKiwi> https://logs.nix.samueldr.com/nixos/2021-04-25#1619383503-1619376013; maerwald i complain a lot too ;)
18:39:30 dmytrish joins (~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec)
18:39:58 × ram19890 quits (~ram@49.205.84.15) (Quit: Konversation terminated!)
18:40:03 gnumonic joins (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
18:42:12 mikoto-chan joins (~mikoto-ch@gateway/tor-sasl/mikoto-chan)
18:42:34 ddellac__ joins (~ddellacos@86.106.143.203)
18:43:03 nut joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
18:44:58 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
18:45:26 <DigitalKiwi> monochrom: well the thing is that in spite of all of the sunk cost (and there is lots) there're still too many benefits that it does bring that nothing else solves as easily/at all (yet, if something better does come along, which i hope it does, because it does have problems, someday)
18:45:43 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
18:46:34 ukari joins (~ukari@unaffiliated/ukari)
18:46:52 × ddellac__ quits (~ddellacos@86.106.143.203) (Ping timeout: 240 seconds)
18:47:07 <DigitalKiwi> i'm not married to nix..not even that good at it as in i haven't really tried to learn it that much... probably part of my prolem ;p
18:47:38 <DigitalKiwi> https://patrickmn.com/software/the-haskell-pyramid/
18:48:21 <monochrom> Is it possible to invent a new language, let's call it "mix", which improves upon the nix language by adding a proper module system, and you can still use the rest of the nix infrastructure?
18:49:05 <DigitalKiwi> https://www.thejach.com/imgs/vim_learning.jpg
18:49:06 <monochrom> Or generally it is only the nix language that needs fixing so let's replace just that.
18:49:06 <maerwald> Hmm, lets see: a) reproducable builds? Never needed it (except for an embedded project, but there we used a proprietary alternative), b) reproducible environment? Cool, but don't remember when I actually needed that and couldn't do without, c) nixops? More trouble than all the alternatives
18:49:36 <DigitalKiwi> monochrom: well there is guix
18:50:44 <DigitalKiwi> maerwald: do you find ghcup useful?
18:50:45 <maerwald> in the end, static binaries are better for user-facing things and when you're deploying... why would you need reproducible config? Do you not have full control over the environment anyway?
18:51:23 bor0 joins (~boro@unaffiliated/boro/x-000000001)
18:51:49 <maerwald> DigitalKiwi: ghcup is a low-effort tool, but has high ergonomics... so basically the opposite of nix
18:52:14 <maerwald> so it's useful when your distro GHC is broken/lagging
18:52:23 <maerwald> which happens to be the case for many distros
18:54:33 × bor0 quits (~boro@unaffiliated/boro/x-000000001) (Client Quit)
18:54:56 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
18:55:20 <slack1256> Is there a testing flag in cabal so I can test non exported functions from a module?
18:55:44 <slack1256> ghci does have that via `:m *MyModule`
18:55:55 <maerwald> slack1256: you can do cpp and write the test within the module and export the test
18:56:02 <maerwald> `tar` did that previously
18:56:20 <geekosaur> non exported functions requires interpretation, which ghci can do but cabal can't (nor ghc in general)
18:56:45 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
18:56:47 <slack1256> maerwald: That actually sounds great.
18:57:28 <DigitalKiwi> nix-shell -I nixpkgs=channel:nixos-unstable -p cabal-install zlib git -p "haskell.packages.ghc8104.ghcWithPackages(pkgs: with pkgs; [ monad-loops xlsx shh shh-extras HSH simple-cmd shelly megaparsec aeson titlecase ])"
18:57:32 <geekosaur> the other way to do it is an Internals module which is exported
18:57:36 <maerwald> slack1256: https://github.com/haskell/tar/blob/557014f2a441e3b9372e5d30b437fe50cdf190bc/Codec/Archive/Tar/Index/IntTrie.hs#L507
18:58:03 <maerwald> not sure if that's great... I'd personally just export everything and use the `Foo.Internal.Bar` notation for the module
18:58:19 <maerwald> (and then exclude changes to those modules from your PVP process)
18:58:34 <maerwald> like geekosaur said
18:58:46 <DigitalKiwi> https://mostlyabsurd.com/files/2021-04-25-174331_2879x1694_scrot.png
18:59:38 <maerwald> maybe you can do without the CPP, but then you always build the tests, which is a little odd maybe
18:59:48 <maerwald> or not, sounds radical
19:00:38 <maerwald> (you lose caching with the CPP when you switch to building the tests)
19:00:56 <slack1256> Exactly.
19:01:18 <monochrom> On the bright side, at equilibrium both are cached. >:)
19:01:25 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
19:01:57 <DigitalKiwi> https://mostlyabsurd.com/files/binance
19:02:00 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:02:26 × whatisRT quits (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
19:02:43 <DigitalKiwi> https://mostlyabsurd.com/files/clone-edward
19:03:41 × kami_ quits (~kami@228.243.254.87.static.monaco.mc) (Remote host closed the connection)
19:03:43 <maerwald> hmm, PVP could have included a rule for modules that contain `Internal` in their name to be excluded from the API check
19:03:45 <monochrom> great name "clone-edward".
19:04:03 <DigitalKiwi> https://gist.github.com/Kiwi/ffc08bffb15798dc4b1ec2a1c47c6191#file-program-cabal-hs
19:04:06 whatisRT joins (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
19:05:04 <maerwald> but the PVP author is awol
19:05:43 <monochrom> I think people already interpret PVP with that in mind.
19:06:38 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
19:06:45 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
19:06:57 <maerwald> I guess we can pester haskell foundation about PVP updates
19:07:02 jamm_ joins (~jamm@unaffiliated/jamm)
19:07:31 <monochrom> I am actually doubtful about the value of making it an explicit statement.
19:07:32 Tario joins (~Tario@201.192.165.173)
19:07:43 <maerwald> well, tools can use that information then
19:07:48 <maerwald> otherwise it's kinda illegal!
19:08:15 <maerwald> but not sure we even have a mature PVP checker? I remeber some
19:08:32 <maerwald> @hackage policeman
19:08:32 <lambdabot> https://hackage.haskell.org/package/policeman
19:08:32 whatisRT- joins (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
19:08:52 × whatisRT quits (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
19:10:37 rj joins (~x@gateway/tor-sasl/rj)
19:13:40 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
19:15:02 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
19:15:34 × daniil quits (8967c375@d-137-103-195-117.fl.cpe.atlanticbb.net) (Quit: Connection closed)
19:17:17 × joncol quits (~jco@c83-248-173-38.bredband.comhem.se) (Remote host closed the connection)
19:17:58 hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
19:18:12 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
19:18:32 × shailangsa quits (~shailangs@host217-35-224-169.range217-35.btcentralplus.com) (Ping timeout: 246 seconds)
19:19:11 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
19:24:29 jgt joins (~jgt@88.225.221.135)
19:24:55 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
19:26:27 philderbeast joins (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
19:29:41 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 240 seconds)
19:30:26 × juuandyy quits (~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
19:30:52 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 240 seconds)
19:30:54 <juri_> ok, dumb question. if i'm writing a function definition and using typeclasses to restrict the type of two items, how do i specify that two of the items have the same restrictions, even though they are not the same type?
19:31:11 argento joins (~argent0@168.227.97.34)
19:31:30 <Rembane> juri_: Give them two different type variables.
19:31:30 stree joins (~stree@68.36.8.116)
19:31:47 <juri_> right now i have averageNodes :: (Arcable a, Pointable a, Show a, Arcable b, Pointable b, Show b) => a -> b -> INode
19:32:04 <juri_> how would i re-write that shorter?
19:37:41 × loller_ quits (uid358106@gateway/web/irccloud.com/x-yykgptajeudcaatj) (Quit: Connection closed for inactivity)
19:38:32 × minoru_shiraeesh quits (~shiraeesh@46.34.207.120) (Ping timeout: 240 seconds)
19:38:36 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
19:38:46 minoru_shiraeesh joins (~shiraeesh@5.101.59.47)
19:38:56 <davean> juri_: if its a thing you do often, you'd create an alias that covered the 3 pieces
19:38:57 <monochrom> Define your own "class (Arcable a, Pointable a, Show a) => ProblemSpecific a". It needs no methods.
19:39:03 <davean> Doesn't need to be a class
19:39:48 <monochrom> The non-class solution breaks a lot of people's minds, so I won't tell it unless you really want to see it.
19:40:27 <davean> really? How does it break people's minds?
19:40:27 <DigitalKiwi> ...me would like to see it
19:40:36 Eoco joins (~ian@x-160-94-179-157.acm.umn.edu)
19:40:37 <Rembane> monochrom, davean: I want to see it! :)
19:40:54 <monochrom> Turn on ContraintKinds. Then "type ProblemSpecific a = (Arcable a, Pointable a, Show a)".
19:41:16 desophos joins (~desophos@2601:249:1680:a570:2805:692e:a4c7:e255)
19:41:36 <monochrom> Major motivating example in the GHC user's guide in the ConstraintKinds section.
19:41:42 <davean> it seems the much more simple and straight forward approach to me, its what I sue when I've got a meta set of constraints I use a lot
19:42:03 <Rembane> Is ConstraintKinds one of the nice extensions?
19:42:17 <monochrom> I think it's harmless.
19:42:54 <monochrom> There are a lot of simple one-liners that break a lot of people's minds.
19:43:11 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-bpamshvzisvwzxre) (Quit: Connection closed for inactivity)
19:43:18 <Rembane> That's good stuff
19:43:25 <monochrom> I optimize for "I understand the solution" not "the solution is slick".
19:43:26 <davean> I'm really not sure how this could break anyone's mind
19:43:41 <monochrom> "Arcable a" is not a type?
19:43:55 zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
19:44:06 <monochrom> And in Haskell2010, not even a kind?
19:44:42 × thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202)
19:44:46 shailangsa joins (~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
19:45:15 Lycurgus joins (~niemand@98.4.118.65)
19:45:16 <monochrom> And the line {-# language ConstraintKinds #-} begets a lot of questions and digressions on what it means?
19:45:32 <monochrom> And I even forgot whether TypeInType is also required.
19:46:14 <davean> I mean if we're up to type classes we've convered constraints
19:46:30 <monochrom> I can understand that if the optimizing goal is "just cargo-cult it, don't try to understand, don't even ask why it's legal in the first place?" then sure.
19:46:57 <davean> Like the stuff for doing manipulations of constraints in the type system is a little byzantine
19:47:10 <davean> but the concept is ... well, its just weird when it isn't allowed.
19:47:39 <davean> Its already part of the type signature
19:47:46 <davean> we're just removing selerations between the levels
19:47:46 geekosaur admits he'dprobably try that first, get an error that ConstraintKinds is needed, then wonder if he's letting himself in for type voodoo
19:49:16 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:49:23 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
19:50:43 Lycurgus as a rational fundamentalist suspects higher order typed are bad juju period
19:51:24 Lycurgus *types
19:51:41 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 240 seconds)
19:53:42 × sm[m] quits (simonmicma@gateway/shell/matrix.org/x-mfesfokfwpleawzk) (Ping timeout: 245 seconds)
19:54:06 × stevekrouse1[m] quits (stevekrous@gateway/shell/matrix.org/x-sskcyvujdvynhasa) (Ping timeout: 245 seconds)
19:54:07 × vaibhavsagar quits (vaibhavsag@gateway/shell/matrix.org/x-jalplsodfrwfewzt) (Ping timeout: 245 seconds)
19:54:07 × johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-eqxnnnvtcaueqhad) (Ping timeout: 245 seconds)
19:54:07 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
19:54:47 stevekrouse1[m] joins (stevekrous@gateway/shell/matrix.org/x-yavjkxinulfgxwlk)
19:54:53 sm[m] joins (simonmicma@gateway/shell/matrix.org/x-yogdjvkzyankbmtu)
19:55:18 johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-rksdwxlrklojjcvb)
19:55:46 × lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-jmtycosfbgskcbjd) (Ping timeout: 245 seconds)
19:55:46 × fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-mgevtppufszitkam) (Ping timeout: 245 seconds)
19:56:29 × zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
19:56:32 <juri_> monochrom: no?
19:56:34 × PtxDK quits (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Read error: Connection reset by peer)
19:56:36 vaibhavsagar joins (vaibhavsag@gateway/shell/matrix.org/x-yqaazxmokhytwobc)
19:57:01 lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-fvxopfvkrxwyhetn)
19:57:20 fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-jmtbhypkvdgrojab)
19:57:31 <juri_> this is my first forray into typeclasses, from necessity. handling types with Eithers in them leaves a lot of calls to error.
19:57:40 PtxDK joins (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
19:58:40 <juri_> I'm working with graphs in 2d space. Arcable means a node has the potential to have an output line, and Pointable means the node has enough lines of enough different angles to resolve the note to a position on the 2d plane.
19:58:45 <geekosaur> these days you can't turn TypeInType off
19:58:54 <juri_> Also, i'm a hit at parties.
20:01:22 <davean> juri_: uh, I question if these should be type classes
20:01:48 <int-e> geekosaur: what could go wrong?
20:02:12 × carldd quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Quit: The Lounge - https://thelounge.chat)
20:02:31 × desophos quits (~desophos@2601:249:1680:a570:2805:692e:a4c7:e255) (Quit: Mutter: www.mutterirc.com)
20:02:56 <juri_> davean: i kindof do to, but they definately needed to stop being three types of node, hiding in one type, with lots of Either, and lots of function implementations that effectively 'type checked' with error during runtime.
20:02:57 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
20:03:36 <geekosaur> huh, guess it still works. thought they'd removed the old machinery one version after making TypeInType default
20:03:55 <DigitalKiwi> maerwald: anyway, one of the easiest and most useful things is that nix can be used as a sort of ghcupp but for all of the things ;p
20:03:56 <monochrom> Are you saying that if X is an Arcable instance then "Either E X" is also an Arcable instance?
20:03:57 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:04:11 <juri_> no?
20:04:37 usr25 joins (~usr25@unaffiliated/usr25)
20:04:50 <monochrom> What have I done.
20:04:59 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
20:05:00 <juri_> I'm saying that Node had all kinds of logic for Either (LineSeg, LineSeg) [PLine2] to be a member.
20:05:02 <monochrom> I started the trend of answering questions with question marks?
20:05:11 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 240 seconds)
20:05:39 <juri_> because by the rules of the system, a node either had two line segments, or N lines intersecting with it.
20:05:52 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
20:05:59 <juri_> now, i have two types for the two rules. everything is MUCH cleaner.
20:06:05 <DigitalKiwi> in fact... https://gist.githubusercontent.com/Kiwi/df35e1fde120346d47138e13565794bb/raw/224ea9c7e79ef3414a77864ac058fa32005cbe2f/nixos-up
20:06:24 Lord_of_Life_ is now known as Lord_of_Life
20:06:42 <juri_> nodes with (LineSeg, LineSeg) always have an output Arc, while the other nodes have a Maybe Arc...
20:06:58 <juri_> they're similar, but very not, and it jammed up all of the things.
20:07:33 petersen joins (~petersen@redhat/juhp)
20:07:38 <DigitalKiwi> https://github.com/a-schaefers/themelios#tips--tricks
20:07:41 <juri_> for instance, forcing the LineSeg carrying types to have Maybe arc, even though it was always Just.
20:07:49 carldd joins (~carldd@90-224-49-113-no56.tbcn.telia.com)
20:07:57 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
20:08:19 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
20:08:23 <DigitalKiwi> nix-build '<nixpkgs/nixos>' -A config.system.build.isoImage -I nixos-config=iso.nix # builds a usb image
20:09:25 <DigitalKiwi> [root@nixos:~] themelios ./hosts/vm-example/configuration.sh https://github.com/a-schaefers/themelios.git master # completely installs and configures
20:14:47 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:cd02:6757:782f:7e4d) (Ping timeout: 260 seconds)
20:17:34 bobby joins (~bobby@110.54.200.106)
20:19:24 × bobby quits (~bobby@110.54.200.106) (Client Quit)
20:20:46 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
20:21:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:23:43 × shailangsa quits (~shailangs@host217-35-224-169.range217-35.btcentralplus.com) (Ping timeout: 268 seconds)
20:25:07 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
20:25:18 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
20:26:21 ChessGuevara joins (~chessguev@103.27.2.106)
20:26:21 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
20:26:58 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:6972:4f4b:800a:5969)
20:29:55 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
20:31:00 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:37:16 lordcirth_ joins (~lordcirth@2607:f2c0:95b3:4400:486b:2c7b:87d6:2af0)
20:37:41 × jamestmartin quits (james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
20:38:11 jamestmartin joins (james@jtmar.me)
20:38:19 × jamestmartin quits (james@jtmar.me) (Remote host closed the connection)
20:39:02 <lordcirth_> I'm using Brick, and trying to get widgets to be fixed-width: "B.padRight (B.Pad (10 - B.textWidth hpBar)) hpBar" but the types are wrong; "No instance for (B.TextWidth (B.Widget Name))". What's the correct way to do this?
20:39:11 × alx741 quits (~alx741@181.196.68.118) (Ping timeout: 240 seconds)
20:40:00 jamestmartin joins (~james@jtmar.me)
20:40:21 × malumore_ quits (~malumore@151.62.116.76) (Ping timeout: 268 seconds)
20:40:26 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
20:41:16 acidjnk_new2 joins (~acidjnk@p200300d0c72b95722c5bb32012e463b2.dip0.t-ipconnect.de)
20:41:30 <sm[m]> lordcirth_: if you don't already understand the types clearly, a useful technique is to add lots of type annotations - replace X with (X :: SomeType)
20:43:59 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
20:44:02 __monty__ joins (~toonn@unaffiliated/toonn)
20:44:12 jpe90 joins (~user@pool-108-31-85-19.washdc.fios.verizon.net)
20:45:07 × ADG1089 quits (~aditya@171.76.29.233) (Remote host closed the connection)
20:45:32 <lordcirth_> Yeah. So it seems that I need to get the width back where I construct the Widget.
20:49:47 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
20:50:35 × Guest31772 quits (~mattl@185.204.1.185) (Remote host closed the connection)
20:51:54 juliagoda joins (~juliagoda@2a02:a31a:e13a:eb00:758f:d455:b475:46e4)
20:52:27 alx741 joins (~alx741@181.196.68.89)
20:52:46 × ChessGuevara quits (~chessguev@103.27.2.106) (Quit: Leaving)
20:55:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
20:55:45 mmfood_1 joins (~mmfood@45.91.21.32)
20:57:46 ddellac__ joins (~ddellacos@86.106.143.21)
20:58:31 × mmfood quits (~mmfood@185.176.246.118) (Ping timeout: 260 seconds)
21:00:53 ddella___ joins (~ddellacos@86.106.143.34)
21:01:05 × Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt)
21:01:27 <int-e> lordcirth_: Well the widgets don't have any static size (not even the fixed width/height ones); it's all determined during rendering. *Maybe* limiting the width using https://hackage.haskell.org/package/brick-0.62/docs/Brick-Widgets-Core.html#v:hLimit and then puting a maximal padding inside will do the trick. If not, this looks like really unpleasant twiddling with internals.
21:02:19 rond_ joins (5940206b@89-64-32-107.dynamic.chello.pl)
21:02:33 × ddellac__ quits (~ddellacos@86.106.143.21) (Ping timeout: 268 seconds)
21:03:24 <int-e> (I found https://hackage.haskell.org/package/brick-0.62/docs/src/Brick.Widgets.Core.html#renderBox and decided to not try to understand things further)
21:03:56 <int-e> (AIUI that function is responsible for vBox and hBox)
21:04:05 <lordcirth_> Maybe I need to use a table, with each widget centered in a cell?
21:04:41 <int-e> lordcirth_: Note that I've never used the library. Maybe somebody who has can help better.
21:08:21 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
21:08:21 EricYuzo joins (~EricYuzo@195.140.213.38)
21:09:12 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
21:11:13 <sm[m]> does brick support tables now ?
21:11:45 shailangsa joins (~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
21:12:12 Tracis joins (aa4f23ab@170-79-35-171.wantel.net.br)
21:12:17 <int-e> sm[m]: I saw that there is a Brick.Widgets.Table
21:12:33 <sm[m]> great!
21:12:54 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:13:12 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
21:13:42 <Tracis> First time here. Hi everyone
21:13:58 <argento> Tracis: Hi, welcome
21:16:20 <sm[m]> hi Tracis
21:16:27 untakenstupidnic is now known as INVALID_NICK
21:16:46 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
21:17:41 INVALID_NICK is now known as UNTAKENSTUPIDNIC
21:18:49 mmfood_2 joins (~mmfood@45.91.21.32)
21:20:42 × mmfood_1 quits (~mmfood@45.91.21.32) (Ping timeout: 260 seconds)
21:20:51 <Tracis> maybe it would be rude to ask right after i enter the chat, but. Do you guys have any recommended tutorial to learn haskell? (sry if i say something wrong, i'm practicing)
21:21:15 <int-e> sm[m]: The table rendering code contains `let paddedCells = ...`, maybe it's insane...
21:21:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:21:53 UNTAKENSTUPIDNIC is now known as ____
21:22:10 <sm[m]> Tracis: seems quite a reasonable, and frequent, question. Any particular style you like ? What's your background/experience level ?
21:23:20 <sm[m]> I'm fond of
21:23:21 <sm[m]> @where HTAC
21:23:21 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
21:25:03 <Tracis> sm[m]: html, css, js, react/react native, nodejs, c, c++, python3. But all in beginner level.
21:25:29 jamm_ joins (~jamm@unaffiliated/jamm)
21:25:31 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
21:26:00 × mmfood_2 quits (~mmfood@45.91.21.32) (Ping timeout: 268 seconds)
21:26:16 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
21:26:22 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
21:26:27 <argento> http://learnyouahaskell.com/ <- Tracis
21:26:37 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
21:26:40 jgt joins (~jgt@88.225.221.135)
21:27:10 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
21:27:27 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
21:27:35 <Tracis> Ty, lambdabot and argento
21:28:01 <Tracis> i'll take a look
21:29:03 <int-e> @bot
21:29:04 <lambdabot> :)
21:29:48 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:29:53 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
21:30:04 <DigitalKiwi> @where pih
21:30:04 <lambdabot> "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html>
21:30:49 <sm[m]> Tracis: also https://code.world and then https://code.world/haskell
21:31:25 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:31:31 <argento> @karma+ lambdabot
21:31:32 <lambdabot> lambdabot's karma raised to 38.
21:31:32 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 268 seconds)
21:31:39 argento it's only fair
21:32:41 <DigitalKiwi> idk that we should be letting the bot give itself karma
21:33:58 <DigitalKiwi> first you tell it to give itself karma and then the next thing you know it's doing it without being told!
21:33:59 Guest87676 joins (~laudiacay@67.176.215.84)
21:34:53 × michalz quits (~user@185.246.204.103) (Remote host closed the connection)
21:35:34 Tracis54 joins (aa4f23ab@170-79-35-171.wantel.net.br)
21:36:31 × Tracis quits (aa4f23ab@170-79-35-171.wantel.net.br) (Quit: Connection closed)
21:37:17 Tracis joins (aa4f23ab@170-79-35-171.wantel.net.br)
21:37:41 × jpe90 quits (~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
21:38:12 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
21:39:09 × mikoto-chan quits (~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
21:39:34 × stree quits (~stree@68.36.8.116) (Ping timeout: 252 seconds)
21:39:43 × Tracis54 quits (aa4f23ab@170-79-35-171.wantel.net.br) (Ping timeout: 240 seconds)
21:41:37 mikoto-chan joins (~mikoto-ch@gateway/tor-sasl/mikoto-chan)
21:42:16 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 260 seconds)
21:43:06 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
21:46:21 × ddella___ quits (~ddellacos@86.106.143.34) (Ping timeout: 260 seconds)
21:46:23 × Tracis quits (aa4f23ab@170-79-35-171.wantel.net.br) (Ping timeout: 240 seconds)
21:46:43 × cr3 quits (~cr3@192.222.143.195) (Ping timeout: 252 seconds)
21:47:23 × rj quits (~x@gateway/tor-sasl/rj) (Remote host closed the connection)
21:47:42 ____ is now known as untakenstupidnic
21:47:50 rj joins (~x@gateway/tor-sasl/rj)
21:50:46 × Guest23245 quits (~textual@zrcout.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:51:33 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:df5:3e62:d261:3647) (Ping timeout: 250 seconds)
21:51:45 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
21:52:22 <sclv> @botsnack
21:52:23 <lambdabot> :)
21:52:25 stree joins (~stree@68.36.8.116)
21:54:29 × untakenstupidnic quits (~user@5.114.130.12) (Read error: Connection reset by peer)
21:55:48 danso joins (~dan@23-233-111-52.cpe.pppoe.ca)
21:58:11 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:599c:a489:a3a:24f3)
21:59:59 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
22:00:29 <int-e> @botexercise
22:00:30 <lambdabot> Unknown command, try @list
22:02:22 × slack1256 quits (~slack1256@200-112-64-179.baf.movistar.cl) (Ping timeout: 268 seconds)
22:03:33 × mikoto-chan quits (~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
22:03:41 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
22:03:45 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
22:04:37 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Ping timeout: 276 seconds)
22:05:42 jpe90 joins (~user@pool-108-31-85-19.washdc.fios.verizon.net)
22:06:41 × wavemode_ quits (~wavemode@097-070-075-143.res.spectrum.com) (Ping timeout: 268 seconds)
22:07:42 seven_three joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
22:08:06 wavemode joins (~wavemode@097-070-075-143.res.spectrum.com)
22:09:16 <seven_three> If I have a lens that takes an argument, say `myLens :: Int -> Lens' SomeData String`, is it likely that I could use a different technique other than lenses?
22:09:42 × frobnicator quits (~frobnicat@185-227-75-147.dsl.cambrium.nl) (Ping timeout: 260 seconds)
22:10:26 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
22:11:53 <seven_three> s/could/should
22:13:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
22:14:27 × rond_ quits (5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed)
22:15:32 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
22:15:44 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
22:16:13 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:16:14 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:16:20 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
22:17:27 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:20:42 × nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
22:22:28 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
22:25:16 fendor_ joins (~fendor@77.119.128.145.wireless.dyn.drei.com)
22:26:00 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Remote host closed the connection)
22:26:24 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
22:28:06 × fendor quits (~fendor@77.119.129.46.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
22:33:08 × minoru_shiraeesh quits (~shiraeesh@5.101.59.47) (Ping timeout: 246 seconds)
22:38:03 × Guest35908 quits (~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d) (Ping timeout: 260 seconds)
22:38:20 nvmd joins (~nvmd@177.30.111.232)
22:39:44 dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net)
22:45:34 × LKoen quits (~LKoen@22.249.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
22:45:59 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
22:46:19 Guest87676 joins (~laudiacay@67.176.215.84)
22:46:45 × hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
22:47:35 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:47:36 <zzz> DigitalKiwi: if we can have self-compiling languages why not self-karma giving bots? i one wrote a test library that tested itself
22:48:00 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:51:52 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
22:51:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:52:51 ddellacosta joins (~ddellacos@86.106.143.138)
22:52:55 × Kaiepi quits (~Kaiepi@47.54.252.148) (Quit: Leaving)
22:55:46 × usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 260 seconds)
22:56:38 ski 'd personally prefer it with no karma system
22:56:39 <monochrom> I wrote a test program that tests those who don't test themselves.
22:56:44 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
22:57:52 × ddellacosta quits (~ddellacos@86.106.143.138) (Ping timeout: 268 seconds)
23:00:04 Alleria joins (~textual@2603-7000-3040-0000-159e-3a17-d3d5-238e.res6.spectrum.com)
23:00:28 Alleria is now known as Guest36107
23:02:51 nicholasbulka joins (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
23:03:10 × jpe90 quits (~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
23:04:21 × Guest36107 quits (~textual@2603-7000-3040-0000-159e-3a17-d3d5-238e.res6.spectrum.com) (Ping timeout: 250 seconds)
23:07:23 × nicholasbulka quits (~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Ping timeout: 250 seconds)
23:09:49 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
23:10:32 × Guest87676 quits (~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
23:13:42 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
23:15:35 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
23:15:49 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
23:16:14 mikoto-chan joins (~mikoto-ch@gateway/tor-sasl/mikoto-chan)
23:16:32 × argento quits (~argent0@168.227.97.34) (Ping timeout: 240 seconds)
23:17:39 × mikoto-chan quits (~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
23:17:53 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:18:39 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer)
23:22:30 Qwerky_ joins (~qwerky@37.168.128.229)
23:22:45 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
23:23:09 ep1ctetus_ joins (~epictetus@ip72-194-54-201.sb.sd.cox.net)
23:23:15 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
23:23:32 × proofofkeags quits (~proofofke@205.209.28.54) (Ping timeout: 246 seconds)
23:24:37 × Qwerky quits (~qwerky@37.170.132.154) (Ping timeout: 252 seconds)
23:25:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
23:25:43 ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
23:26:06 × epicte7us quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 240 seconds)
23:26:49 brownxoat joins (uid497520@gateway/web/irccloud.com/x-oixgpoqiqdtzpkhf)
23:27:28 zaquest joins (~notzaques@5.128.210.178)
23:27:35 jgt joins (~jgt@88.225.221.135)
23:29:00 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 265 seconds)
23:30:07 × ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
23:30:50 pthariensflame joins (~pthariens@2600:6c52:727f:4200:30e1:2f2d:f07a:206a)
23:31:39 × pthariensflame quits (~pthariens@2600:6c52:727f:4200:30e1:2f2d:f07a:206a) (Client Quit)
23:31:46 × jgt quits (~jgt@88.225.221.135) (Ping timeout: 240 seconds)
23:31:53 × shailangsa quits (~shailangs@host217-35-224-169.range217-35.btcentralplus.com) ()
23:35:02 <sm[m]> bots with karma! next you'll be saying they have souls, feelings, rights
23:36:26 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
23:40:35 × dmytrish quits (~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec) (Ping timeout: 260 seconds)
23:40:40 × lordcirth_ quits (~lordcirth@2607:f2c0:95b3:4400:486b:2c7b:87d6:2af0) (Remote host closed the connection)
23:40:41 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
23:40:56 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
23:41:15 <monochrom> Bots don't want to be anthropomorphized. >:)
23:42:34 <monochrom> Years ago I did that to information. There were liberal extremists who positted "information wants to be free". Well, I'm sure as hell information doesn't want to be anthropomorphized.
23:43:20 × dvdp73 quits (59736826@38.104.115.89.rev.vodafone.pt) (Quit: Connection closed)
23:45:51 <monochrom> https://www.smbc-comics.com/comic/agi
23:46:14 horatiohb joins (~horatiohb@159.203.87.174)
23:50:19 vicfred joins (~vicfred@unaffiliated/vicfred)
23:52:44 lordcirth joins (~lordcirth@2607:f2c0:95b3:4400:743b:c03e:fba8:e4e0)
23:53:45 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds)
23:55:52 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
23:56:13 Tario joins (~Tario@200.119.187.173)

All times are in UTC on 2021-04-29.