2021/01/09

2021-01-09 00:00:17 +0100 <monochrom> data XE = forall r. {c1 :: Int -> r, c2 :: Bool -> r} -> r
2021-01-09 00:00:36 +0100 <pie_> merijn: aha
2021-01-09 00:00:48 +0100 <ph88> how can i write a function that generates an infinite list from "a" to "z" and then "aa" to "zz", "aaa" to "zzz" and so on ?
2021-01-09 00:01:16 +0100keltono(~keltono@x-160-94-179-178.acm.umn.edu)
2021-01-09 00:01:23 +0100 <pie_> ph88: i dont know but that sounds like generating numbers, so how would you generate numbers
2021-01-09 00:01:44 +0100 <ph88> divide by 26 for all letters of alphabet
2021-01-09 00:02:51 +0100 <monochrom> So I can't write "C1 4 :: X" but I can write "(\o -> o.c1 4) :: XE". Similarly for C2.
2021-01-09 00:03:23 +0100dcbdnl(~dcbdnl@2601:2c6:4e00:2d20:4685:ff:fecf:3992) (Quit: dcbdnl)
2021-01-09 00:03:42 +0100 <monochrom> And I can't write "f (C1 i) = show i; f (C2 b) = show b", but I can write:
2021-01-09 00:04:16 +0100 <monochrom> f xe = xe {c1 = show, c2 = show}
2021-01-09 00:04:33 +0100 <monochrom> Does my language count as "has sum types" or not?
2021-01-09 00:04:59 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-01-09 00:05:06 +0100 <monochrom> How would you feel about using my language? Is it good enough?
2021-01-09 00:06:15 +0100 <ph88> when a list comprehension becomes a bit too bit with the [ ] can i write it in do notation ?
2021-01-09 00:06:22 +0100HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
2021-01-09 00:06:47 +0100 <monochrom> Yes. Or use very nice indentation.
2021-01-09 00:06:54 +0100 <monochrom> [ f x y
2021-01-09 00:07:01 +0100 <monochrom> | x <- list1
2021-01-09 00:07:05 +0100 <monochrom> , y <- list2
2021-01-09 00:07:09 +0100 <ph88> oki
2021-01-09 00:07:13 +0100 <monochrom> , x > 0
2021-01-09 00:07:15 +0100 <monochrom> , y < 0
2021-01-09 00:07:16 +0100 <monochrom> ]
2021-01-09 00:09:11 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 00:11:02 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-09 00:12:34 +0100_deepfire(~user@80.92.100.69)
2021-01-09 00:12:38 +0100nucranium(~nucranium@2a02:8010:6173:0:34f4:f022:f40c:bc2c) (Ping timeout: 264 seconds)
2021-01-09 00:14:53 +0100 <ski> ph88 : so first all lists of one length, then all of the next larger length, &c. ?
2021-01-09 00:15:06 +0100 <ph88> yes
2021-01-09 00:15:26 +0100 <ski> perhaps you could start by picking the length, then ?
2021-01-09 00:15:37 +0100 <ph88> yes working on it
2021-01-09 00:16:15 +0100ADG1089__(~aditya@122.163.165.143) (Remote host closed the connection)
2021-01-09 00:16:21 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-09 00:17:53 +0100knupfer(~Thunderbi@200116b82c8bca0018e1e3fffeba4133.dip.versatel-1u1.de)
2021-01-09 00:18:34 +0100 <ski> > take 15 (allCombinations "01")
2021-01-09 00:18:37 +0100 <lambdabot> ["","0","1","00","01","10","11","000","001","010","011","100","101","110","1...
2021-01-09 00:18:48 +0100knupfer(~Thunderbi@200116b82c8bca0018e1e3fffeba4133.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-09 00:19:03 +0100knupfer(~Thunderbi@200116b82c8bca00ad1bd0c74650766d.dip.versatel-1u1.de)
2021-01-09 00:23:02 +0100 <ph88> ski, a, b, c to z then aa, ab, ac .. az, ba, bb, bc .. zz, aaa, aab
2021-01-09 00:23:36 +0100 <ph88> i have this now, work in progress https://bpa.st/SPQQ
2021-01-09 00:24:32 +0100ski. o O ( `combination(Letters,Word) :- between(0,inf,N),length(Word,N),maplist(has_element(Letters),Word). has_element(List,Element) :- member(Element,List).' )
2021-01-09 00:24:56 +0100 <ph88> is that prolog ??
2021-01-09 00:25:01 +0100 <ski> yes
2021-01-09 00:25:07 +0100conal(~conal@64.71.133.70)
2021-01-09 00:25:13 +0100 <ph88> cool =)
2021-01-09 00:25:25 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Quit: leaving)
2021-01-09 00:25:33 +0100 <ph88> i'm programming in haskell however, trying to use list comprehension on infinite list
2021-01-09 00:25:38 +0100 <pie_> monochrom: well the representation feels pretty alien and unergonomic :p but im not used to it
2021-01-09 00:26:06 +0100 <pie_> still just trying to process it but it kind of looks like sum types given that i know its supposed to be sum types :
2021-01-09 00:26:08 +0100 <pie_> :P
2021-01-09 00:27:11 +0100 <pie_> ski: nice
2021-01-09 00:27:53 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-01-09 00:28:00 +0100nnst^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-01-09 00:28:07 +0100 <ski> hm, afaics, you're not picking length
2021-01-09 00:28:42 +0100 <ph88> are you talking to me ?
2021-01-09 00:28:49 +0100skiidly wonders whether pie_'s heard of the Visitor Pattern
2021-01-09 00:28:51 +0100 <ski> yes
2021-01-09 00:29:11 +0100 <pie_> yes but me "hearing" about something sadly doesnt mean much
2021-01-09 00:29:29 +0100skinods
2021-01-09 00:29:55 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
2021-01-09 00:29:58 +0100 <glguy> number `rem` (26 ^ divisor) -- is probably supposed to be -- (number `div` (26^divisor) `rem` 26)
2021-01-09 00:30:19 +0100 <pie_> it would probably be good to learn more about encoding oop in haskell
2021-01-09 00:31:41 +0100 <ski> (we don't know how `getLetter' is intended to be called, yet)
2021-01-09 00:32:40 +0100 <glguy> ski: at the moment it's best not to call it
2021-01-09 00:33:15 +0100 <ski> i'd prefer to iteratively use `divMod', if i was taking this approach, yes
2021-01-09 00:33:47 +0100michalz(~user@185.246.204.79) (Remote host closed the connection)
2021-01-09 00:34:05 +0100 <monochrom> I might use https://www.cs.dartmouth.edu/~doug/nfa.pdf , its "union" and "xprod" functions, and write "az = ['a'..'z'] ++ xprod (:) ['a'..'z'] az"
2021-01-09 00:34:34 +0100 <glguy> > let column n = showIntAtBase 26 (\i -> chr (ord 'a' + i)) n "" in map column [0,10,26,30]
2021-01-09 00:34:36 +0100 <lambdabot> ["a","k","ba","be"]
2021-01-09 00:34:40 +0100 <monochrom> err, no, need LOL wrappers
2021-01-09 00:34:54 +0100 <glguy> and then pad out the 'a's
2021-01-09 00:35:41 +0100 <monochrom> az = map LOL ['a'..'z'] ++ xprod (\c (LOL cs) -> LOL (c : cs)) ['a'..'z'] az
2021-01-09 00:35:42 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2021-01-09 00:36:04 +0100 <ephemient> > let as = [] : (flip (:) <$> as <*> ['a'..'z']) in as
2021-01-09 00:36:07 +0100 <lambdabot> ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r",...
2021-01-09 00:36:37 +0100ericsagnes(~ericsagne@2405:6580:0:5100:e508:d43e:e329:fdb5) (Ping timeout: 244 seconds)
2021-01-09 00:36:57 +0100 <monochrom> > let as = [] : (flip (:) <$> as <*> ['a'..'z']) in drop (26+26) as
2021-01-09 00:37:01 +0100 <lambdabot> ["za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb",...
2021-01-09 00:37:10 +0100 <ski> > let as = [] : (flip (:) <$> as <*> "01") in take 15 as
2021-01-09 00:37:14 +0100 <lambdabot> ["","0","1","00","10","01","11","000","100","010","110","001","101","011","1...
2021-01-09 00:37:52 +0100kyali(~kyali@APN-123-248-168-gprs.simobil.net) (Remote host closed the connection)
2021-01-09 00:38:38 +0100 <pie_> LOL wrappers 'xD
2021-01-09 00:39:00 +0100 <pie_> im too neurotypical to not be hung up on that
2021-01-09 00:39:22 +0100fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar)
2021-01-09 00:42:49 +0100 <ski> monochrom : i guess you want singletons there
2021-01-09 00:42:52 +0100 <ph88> updated version, still work in progress https://bpa.st/3H5A
2021-01-09 00:43:37 +0100knupfer(~Thunderbi@200116b82c8bca00ad1bd0c74650766d.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-09 00:43:47 +0100 <ski> @type \div number -> number `div` (26 ^ div)
2021-01-09 00:43:49 +0100 <lambdabot> (Integral (t1 -> t2 -> t3), Num t2) => (t1 -> t2 -> t3) -> t1 -> t3
2021-01-09 00:47:01 +0100fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar) (Ping timeout: 264 seconds)
2021-01-09 00:48:04 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2021-01-09 00:49:19 +0100ericsagnes(~ericsagne@2405:6580:0:5100:ff66:bb34:7221:2b3d)
2021-01-09 00:49:20 +0100 <ephemient> ph88: fwiw excel stops at 2^14 columns, not an infinite sequence of names. probably not relevant to your exercise though :P
2021-01-09 00:49:37 +0100 <ph88> ye
2021-01-09 00:49:53 +0100 <ph88> it's not really for excel either i just need a similar naming scheme
2021-01-09 00:50:03 +0100 <ph88> not that i need that long sequence .. but ye haskell lol
2021-01-09 00:53:02 +0100fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar)
2021-01-09 00:55:06 +0100Icewing(~Icewing@unaffiliated/icewing) (Remote host closed the connection)
2021-01-09 00:55:45 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
2021-01-09 00:56:01 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br) (Ping timeout: 264 seconds)
2021-01-09 00:56:21 +0100rajivr(uid269651@gateway/web/irccloud.com/x-dmdothxqoypgdjpl)
2021-01-09 00:56:32 +0100 <ephemient> one problem with this number approach is that a, aa, aaa... etc. cannot all be generated from 0 = 00 = 000...
2021-01-09 01:01:32 +0100 <monochrom> yeah, that one is a bummer.
2021-01-09 01:01:39 +0100 <ephemient> come to think of it, this probably has better memory behavior than the knot-tying one:
2021-01-09 01:01:41 +0100 <ephemient> > flip replicateM "01" =<< [1..]
2021-01-09 01:01:44 +0100 <lambdabot> ["0","1","00","01","10","11","000","001","010","011","100","101","110","111"...
2021-01-09 01:01:58 +0100 <monochrom> heh
2021-01-09 01:02:29 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-09 01:02:46 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 01:03:07 +0100zincy_(~tom@2a00:23c8:970a:3501:38a6:4546:df42:c1cb) (Remote host closed the connection)
2021-01-09 01:03:08 +0100zincy__(~tom@host86-182-43-65.range86-182.btcentralplus.com)
2021-01-09 01:04:12 +0100Tario(~Tario@201.192.165.173)
2021-01-09 01:04:25 +0100fcortesi(~fcortesi@78-66-245-190.fibertel.com.ar) (Ping timeout: 264 seconds)
2021-01-09 01:05:41 +0100 <ski> (that was what `allCombinations' above did, except it started at `0')
2021-01-09 01:06:28 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-09 01:06:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-09 01:07:56 +0100 <ephemient> although if I think about it as excel columns, the number solution would work if you use each ∑_{i=1}^n 26^i = (26^(n+1)-1)/25-1 as a base for length-n strings
2021-01-09 01:09:20 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:4c51:83e:647e:c991)
2021-01-09 01:09:56 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 240 seconds)
2021-01-09 01:11:36 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-01-09 01:12:39 +0100ph88(~ph88@2a02:8109:9e00:7e5c:4c51:83e:647e:c991) (Ping timeout: 272 seconds)
2021-01-09 01:14:13 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-09 01:14:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-09 01:15:50 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-01-09 01:19:14 +0100nnst^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-01-09 01:21:45 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-09 01:23:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 01:25:19 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 246 seconds)
2021-01-09 01:25:59 +0100nineonine(~nineonine@50.216.62.2) (Remote host closed the connection)
2021-01-09 01:26:30 +0100nineonine(~nineonine@50.216.62.2)
2021-01-09 01:27:09 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-01-09 01:27:53 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-01-09 01:31:45 +0100new_haskeller(ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds)
2021-01-09 01:36:48 +0100_linker_(~linker@185-12-21-77.sigma.jaslo.pl) (Remote host closed the connection)
2021-01-09 01:38:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 01:43:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-09 01:44:34 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.28.247)
2021-01-09 01:47:55 +0100 <ph88^> oh solved it, easy peazy f=(!!)(sequence=<<(tail$iterate(['A'..'Z']:)[]))
2021-01-09 01:49:07 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2021-01-09 01:49:21 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net)
2021-01-09 01:49:28 +0100Tops2(~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de) (Quit: Leaving.)
2021-01-09 01:50:13 +0100 <ph88^> ok that wasn't what i wanted but still cool https://codegolf.stackexchange.com/a/3973
2021-01-09 01:52:08 +0100freeman42x[m](freeman42x@gateway/shell/matrix.org/x-tgneiyxcgqrblnuy)
2021-01-09 01:52:44 +0100 <ephemient> if you're golfing, f=((`replicateM`['A'..'Z'])=<<[1..]!!).succ beats that
2021-01-09 01:52:56 +0100 <ephemient> err, take off the `succ`
2021-01-09 01:53:52 +0100 <freeman42x[m]> is there some Haskell program or REPL feature to convert an expression into the equivalent version but with parentheses?
2021-01-09 01:53:58 +0100carlomagno1(~cararell@148.87.23.7) (Quit: Leaving.)
2021-01-09 01:54:22 +0100 <ephemient> > let f=(((`replicateM`['A'..'Z'])=<<[1..])!!) in f 16383
2021-01-09 01:54:23 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2021-01-09 01:54:24 +0100 <lambdabot> "XFD"
2021-01-09 01:54:33 +0100 <ephemient> > let f=(!!)(sequence=<<(tail$iterate(['A'..'Z']:)[])) in f 16383
2021-01-09 01:54:36 +0100 <lambdabot> "XFD"
2021-01-09 01:54:54 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-09 01:55:36 +0100 <ph88^> ephemient, no i'm not golfing .. just would like a version that doesn't need to be passed in a number but instead generates an infinite list
2021-01-09 01:55:46 +0100 <ph88^> spend 1.5 hours on it, but i can't seem to get the numbers right
2021-01-09 01:56:15 +0100 <ephemient> just take the (!!) off of those?
2021-01-09 01:56:19 +0100 <ph88^> i have this but it is bugged https://bpa.st/PW7Q
2021-01-09 01:56:44 +0100 <ph88^> oh ok ill take !! off
2021-01-09 01:57:09 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 01:58:14 +0100 <ph88^> hum .. when i want Text instead of String where would i have to insert the pack function ?
2021-01-09 01:58:57 +0100 <ephemient> > let f=T.pack<$>(((`replicateM`['A'..'Z'])=<<[1..])) in f!!16383
2021-01-09 01:59:00 +0100 <lambdabot> error:
2021-01-09 01:59:00 +0100 <lambdabot> Not in scope: ‘T.pack’
2021-01-09 01:59:00 +0100 <lambdabot> Perhaps you meant ‘BS.pack’ (imported from Data.ByteString)
2021-01-09 01:59:17 +0100 <ephemient> > let f=Data.Text.pack<$>(((`replicateM`['A'..'Z'])=<<[1..])) in f!!16383
2021-01-09 01:59:20 +0100 <lambdabot> error:
2021-01-09 01:59:20 +0100 <lambdabot> Not in scope: ‘Data.Text.pack’
2021-01-09 01:59:20 +0100 <lambdabot> No module named ‘Data.Text’ is imported.
2021-01-09 01:59:38 +0100 <ephemient> bah, not in lambdabot's default imports?
2021-01-09 01:59:53 +0100 <ephemient> @define import qualified Data.Text as T
2021-01-09 01:59:55 +0100 <lambdabot> Defined.
2021-01-09 02:00:02 +0100 <ephemient> > let f=T.pack<$>(((`replicateM`['A'..'Z'])=<<[1..])) in f!!16383
2021-01-09 02:00:09 +0100 <lambdabot> mueval-core: Time limit exceeded
2021-01-09 02:00:25 +0100 <ephemient> hrm.
2021-01-09 02:00:26 +0100 <ph88^> eh sorry i was going with this variant
2021-01-09 02:00:29 +0100 <ph88^> (concatMap sequence $ tail $ iterate (['A'..'Z'] :) [])
2021-01-09 02:00:39 +0100 <ph88^> but i guess i can do fmap T.pack ?
2021-01-09 02:00:55 +0100 <ph88^> or just map
2021-01-09 02:01:13 +0100 <ph88^> hhmm timelimit exceed is suspecious
2021-01-09 02:01:20 +0100 <ephemient> > tail $ map T.pack $ concatMap sequence $ inits $ repeat ['A'..'Z']
2021-01-09 02:01:23 +0100 <lambdabot> ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S"...
2021-01-09 02:01:39 +0100 <ephemient> > drop 50 $ map T.pack $ concatMap sequence $ inits $ repeat ['A'..'Z']
2021-01-09 02:01:42 +0100 <lambdabot> ["AX","AY","AZ","BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BL",...
2021-01-09 02:01:50 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 264 seconds)
2021-01-09 02:03:19 +0100 <ph88^> looks good, thanks ephemient :)
2021-01-09 02:03:39 +0100christo(~chris@81.96.113.213)
2021-01-09 02:05:18 +0100plutoniix(~q@node-uru.pool-125-24.dynamic.totinternet.net) (Remote host closed the connection)
2021-01-09 02:06:10 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net) ("ERC (IRC client for Emacs 28.0.50)")
2021-01-09 02:06:19 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-01-09 02:07:46 +0100 <ephemient> freeman42x[m]: surprisingly, I can't find any
2021-01-09 02:08:30 +0100christo(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-01-09 02:09:30 +0100 <ephemient> I mean, lambdabot does have @unpl, but that adds points, not parentheses
2021-01-09 02:12:13 +0100freeman42x[m]sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/ielJiCPIQPTAOIpaLoTbhTUI/message.txt >
2021-01-09 02:14:04 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 260 seconds)
2021-01-09 02:14:46 +0100 <int-e> @where L.hs
2021-01-09 02:14:46 +0100 <lambdabot> what lambdabot has in scope is at https://silicon.int-e.eu/lambdabot/State/Pristine.hs
2021-01-09 02:14:53 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-09 02:15:29 +0100 <int-e> interesting. I thought Data.Text was in there by now
2021-01-09 02:17:05 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2021-01-09 02:17:07 +0100 <int-e> @undef
2021-01-09 02:17:07 +0100 <lambdabot> Undefined.
2021-01-09 02:17:11 +0100 <int-e> :t Text.pack
2021-01-09 02:17:12 +0100 <lambdabot> String -> Text.Text
2021-01-09 02:17:24 +0100 <int-e> (T is used for Traversable, somehow)
2021-01-09 02:17:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 02:17:48 +0100 <int-e> that doesn't make any sense anymore though, does it?
2021-01-09 02:18:18 +0100 <ephemient> I don't think so. importing Traversable unqualified should be fine...
2021-01-09 02:18:19 +0100 <int-e> :t T.forM
2021-01-09 02:18:20 +0100 <lambdabot> (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
2021-01-09 02:18:32 +0100 <ephemient> :t forM
2021-01-09 02:18:33 +0100 <lambdabot> (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
2021-01-09 02:18:51 +0100 <int-e> Oh, it's *also* imported unqualified anyway.
2021-01-09 02:19:17 +0100 <int-e> @undef
2021-01-09 02:19:17 +0100 <lambdabot> Undefined.
2021-01-09 02:19:20 +0100 <int-e> :t T.pack
2021-01-09 02:19:21 +0100 <lambdabot> String -> T.Text
2021-01-09 02:19:27 +0100 <int-e> fine let's do it this way
2021-01-09 02:21:55 +0100 <Athas> What is the most efficient way to create an unboxed vector from a ByteString? Currently I use genericGetVectorWith, but it is slow and I am impatient.
2021-01-09 02:22:49 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 02:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 02:24:20 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 272 seconds)
2021-01-09 02:27:09 +0100ThoaiOnline(~ThoaiOnli@nv.tho.ai) ()
2021-01-09 02:29:24 +0100columbarius1(~columbari@mue-88-130-54-078.dsl.tropolys.de) (Ping timeout: 272 seconds)
2021-01-09 02:31:20 +0100columbarius1(~columbari@i5E86B3D4.versanet.de)
2021-01-09 02:33:34 +0100raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-01-09 02:36:01 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 246 seconds)
2021-01-09 02:40:49 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-09 02:41:28 +0100acidjnk_new(~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-09 02:41:44 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-09 02:42:41 +0100 <ephemient> Athas: close enough? https://www.irccloud.com/pastebin/lbu13Vm0/
2021-01-09 02:43:52 +0100 <Athas> ephemient: yeah, I'm now playing with the bytestring-to-vector package, which is basically that.
2021-01-09 02:43:55 +0100 <Athas> We'll see how fast it is...
2021-01-09 02:45:58 +0100conal(~conal@64.71.133.70)
2021-01-09 02:46:38 +0100 <ephemient> package is 0-copy, ^^ is 1-copy. in theory, copy is safer, as BS slices can be unaligned, but mine is untested so that doesn't help with the safety :D
2021-01-09 02:46:51 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-122.cust.tzulo.com)
2021-01-09 02:47:39 +0100 <Athas> The ByteStrings I have are definitely unaligned, but I think that's fine on all the hardware I will be running on. And I could also accept a copy as long as it's actually running a something close to memcpy() speed.
2021-01-09 02:49:28 +0100 <ephemient> copyArray uses copyBytes which is memcpy
2021-01-09 02:50:49 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Ping timeout: 272 seconds)
2021-01-09 02:51:24 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Quit: carthia)
2021-01-09 02:51:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-09 02:52:49 +0100thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-01-09 02:55:07 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 02:59:33 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
2021-01-09 03:01:19 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-09 03:02:53 +0100 <Athas> Oh wow, storable vectors are bloody fast.
2021-01-09 03:03:02 +0100 <Athas> This outcome pleases me.
2021-01-09 03:03:17 +0100 <Athas> Maybe this Haskell thing is good for something after all!
2021-01-09 03:12:01 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-09 03:12:50 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 03:21:02 +0100Kaeipi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-01-09 03:21:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 03:21:44 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-01-09 03:22:49 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 03:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 03:24:26 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-01-09 03:24:31 +0100kupi(uid212005@gateway/web/irccloud.com/x-xikvdfvfkemgovqv) (Quit: Connection closed for inactivity)
2021-01-09 03:25:21 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-01-09 03:27:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-09 03:28:51 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-09 03:31:36 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-09 03:34:41 +0100ericsagnes(~ericsagne@2405:6580:0:5100:ff66:bb34:7221:2b3d) (Quit: WeeChat 3.0)
2021-01-09 03:34:45 +0100DataComp_(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 240 seconds)
2021-01-09 03:35:37 +0100vonfry(~user@116.236.75.207)
2021-01-09 03:36:47 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2021-01-09 03:37:05 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-09 03:38:16 +0100petersen(~petersen@redhat/juhp)
2021-01-09 03:39:13 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2021-01-09 03:39:38 +0100xff0x(~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d) (Ping timeout: 264 seconds)
2021-01-09 03:41:10 +0100xff0x(~fox@2001:1a81:5386:5c00:d33d:3a64:e310:3fd)
2021-01-09 03:46:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-01-09 03:49:21 +0100Tario(~Tario@201.192.165.173)
2021-01-09 03:53:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 03:54:16 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 272 seconds)
2021-01-09 03:55:51 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-09 03:56:15 +0100dandels(~dandels@unaffiliated/dandels)
2021-01-09 03:57:34 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2021-01-09 04:03:17 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-09 04:03:18 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2021-01-09 04:03:18 +0100lagothrixGuest9629
2021-01-09 04:03:18 +0100Guest9629(~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services)))
2021-01-09 04:03:18 +0100xirhtogallagothrix
2021-01-09 04:04:42 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-09 04:05:02 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-01-09 04:07:40 +0100Tario(~Tario@201.192.165.173)
2021-01-09 04:07:43 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-01-09 04:08:31 +0100loli(~loli@024-171-017-003.res.spectrum.com)
2021-01-09 04:09:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 04:09:38 +0100haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 256 seconds)
2021-01-09 04:09:56 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-09 04:10:25 +0100haritz(~hrtz@62.3.70.206)
2021-01-09 04:10:25 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2021-01-09 04:10:25 +0100haritz(~hrtz@unaffiliated/haritz)
2021-01-09 04:15:45 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-01-09 04:19:31 +0100drbean(~drbean@TC210-63-209-169.static.apol.com.tw)
2021-01-09 04:19:37 +0100_bin(~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29) (Read error: Connection reset by peer)
2021-01-09 04:19:55 +0100_bin(~bin@2600:1700:10a1:38d0:20be:8d7e:7dcc:6ee)
2021-01-09 04:27:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-09 04:34:43 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-01-09 04:36:54 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-09 04:37:01 +0100christo(~chris@81.96.113.213)
2021-01-09 04:37:26 +0100conal(~conal@64.71.133.70)
2021-01-09 04:37:36 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-09 04:39:01 +0100conal(~conal@64.71.133.70)
2021-01-09 04:39:02 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-09 04:42:37 +0100plutoniix(~q@184.82.200.176)
2021-01-09 04:44:31 +0100howdoi(uid224@gateway/web/irccloud.com/x-lmcddsyzezhgbtrc) (Quit: Connection closed for inactivity)
2021-01-09 04:47:37 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-09 04:48:51 +0100dcbdnl(~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net)
2021-01-09 04:48:56 +0100jmchael(~jmchael@87.112.235.234) (Ping timeout: 240 seconds)
2021-01-09 04:49:43 +0100theDon(~td@muedsl-82-207-238-128.citykom.de) (Ping timeout: 246 seconds)
2021-01-09 04:51:09 +0100mizlan(~michaella@c-67-169-7-31.hsd1.ca.comcast.net)
2021-01-09 04:51:35 +0100theDon(~td@94.134.91.100)
2021-01-09 04:51:58 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-09 04:52:16 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.28.247) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 04:52:40 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2021-01-09 04:56:14 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-09 04:58:57 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-09 04:59:10 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-dhvdirleecffuxmg) (Quit: Connection closed for inactivity)
2021-01-09 05:00:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 05:02:25 +0100dandels(~dandels@unaffiliated/dandels) (Ping timeout: 240 seconds)
2021-01-09 05:02:49 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-09 05:04:06 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-09 05:04:26 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 265 seconds)
2021-01-09 05:04:42 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-09 05:04:48 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-01-09 05:05:01 +0100conal(~conal@64.71.133.70)
2021-01-09 05:05:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-09 05:05:27 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2021-01-09 05:05:41 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-09 05:07:13 +0100Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-01-09 05:07:47 +0100conal(~conal@64.71.133.70)
2021-01-09 05:08:28 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-01-09 05:12:17 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-01-09 05:13:46 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
2021-01-09 05:15:26 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-09 05:17:39 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2021-01-09 05:18:20 +0100zaquest(~notzaques@5.128.210.178)
2021-01-09 05:20:48 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-01-09 05:22:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 05:23:04 +0100 <mniip> jle`, typelits-witnesses is a godsend
2021-01-09 05:23:09 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 05:23:27 +0100 <mniip> idk if you've thought of this mode of operation, but I just kinda sick them in pattern guards
2021-01-09 05:23:37 +0100 <mniip> | SNat <- SNat @n %+ SNat @1
2021-01-09 05:24:23 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Quit: Leaving)
2021-01-09 05:25:16 +0100 <jle`> oooh
2021-01-09 05:25:23 +0100 <jle`> that's pretty nice
2021-01-09 05:25:33 +0100 <jle`> it's like what i do when i'm in do notation but more versatile
2021-01-09 05:27:45 +0100Wuzzy(~Wuzzy@p5790e648.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-01-09 05:31:33 +0100mizlan(~michaella@c-67-169-7-31.hsd1.ca.comcast.net) (Quit: leaving)
2021-01-09 05:31:47 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-09 05:36:33 +0100ericsagnes(~ericsagne@2405:6580:0:5100:11a3:b482:963:8773)
2021-01-09 05:38:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 05:38:32 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-hbgqrvvjcuvgthgl) ()
2021-01-09 05:46:47 +0100vonfry(~user@116.236.75.207) (Remote host closed the connection)
2021-01-09 05:47:43 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2021-01-09 05:47:44 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
2021-01-09 05:49:14 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-09 05:49:15 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-09 05:50:32 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net)
2021-01-09 05:55:00 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net) (Remote host closed the connection)
2021-01-09 05:56:10 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-122.cust.tzulo.com) (Quit: Leaving)
2021-01-09 05:56:35 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 06:01:14 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 264 seconds)
2021-01-09 06:03:32 +0100dfeuer(~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-01-09 06:03:54 +0100drbean(~drbean@TC210-63-209-169.static.apol.com.tw) (Ping timeout: 260 seconds)
2021-01-09 06:05:50 +0100tsrt^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-01-09 06:06:23 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-09 06:10:03 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2021-01-09 06:10:13 +0100nineonine(~nineonine@50.216.62.2)
2021-01-09 06:11:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-09 06:13:01 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds)
2021-01-09 06:14:42 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 06:15:25 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2021-01-09 06:15:28 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 06:16:22 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 06:17:10 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 06:17:26 +0100tlockney(~tlockney@185.204.1.185) (Remote host closed the connection)
2021-01-09 06:17:38 +0100ericsagn1(~ericsagne@2405:6580:0:5100:97c0:58e7:7088:af23)
2021-01-09 06:17:55 +0100nineonine(~nineonine@50.216.62.2)
2021-01-09 06:19:14 +0100ericsagnes(~ericsagne@2405:6580:0:5100:11a3:b482:963:8773) (Ping timeout: 264 seconds)
2021-01-09 06:19:44 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-01-09 06:20:49 +0100gentauro(~gentauro@unaffiliated/gentauro) (Ping timeout: 260 seconds)
2021-01-09 06:21:32 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net)
2021-01-09 06:22:16 +0100gentauro(~gentauro@unaffiliated/gentauro)
2021-01-09 06:27:37 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-01-09 06:28:21 +0100drbean(~drbean@TC210-63-209-21.static.apol.com.tw)
2021-01-09 06:28:48 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2021-01-09 06:29:36 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
2021-01-09 06:32:30 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 06:33:36 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-01-09 06:36:23 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-09 06:36:45 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 265 seconds)
2021-01-09 06:42:58 +0100monochrom(trebla@216.138.220.146)
2021-01-09 06:43:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 06:43:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 06:45:28 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-09 06:47:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-09 06:48:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-09 06:56:08 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-09 06:57:53 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 06:58:29 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-01-09 06:58:50 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-09 07:01:02 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
2021-01-09 07:01:06 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br)
2021-01-09 07:02:43 +0100xsperry(~as@unaffiliated/xsperry) (Ping timeout: 246 seconds)
2021-01-09 07:02:48 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
2021-01-09 07:04:07 +0100mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2021-01-09 07:05:02 +0100xsperry(~as@unaffiliated/xsperry)
2021-01-09 07:05:34 +0100mozzarella(~sam@unaffiliated/sam113101)
2021-01-09 07:07:06 +0100mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2021-01-09 07:09:26 +0100mozzarella(~sam@unaffiliated/sam113101)
2021-01-09 07:09:32 +0100echoreply(~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1)
2021-01-09 07:09:54 +0100mozzarella(~sam@unaffiliated/sam113101) (Remote host closed the connection)
2021-01-09 07:10:03 +0100echoreply(~echoreply@unaffiliated/echoreply)
2021-01-09 07:11:15 +0100mozzarella(~sam@unaffiliated/sam113101)
2021-01-09 07:13:44 +0100 <mniip> jle`, how would I glue `P (n + 1)` and `P 0` together?
2021-01-09 07:14:20 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 07:16:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 07:16:29 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c848:157c:805d:521b)
2021-01-09 07:20:36 +0100 <MarcelineVQ> not an answer: better luck with 1 + n with most definitions of +
2021-01-09 07:21:02 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c848:157c:805d:521b) (Ping timeout: 264 seconds)
2021-01-09 07:25:57 +0100xsperry(~as@unaffiliated/xsperry) (Read error: Connection reset by peer)
2021-01-09 07:26:01 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
2021-01-09 07:28:12 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-01-09 07:28:13 +0100 <mniip> MarcelineVQ, yea but GHC.TypeLits.Nat is not an inductive
2021-01-09 07:28:25 +0100 <mniip> the two are equally obtuse
2021-01-09 07:28:35 +0100 <MarcelineVQ> ok :>
2021-01-09 07:29:23 +0100xsperry(~as@unaffiliated/xsperry)
2021-01-09 07:32:08 +0100noecho(~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - http://znc.in)
2021-01-09 07:32:42 +0100noecho(~noecho@2a01:4f8:1c0c:80ee::4223)
2021-01-09 07:33:29 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-01-09 07:36:03 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2021-01-09 07:36:56 +0100 <mniip> jle`, the connection between SCmpNat and :<=? is very obtuse
2021-01-09 07:38:35 +0100nly(~user@122.177.255.225)
2021-01-09 07:39:09 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 07:39:20 +0100jedws(~jedws@121.209.189.201)
2021-01-09 07:40:09 +0100 <nly> any library for FUSE?
2021-01-09 07:40:38 +0100 <nly> nix search hfuse -> nothing
2021-01-09 07:42:05 +0100visage_(~visage_@unaffiliated/visage/x-6658724)
2021-01-09 07:42:50 +0100ArConan(9de62a69@157.230.42.105)
2021-01-09 07:43:08 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-09 07:43:29 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-09 07:43:38 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
2021-01-09 07:43:49 +0100 <dsal> @hoogle fuse
2021-01-09 07:43:49 +0100 <lambdabot> Data.Conduit fuse :: Monad m => Conduit a m b -> ConduitM b c m r -> ConduitM a c m r
2021-01-09 07:43:49 +0100 <lambdabot> Data.Conduit.Internal fuse :: Monad m => Conduit a m b -> ConduitM b c m r -> ConduitM a c m r
2021-01-09 07:43:49 +0100 <lambdabot> Prettyprinter fuse :: FusionDepth -> Doc ann -> Doc ann
2021-01-09 07:44:00 +0100 <dsal> Hmm... Overloaded term.
2021-01-09 07:44:08 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-01-09 07:44:26 +0100 <nly> Filesystem in USErspace
2021-01-09 07:44:50 +0100 <dsal> Yeah, but that's not what these things are doing.
2021-01-09 07:45:09 +0100 <mniip> neat, it segfaulted
2021-01-09 07:45:15 +0100 <dsal> https://hackage.haskell.org/package/HFuse-0.2.5.0/docs/System-Fuse.html
2021-01-09 07:45:53 +0100 <nly> can't find it in nix. which pkg mngr should i use?
2021-01-09 07:46:25 +0100xsperry(~as@unaffiliated/xsperry) (Ping timeout: 264 seconds)
2021-01-09 07:46:46 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-01-09 07:47:04 +0100xsperry(~as@unaffiliated/xsperry)
2021-01-09 07:47:15 +0100 <dsal> It's not in stackage, so you may just have to DIY.
2021-01-09 07:47:55 +0100 <nly> ah, faceknee. hfuse -> HFuse. found it
2021-01-09 07:48:06 +0100 <nly> ty
2021-01-09 07:49:17 +0100coot(~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-09 07:50:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-09 07:50:30 +0100coot(~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl)
2021-01-09 07:51:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c848:157c:805d:521b)
2021-01-09 07:52:39 +0100 <mniip> >_>
2021-01-09 07:56:28 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c848:157c:805d:521b) (Ping timeout: 260 seconds)
2021-01-09 07:57:21 +0100 <ephemient> seems to be missing a lot of newer stuff from the high-level API (no xattr, poll, bmap, ioctl, flock, fallocate, more efficient read/write) and doesn't wrap the low-level API at all, but depending on what you're doing it could be sufficient
2021-01-09 07:57:49 +0100piele(~piele@tbonesteak.creativeserver.net) (Quit: No Ping reply in 180 seconds.)
2021-01-09 07:58:05 +0100piele(~piele@tbonesteak.creativeserver.net)
2021-01-09 07:58:29 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-09 08:02:27 +0100 <mniip> this is super weird
2021-01-09 08:04:45 +0100 <nly> ah ok
2021-01-09 08:05:05 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-09 08:06:36 +0100 <mniip> jle`, in minusSNat you're unsafeCoercing SNat _ -> Either _ (SNat _)
2021-01-09 08:06:42 +0100 <mniip> missing a `Right`
2021-01-09 08:07:08 +0100 <mniip> causing it to always return something that looks like `Left Refl` to the STG
2021-01-09 08:12:02 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2021-01-09 08:14:00 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 08:15:49 +0100Cassim(~cassim@51.194.80.91) (Ping timeout: 264 seconds)
2021-01-09 08:17:12 +0100jedws(~jedws@121.209.189.201)
2021-01-09 08:18:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 08:21:23 +0100mikevdg(73bd50e6@115-189-80-230.mobile.spark.co.nz)
2021-01-09 08:21:53 +0100 <mikevdg> Which alternative Prelude do all the cool kids use? I'm starting a new small project and I was going to give Relude a try.
2021-01-09 08:23:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-09 08:29:29 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-09 08:33:06 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-09 08:36:11 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 08:39:41 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-01-09 08:46:44 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis) (Quit: Leaving)
2021-01-09 08:47:01 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-09 08:50:28 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-09 08:53:18 +0100 <jle`> mniip: oh nooo D:
2021-01-09 08:54:00 +0100 <mniip> while we're at it, most proofy combinators are useless
2021-01-09 08:54:40 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-09 08:54:49 +0100 <mniip> say, flipCmpNat :: SCmpNat m n -> SCmpNat n m
2021-01-09 08:55:34 +0100 <mniip> this is a (opaque!) proof that (m < n \/ m = n \/ m > n) -> (n < m \/ n = m \/ n > m)
2021-01-09 08:55:41 +0100 <mniip> but I already knew that
2021-01-09 08:56:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 08:56:09 +0100 <mniip> I want to know that the m < n branch in the hypothesis corresponds to the n < m branch in the conclusion
2021-01-09 08:57:11 +0100 <mniip> i.e. a theorem that looks like
2021-01-09 08:57:17 +0100 <mniip> CmpNat m n :~: 'LT -> CmpNat n m :~: 'GT
2021-01-09 09:00:49 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
2021-01-09 09:00:53 +0100nly(~user@122.177.255.225) (Changing host)
2021-01-09 09:00:53 +0100nly(~user@unaffiliated/nly)
2021-01-09 09:02:05 +0100visage_(~visage_@unaffiliated/visage/x-6658724) (Quit: Textual IRC Client: www.textualapp.com)
2021-01-09 09:02:37 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds)
2021-01-09 09:02:43 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
2021-01-09 09:03:50 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-09 09:11:20 +0100 <ArConan> why haskell doesn't use != but /=?
2021-01-09 09:11:46 +0100 <ArConan> so strange
2021-01-09 09:12:15 +0100bitmagie(~Thunderbi@200116b806ecba00b9a553bd4de44e4b.dip.versatel-1u1.de)
2021-01-09 09:14:24 +0100 <Rembane> ArConan: Because /= looks more like ≠ which is how non-equivalence is written in maths.
2021-01-09 09:15:32 +0100 <ArConan> it looks like +=or-=-_-
2021-01-09 09:15:51 +0100 <Rembane> Yup, I am confused every time I get back to Haskell from another language. :)
2021-01-09 09:15:53 +0100sorki(~sorki@gateway/tor-sasl/sorki)
2021-01-09 09:15:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 09:16:10 +0100srk(~sorki@gateway/tor-sasl/sorki) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-09 09:16:46 +0100Kaiepi(~Kaiepi@47.54.252.148)
2021-01-09 09:18:44 +0100sorkisrk
2021-01-09 09:19:20 +0100plutoniix(~q@184.82.200.176) (Quit: Leaving)
2021-01-09 09:20:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-01-09 09:20:58 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-01-09 09:22:14 +0100__monty__(~toonn@unaffiliated/toonn)
2021-01-09 09:24:08 +0100theorbtwo(~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Ping timeout: 256 seconds)
2021-01-09 09:25:59 +0100 <bitonic> pie_: sorry, i'm a bit busy rn, i will get to that pr eventually!
2021-01-09 09:27:11 +0100 <idnar> I have my editor configured to render /= as ≠
2021-01-09 09:30:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-09 09:33:10 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-09 09:35:57 +0100taurux(~taurux@net-188-152-137-51.cust.dsl.teletu.it)
2021-01-09 09:36:21 +0100plutoniix(~q@184.82.200.176)
2021-01-09 09:36:23 +0100tito_04(~taurux@net-188-152-137-51.cust.dsl.teletu.it) (Ping timeout: 256 seconds)
2021-01-09 09:37:47 +0100 <Graypup_> how can I put an infallible computation into an ExceptT? Like, say I have a:
2021-01-09 09:37:56 +0100 <Graypup_> iowat :: IO Text
2021-01-09 09:38:05 +0100 <Graypup_> iowat = return ""
2021-01-09 09:38:25 +0100 <mikevdg> Haskell is supposed to make multicore computing easy. Yet, `stack` is pegging only one core at 100%.
2021-01-09 09:38:33 +0100 <mikevdg> grr
2021-01-09 09:38:35 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:4d71:f772:2af5:4ee2)
2021-01-09 09:39:06 +0100 <Graypup_> how would I use that from within a do block? like, runExceptT $ do ExceptT $ lift iowat
2021-01-09 09:39:07 +0100 <Graypup_> is bad
2021-01-09 09:39:13 +0100drbean(~drbean@TC210-63-209-21.static.apol.com.tw) (Ping timeout: 264 seconds)
2021-01-09 09:39:18 +0100 <Graypup_> with mystery compiler messages about Either
2021-01-09 09:40:20 +0100 <Rembane> Graypup_: Have you tried liftIO iowat?
2021-01-09 09:40:39 +0100 <idnar> Graypup_: does `runExceptT $ do liftIO iowat` work?
2021-01-09 09:42:21 +0100raym(~ray@45.64.220.18)
2021-01-09 09:43:14 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:4d71:f772:2af5:4ee2) (Ping timeout: 264 seconds)
2021-01-09 09:43:26 +0100 <Graypup_> hm, as far as I can tell, I'm getting the same result
2021-01-09 09:44:29 +0100 <Graypup_> almost wonder if I have the declaration of the function wrong
2021-01-09 09:44:54 +0100 <Rembane> Graypup_: What's the error message?
2021-01-09 09:45:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 09:45:25 +0100 <Graypup_> well, value. It's defined as `wat :: ExceptT () IO Text`, for testing. I'll put an actual exception type in in a bit
2021-01-09 09:47:36 +0100 <Graypup_> https://gist.github.com/lf-/af709550202ff0d7c39814e486b98605
2021-01-09 09:52:02 +0100 <Graypup_> I guess I should explain what I'm ultimately trying to do, which is to produce typed errors for a higher level in my call stack in a yesod app, and to avoid rightward drift. In effect what I want to do is do a few database queries and associated manipulations, and return early. There are three conditions I want to distinguish: failure due to bad data, failure due to not having records, and successfully finding a record, with that record
2021-01-09 09:53:44 +0100 <Graypup_> In Rust I'd model this as Result<Option<TheData>, SomeErrorType> and use the question mark operator with map_err/ok_or to turn everything into the right error types and get early return
2021-01-09 09:53:46 +0100mikevdg(73bd50e6@115-189-80-230.mobile.spark.co.nz) (Remote host closed the connection)
2021-01-09 09:56:42 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
2021-01-09 09:57:25 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-09 09:59:15 +0100Guest_47(0d4b4d08@13.75.77.8)
2021-01-09 09:59:25 +0100nineonin_(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 09:59:45 +0100 <Guest_47> hi, I'm using MacOS 11.1
2021-01-09 09:59:46 +0100 <Guest_47> % curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | shzsh: command not found: sh(23) Failed writing body
2021-01-09 09:59:46 +0100 <yahb> Guest_47: ; <interactive>:65:1: error: Variable not in scope: curl
2021-01-09 10:00:04 +0100hsiktas[m](hsiktasmat@gateway/shell/matrix.org/x-whwokcjaloumigax) (Quit: Idle for 30+ days)
2021-01-09 10:00:37 +0100 <Guest_47> and when I used ghcup, https://www.haskell.org/ghcup/, then show "zsh: command not found: sh"
2021-01-09 10:00:51 +0100 <Guest_47> could you please help me? really really thanks!! 😊
2021-01-09 10:01:36 +0100 <[exa]> Guest_47: do you have the `sh` executable in path?
2021-01-09 10:02:19 +0100 <Guest_47> yahb oh sorry, I couldn't understand what you mean :(
2021-01-09 10:02:37 +0100 <Guest_47> [exa] oh? I'm not sure 🤔
2021-01-09 10:02:52 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 272 seconds)
2021-01-09 10:03:43 +0100Deide(~Deide@217.155.19.23)
2021-01-09 10:03:53 +0100bitonic[m](bitonicmat@gateway/shell/matrix.org/x-ixsyclxhcukpebna)
2021-01-09 10:04:38 +0100 <Graypup_> Guest_47, what do you have for output of `command -v sh` in a terminal?
2021-01-09 10:05:20 +0100 <ephemient> macos is still unix enough to have a /bin/sh, something odd is going on there
2021-01-09 10:05:53 +0100 <Graypup_> I agree, something odd is definitely at play here
2021-01-09 10:06:01 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-09 10:06:08 +0100 <Graypup_> maybe special characters
2021-01-09 10:06:27 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2021-01-09 10:07:48 +0100 <Guest_47> oh?
2021-01-09 10:07:52 +0100 <Guest_47> Graypup_
2021-01-09 10:08:02 +0100 <Guest_47> % command -v sh
2021-01-09 10:08:15 +0100 <Guest_47> hi do you mean like that? nothing output
2021-01-09 10:08:30 +0100 <Guest_47> shzsh: command not found: sh
2021-01-09 10:08:38 +0100 <Guest_47> sh
2021-01-09 10:08:46 +0100 <Guest_47> zsh: command not found: sh
2021-01-09 10:09:12 +0100 <Guest_47> seems many commands in my terminal are broken😢
2021-01-09 10:09:22 +0100 <Graypup_> that is extremely bizarre. something is broken to do with the PATH variable
2021-01-09 10:09:29 +0100 <Guest_47> % ls
2021-01-09 10:09:30 +0100 <Graypup_> what's `echo $PATH` say?
2021-01-09 10:09:30 +0100 <yahb> Guest_47: ; <interactive>:66:1: error: Variable not in scope: ls
2021-01-09 10:09:32 +0100 <Guest_47> zsh: command not found: ls
2021-01-09 10:09:40 +0100 <Guest_47> oh wait let me try!
2021-01-09 10:09:51 +0100 <Guest_47> really thanks for you all!!!!
2021-01-09 10:10:40 +0100 <[exa]> o nice.
2021-01-09 10:10:42 +0100 <Guest_47> oh output is a anaconda path
2021-01-09 10:11:03 +0100 <idnar> Graypup_: `wat :: E.ExceptT () IO String` is the wrong type; I think it'll be more like `wat :: IO (Either String String)`
2021-01-09 10:11:13 +0100 <idnar> err
2021-01-09 10:11:14 +0100 <Guest_47> "/Users/my_user_name/anaconda3/bin:/H"
2021-01-09 10:11:21 +0100 <ephemient> that is very wrong :O
2021-01-09 10:11:42 +0100jollygood2(~bc812391@217.29.117.252)
2021-01-09 10:11:48 +0100bitonic(sid61915@gateway/web/irccloud.com/x-oenzzwnusihqnkjo) ()
2021-01-09 10:11:52 +0100 <Guest_47> oh😢😢😢😢😢
2021-01-09 10:12:02 +0100 <Graypup_> idnar, hm, yes, but how would I use ExceptT then? The issue I'm trying to solve is that error handling in the HandlerT monad is atrociously frustrating and ugly without a monad transformer
2021-01-09 10:12:28 +0100 <jollygood2> hi. how can I quit entire program from forked thread? calling exitFailure just prints the exception, but the main thread is still running
2021-01-09 10:12:33 +0100 <[exa]> Guest_47: that's broken for sure, either find what has set the wrong PATH (check the usual profile dotfiles, guess .zshrc? ) or just try starting a new terminal
2021-01-09 10:12:59 +0100 <Graypup_> on the plus side, we can make an educated guess as to what broke it :)
2021-01-09 10:13:13 +0100 <ephemient> check your .zshenv, .zprofile, .zshrc, .zlogin for anything setting PATH
2021-01-09 10:13:34 +0100 <ephemient> it should never be overridden like that. appending is ok
2021-01-09 10:13:49 +0100 <idnar> Graypup_: is that type not what you want?
2021-01-09 10:13:50 +0100 <[exa]> I hoped that anaconda is now oficially considered a Bad Idea™
2021-01-09 10:13:55 +0100 <Guest_47> oh!! thanks!! let me try!
2021-01-09 10:14:45 +0100 <Graypup_> idnar, I'd like to use ExceptT as my return value, but I could try to see if i can make it an internal thing only I suppose
2021-01-09 10:15:20 +0100 <idnar> Graypup_: take out the runExceptT then
2021-01-09 10:15:33 +0100 <Guest_47> ephemient: oh sorry
2021-01-09 10:15:34 +0100 <Graypup_> oops hahaha
2021-01-09 10:15:37 +0100 <Guest_47> do you mean like
2021-01-09 10:15:39 +0100 <Guest_47> vim ~/.zshrc
2021-01-09 10:15:46 +0100 <Guest_47> then
2021-01-09 10:15:46 +0100 <Guest_47> zsh: command not found: vim
2021-01-09 10:15:51 +0100 <Graypup_> Guest_47, you may need to use /usr/bin/vim though
2021-01-09 10:15:57 +0100 <Graypup_> due to the PATH issue
2021-01-09 10:16:01 +0100 <Guest_47> oh!
2021-01-09 10:16:44 +0100 <idnar> Graypup_: you would runExceptT right at the end to render the final result I guess
2021-01-09 10:16:44 +0100 <Graypup_> idnar, you are completely correct, it was that simple hahaha
2021-01-09 10:16:45 +0100 <[exa]> Guest_47: you may edit these files the "gui way" with MacOSX tools, that shold not be broken by the missing PATH
2021-01-09 10:16:58 +0100 <idnar> Graypup_: :)
2021-01-09 10:17:33 +0100 <Guest_47> # HomeBrewexport HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottlesexport PATH="/usr/local/bin:$PATH"export PATH="/usr/local/sbin:$PATH"# HomeBrew ENDexport PATH=/Users/cjxx/anaconda3/bin:$PAT/H
2021-01-09 10:17:51 +0100 <Graypup_> see that slash there?
2021-01-09 10:17:53 +0100 <Graypup_> in the last line?
2021-01-09 10:17:58 +0100 <Graypup_> right at the end?
2021-01-09 10:18:01 +0100 <Guest_47> oh yeah!!!
2021-01-09 10:18:03 +0100 <Graypup_> that's your problem :)
2021-01-09 10:18:11 +0100 <[exa]> Guest_47: please do not paste big amounts of code here though. Anyway, erasing the slash should help
2021-01-09 10:18:11 +0100 <Guest_47> so should I delete this line or?
2021-01-09 10:18:31 +0100 <Guest_47> [exa] oh okay!! sorry for that
2021-01-09 10:18:39 +0100 <ephemient> delete it, or fix it to read $PATH instead of $PAT/H
2021-01-09 10:20:25 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 10:20:32 +0100ericsagn1(~ericsagne@2405:6580:0:5100:97c0:58e7:7088:af23) (Ping timeout: 260 seconds)
2021-01-09 10:21:22 +0100wei2912(~wei2912@unaffiliated/wei2912)
2021-01-09 10:22:31 +0100 <Guest_47> oh I deleted it but
2021-01-09 10:22:41 +0100testest32432342(5d30af45@93-48-175-69.ip258.fastwebnet.it)
2021-01-09 10:22:43 +0100 <Guest_47> "/usr/bin/vim ~/.zshrc"
2021-01-09 10:22:50 +0100dcbdnl(~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Quit: dcbdnl)
2021-01-09 10:22:51 +0100 <Guest_47> "source ~/.zshrc"
2021-01-09 10:22:58 +0100 <Guest_47> "echo $PATH"
2021-01-09 10:23:07 +0100 <Guest_47> "/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/Users/cjxx/anaconda3/bin:/H"
2021-01-09 10:23:21 +0100testest32432342(5d30af45@93-48-175-69.ip258.fastwebnet.it) (Remote host closed the connection)
2021-01-09 10:24:44 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 240 seconds)
2021-01-09 10:25:07 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2021-01-09 10:26:01 +0100bitonic[m]bitonic
2021-01-09 10:26:31 +0100bitonicGuest92643
2021-01-09 10:26:35 +0100 <[exa]> Guest_47: it prepended itself before the broken path, but that shold at least partially work now
2021-01-09 10:27:28 +0100 <ephemient> no, /bin:/usr/bin are still missing
2021-01-09 10:27:39 +0100 <ephemient> easiest fix is to close terminal and open a new one
2021-01-09 10:27:59 +0100 <freeman42x[m]> why is this giving the error? https://gist.github.com/razvan-flavius-panda/472ab442ede0534a0af512476a277b5f
2021-01-09 10:28:43 +0100 <ephemient> freeman42x[m]: '\\'
2021-01-09 10:28:59 +0100 <freeman42x[m]> ohhhhhhhhhhhhhhhhhhhhhhhh! omg, thank you
2021-01-09 10:29:42 +0100 <freeman42x[m]> haskell language server or the syntax highlighter gives no indication of that being wrong
2021-01-09 10:30:36 +0100 <Guest_47> ephemient oh do you mean quit and then open?
2021-01-09 10:30:42 +0100 <ephemient> Guest_47: yes
2021-01-09 10:30:43 +0100 <Guest_47> I've tried this but not work
2021-01-09 10:31:01 +0100 <Guest_47> oh wait!
2021-01-09 10:31:23 +0100 <Guest_47> oh!!!!!!!!!!!!
2021-01-09 10:31:26 +0100 <Guest_47> works!!!!!!
2021-01-09 10:31:33 +0100 <Guest_47> really really thanks!!
2021-01-09 10:31:35 +0100 <Guest_47> amazing!
2021-01-09 10:31:51 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-01-09 10:32:24 +0100petersen(~petersen@redhat/juhp) (Quit: petersen)
2021-01-09 10:32:38 +0100ericsagn1(~ericsagne@2405:6580:0:5100:ce4f:d262:806c:269f)
2021-01-09 10:32:54 +0100knupfer(~Thunderbi@200116b82c54da00544d9efffe55d024.dip.versatel-1u1.de)
2021-01-09 10:33:30 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-01-09 10:34:02 +0100cassim(~cassim@51.194.80.91)
2021-01-09 10:34:02 +0100knupfer(~Thunderbi@200116b82c54da00544d9efffe55d024.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-09 10:34:10 +0100knupfer(~Thunderbi@200116b82c54da0040da52902a92d333.dip.versatel-1u1.de)
2021-01-09 10:35:05 +0100Guest92643bitonic[m]
2021-01-09 10:35:47 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-01-09 10:38:19 +0100mikevdg(73bd50e6@115-189-80-230.mobile.spark.co.nz)
2021-01-09 10:39:55 +0100 <mikevdg> I'm trying to read someone else's code and I'm befuddled: https://github.com/kallisti-dev/hs-webdriver/blob/master/src/Test/WebDriver/Config.hs line 59. Is def being declared as a recursive data structure?
2021-01-09 10:40:16 +0100nineonin_(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 10:40:56 +0100nineonine(~nineonine@50.216.62.2)
2021-01-09 10:41:58 +0100christo(~chris@81.96.113.213)
2021-01-09 10:43:00 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-09 10:43:36 +0100nineonin_(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 10:45:19 +0100ADG1089__(~aditya@122.163.165.143)
2021-01-09 10:45:27 +0100bitonic[m]bitonic
2021-01-09 10:46:51 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lngzfeghcpflmhlc) (Quit: Connection closed for inactivity)
2021-01-09 10:47:05 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2021-01-09 10:47:43 +0100bitonic(bitonicmat@gateway/shell/matrix.org/x-ixsyclxhcukpebna) (Quit: authenticating)
2021-01-09 10:47:45 +0100 <mikevdg> Answering my own question: https://hackage.haskell.org/package/data-default-0.5.3/docs/Data-Default.html
2021-01-09 10:47:49 +0100bitonic(bitonicmat@gateway/shell/matrix.org/x-dbuvsguzqiivdtvd)
2021-01-09 10:50:08 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-09 10:51:23 +0100hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2021-01-09 10:52:44 +0100bitmagie(~Thunderbi@200116b806ecba00b9a553bd4de44e4b.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-09 10:53:04 +0100Guest_47(0d4b4d08@13.75.77.8) (Remote host closed the connection)
2021-01-09 10:53:30 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 10:53:50 +0100xintron(~xintron@unaffiliated/xintron) (Quit: aoeu)
2021-01-09 10:54:35 +0100xintron(~xintron@unaffiliated/xintron)
2021-01-09 10:57:05 +0100resputin(~crash@151.42.154.205)
2021-01-09 10:57:20 +0100resputin(~crash@151.42.154.205) ("WeeChat 3.0")
2021-01-09 10:57:53 +0100resputin(~crash@151.42.154.205)
2021-01-09 10:57:57 +0100resputin(~crash@151.42.154.205) ("WeeChat 3.0")
2021-01-09 10:58:20 +0100resputin(~crash@151.42.154.205)
2021-01-09 10:58:23 +0100resputin(~crash@151.42.154.205) ("WeeChat 3.0")
2021-01-09 11:05:01 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds)
2021-01-09 11:07:44 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b06c:ee5b:732d:eacd)
2021-01-09 11:09:16 +0100Widget_Widget
2021-01-09 11:10:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-09 11:10:34 +0100 <jollygood2> how do I silence this warning? -Wunsupported-calling-conventions
2021-01-09 11:12:37 +0100 <jollygood2> I tried this, it didn't work. {-# OPTIONS_GHC -fno-warn-unsupported-calling-conventions #-}
2021-01-09 11:12:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b06c:ee5b:732d:eacd) (Ping timeout: 264 seconds)
2021-01-09 11:13:24 +0100bitmagie(~Thunderbi@200116b806ecba00b9a553bd4de44e4b.dip.versatel-1u1.de)
2021-01-09 11:14:01 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-09 11:14:17 +0100petersen(~petersen@redhat/juhp)
2021-01-09 11:20:01 +0100 <jollygood2> yeah, C's exit worked
2021-01-09 11:20:01 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds)
2021-01-09 11:27:47 +0100mikevdg(73bd50e6@115-189-80-230.mobile.spark.co.nz) ()
2021-01-09 11:28:58 +0100jassob(~jassob@korrob.vth.sgsnet.se) (Quit: WeeChat 2.5-rc1)
2021-01-09 11:29:44 +0100 <re6> am I understanding this correctly, what `put` does with a State monad is put the argument value in and discards whatever was there
2021-01-09 11:31:29 +0100 <re6> modify gets the current value and uses it to `put` some function of `currVal` into the State monad and discards `currVal`
2021-01-09 11:31:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 11:32:58 +0100 <c_wraith> > evalState (do x <- get ; put 1 ; y <- get ; modify negate ; z <- get ; return (x, y, z)) 10
2021-01-09 11:33:01 +0100 <lambdabot> (10,1,-1)
2021-01-09 11:33:18 +0100fendor(~fendor@77.119.128.254.wireless.dyn.drei.com)
2021-01-09 11:33:48 +0100jassob(~jassob@korrob.vth.sgsnet.se)
2021-01-09 11:33:57 +0100 <re6> right, so the State monad is actually a computation that needs to be applied to some value
2021-01-09 11:34:59 +0100jassob(~jassob@korrob.vth.sgsnet.se) (Client Quit)
2021-01-09 11:35:32 +0100 <c_wraith> A State value is a function, yes.
2021-01-09 11:35:46 +0100 <c_wraith> @unmtl State Int ()
2021-01-09 11:35:46 +0100 <lambdabot> Int -> ((), Int)
2021-01-09 11:36:09 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 11:36:50 +0100 <c_wraith> Note: that's not *exactly* the representation used by modern versions of the underlying libraries, but it functions the same way
2021-01-09 11:37:22 +0100jassob(~jassob@korrob.vth.sgsnet.se)
2021-01-09 11:38:30 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-09 11:39:43 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-01-09 11:40:15 +0100 <ephemient> @unmtl StateT s (State t) r
2021-01-09 11:40:15 +0100 <lambdabot> s -> t -> (r, s, t)
2021-01-09 11:41:22 +0100 <c_wraith> You know, I really didn't expect it to merge the pairs into a triple
2021-01-09 11:41:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 11:41:51 +0100 <ephemient> I didn't either. but I suppose it's just for demonstration so it's fine to choose something that looks simpler and works equivalently
2021-01-09 11:43:12 +0100 <ephemient> @unmtl StateT s (StateT t (State u)) r
2021-01-09 11:43:12 +0100 <lambdabot> s -> t -> u -> (r, s, t, u)
2021-01-09 11:43:40 +0100 <ephemient> yeah I guess it just flattens everything (conclusion from n=3 data points)
2021-01-09 11:46:14 +0100ericsagn1(~ericsagne@2405:6580:0:5100:ce4f:d262:806c:269f) (Ping timeout: 264 seconds)
2021-01-09 11:51:22 +0100nineonin_(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 11:51:41 +0100plutoniix(~q@184.82.200.176) (Quit: Leaving)
2021-01-09 11:51:56 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 11:52:45 +0100marble_visions_(~user@68.183.79.8) (Quit: bye)
2021-01-09 11:53:54 +0100marble_visions(~user@68.183.79.8)
2021-01-09 11:54:42 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 11:54:57 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 11:55:28 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-09 11:56:04 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-09 11:56:44 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 11:56:58 +0100 <pie_> bitonic: which pr?
2021-01-09 11:57:18 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 11:58:26 +0100 <bitonic> pie_: sorry, issue -- <https://github.com/fpco/inline-c/issues/122> -- I believe it was you who asked me about this?
2021-01-09 11:58:42 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 11:58:56 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:00:43 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:01:18 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:01:27 +0100 <pie_> bitonic: i did have some ffi questions yesterday
2021-01-09 12:02:00 +0100acidjnk_new(~acidjnk@p200300d0c704e7293cc19a8744f5227e.dip0.t-ipconnect.de)
2021-01-09 12:02:01 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:02:14 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:02:30 +0100 <bitonic> pie_: i missed them -- feel free to ask again
2021-01-09 12:02:38 +0100 <pie_> it still bothers me, but the issue seems to have been solved by the version upgrade
2021-01-09 12:02:59 +0100 <pie_> maybe i should look at the ghc changelog
2021-01-09 12:03:05 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2021-01-09 12:03:56 +0100 <pie_> I think I also had a question some days ago but i dont remember what it was. maybe i solved it. anyway;
2021-01-09 12:04:05 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:04:36 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:04:38 +0100 <pie_> bitonic: <pie_> im looking for advice on some FFI stuff, I have this half-pseudocoded funciton: https://bpa.st/3UZA . im using inline-c-cpp
2021-01-09 12:04:38 +0100 <pie_> <pie_> id like to return something like a Either Matcher String from the c++
2021-01-09 12:04:38 +0100 <pie_> <pie_> the c++ code does some stuff and returns an Optional, and then I want to return the error strings if the optional is empty, otherwise i want to return a pointer to the thing
2021-01-09 12:04:38 +0100 <pie_> <pie_> so I guess I have to/should roll my own c++ maybe struct? or is there some existing struct library i can use?
2021-01-09 12:05:17 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-09 12:05:53 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2021-01-09 12:06:18 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-09 12:06:23 +0100 <Kronic> Has anyone tried the new m1 macs with haskell? Is there any bother running haskell stuff on them other than docker?
2021-01-09 12:06:39 +0100 <merijn> Kronic: It's a work in progress
2021-01-09 12:06:45 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:06:49 +0100 <Kronic> hmm...
2021-01-09 12:06:54 +0100 <merijn> There is a GHC compiler available and (I think) cabal-install
2021-01-09 12:07:00 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:07:09 +0100 <merijn> but you gotta be willing to live with beta/release candidate quality stuff :p
2021-01-09 12:07:56 +0100 <merijn> Kronic: If you go to #ghc or the GHC gitlab you can check up on the work, I think angerman is working on ARM support in general, including M1
2021-01-09 12:08:01 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-09 12:08:48 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:09:05 +0100tito_04(~taurux@net-188-152-137-51.cust.vodafonedsl.it)
2021-01-09 12:09:20 +0100 <merijn> Also lots of low hanging fruit for people with ARM and sometime to help test/fix things :p
2021-01-09 12:09:22 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:10:10 +0100taurux(~taurux@net-188-152-137-51.cust.dsl.teletu.it) (Ping timeout: 272 seconds)
2021-01-09 12:10:31 +0100 <Kronic> Hmm... I don't have one yet
2021-01-09 12:10:32 +0100 <angerman> Kronic: you can use the x86_64 binaries. Sadly 8.10.3 does not built on arm64, 8.10.4 should. Anything prior to 8.10 you don’t really want to use on arm, as the rts is not thread safe.
2021-01-09 12:10:36 +0100 <Kronic> I'm just considering buying one
2021-01-09 12:10:53 +0100 <Kronic> And Haskell support is a big requirement for me since I write a lot of it these days
2021-01-09 12:10:54 +0100 <angerman> Kronic: GHC 9.2 should come with a native code gen.
2021-01-09 12:11:11 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:11:14 +0100 <angerman> Kronic: Rosetta2 “just works” for haskell.
2021-01-09 12:11:25 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:11:28 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2021-01-09 12:12:03 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Quit: leaving)
2021-01-09 12:12:38 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-01-09 12:13:05 +0100 <angerman> Ghc ci will have a few M1 minis soon operational as well. Thus compiler quality should improve and continue to be validated.
2021-01-09 12:13:12 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:13:38 +0100 <Kronic> Very nice to hear that, well that gives me confidence
2021-01-09 12:13:46 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:13:50 +0100ericsagnes(~ericsagne@2405:6580:0:5100:52f6:a22f:a583:4c03)
2021-01-09 12:13:52 +0100 <Uniaika> angerman: woop woop
2021-01-09 12:14:06 +0100raym(~ray@45.64.220.18) (Remote host closed the connection)
2021-01-09 12:15:31 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it)
2021-01-09 12:17:52 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:18:01 +0100knupfer(~Thunderbi@200116b82c54da0040da52902a92d333.dip.versatel-1u1.de) (Quit: knupfer)
2021-01-09 12:18:07 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:18:08 +0100knupfer1(~Thunderbi@200116b82c54da0095ad5e6ee1c75f73.dip.versatel-1u1.de)
2021-01-09 12:18:55 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:19:14 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
2021-01-09 12:19:28 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:20:31 +0100knupfer1knupfer
2021-01-09 12:20:32 +0100boxscape5(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2021-01-09 12:21:47 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-01-09 12:22:27 +0100ericsagnes(~ericsagne@2405:6580:0:5100:52f6:a22f:a583:4c03) (Ping timeout: 260 seconds)
2021-01-09 12:24:22 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 246 seconds)
2021-01-09 12:25:14 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 265 seconds)
2021-01-09 12:25:27 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-09 12:26:35 +0100boxscape5boxscape
2021-01-09 12:28:34 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-01-09 12:29:18 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-09 12:29:48 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-09 12:30:34 +0100_xor(~xor@74.215.46.133) (Quit: WeeChat 3.0)
2021-01-09 12:33:41 +0100_xor(~xor@74.215.46.133)
2021-01-09 12:34:23 +0100Wuzzy(~Wuzzy@p5790e648.dip0.t-ipconnect.de)
2021-01-09 12:34:40 +0100ericsagnes(~ericsagne@2405:6580:0:5100:f012:7b5e:9a6:fec2)
2021-01-09 12:35:03 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Read error: Connection reset by peer)
2021-01-09 12:35:49 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e)
2021-01-09 12:37:31 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 12:42:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 12:43:44 +0100 <nly> recommend a library for web stuff? client mostly
2021-01-09 12:46:25 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c40f:367c:6d1f:1f4)
2021-01-09 12:46:50 +0100 <bitonic> pie_: you can do that by passing two output pointers
2021-01-09 12:46:58 +0100 <bitonic> and only filling in the "error" pointer if you have an error
2021-01-09 12:47:17 +0100 <bitonic> so the caller first checks if the error pointer is non-null -- if it is, it returns `Left`. otherwise `Right`.
2021-01-09 12:48:07 +0100 <niekvandepas> Hey everyone, I'm sorry if this isn't the right place to ask this question, but I'm new to Haskell and having some trouble with the toolchain. I'm on macOS and have installed GHC via homebrew (`brew install ghc`) and the `Haskell` VS Code Extension. When VS Code gives me hints with regard to code quality, I get several duplicates of the same hint, and when I try to execute them, the process hangs until I cancel
2021-01-09 12:48:07 +0100 <niekvandepas> it. Does anyone have any experience with using Haskell and VS Code who can help me out? Thanks!
2021-01-09 12:48:27 +0100 <niekvandepas> Oh, here's a video of the problem: https://streamable.com/9fwlu2
2021-01-09 12:51:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c40f:367c:6d1f:1f4) (Ping timeout: 264 seconds)
2021-01-09 12:52:16 +0100 <xerox_> niekvandepas: I'd reccommend using ghcup, it works quite well, easy to handle and remove when not needed
2021-01-09 12:52:33 +0100 <xerox_> as for vscode I don't know a lot about it really sorry
2021-01-09 12:52:55 +0100 <xerox_> niekvandepas: btw how long did it take to get ghc from brew for you?
2021-01-09 12:53:20 +0100 <niekvandepas> xerox_: Yeah I was using that before, but that gave me the same issues unfortunately... I uninstalled and switched to GHC from Brew just to eliminate variables
2021-01-09 12:53:46 +0100 <niekvandepas> xerox_: installing took somewhere in the order of ~2 minutes I think? Not very long for sure
2021-01-09 12:53:53 +0100 <xerox_> ah ok
2021-01-09 12:54:34 +0100 <niekvandepas> xerox_: do you have an alternative setup you recommend? I'm open to using other editors
2021-01-09 12:54:48 +0100 <xerox_> myself I use vim, ghcid, and cabal
2021-01-09 12:55:05 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:56:22 +0100 <merijn> niekvandepas: tbh, homebrew is...a bit overeager to be on the bleeding edge of GHC releases :p
2021-01-09 12:56:39 +0100 <merijn> niekvandepas: I just install the bindists of macOS and cabal myself
2021-01-09 12:56:54 +0100 <xerox_> like this: https://i.imgur.com/whGJPEk.png
2021-01-09 12:56:54 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 12:57:45 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 12:57:50 +0100 <merijn> niekvandepas: https://www.haskell.org/ghc/download_ghc_8_10_3.html#macosx_x86_64
2021-01-09 12:58:18 +0100 <niekvandepas> merijn: haha yeah Homebrew tends to have that problem
2021-01-09 12:58:35 +0100 <merijn> niekvandepas: And cabal-install https://www.haskell.org/cabal/download.html
2021-01-09 12:59:00 +0100 <xerox_> I'm extremely happy with ghcup never had a problem with it, even on exotic architectures
2021-01-09 12:59:30 +0100 <merijn> xerox_: For linux it can be tricky to guess the right binary dist, so ghcup is useful there. but there's only one mac binary :p
2021-01-09 12:59:32 +0100drbean(~drbean@TC210-63-209-195.static.apol.com.tw)
2021-01-09 12:59:33 +0100 <niekvandepas> xerox_: I think I've actually achieved most of what you've got going there, for some reason it's just the automatic fixes that don't work for me. Which isn't a huge deal, but I thought maybe this was a common problem
2021-01-09 12:59:44 +0100 <xerox_> merijn: soon 2 :D
2021-01-09 13:00:11 +0100 <xerox_> niekvandepas: ah I'm minimalist as that goes, nothing too fancy in the editor itself
2021-01-09 13:01:00 +0100 <niekvandepas> Tbh I tend to switch editors every couple of months anyway, I'm not great at sticking with a setup... too susceptible to the 'new shiny' I guess :P
2021-01-09 13:02:10 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds)
2021-01-09 13:03:16 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-09 13:03:45 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-09 13:09:18 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-09 13:10:17 +0100Entertainment(~entertain@104.246.132.210)
2021-01-09 13:10:33 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-hlwujoxsjptdtvwc)
2021-01-09 13:13:08 +0100re6(5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net) (Remote host closed the connection)
2021-01-09 13:13:56 +0100xff0x(~fox@2001:1a81:5386:5c00:d33d:3a64:e310:3fd) (Quit: xff0x)
2021-01-09 13:15:46 +0100 <nly> @hoogle IO String -> String
2021-01-09 13:15:47 +0100 <lambdabot> Foreign.Marshal.Unsafe unsafeLocalState :: IO a -> a
2021-01-09 13:15:47 +0100 <lambdabot> System.IO.Unsafe unsafePerformIO :: IO a -> a
2021-01-09 13:15:47 +0100 <lambdabot> System.IO.Unsafe unsafeDupablePerformIO :: IO a -> a
2021-01-09 13:16:04 +0100 <merijn> eh
2021-01-09 13:16:17 +0100 <merijn> As the names imply, you *really* don't want that :p
2021-01-09 13:16:41 +0100 <nly> what's better then?
2021-01-09 13:16:55 +0100 <nly> >helloString = B.pack : get "http://gnu.org"
2021-01-09 13:17:15 +0100 <merijn> nly: That depends on what exactly you're trying to do, but generally the answer is "don't try and get stuff *out* of IO, get your logic *in*"
2021-01-09 13:18:14 +0100 <merijn> So, if you have a function "String -> Foo" and "IO String" (from, say, a web request)
2021-01-09 13:18:41 +0100 <xerox_> nly: once you're in IO, you're in IO, but from there you can do pure computations on the intermediate results between "I" and "O"
2021-01-09 13:18:44 +0100 <merijn> The solution isn't "try and get String from IO" it's "get your function in", the most obvious way of doing that being "fmap
2021-01-09 13:18:48 +0100 <merijn> :t even
2021-01-09 13:18:50 +0100 <lambdabot> Integral a => a -> Bool
2021-01-09 13:18:53 +0100 <merijn> :t fmap even
2021-01-09 13:18:54 +0100 <lambdabot> (Functor f, Integral a) => f a -> f Bool
2021-01-09 13:19:07 +0100 <merijn> :t fmap even `asAppliedTo` (return 1 :: IO Int)
2021-01-09 13:19:08 +0100 <lambdabot> IO Int -> IO Bool
2021-01-09 13:19:25 +0100 <nly> meh, beginner math, tell me something that uses Higher order chaos category theory
2021-01-09 13:19:28 +0100 <merijn> @quote list.of.files
2021-01-09 13:19:29 +0100 <lambdabot> shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files
2021-01-09 13:19:53 +0100 <nly> (joke) this looks hard
2021-01-09 13:20:42 +0100 <merijn> nly: Think of "IO String" as "a description of how to do the IO to produce a String", you can't get a String out of a description, the same way you can't get a cake "out of" a recipe
2021-01-09 13:20:56 +0100 <nly> ah ok
2021-01-09 13:21:17 +0100 <merijn> nly: There are 2 ways to *extend* your recipe, though. Which are
2021-01-09 13:21:19 +0100 <merijn> :t fmap
2021-01-09 13:21:20 +0100 <lambdabot> Functor f => (a -> b) -> f a -> f b
2021-01-09 13:21:22 +0100 <merijn> :t (>>=)
2021-01-09 13:21:24 +0100 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2021-01-09 13:21:30 +0100 <pie_> bitonic: ok, but thats still basically rolling my own either struct right?
2021-01-09 13:21:38 +0100 <merijn> (just pretend the 'f' and 'm' there are "IO")
2021-01-09 13:21:47 +0100 <bitonic> pie_: pretty much. you can also use exceptions.
2021-01-09 13:22:14 +0100 <bitonic> pie_: <http://hackage.haskell.org/package/inline-c-cpp-0.4.0.2/docs/Language-C-Inline-Cpp-Exceptions.html…>
2021-01-09 13:22:21 +0100 <merijn> nly: So if you have a function 'foo' for turning a String into an Int, then "fmap foo" will give you a function for turning "IO String" into "IO Int"
2021-01-09 13:22:27 +0100 <pie_> its probably better if i dont use excepions. im not really familiar with them and simple control flow is probablybetter?
2021-01-09 13:22:31 +0100 <pie_> thanks for the link ill take a look
2021-01-09 13:22:50 +0100 <bitonic> pie_: the jury is very much still out on C++ exceptions 🙂
2021-01-09 13:22:59 +0100 <merijn> The jury is in on C++
2021-01-09 13:23:13 +0100 <merijn> They convicted it as guilty of being terrible >.>
2021-01-09 13:23:24 +0100 <pie_> also i forgot but i think i _am_ still using inline-c-cpp, i should probably switch to the merged in inline-c cpp functionality now yeah?
2021-01-09 13:23:36 +0100 <pie_> (i think thats still called inline-c-cpp though)
2021-01-09 13:24:24 +0100 <bitonic> merijn: ah, it's still the best choice for many use cases, while some people argue that C++ exceptions are _always_ bad :P
2021-01-09 13:24:37 +0100 <nly> so i have to remove the IO Monad from my 'get' function somehow
2021-01-09 13:24:45 +0100 <bitonic> pie_: it's still and always has been `inline-c-cpp`.
2021-01-09 13:25:25 +0100 <merijn> bitonic: That's what I thought too, that's why half my code is C++ and my life is miserable" >.>
2021-01-09 13:25:38 +0100 <pie_> bitonic: but its ambiguous whether its the version in the inline-c package or the old one in the separate package though right? or ate the packages still separate just the repos merged?:
2021-01-09 13:25:40 +0100xff0x(~fox@2001:1a81:5386:5c00:9c3a:413f:148c:a5a9)
2021-01-09 13:25:42 +0100 <pie_> s/://
2021-01-09 13:25:47 +0100 <nly> >get url = simpleHTTP (getRequest url) >>= getResponseBody
2021-01-09 13:25:51 +0100 <merijn> nly: You can't. What do you wanna do with the String?
2021-01-09 13:26:10 +0100 <merijn> nly: Like, in a magical fantasy land where you *did* have "String" what do you wanna do with it?
2021-01-09 13:26:27 +0100 <nly> string will go to gnu/index.html file
2021-01-09 13:26:34 +0100 <pie_> If I ever get this done, my next project will probably be trying to bind chromium sandbox. yay c++ :D
2021-01-09 13:26:54 +0100 <nly> Fuse filesystem
2021-01-09 13:26:56 +0100 <merijn> So, basically you wanna do 'writeFile "gnu/index.html"'?
2021-01-09 13:27:04 +0100 <merijn> % :t System.IO.writeFile
2021-01-09 13:27:05 +0100 <yahb> merijn: FilePath -> String -> IO ()
2021-01-09 13:27:16 +0100 <merijn> % :t System.IO.writeFile "gnu/index.html"
2021-01-09 13:27:16 +0100 <yahb> merijn: String -> IO ()
2021-01-09 13:27:31 +0100 <nly> nah
2021-01-09 13:27:50 +0100 <nly> i haven't figured out what it's doing, but this is HFuse library
2021-01-09 13:28:46 +0100 <nly> i hope get "ex.com" will be lazy. and only evaluated on cat /gnu/index.html
2021-01-09 13:28:46 +0100 <pie_> bitonic: could inline-c-cpp expose some headers to the cpp code to make some basic types availible? (i guess product and sum might be sufficient and then you can just clean up the representation on the haskell side?)
2021-01-09 13:30:03 +0100 <pie_> or does the haskell c ffi maybe already expose something
2021-01-09 13:30:48 +0100 <pie_> a recurring peeve i seem to have with language runtime ffi is that noone seems to have built in support for returning tuples :P (sample size 1 and 1 hypothetical :P)
2021-01-09 13:31:23 +0100 <merijn> pie_: You can write your own arbitrary access, though?
2021-01-09 13:31:49 +0100 <merijn> Oh, for C/C++ structs? That's some cursed stuff
2021-01-09 13:32:01 +0100 <pie_> maybe i dont understand but, yeah its just nicer theres stuff already on hand?
2021-01-09 13:32:15 +0100 <pie_> is there something wrong with c/c++ structs? >_>
2021-01-09 13:32:30 +0100 <merijn> No, until you wanna pass/return them, then yes
2021-01-09 13:32:58 +0100 <pie_> I dont know enough to understand without further explanationű
2021-01-09 13:33:00 +0100 <merijn> pie_: The C ABI doesn't define how to pass structs, so it's impossible to do portably
2021-01-09 13:33:02 +0100 <pjb> pie_: one thing that can be quite wrong with them, is packing. #pragma pack
2021-01-09 13:33:17 +0100 <pie_> aha...
2021-01-09 13:33:20 +0100 <merijn> pjb: That's not the real issue, it's that the calling convention is unspecified
2021-01-09 13:33:28 +0100 <pjb> merijn: exactly.
2021-01-09 13:33:34 +0100 <merijn> Which means you can safely pass structs to functions when calling C from C++ either
2021-01-09 13:33:47 +0100 <pjb> looking at the source doesn't give you the needed information for FFI. You need the source + the compiler (ABI).
2021-01-09 13:33:49 +0100 <merijn> (well, at least not when you use different compilers for each)
2021-01-09 13:33:53 +0100 <pie_> :P *cant
2021-01-09 13:34:40 +0100 <pjb> So when you define a library, it's better to define an API to access opaque structures with simple types, rather than using structures (or even arrays).
2021-01-09 13:34:47 +0100 <pie_> i dont suppose theres a portable subset if you say limit yourself to pointers or something? (in fact i probably managed to pick the one super non-portable example?)
2021-01-09 13:35:15 +0100 <pie_> by which i mean could you define a binding library with a portable subset and pass via those?
2021-01-09 13:35:21 +0100 <pie_> (re: roll my own Either)
2021-01-09 13:35:36 +0100 <pie_> (re: have someone else give me a c++ Either :PÖ
2021-01-09 13:35:42 +0100 <pjb> point_t make_point(float x,float y); float point_x(point_t); float point_y(point_t); void free_point(point_t);
2021-01-09 13:36:29 +0100 <pie_> actually, cant you build mostly anything once you can pass a 2-tuple?
2021-01-09 13:38:09 +0100 <pjb> sure.
2021-01-09 13:38:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 13:38:25 +0100 <pie_> so as long as you can make a portable 2-tuple...?
2021-01-09 13:39:17 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 13:39:37 +0100Entertainment(~entertain@104.246.132.210) ()
2021-01-09 13:39:51 +0100RichiDubey(676e93a8@103.110.147.168)
2021-01-09 13:40:21 +0100hsiktas[m](hsiktasmat@gateway/shell/matrix.org/x-ghuclucmencaeidc)
2021-01-09 13:40:59 +0100Entertainment(~entertain@104.246.132.210)
2021-01-09 13:43:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 13:44:13 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5)
2021-01-09 13:49:10 +0100geekosaur(ac3a8f57@172.58.143.87)
2021-01-09 13:49:14 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 264 seconds)
2021-01-09 13:53:01 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds)
2021-01-09 13:53:49 +0100aveltras(uid364989@gateway/web/irccloud.com/x-vyzqwjtbgygnssoa)
2021-01-09 13:54:07 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-09 14:01:02 +0100BuboBubo(~BuboBubo@rezo-mtrg2-17.ens.fr)
2021-01-09 14:05:39 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-09 14:05:52 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-01-09 14:10:36 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-01-09 14:18:06 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-09 14:18:48 +0100tabemann(~tabemann@2600:1700:7990:24e0:10cb:8914:2144:7a48) (Remote host closed the connection)
2021-01-09 14:19:04 +0100tabemann(~travisb@2600:1700:7990:24e0:d38d:9905:5d15:b54)
2021-01-09 14:19:31 +0100knupfer(~Thunderbi@200116b82c54da0095ad5e6ee1c75f73.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-09 14:19:40 +0100knupfer(~Thunderbi@200116b82c54da00c072ed6985432d30.dip.versatel-1u1.de)
2021-01-09 14:23:44 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 14:24:31 +0100 <pie_> is the unpack needed here or is it an optimization? https://github.com/fpco/inline-c-nag/blob/master/src/Language/C/Inline/Nag/Internal.hsc#L35
2021-01-09 14:25:38 +0100 <pie_> Im tryign to make an Either Void Void that I can later cast to the appropriate type but im not sure if, e.g. Either { left :: !(Ptr ()), right :: !(Ptr ())} is the right way to do it?
2021-01-09 14:25:54 +0100 <pie_> * EitherVoidPVoidP
2021-01-09 14:27:06 +0100 <pie_> the reason i think it might be needed is the storable instance
2021-01-09 14:27:39 +0100tanuki_(~quassel@173.168.154.189)
2021-01-09 14:28:15 +0100 <pie_> though it really only needs to be readable
2021-01-09 14:28:56 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds)
2021-01-09 14:28:58 +0100tanuki(~quassel@173.168.154.189) (Ping timeout: 265 seconds)
2021-01-09 14:28:59 +0100 <pie_> also this looks weird? https://github.com/fpco/inline-c-nag/blob/master/src/Language/C/Inline/Nag/Internal.hsc#L47
2021-01-09 14:29:07 +0100son0p(~son0p@181.136.122.143)
2021-01-09 14:29:13 +0100 <pie_> (#poke Complex, re) ptr complRe
2021-01-09 14:29:23 +0100 <pie_> isnt that a tuple on the left? how do you call a tuple?
2021-01-09 14:29:56 +0100 <merijn> hsc isn't a haskell file
2021-01-09 14:29:56 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 14:30:08 +0100 <merijn> It's a hsc file, which is processed by hsc2hs
2021-01-09 14:30:47 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-01-09 14:31:11 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5)
2021-01-09 14:35:19 +0100Guest_86(5af945b9@90.249.69.185)
2021-01-09 14:36:26 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
2021-01-09 14:37:01 +0100BuboBubo(~BuboBubo@rezo-mtrg2-17.ens.fr) (Remote host closed the connection)
2021-01-09 14:37:16 +0100Guest_86(5af945b9@90.249.69.185) (Remote host closed the connection)
2021-01-09 14:38:38 +0100knupfer(~Thunderbi@200116b82c54da00c072ed6985432d30.dip.versatel-1u1.de) (Quit: knupfer)
2021-01-09 14:38:45 +0100knupfer(~Thunderbi@200116b82c54da00b19d869147ebcdfe.dip.versatel-1u1.de)
2021-01-09 14:39:01 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 14:39:02 +0100knupfer(~Thunderbi@200116b82c54da00b19d869147ebcdfe.dip.versatel-1u1.de) (Client Quit)
2021-01-09 14:39:04 +0100raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-09 14:39:27 +0100knupfer(~Thunderbi@200116b82c54da006117f89f03fa7e5f.dip.versatel-1u1.de)
2021-01-09 14:39:35 +0100SlashLife(~slashlife@stienen.name)
2021-01-09 14:39:38 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-01-09 14:40:08 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-09 14:43:03 +0100xff0x(~fox@2001:1a81:5386:5c00:9c3a:413f:148c:a5a9) (Ping timeout: 260 seconds)
2021-01-09 14:43:13 +0100andrew_znc(~andrew@unaffiliated/andrew-znc) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-01-09 14:43:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 14:45:56 +0100sorki(~sorki@gateway/tor-sasl/sorki)
2021-01-09 14:46:20 +0100xff0x(~fox@2001:1a81:5386:5c00:9c3a:413f:148c:a5a9)
2021-01-09 14:47:16 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 240 seconds)
2021-01-09 14:48:44 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
2021-01-09 14:48:52 +0100sorkisrk
2021-01-09 14:49:15 +0100RichiDubey(676e93a8@103.110.147.168) (Ping timeout: 245 seconds)
2021-01-09 14:49:43 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-09 14:50:06 +0100hggdh1(~hggdh@185.163.110.125)
2021-01-09 14:50:22 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e)
2021-01-09 14:51:10 +0100jmchael(~jmchael@87.112.235.234)
2021-01-09 14:53:25 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 14:56:34 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-09 14:57:44 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2021-01-09 14:59:29 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 15:00:02 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com)
2021-01-09 15:00:21 +0100 <pie_> merijn: oh, i see
2021-01-09 15:00:34 +0100drbean(~drbean@TC210-63-209-195.static.apol.com.tw) (Ping timeout: 260 seconds)
2021-01-09 15:00:41 +0100 <pie_> so now just the thing about void pointers remains
2021-01-09 15:04:58 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 272 seconds)
2021-01-09 15:05:06 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds)
2021-01-09 15:08:05 +0100fradet(~pi@216.252.75.247) (Ping timeout: 240 seconds)
2021-01-09 15:08:40 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving)
2021-01-09 15:09:54 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 260 seconds)
2021-01-09 15:09:54 +0100ubert(~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-09 15:10:16 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-01-09 15:11:43 +0100ArConan(9de62a69@157.230.42.105)
2021-01-09 15:12:13 +0100ericsagn1(~ericsagne@2405:6580:0:5100:e13a:446f:fd91:b45c)
2021-01-09 15:12:44 +0100 <ArConan> why can x:xs pattern match a list starts with x and end up with xs?
2021-01-09 15:13:05 +0100ericsagnes(~ericsagne@2405:6580:0:5100:f012:7b5e:9a6:fec2) (Ping timeout: 272 seconds)
2021-01-09 15:13:16 +0100 <ArConan> shouldn't it match a list starts with x,xs?
2021-01-09 15:13:54 +0100 <geekosaur> it's the definition of a list
2021-01-09 15:14:42 +0100 <geekosaur> :t (:)
2021-01-09 15:14:43 +0100 <lambdabot> a -> [a] -> [a]
2021-01-09 15:14:55 +0100 <geekosaur> a list is built from a head element and a tail list
2021-01-09 15:15:20 +0100 <geekosaur> pattern matching reverses this, decomposing a list into its head and tail
2021-01-09 15:16:28 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
2021-01-09 15:16:48 +0100knupfer(~Thunderbi@200116b82c54da006117f89f03fa7e5f.dip.versatel-1u1.de) (Quit: knupfer)
2021-01-09 15:16:58 +0100knupfer(~Thunderbi@200116b82c54da00d0a1e3dcacf76b2c.dip.versatel-1u1.de)
2021-01-09 15:19:37 +0100 <ArConan> is there always only one tail in the pattern?
2021-01-09 15:20:03 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:4c51:83e:647e:c991) (Ping timeout: 272 seconds)
2021-01-09 15:20:10 +0100 <geekosaur> yes, but of course that tail itself consists of either an empty list or a head and a tail
2021-01-09 15:20:15 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-hlwujoxsjptdtvwc) (Quit: Connection closed for inactivity)
2021-01-09 15:20:16 +0100 <ArConan> if not,how can tell a:B:c 's tail from head
2021-01-09 15:20:18 +0100 <ArConan> ?
2021-01-09 15:20:35 +0100 <geekosaur> a:(B:(c:[]))
2021-01-09 15:21:46 +0100 <ArConan> a little complex
2021-01-09 15:22:00 +0100 <ArConan> what mean?
2021-01-09 15:22:11 +0100bitmagie(~Thunderbi@200116b806ecba00b9a553bd4de44e4b.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-09 15:24:26 +0100immae(~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 2.9)
2021-01-09 15:24:39 +0100 <geekosaur> the list [a,B,c] is the same as the list whose head is a and whose tail is another list, whose head is B and whose tail is another list, whose head is c and whose tail is nil (the empty list)
2021-01-09 15:24:49 +0100immae(~immae@2a01:4f8:141:53e7::)
2021-01-09 15:25:24 +0100 <ski> > let a:b:c:rest = [2,3,5,7,11,13,17,19] in (a,b,c,rest)
2021-01-09 15:25:27 +0100 <lambdabot> (2,3,5,[7,11,13,17,19])
2021-01-09 15:25:33 +0100 <ski> > let a:(b:(c:rest)) = [2,3,5,7,11,13,17,19] in (a,b,c,rest)
2021-01-09 15:25:36 +0100 <lambdabot> (2,3,5,[7,11,13,17,19])
2021-01-09 15:26:21 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-09 15:29:56 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds)
2021-01-09 15:30:01 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-09 15:30:36 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 256 seconds)
2021-01-09 15:32:44 +0100ArConan(9de62a69@157.230.42.105)
2021-01-09 15:33:23 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2021-01-09 15:33:48 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5) (Ping timeout: 260 seconds)
2021-01-09 15:34:31 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-01-09 15:34:45 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 15:35:33 +0100ubert(~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-09 15:36:09 +0100 <ArConan> ah ,i think i understand it ,thank you
2021-01-09 15:37:16 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
2021-01-09 15:39:43 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2021-01-09 15:42:19 +0100geekosaur(ac3a8f57@172.58.143.87) (Remote host closed the connection)
2021-01-09 15:43:11 +0100 <merijn> So, if I have a typeclass polymorphic function is there any point to using SPECIALIZE on an INLINE function?
2021-01-09 15:45:50 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 15:46:36 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2021-01-09 15:48:53 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 15:49:32 +0100madjestic(~Android@188-207-108-189.mobile.kpn.net)
2021-01-09 15:50:25 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2021-01-09 15:52:01 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 15:53:17 +0100 <nf> int-e: does lambdabot have a way to import modules persistently?
2021-01-09 15:53:57 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 15:54:57 +0100 <c_wraith> if you control the configuration, yes. edit Pristine.hs
2021-01-09 15:56:12 +0100 <nf> ok, so there's no command to do it from irc?
2021-01-09 15:56:19 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net) (Client Quit)
2021-01-09 15:56:25 +0100 <nf> seems like @import isn't a thing
2021-01-09 15:56:31 +0100 <c_wraith> You can use @let import, I think
2021-01-09 15:56:43 +0100 <c_wraith> but that's not really persistent, as it doesn't survive an @undefine
2021-01-09 15:57:57 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com)
2021-01-09 15:58:28 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
2021-01-09 15:58:55 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 15:58:57 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-09 15:59:06 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Read error: Connection reset by peer)
2021-01-09 15:59:13 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 15:59:18 +0100 <nf> ok that's good enough, thanks
2021-01-09 15:59:29 +0100raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-01-09 16:00:08 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2021-01-09 16:01:22 +0100raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-09 16:01:56 +0100 <nf> why does lambdabot still use Safe Haskell? it doesn't rely on that for sandboxing anymore, does it?
2021-01-09 16:02:31 +0100 <c_wraith> never did, actually. And I'm not sure why it added it.
2021-01-09 16:02:54 +0100 <nf> i'm trying to disable it so i can actually import stuff, but apparently removing the pragma in L.hs isn't enough
2021-01-09 16:03:29 +0100aveltras(uid364989@gateway/web/irccloud.com/x-vyzqwjtbgygnssoa) (Quit: Connection closed for inactivity)
2021-01-09 16:03:58 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-09 16:04:25 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
2021-01-09 16:05:07 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2021-01-09 16:08:08 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Client Quit)
2021-01-09 16:08:14 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-01-09 16:09:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 16:10:48 +0100dmiles_afk(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 16:10:51 +0100dmiles_afk(dmiles@c-98-232-203-68.hsd1.wa.comcast.net) (Client Quit)
2021-01-09 16:12:23 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2021-01-09 16:13:03 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2021-01-09 16:13:56 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-09 16:14:03 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2021-01-09 16:14:40 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 16:14:49 +0100jpds_jpds
2021-01-09 16:15:00 +0100christo(~chris@81.96.113.213)
2021-01-09 16:15:09 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 16:15:09 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-01-09 16:15:32 +0100 <nf> mniip: is yahb available anywhere?
2021-01-09 16:15:50 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-09 16:15:58 +0100ClaudiusMaximus(~claude@196.67.6.51.dyn.plus.net)
2021-01-09 16:16:07 +0100ClaudiusMaximus(~claude@196.67.6.51.dyn.plus.net) (Changing host)
2021-01-09 16:16:07 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2021-01-09 16:16:08 +0100Tario(~Tario@201.192.165.173)
2021-01-09 16:16:19 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-09 16:16:33 +0100jpds_jpds
2021-01-09 16:18:26 +0100 <Uniaika> 22
2021-01-09 16:18:28 +0100 <Uniaika> (woops)
2021-01-09 16:18:36 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-09 16:21:01 +0100 <ArConan> what means of ++ ?
2021-01-09 16:21:57 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:510b:1d8f:3795:31d5)
2021-01-09 16:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 16:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 16:23:30 +0100fendor_(~fendor@77.119.130.129.wireless.dyn.drei.com)
2021-01-09 16:24:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 16:25:03 +0100 <__monty__> > [1,2] ++ [3,4]
2021-01-09 16:25:06 +0100 <lambdabot> [1,2,3,4]
2021-01-09 16:25:15 +0100 <pjb> concat = (++)
2021-01-09 16:25:21 +0100 <pjb> concat [1,2] [3,4]
2021-01-09 16:25:28 +0100 <pjb> there, so no question asked.
2021-01-09 16:25:32 +0100 <__monty__> ArConan: It's append/concatenation for lists.
2021-01-09 16:26:18 +0100 <pjb> You just need to write your own prelude, renaming all the cryptic notations to sane symbols.
2021-01-09 16:26:19 +0100fendor(~fendor@77.119.128.254.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2021-01-09 16:26:22 +0100 <pjb> Or you can also just use lisp…
2021-01-09 16:26:28 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it)
2021-01-09 16:27:35 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-09 16:27:36 +0100 <__monty__> I just use mappend/(<>).
2021-01-09 16:28:51 +0100 <dolio> Pretty sure it's possible to learn the symbols.
2021-01-09 16:29:04 +0100 <pjb> intead of learning something useful.
2021-01-09 16:29:24 +0100 <pjb> everything is possible.
2021-01-09 16:29:32 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 16:29:44 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2021-01-09 16:29:47 +0100 <dolio> Writing your own 'prelude' that only you use is a significantly bigger waste of time.
2021-01-09 16:30:37 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net) ()
2021-01-09 16:30:48 +0100 <pie_> ah crap, I dont suppose I can use cpp headers in hsc?
2021-01-09 16:31:09 +0100 <pjb> no, but you can use cpp.
2021-01-09 16:31:59 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e)
2021-01-09 16:32:20 +0100 <pjb> cpp -E test.hsp > test.hs && ghc test.hs
2021-01-09 16:32:53 +0100ADG1089__(~aditya@122.163.165.143) (Read error: Connection reset by peer)
2021-01-09 16:33:19 +0100ADG1089__(~aditya@122.163.165.143)
2021-01-09 16:33:24 +0100 <merijn> eh, that's dangerous
2021-01-09 16:33:44 +0100 <pjb> I don't recommand it, indeed. haskell is powerful enough.
2021-01-09 16:33:44 +0100 <merijn> because haskell has different rules for literals than C, so that can mangle your code
2021-01-09 16:34:04 +0100 <merijn> GHC uses cpp in a super shady legacy mode to make it kinda work
2021-01-09 16:34:27 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:3df7:2c2b:de8e:c444)
2021-01-09 16:35:49 +0100urodna(~urodna@unaffiliated/urodna)
2021-01-09 16:36:06 +0100 <pie_> ok so this is me header, which tbh should be translatable to C. I dont know if it will work, I'm fighting compiler errors right now. its complaining about some syntaxs, which is probably a c/c++ semantics difference, idk, the syntax itself seems fine to me? https://bpa.st/WU6Q
2021-01-09 16:37:24 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-01-09 16:37:31 +0100 <merijn> pie_: That struct has no enum despite what you probably intend
2021-01-09 16:37:38 +0100 <merijn> Also, that's ultra questionable stuff
2021-01-09 16:38:02 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-09 16:38:03 +0100 <pie_> this is the hsc file: https://bpa.st/EWYA and this is where I use it: https://bpa.st/EG5A
2021-01-09 16:38:30 +0100ubert(~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-09 16:38:41 +0100 <pie_> merijn: this has examples where it does: https://en.cppreference.com/w/cpp/language/enum
2021-01-09 16:38:44 +0100 <pie_> but thats c++
2021-01-09 16:39:06 +0100 <pie_> unless i missed something because i didnt really read the page
2021-01-09 16:39:08 +0100sajith(~sajith@fsf/member/nonzen) (Remote host closed the connection)
2021-01-09 16:39:09 +0100jackhill(~jackhill@marsh.hcoop.net) (Read error: Connection reset by peer)
2021-01-09 16:39:10 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 16:39:11 +0100 <merijn> No clue, I don't really like inline-c. It's too much of a magic black box where I don't know exactly what it produces/calls
2021-01-09 16:39:44 +0100 <pie_> *nod*
2021-01-09 16:39:46 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-09 16:40:10 +0100fradet(~pi@216.252.75.247)
2021-01-09 16:40:18 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 16:40:26 +0100 <pie_> what whats ultra questionable
2021-01-09 16:40:37 +0100 <merijn> That struct
2021-01-09 16:41:24 +0100 <pie_> so what should i do instead
2021-01-09 16:41:38 +0100nly(~user@unaffiliated/nly) ("ERC (IRC client for Emacs 27.1)")
2021-01-09 16:41:40 +0100 <pie_> also yeah c doesnt do this https://stackoverflow.com/questions/48226185/c-using-enum-inside-struct
2021-01-09 16:42:53 +0100dcbdnl(~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net)
2021-01-09 16:43:03 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-poouquqkxqavcjpz)
2021-01-09 16:43:09 +0100 <merijn> pie_: I prefer just using the FFI explicitly and directly. For example, there's no real way to know/figure out which C++ compiler inline-c's C++ support uses
2021-01-09 16:43:21 +0100 <merijn> Practically speaking that's just a nightmare
2021-01-09 16:43:38 +0100fradet(~pi@216.252.75.247) (Client Quit)
2021-01-09 16:43:51 +0100 <int-e> nf: it involves editing a file on lambdabot's host
2021-01-09 16:43:59 +0100 <pie_> ok so ill add a todo for "rewrite everything to use explicit ffi" after i got this to work :p
2021-01-09 16:44:07 +0100 <merijn> There is no portable ABI for C++, so if you link your program with other C++ libraries you build, then there's no way to know the result works
2021-01-09 16:45:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 16:45:16 +0100 <merijn> pie_: if inline-c uses clang++ and you use g++, that's definitely not going to work. Even if it uses the same compiler it might not even work if inline-c uses clang++ with libc++ and you used clang++ with libstdc++
2021-01-09 16:45:43 +0100 <merijn> I speak from experience when I say that you won't even realise that's going wrong until you spend 3 hours debugging cryptic segfaults in completely normal and correct code >.>
2021-01-09 16:46:23 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2021-01-09 16:46:34 +0100 <pie_> oof
2021-01-09 16:46:43 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2021-01-09 16:46:43 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2021-01-09 16:46:55 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-09 16:46:58 +0100 <pie_> even if i use void pointers for everthing so they all have the same size? :D
2021-01-09 16:47:28 +0100 <pie_> man its really bad that C is the only common thing between anything
2021-01-09 16:48:03 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2021-01-09 16:48:24 +0100plutoniix(~q@node-ugq.pool-125-24.dynamic.totinternet.net)
2021-01-09 16:49:11 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-01-09 16:49:13 +0100 <dolio> The C ABI is the common thing.
2021-01-09 16:49:19 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2021-01-09 16:49:19 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 16:49:24 +0100 <dolio> The problem with C++ isn't just sizes. It's name mangling and such.
2021-01-09 16:49:28 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-01-09 16:51:37 +0100machinedgod(~machinedg@24.105.81.50)
2021-01-09 16:52:31 +0100 <merijn> pie_: If you use C++ you almost certainly use the STL and the libc++ and libstdc++ implementation of STL are entirely independent and *not* compatible
2021-01-09 16:52:42 +0100 <merijn> And you can't magically use "void *" for everything either
2021-01-09 16:53:59 +0100 <merijn> pie_: If you *only* use C++ from inline-c, then you *might* get away with it, but if you have any plans to link any other C++ code into the executable, then all the automatic magic stuff is a massive hassle
2021-01-09 16:54:19 +0100 <merijn> And if you only use C++ inline-c and no libraries, why use C++ at all ;)
2021-01-09 16:55:40 +0100 <pie_> i see
2021-01-09 16:55:41 +0100madjestic(~Android@188-207-108-189.mobile.kpn.net) (Read error: Connection reset by peer)
2021-01-09 16:55:47 +0100 <pie_> well it got me off the ground at least
2021-01-09 16:56:44 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-mvrdbovajsozrgcj)
2021-01-09 16:57:10 +0100pie_tries not to get discouraged :P
2021-01-09 16:57:17 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-09 16:57:33 +0100christo(~chris@81.96.113.213)
2021-01-09 16:57:48 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-09 16:59:11 +0100 <pie_> ok just to get things rolling i made a .h for the hsc and a .hpp for the c++, maybe things wont crash horribly
2021-01-09 16:59:29 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 17:00:14 +0100 <merijn> pie_: Well, if you can somehow arrange things so that you have a C API that only uses pointer arguments to pass around, then your life becomes considerably easier
2021-01-09 17:00:34 +0100 <merijn> pie_: So it depends how many C++ functions you need to access
2021-01-09 17:00:37 +0100Rudd0(~Rudd0@185.189.115.103)
2021-01-09 17:00:47 +0100 <pie_> i mean its a pain in the butt to write a c wrapper, but it sounds like it might be a necessary evil
2021-01-09 17:00:53 +0100 <pie_> not that many right ow
2021-01-09 17:00:54 +0100 <pie_> *now
2021-01-09 17:01:09 +0100 <pie_> so how the hell do c++ libraries even work? or is this why linux distros only use one compiler? <merijn> There is no portable ABI for C++, so if you link your program with other C++ libraries you build, then there's no way to know the result works
2021-01-09 17:01:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 17:01:29 +0100 <merijn> pie_: Because system packages all use the same compiler, yes
2021-01-09 17:02:28 +0100 <merijn> Or because they go through a C interface :p
2021-01-09 17:02:37 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-01-09 17:02:44 +0100acidjnk_new(~acidjnk@p200300d0c704e7293cc19a8744f5227e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-01-09 17:03:16 +0100 <pie_> merijn: is there a way to learn this stuff without me constantly nagging people for help?
2021-01-09 17:03:28 +0100 <merijn> pie_: The lack of portable ABI is why not a single language provides a full C++ FFI (I think D has a partial one, but that's because they basically reimplement tons of compiler details >.>)
2021-01-09 17:04:04 +0100 <merijn> Well, my way of learning involved wasting about a year of my life and lots of frustration, so I wouldn't recommend that route >.>
2021-01-09 17:05:24 +0100 <pie_> oh i misunderstood how some of hsc2hs works because of coincidences between names for what i was taking as an example , lets see if i can fix this now...
2021-01-09 17:05:43 +0100 <pie_> merijn: can you write a guide? :P
2021-01-09 17:06:42 +0100 <pie_> surely there is something out there already, but how to find it...
2021-01-09 17:07:04 +0100 <merijn> Well my guide would be: as little C++ as humanly possible, C-based APIs and explicit FFI if you wanna have something you can understand :p
2021-01-09 17:07:25 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 264 seconds)
2021-01-09 17:08:04 +0100 <pie_> ok wth "MCtx.hsc:28:15: error: ‘SumVoidP’ undeclared (first use in this function)" ...its right there in the .h
2021-01-09 17:08:08 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-09 17:08:27 +0100pera(~pera@unaffiliated/pera)
2021-01-09 17:12:00 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-09 17:14:54 +0100 <pie_> ok since its C i need a typedef
2021-01-09 17:16:11 +0100Entertainment(~entertain@104.246.132.210)
2021-01-09 17:16:11 +0100xff0x(~fox@2001:1a81:5386:5c00:9c3a:413f:148c:a5a9) (Quit: xff0x)
2021-01-09 17:16:45 +0100Feuermagier(~Feuermagi@213.178.26.41)
2021-01-09 17:17:44 +0100 <pie_> why doesnt anyone standardize an abi...
2021-01-09 17:18:11 +0100 <pie_> (presumably they cant agree on anything or dont see a need?)
2021-01-09 17:19:04 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net) (Ping timeout: 246 seconds)
2021-01-09 17:19:31 +0100 <Rembane> My guess is that it's because there is one for C.
2021-01-09 17:20:37 +0100 <merijn> pie_: Same reason why people don't just write a new Haskell standard :p
2021-01-09 17:20:45 +0100 <merijn> Everyone has opinions and no one agrees
2021-01-09 17:21:11 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net)
2021-01-09 17:21:13 +0100 <dolio> I don't think that's actually the same situation.
2021-01-09 17:21:47 +0100 <merijn> It is and it isn't :p
2021-01-09 17:21:49 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-01-09 17:22:09 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-09 17:22:19 +0100re6(5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net)
2021-01-09 17:22:45 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 17:22:55 +0100 <re6> When working with function that return a lot of Eithers and Maybes is the idiomatic way to deal with it with case statements or some other way?
2021-01-09 17:23:05 +0100 <re6> for example when you read from a DB
2021-01-09 17:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 17:23:08 +0100 <re6> and it returns
2021-01-09 17:23:13 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:5a:c3a4:5df0:660c) (Remote host closed the connection)
2021-01-09 17:23:21 +0100 <re6> Either Error (Maybe Result)
2021-01-09 17:24:08 +0100 <merijn> re6: Simple, write a function "Either Error (Maybe Result) -> Either (Either Error Missing) Result" and map that over it? ;)
2021-01-09 17:24:35 +0100 <merijn> Or "Either Error Result" if you can turn "Nothing" into a meaningful "Error"
2021-01-09 17:24:38 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-09 17:24:42 +0100ADG1089__(~aditya@122.163.165.143) (Remote host closed the connection)
2021-01-09 17:25:07 +0100 <merijn> re6: Basically, it depends on how you wanna handle the errors
2021-01-09 17:25:09 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-09 17:26:32 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-01-09 17:26:50 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
2021-01-09 17:27:37 +0100knupfer(~Thunderbi@200116b82c54da00d0a1e3dcacf76b2c.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-09 17:27:45 +0100knupfer(~Thunderbi@200116b82c54da009476bf1b0729030a.dip.versatel-1u1.de)
2021-01-09 17:27:49 +0100 <re6> merijn: what about this
2021-01-09 17:27:50 +0100 <re6> case result of
2021-01-09 17:28:22 +0100xff0x(~fox@2001:1a81:5386:5c00:89b0:9d:5bb9:27d3)
2021-01-09 17:28:40 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-01-09 17:29:01 +0100jlamothe(~jlamothe@198.251.55.207)
2021-01-09 17:29:11 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-09 17:29:32 +0100Lowl3v3l(~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de)
2021-01-09 17:29:34 +0100jollygood2(~bc812391@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-01-09 17:31:08 +0100 <merijn> re6: That works, if you've only got 1, but tedious for 1000s
2021-01-09 17:31:48 +0100 <re6> merijn: Sorry, 1000s of what?
2021-01-09 17:33:51 +0100 <re6> oh, I only now understand what this function is supposed to be. Still have to stare at them for a while to see what's going on
2021-01-09 17:33:52 +0100 <re6> "Either Error (Maybe Result) -> Either (Either Error Missing) Result"
2021-01-09 17:33:59 +0100ubert1(~Thunderbi@p200300ecdf1ee090e6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-09 17:34:33 +0100ubert(~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-09 17:34:33 +0100ubert1ubert
2021-01-09 17:37:02 +0100 <merijn> re6: Well, you said database query, so normally you'd get like one value per row
2021-01-09 17:37:07 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2021-01-09 17:37:09 +0100 <merijn> Of course, there's also stuff like
2021-01-09 17:37:12 +0100 <merijn> :t traverse
2021-01-09 17:37:13 +0100 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2021-01-09 17:37:41 +0100 <merijn> :t traverse `asAppliedTo` (undefined :: Char -> Either String Int)
2021-01-09 17:37:42 +0100 <lambdabot> Traversable t => (Char -> Either String Int) -> t Char -> Either String (t Int)
2021-01-09 17:37:57 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-01-09 17:39:22 +0100vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 246 seconds)
2021-01-09 17:41:31 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
2021-01-09 17:41:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 17:43:28 +0100 <ij> :t on
2021-01-09 17:43:31 +0100 <lambdabot> (b -> b -> c) -> (a -> b) -> a -> a -> c
2021-01-09 17:43:38 +0100 <ij> where is that defined?
2021-01-09 17:44:54 +0100 <merijn> Data.Function, iirc
2021-01-09 17:45:11 +0100 <jlamothe> Is that included in base?
2021-01-09 17:45:17 +0100 <merijn> Yes
2021-01-09 17:45:43 +0100 <jlamothe> I get the jist of what it's supposed to do from the type signature, but I never even knew it existed.
2021-01-09 17:46:13 +0100 <merijn> :t sortBy
2021-01-09 17:46:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 17:46:15 +0100 <lambdabot> (a -> a -> Ordering) -> [a] -> [a]
2021-01-09 17:46:15 +0100 <ij> I think I've seen ski showcase it multiple times
2021-01-09 17:46:16 +0100 <merijn> :t compare
2021-01-09 17:46:18 +0100 <lambdabot> Ord a => a -> a -> Ordering
2021-01-09 17:46:30 +0100 <merijn> :t sortBy (compare `on` fst)
2021-01-09 17:46:32 +0100 <lambdabot> Ord a => [(a, b)] -> [(a, b)]
2021-01-09 17:47:29 +0100 <merijn> That's outdated due to comparing and sortOn, but the general use is still there
2021-01-09 17:47:42 +0100 <merijn> :t (+) `on` fst
2021-01-09 17:47:44 +0100 <lambdabot> Num c => (c, b) -> (c, b) -> c
2021-01-09 17:48:23 +0100 <ij> few popular languages have as cool general functions as haskell, this being a prime example
2021-01-09 17:48:43 +0100Rudd0^(~Rudd0@185.189.115.108)
2021-01-09 17:48:45 +0100 <merijn> ij: You wanna know the coolest general function?
2021-01-09 17:48:50 +0100 <ij> tell me :)
2021-01-09 17:48:51 +0100 <merijn> mappend! :p
2021-01-09 17:49:05 +0100 <ij> mappend is nice :)
2021-01-09 17:49:07 +0100 <merijn> Specifically, the one for "instance Monoid r => Monoid (a -> r)"
2021-01-09 17:49:30 +0100chisui__(5882985d@88.130.152.93)
2021-01-09 17:49:34 +0100 <merijn> :t comparing
2021-01-09 17:49:35 +0100 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
2021-01-09 17:49:54 +0100madjest0(~Android@86-88-72-244.fixed.kpn.net)
2021-01-09 17:49:59 +0100 <ij> :t head `mappend` head
2021-01-09 17:50:01 +0100 <lambdabot> Monoid a => [a] -> a
2021-01-09 17:50:05 +0100 <merijn> > sortBy (comparing fst <> comparing snd) $ zip [1..5] [10,9..6]
2021-01-09 17:50:08 +0100 <lambdabot> [(1,10),(2,9),(3,8),(4,7),(5,6)]
2021-01-09 17:50:13 +0100 <ij> > head `mappend` head $ [1] [2]
2021-01-09 17:50:17 +0100 <lambdabot> error:
2021-01-09 17:50:17 +0100 <lambdabot> • Couldn't match expected type ‘[a1] -> [a]’
2021-01-09 17:50:17 +0100 <lambdabot> with actual type ‘[a0]’
2021-01-09 17:50:19 +0100 <merijn> > sortBy (comparing snd <> comparing fst) $ zip [1..5] [10,9..6]
2021-01-09 17:50:22 +0100 <lambdabot> [(5,6),(4,7),(3,8),(2,9),(1,10)]
2021-01-09 17:50:22 +0100BuboBubo(~BuboBubo@37.167.208.71)
2021-01-09 17:50:36 +0100 <ij> > head `mappend` head $ [3]
2021-01-09 17:50:38 +0100 <lambdabot> error:
2021-01-09 17:50:38 +0100 <lambdabot> • Ambiguous type variable ‘a0’ arising from a use of ‘show_M825283759305...
2021-01-09 17:50:38 +0100 <lambdabot> prevents the constraint ‘(Show a0)’ from being solved.
2021-01-09 17:50:50 +0100 <merijn> 3 isn't a Monoid
2021-01-09 17:50:56 +0100 <ij> ah, damn :)
2021-01-09 17:51:00 +0100 <ij> summation should be
2021-01-09 17:51:02 +0100 <merijn> > head `mappend` head $ [Sum 3]
2021-01-09 17:51:04 +0100 <lambdabot> Sum {getSum = 6}
2021-01-09 17:51:05 +0100 <ij> but I know, Sum
2021-01-09 17:51:09 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
2021-01-09 17:51:21 +0100 <ij> > head `mappend` last$$ map Sum [1..6]
2021-01-09 17:51:23 +0100 <merijn> Personally I think my sortBy example is cooler ;)
2021-01-09 17:51:23 +0100 <lambdabot> error:
2021-01-09 17:51:24 +0100 <lambdabot> • Couldn't match expected type ‘Doc’ with actual type ‘[a0] -> a0’
2021-01-09 17:51:24 +0100 <lambdabot> • Probable cause: ‘mappend’ is applied to too few arguments
2021-01-09 17:51:25 +0100 <ij> > head `mappend` last $ map Sum [1..6]
2021-01-09 17:51:27 +0100 <lambdabot> Sum {getSum = 7}
2021-01-09 17:51:33 +0100 <__monty__> Is hoogle down for anyone else? How do people expect me to write haskell without handholding?! /o\
2021-01-09 17:51:34 +0100 <ij> that is weird and very cool
2021-01-09 17:51:36 +0100 <ij> __monty__, yes
2021-01-09 17:51:38 +0100 <merijn> __monty__: It's down
2021-01-09 17:51:43 +0100 <merijn> ij: It's actually better
2021-01-09 17:52:01 +0100 <ij> lemme read your comparing <>
2021-01-09 17:52:02 +0100 <merijn> ij: since "instance Monoid r => Monoid (a -> r)" applies recursively
2021-01-09 17:52:14 +0100xff0x(~fox@2001:1a81:5386:5c00:89b0:9d:5bb9:27d3) (Ping timeout: 264 seconds)
2021-01-09 17:52:15 +0100 <monochrom> Time to read library docs from cover to cover.
2021-01-09 17:52:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 17:52:19 +0100 <merijn> Which is why it works despite "comparing fst" being multiple arguments
2021-01-09 17:52:23 +0100 <merijn> :t comparing fst
2021-01-09 17:52:25 +0100 <lambdabot> Ord a => (a, b) -> (a, b) -> Ordering
2021-01-09 17:52:58 +0100xff0x(~fox@2001:1a81:5386:5c00:b0f6:da6b:4124:f1d4)
2021-01-09 17:55:49 +0100ArsenArsen_(~Arsen@fsf/member/ArsenArsen) (Quit: bye)
2021-01-09 17:56:01 +0100ArsenArsen(~Arsen@fsf/member/ArsenArsen)
2021-01-09 17:56:23 +0100 <ij> > getProduct . fold $ [1,2,3,4]
2021-01-09 17:56:25 +0100 <lambdabot> 24
2021-01-09 17:56:26 +0100 <ij> wtf!?
2021-01-09 17:56:40 +0100 <merijn> ij: "instance Num a => Num (Product a)" :)
2021-01-09 17:56:42 +0100geekosaur(42d52137@66.213.33.55)
2021-01-09 17:56:55 +0100 <ij> ah, gotcha they're not integers
2021-01-09 17:57:04 +0100 <ij> so that helps solving that with your reminder of this instance
2021-01-09 17:59:24 +0100xff0x(~fox@2001:1a81:5386:5c00:b0f6:da6b:4124:f1d4) (Ping timeout: 240 seconds)
2021-01-09 17:59:29 +0100 <ij> it took me a while to grasp function monad intuitively
2021-01-09 18:00:23 +0100 <ij> ok, I get your comparing example – whack, but very cool
2021-01-09 18:00:50 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Read error: Connection reset by peer)
2021-01-09 18:00:54 +0100 <merijn> ij: If you wanna see some heavy duty abuse of that monoid
2021-01-09 18:01:00 +0100 <ij> I do!
2021-01-09 18:01:11 +0100viluon(uid453725@gateway/web/irccloud.com/x-kawrxnfkkehkxrdj)
2021-01-09 18:01:38 +0100 <merijn> ij: https://github.com/haskell/cabal/blob/master/Cabal/src/Distribution/Simple/Program/GHC.hs#L49-L307
2021-01-09 18:01:46 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2021-01-09 18:01:51 +0100 <viluon> is Hoogle down for anyone else? (sorry if it's been asked before) https://hoogle.haskell.org/
2021-01-09 18:01:53 +0100 <merijn> That's about 250 lines worth of code that's 90% various monoid instances :p
2021-01-09 18:01:56 +0100 <ij> viluon, yes
2021-01-09 18:02:01 +0100 <viluon> ij: thanks
2021-01-09 18:02:18 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-09 18:02:27 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 18:02:29 +0100p8m_(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
2021-01-09 18:04:10 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-09 18:04:17 +0100jamm_(~jamm@unaffiliated/jamm)
2021-01-09 18:04:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-01-09 18:05:44 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net)
2021-01-09 18:07:53 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 272 seconds)
2021-01-09 18:07:56 +0100 <ij> hoogle seems to be up
2021-01-09 18:08:16 +0100ransom(~c4264035@8.48.134.54)
2021-01-09 18:08:20 +0100 <dsal> amazonka is really great, but also very lightly supported.
2021-01-09 18:08:52 +0100 <geekosaur> which hoogle?
2021-01-09 18:09:06 +0100 <ij> geekosaur, .haskell.org
2021-01-09 18:10:53 +0100cheater(~user@unaffiliated/cheater)
2021-01-09 18:11:05 +0100 <pie_> merijn: how can i cast a Ptr () to an CInt? not clear to me
2021-01-09 18:13:20 +0100 <Athas> Is GHC 8.10 much slower than 8.8? I feel that my compile times have gone up.
2021-01-09 18:13:49 +0100 <pie_> or actually, i cant tell, is IntPtr a pointer to an int or the thing that i want
2021-01-09 18:13:55 +0100 <Athas> CI suggests the same.
2021-01-09 18:13:57 +0100 <pie_> i guess a pointer to an int would actually be Ptr CInt
2021-01-09 18:15:49 +0100rajivr(uid269651@gateway/web/irccloud.com/x-dmdothxqoypgdjpl) (Quit: Connection closed for inactivity)
2021-01-09 18:15:49 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 264 seconds)
2021-01-09 18:16:57 +0100luna1(~luna@host-24-222-67-173.public.eastlink.ca)
2021-01-09 18:17:06 +0100BuboBubo(~BuboBubo@37.167.208.71) (Remote host closed the connection)
2021-01-09 18:17:35 +0100 <luna1> test
2021-01-09 18:17:39 +0100BuboBubo(~BuboBubo@rezo-mtrg2-17.ens.fr)
2021-01-09 18:18:24 +0100 <luna1> anyone here?
2021-01-09 18:18:27 +0100 <__monty__> We're receiving you loud and clear, luna1.
2021-01-09 18:19:09 +0100 <luna1> thanks... just testing encrypted network...
2021-01-09 18:19:34 +0100 <dsal> Oh. In that case, your encryption has failed.
2021-01-09 18:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 18:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 18:23:28 +0100 <luna1> oLqf4WVbLm5Zyh3xTyOfNQQC8d3ooXWY6H0uJ5JXtNsaegq0UsSXGIEaGDY!
2021-01-09 18:23:49 +0100luna1(~luna@host-24-222-67-173.public.eastlink.ca) (Quit: WeeChat 2.8)
2021-01-09 18:25:37 +0100 <__monty__> Receiving you loud but unreadable.
2021-01-09 18:26:32 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-nkiniljwvcptfvfg)
2021-01-09 18:29:42 +0100new_haskeller(ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com)
2021-01-09 18:29:56 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
2021-01-09 18:30:24 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-09 18:32:34 +0100 <dwt> sucks
2021-01-09 18:32:37 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net) (Ping timeout: 264 seconds)
2021-01-09 18:32:49 +0100 <dwt> nvm I can't type
2021-01-09 18:33:22 +0100 <pie_> isnt there a way to use io in case statements in do notation where I dont have to fiddle with getting the IO out of the inside of the case statement
2021-01-09 18:33:44 +0100 <monochrom> Show actual mock code?
2021-01-09 18:35:12 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
2021-01-09 18:35:35 +0100 <pie_> https://bpa.st/Z6YA
2021-01-09 18:35:36 +0100eyenx(~eyenxeyen@unaffiliated/eye/x-1653358) (Remote host closed the connection)
2021-01-09 18:36:00 +0100 <pie_> I could probably do some variant of the thing we did yesterday sure
2021-01-09 18:36:14 +0100 <monochrom> Which line is line "72"?
2021-01-09 18:37:20 +0100 <pie_> monochrom: 1 -> Left $ getStr $ castPtr $ _field struct
2021-01-09 18:37:21 +0100 <monochrom> Perhaps some of those $'s should be fmap instead?
2021-01-09 18:38:35 +0100niekvandepas(~niekvande@2001:985:bebc:1:2199:1575:430:126b)
2021-01-09 18:38:43 +0100 <monochrom> Right? If I want "I want to getLine but don't return the string, return the length of the string" it's fmap length getLine, right? RIGHT?
2021-01-09 18:39:15 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net)
2021-01-09 18:39:35 +0100 <pie_> sounds reasonable :p
2021-01-09 18:40:34 +0100 <monochrom> Meta-lesson: See how your wordy description has nothing to do with the real problem.
2021-01-09 18:40:47 +0100 <monochrom> s/description/question/
2021-01-09 18:42:25 +0100niekvandepas(~niekvande@2001:985:bebc:1:2199:1575:430:126b) (Remote host closed the connection)
2021-01-09 18:42:28 +0100 <pie_> i should set up a paste tool so i can just paste stuff from my shell
2021-01-09 18:42:31 +0100niekvandepas(~niekvande@2001:985:bebc:1:2199:1575:430:126b)
2021-01-09 18:45:51 +0100BuboBubo(~BuboBubo@rezo-mtrg2-17.ens.fr) ()
2021-01-09 18:46:16 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net) (Ping timeout: 240 seconds)
2021-01-09 18:47:21 +0100Tario(~Tario@201.192.165.173)
2021-01-09 18:47:46 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-01-09 18:47:56 +0100 <pie_> (what if i didnt have to care if i used fmap or not :P)
2021-01-09 18:48:09 +0100 <pie_> well anyway I user <$> for the first application and its happy
2021-01-09 18:48:18 +0100 <pie_> (and im basically happy)
2021-01-09 18:48:22 +0100 <monochrom> Then you're writing in SML or Scheme.
2021-01-09 18:48:36 +0100ransom(~c4264035@8.48.134.54) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-09 18:48:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 18:48:59 +0100 <pie_> nevermind I commented it out whoops :D but in any case I should be able to fix it
2021-01-09 18:49:09 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-09 18:49:09 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-170.cust.tzulo.com)
2021-01-09 18:49:43 +0100niekvandepas(~niekvande@2001:985:bebc:1:2199:1575:430:126b) (Remote host closed the connection)
2021-01-09 18:49:46 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net)
2021-01-09 18:50:09 +0100niekvandepas(~niekvande@2001:985:bebc:1:2199:1575:430:126b)
2021-01-09 18:51:39 +0100codeAlwayssaitama
2021-01-09 18:51:55 +0100saitamasaitamaplus
2021-01-09 18:52:09 +0100 <__monty__> That's my favorite bug fixing technique. Removes 100% of all bugs big and small : )
2021-01-09 18:52:35 +0100eyenx(~eyenxeyen@unaffiliated/eye/x-1653358)
2021-01-09 18:53:25 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 245 seconds)
2021-01-09 18:53:36 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2021-01-09 18:54:32 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-01-09 18:54:38 +0100niekvandepas(~niekvande@2001:985:bebc:1:2199:1575:430:126b) (Ping timeout: 264 seconds)
2021-01-09 18:56:08 +0100niekvandepas(~niekvande@2001:985:bebc:1:d36:d027:f538:7220)
2021-01-09 18:56:40 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net) (Remote host closed the connection)
2021-01-09 18:56:57 +0100xff0x(~fox@2001:1a81:5386:5c00:a8cc:4f45:69a7:42ce)
2021-01-09 18:59:25 +0100ubert(~Thunderbi@p200300ecdf1ee090e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-01-09 19:00:17 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 19:00:22 +0100 <pie_> bah, screwed by associativity
2021-01-09 19:00:53 +0100niekvandepas(~niekvande@2001:985:bebc:1:d36:d027:f538:7220) (Ping timeout: 260 seconds)
2021-01-09 19:04:14 +0100niekvandepas(~niekvande@2001:985:bebc:1:a53a:84c8:ba9d:eee2)
2021-01-09 19:05:31 +0100ADG1089__(~aditya@122.163.165.143)
2021-01-09 19:05:44 +0100turion(~turion@2a02:810d:8abf:c4a8:d43a:b21:28bf:441a)
2021-01-09 19:08:24 +0100niekvandepas(~niekvande@2001:985:bebc:1:a53a:84c8:ba9d:eee2) (Ping timeout: 240 seconds)
2021-01-09 19:08:29 +0100 <monochrom> This is why I don't use $
2021-01-09 19:08:43 +0100 <int-e> Okay, the packages that lambdabot sees have changed... I've finally set up a separate package environment for evlaution (separate from the one where lambdabot is built, that is). This means a number of packages are now gone, but it also means I have much more control over the packages that are there... so I'm less reluctant to add new ones by popular demand.
2021-01-09 19:09:04 +0100madjest0(~Android@86-88-72-244.fixed.kpn.net) (Read error: Connection reset by peer)
2021-01-09 19:09:18 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net) ()
2021-01-09 19:09:42 +0100renzhi(~renzhi@2607:fa49:653f:ba00::e0e5)
2021-01-09 19:11:09 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-09 19:13:03 +0100niekvandepas(~niekvande@2001:985:bebc:1:3d53:915:922b:d9c)
2021-01-09 19:13:12 +0100 <int-e> https://silicon.int-e.eu/lambdabot/State/packages.txt is what's there at the moment... basically what ghc ships with, lens, mueval (I have not disentangled things completely), and a few odds and ends like simple-reflect that are very useful to lambdabot.
2021-01-09 19:13:13 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
2021-01-09 19:13:58 +0100 <int-e> Oh and I broke @check, will fix...
2021-01-09 19:14:53 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-09 19:15:16 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-01-09 19:15:41 +0100 <int-e> Oh I also got rid of the builtin `Mu`; it's weird and can easily be defined on the spot.
2021-01-09 19:15:45 +0100geekosaur(42d52137@66.213.33.55)
2021-01-09 19:17:02 +0100darjeeling_(~darjeelin@115.215.40.96) (Ping timeout: 272 seconds)
2021-01-09 19:17:24 +0100niekvandepas(~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) (Ping timeout: 240 seconds)
2021-01-09 19:19:02 +0100darjeeling_(~darjeelin@115.215.40.96)
2021-01-09 19:19:42 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 256 seconds)
2021-01-09 19:20:08 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Quit: No Ping reply in 180 seconds.)
2021-01-09 19:20:23 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2021-01-09 19:21:27 +0100dominik(~weechat@2001:a61:35c0:901:9665:9cff:fe4d:b4d0)
2021-01-09 19:21:50 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-09 19:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 19:23:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 19:25:08 +0100JanBessai(~JanB@85-22-20-102.ip.dokom21.de)
2021-01-09 19:25:22 +0100xff0x(~fox@2001:1a81:5386:5c00:a8cc:4f45:69a7:42ce) (Ping timeout: 260 seconds)
2021-01-09 19:26:38 +0100sajith(~sajith@fsf/member/nonzen)
2021-01-09 19:26:59 +0100xff0x(~fox@2001:1a81:5386:5c00:a8cc:4f45:69a7:42ce)
2021-01-09 19:29:26 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-09 19:29:30 +0100stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-01-09 19:29:37 +0100flux10(2fe3e53b@047-227-229-059.res.spectrum.com)
2021-01-09 19:30:18 +0100 <flux10> could anyone explain the idea behind the function functor? i don't really get how it relates to other functors like Maybe and List, and am not seeing why fmap would correspond to (.)
2021-01-09 19:30:44 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 19:31:51 +0100JanBessai(~JanB@85-22-20-102.ip.dokom21.de) (Quit: leaving)
2021-01-09 19:32:37 +0100 <monochrom> There is a type story and a term story.
2021-01-09 19:33:37 +0100 <flux10> hmm, I understand why the types work out
2021-01-09 19:33:59 +0100 <monochrom> Type story: "(a->b) -> F a -> F b" with "F x = r->x" becomes (a->b) -> (r->a) -> (r->b), this is the type of (.)
2021-01-09 19:35:09 +0100 <monochrom> Term story: \f xs -> \r -> f (xs r) is (.)
2021-01-09 19:35:17 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-09 19:35:43 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 19:35:55 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 19:36:45 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-09 19:37:00 +0100 <flux10> could you elaborate on the term story part?
2021-01-09 19:37:27 +0100 <flux10> i'm not sure i understand what \f xs -> \r -> f (xs r) is trying to achieve
2021-01-09 19:37:59 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 19:38:31 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-09 19:38:37 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 19:38:52 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-09 19:39:12 +0100xsperry(~as@unaffiliated/xsperry) ()
2021-01-09 19:39:20 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-kkcpnmskhkuyrrwu)
2021-01-09 19:39:49 +0100 <monochrom> "xs :: F a = r->a" can be thought of as a program that, if you "run" it, it gives an answer of type "a". But "run it" means you treat it as a function and give it a parameter of type r.
2021-01-09 19:40:55 +0100 <monochrom> "fmap f xs" can be thought of as a program that is like xs, except you don't like its answer verbatim, you want to use f to convert the answer.
2021-01-09 19:41:08 +0100 <monochrom> (This holds for all functor instances.)
2021-01-09 19:41:12 +0100dmiles(dmiles@c-98-232-203-68.hsd1.wa.comcast.net)
2021-01-09 19:41:14 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-01-09 19:42:34 +0100xsperry(~as@unaffiliated/xsperry)
2021-01-09 19:42:42 +0100 <monochrom> For F = (->)r, "fmap f xs" should be a program that needs a parameter of type r, "run" xs with r, then use f to convert the answer.
2021-01-09 19:42:49 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 19:43:22 +0100 <monochrom> "run xs with r" is "xs r". That is already xs's answer. f (xs r) is the converted answer.
2021-01-09 19:43:25 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds)
2021-01-09 19:43:58 +0100 <monochrom> But you need to take the r parameter before those. \r -> f (xs r)
2021-01-09 19:44:20 +0100 <monochrom> So fmap = \f xs -> \r -> f (xs r)
2021-01-09 19:45:42 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-09 19:47:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 19:48:33 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-09 19:49:18 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99)
2021-01-09 19:49:47 +0100acidjnk_new(~acidjnk@p200300d0c704e7293cc19a8744f5227e.dip0.t-ipconnect.de)
2021-01-09 19:52:16 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
2021-01-09 19:54:35 +0100 <flux10> ah okay, i think this is starting to make sense now. thanks
2021-01-09 19:54:35 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-09 19:55:25 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-170.cust.tzulo.com) (Ping timeout: 264 seconds)
2021-01-09 19:55:31 +0100 <flux10> the program interpretation helps a lot
2021-01-09 19:55:45 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-09 19:57:58 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-01-09 19:58:04 +0100conal(~conal@64.71.133.70)
2021-01-09 19:58:50 +0100dominik(~weechat@2001:a61:35c0:901:9665:9cff:fe4d:b4d0) (Ping timeout: 264 seconds)
2021-01-09 19:59:15 +0100dominik(~weechat@aftr-62-216-207-253.dynamic.mnet-online.de)
2021-01-09 20:00:38 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-01-09 20:00:44 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
2021-01-09 20:00:44 +0100Lord_of_Life_Lord_of_Life
2021-01-09 20:01:04 +0100jollygood2(~bc812391@217.29.117.252)
2021-01-09 20:01:04 +0100halbGefressen(~halbGefre@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b)
2021-01-09 20:03:30 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-09 20:04:14 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-09 20:04:16 +0100alx741(~alx741@181.196.69.12) (Quit: alx741)
2021-01-09 20:06:16 +0100dandart(~Thunderbi@home.dandart.co.uk)
2021-01-09 20:08:06 +0100gawen(~gawen@movzbl.root.sx) (Quit: cya)
2021-01-09 20:08:20 +0100jmchael(~jmchael@87.112.235.234) (Quit: Leaving)
2021-01-09 20:09:05 +0100 <flux10> monochrom so would it be fair to say, for example, that (+1) is an instance of the "function" functor?
2021-01-09 20:09:10 +0100 <flux10> where r = int?
2021-01-09 20:09:58 +0100 <monochrom> "instance" is for types. "my type is an instance of that class".
2021-01-09 20:10:07 +0100gawen(~gawen@movzbl.root.sx)
2021-01-09 20:10:09 +0100 <monochrom> (+1) is a term/value.
2021-01-09 20:10:44 +0100 <flux10> so "Just 1" is a term, but "Just Int" would be an instance
2021-01-09 20:10:49 +0100 <monochrom> I don't use words. pffft. (+1) :: Int -> Int. Short and accurate.
2021-01-09 20:11:02 +0100 <flux10> *Maybe, sorry
2021-01-09 20:11:26 +0100 <monochrom> But the Functor class is such that "Maybe" is an instance, "Maybe Int" is not.
2021-01-09 20:11:43 +0100 <monochrom> "instance Functor Maybe" not "instance Functor (Maybe a)". Sleep on that.
2021-01-09 20:11:56 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-09 20:12:28 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-01-09 20:13:27 +0100 <flux10> but it's "instance Functor ((->) r)"
2021-01-09 20:13:52 +0100 <flux10> so what's the difference here
2021-01-09 20:14:58 +0100DavidEichmann(~david@98.27.93.209.dyn.plus.net) (Remote host closed the connection)
2021-01-09 20:15:05 +0100new_haskeller(ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds)
2021-01-09 20:15:30 +0100 <monochrom> But it is not "instance Functor ((->) r a)".
2021-01-09 20:16:03 +0100gawen(~gawen@movzbl.root.sx) (Quit: cya)
2021-01-09 20:17:25 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-09 20:17:36 +0100 <flux10> true :D
2021-01-09 20:18:03 +0100gawen(~gawen@movzbl.root.sx)
2021-01-09 20:20:04 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 20:20:53 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Ping timeout: 272 seconds)
2021-01-09 20:22:45 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 20:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 20:24:04 +0100knupfer(~Thunderbi@200116b82c54da009476bf1b0729030a.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2021-01-09 20:25:50 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds)
2021-01-09 20:30:50 +0100 <flux10> so is this arrow functor the same as the reader functor?
2021-01-09 20:34:01 +0100 <enikar> indeed
2021-01-09 20:34:23 +0100 <flux10> so why do both exist then?
2021-01-09 20:35:13 +0100 <dsal> Because English has lots of words for the same thing.
2021-01-09 20:35:21 +0100aveltras(uid364989@gateway/web/irccloud.com/x-ancwmmnynxvujmes)
2021-01-09 20:36:01 +0100 <flux10> oh so there's no real reason :D
2021-01-09 20:36:03 +0100 <flux10> i see.
2021-01-09 20:36:21 +0100 <geekosaur> the newtype-wrapped one (Reader) is generally easier to work with and understand
2021-01-09 20:36:37 +0100 <enikar> there are also different point of view
2021-01-09 20:36:39 +0100 <geekosaur> whereas the raw one bends people's brains on a regular basis :)
2021-01-09 20:41:22 +0100knupfer(~Thunderbi@200116b82c54da00fc159cfffe25780e.dip.versatel-1u1.de)
2021-01-09 20:41:24 +0100renzhi(~renzhi@2607:fa49:653f:ba00::e0e5) (Ping timeout: 240 seconds)
2021-01-09 20:41:43 +0100alx741(~alx741@181.196.69.12)
2021-01-09 20:41:52 +0100alx741(~alx741@181.196.69.12) (Client Quit)
2021-01-09 20:42:06 +0100knupfer(~Thunderbi@200116b82c54da00fc159cfffe25780e.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-09 20:42:14 +0100knupfer(~Thunderbi@200116b82c54da00c0fe6bfc73b4a5f3.dip.versatel-1u1.de)
2021-01-09 20:42:38 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 20:42:49 +0100ph88(~ph88@2a01:598:d002:63ff:f864:480b:85db:ffe9)
2021-01-09 20:43:31 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-09 20:44:00 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-hzinwdistayxyvoe)
2021-01-09 20:44:45 +0100alx741(~alx741@181.196.69.12)
2021-01-09 20:45:43 +0100 <geekosaur> the Reader "story" is that you have an "environment" that is somehow passed around. That this is just a function argument is hidden by the newtype.
2021-01-09 20:47:19 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
2021-01-09 20:47:48 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2021-01-09 20:48:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-09 20:49:20 +0100dandels(~dandels@unaffiliated/dandels)
2021-01-09 20:51:52 +0100bitmagie(~Thunderbi@200116b806ecba00e03d429121b6176a.dip.versatel-1u1.de)
2021-01-09 20:53:23 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
2021-01-09 20:57:02 +0100xff0x(~fox@2001:1a81:5386:5c00:a8cc:4f45:69a7:42ce) (Ping timeout: 264 seconds)
2021-01-09 20:57:28 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
2021-01-09 20:59:35 +0100ADG1089__(~aditya@122.163.165.143) (Remote host closed the connection)
2021-01-09 21:00:33 +0100 <idnar> similarly, instance Monoid m => Monad ((,) m) is the unwrapped Writer monad
2021-01-09 21:04:07 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net)
2021-01-09 21:04:37 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-09 21:08:50 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 245 seconds)
2021-01-09 21:08:59 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Client Quit)
2021-01-09 21:09:04 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8800:58ae:899:fbba)
2021-01-09 21:10:23 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds)
2021-01-09 21:10:39 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99) (Remote host closed the connection)
2021-01-09 21:10:44 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2021-01-09 21:11:11 +0100niekvandepas(~niekvande@2001:985:bebc:1:3d53:915:922b:d9c)
2021-01-09 21:11:43 +0100denisse_(~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds)
2021-01-09 21:12:03 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2021-01-09 21:12:15 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-01-09 21:12:54 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99)
2021-01-09 21:13:19 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 21:13:45 +0100bitmagie(~Thunderbi@200116b806ecba00e03d429121b6176a.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-09 21:14:01 +0100dandels(~dandels@unaffiliated/dandels) (Ping timeout: 264 seconds)
2021-01-09 21:15:20 +0100philopso1(~caecilius@gateway/tor-sasl/caecilius)
2021-01-09 21:15:25 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-09 21:15:31 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com)
2021-01-09 21:15:38 +0100niekvandepas(~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) (Ping timeout: 260 seconds)
2021-01-09 21:15:38 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Quit: No Ping reply in 180 seconds.)
2021-01-09 21:15:43 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2021-01-09 21:15:44 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2021-01-09 21:15:53 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2021-01-09 21:16:18 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-01-09 21:16:29 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 21:17:21 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99) (Ping timeout: 246 seconds)
2021-01-09 21:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 21:23:01 +0100Vaxu(~vaxaren@melkki.cs.helsinki.fi) (Ping timeout: 246 seconds)
2021-01-09 21:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 21:23:20 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction) (Remote host closed the connection)
2021-01-09 21:24:26 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-09 21:24:54 +0100Vaxu(~vaxaren@melkki.cs.helsinki.fi)
2021-01-09 21:25:05 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Client Quit)
2021-01-09 21:26:31 +0100igghibu(~igghibu@37.120.201.89)
2021-01-09 21:28:51 +0100geekosaur(42d52137@66.213.33.55)
2021-01-09 21:29:40 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-09 21:30:12 +0100 <flux10> how do I make sense of ReaderT?
2021-01-09 21:30:36 +0100igghibu(~igghibu@37.120.201.89) (Client Quit)
2021-01-09 21:30:46 +0100pavonia(~user@unaffiliated/siracusa)
2021-01-09 21:30:57 +0100 <flux10> what is `withReaderT f m = ReaderT $ runReaderT m . f` doing?
2021-01-09 21:31:08 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-09 21:31:09 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-09 21:31:50 +0100nij(~user@24-124-119-167-dynamic.midco.net)
2021-01-09 21:31:52 +0100 <bi_functor> :t withReaderT
2021-01-09 21:31:54 +0100 <lambdabot> (r' -> r) -> ReaderT r m a -> ReaderT r' m a
2021-01-09 21:32:36 +0100 <nij> May I ask for a help (with cabal)? I cannot successfully install `pandoc` from cabal: https://bpa.st/M6SQ .. what's going on here, and how can I fix it :)?
2021-01-09 21:35:47 +0100 <merijn> nij: Are you on Arch?
2021-01-09 21:38:04 +0100 <nij> yes
2021-01-09 21:38:47 +0100flux10(2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
2021-01-09 21:39:25 +0100 <nij> Paths to ghc and cabal: https://bpa.st/OUCA . No global pollution.
2021-01-09 21:39:46 +0100 <merijn> nij: And you installed Haskell packages from the Arch package manager?
2021-01-09 21:40:00 +0100turion(~turion@2a02:810d:8abf:c4a8:d43a:b21:28bf:441a) (Quit: Leaving.)
2021-01-09 21:40:13 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction)
2021-01-09 21:41:00 +0100 <nij> Oh yes, only for xmobar currently. .. Ah! I just checked `whereis ghc-pkg`
2021-01-09 21:41:08 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-09 21:41:40 +0100 <merijn> Classic rookie move
2021-01-09 21:41:43 +0100Noldorin(~noldorin@unaffiliated/noldorin)
2021-01-09 21:41:53 +0100 <nij> ghc-pkg: /usr/bin/ghc-pkg /home/nij/.ghcup/ghc/8.8.3/bin/ghc-pkg
2021-01-09 21:41:53 +0100 <merijn> nij: Arch's package manager ships entirely broken packages
2021-01-09 21:42:09 +0100 <nij> Sigh. So maybe it's because of ghc-pkg collision.
2021-01-09 21:42:13 +0100 <merijn> no
2021-01-09 21:42:37 +0100 <merijn> The problem is that Arch maintainers intentionally only ship dynamic libraries, but the default behaviour of GHC and cabal-install is to link statically
2021-01-09 21:42:39 +0100 <nij> merijn: yeah. I tried to get rid of all haskell stuff from arch repo, but I couldn't not build xmobar with all flags on successfully from cabal..
2021-01-09 21:42:49 +0100 <merijn> However, the Arch maintainers don't bother change that default
2021-01-09 21:43:04 +0100 <nij> Right. I believe I have got rid of most haskell stuff obtained from the arch repo.
2021-01-09 21:43:33 +0100 <nij> If I learn how to build xmobar with all flags on on cabal, I will no longer use haskell stuff from the arch repo.
2021-01-09 21:43:44 +0100 <merijn> nij: So GHC/cabal are trying to build your code, see http-client is already installed, try to use it, but since the static files are missing it's crashing on that error about Network.HTTP.Types being missing
2021-01-09 21:43:58 +0100 <nij> I seeeeee :(
2021-01-09 21:44:14 +0100 <nij> I really need to build xmobar myself, then..
2021-01-09 21:45:16 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net) (Ping timeout: 240 seconds)
2021-01-09 21:45:36 +0100 <nij> merijn: We actually talked about this yesterday. http://tunes.org/~nef/logs/haskell/21.01.08
2021-01-09 21:45:41 +0100 <nij> Haven't had luck.
2021-01-09 21:45:56 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99)
2021-01-09 21:46:59 +0100 <nij> Without fixing that, can I ask cabal to seek packages first from ~/.cabal/.. ?
2021-01-09 21:47:23 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-09 21:48:37 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net)
2021-01-09 21:48:48 +0100 <nij> Or at least ask cabal to stop looking at the global dir.. and pull http-client down to ~/.cabal if needed?
2021-01-09 21:48:59 +0100 <merijn> no clue, tbh
2021-01-09 21:49:32 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-09 21:49:34 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-09 21:50:03 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2021-01-09 21:50:25 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 21:50:28 +0100 <nij> How about this: Can I get xmobar as a standalone binary, which was compiled with all flags on?
2021-01-09 21:50:49 +0100 <nij> And has no runtime dependencies.. it should include everything it needs.
2021-01-09 21:51:22 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-09 21:51:41 +0100 <merijn> Probably? That's cabal-install's default behaviour
2021-01-09 21:51:59 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 21:52:00 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-09 21:52:08 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-01-09 21:52:08 +0100neiluj(~jco@unaffiliated/neiluj)
2021-01-09 21:52:48 +0100 <monochrom> xmonad is slowing changing from being an asset (from the POV of the Haskell community) to being a liability.
2021-01-09 21:53:23 +0100 <nij> monochrom: what does that mean? asset->liability?
2021-01-09 21:53:37 +0100 <nij> you mean it is turning bad?
2021-01-09 21:53:45 +0100 <monochrom> It being an asset requires these premises: pretty trivial to build and run, so that it is a successful gateway drug to full-blown Haskell.
2021-01-09 21:53:46 +0100 <nij> (English aint my mother tongue @@)
2021-01-09 21:53:54 +0100 <merijn> monochrom: I think it's mostly Arch that's ruining things, tbh
2021-01-09 21:53:56 +0100 <geekosaur> xmobar isn't ours
2021-01-09 21:54:53 +0100 <merijn> monochrom: Well, mostly the docs need to be updated for v2-build, hvr has already written up some stuff, but it's not explained clearly enough in the xmonad docs :\
2021-01-09 21:54:54 +0100 <nij> sad
2021-01-09 21:54:59 +0100 <monochrom> But now the premise is totally false. Now we're spending time providing tech support for using cabal to build xmonad, for people who are unlikely to be actually interested in Haskell. It's a cost centre not a revenue centre.
2021-01-09 21:56:11 +0100chisui__(5882985d@88.130.152.93) (Remote host closed the connection)
2021-01-09 21:56:15 +0100 <nij> right.. both cabal and stack are too bloated for nonfans
2021-01-09 21:56:16 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds)
2021-01-09 21:56:23 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2021-01-09 21:56:45 +0100 <nij> maybe that's why the arch folks want dyn linkings?
2021-01-09 21:57:06 +0100ryantrinkle(~ryan@cpe-24-168-87-184.si.res.rr.com)
2021-01-09 21:57:23 +0100 <ryantrinkle> is there a reason there's no instance Monoid a => Monad (Const a)
2021-01-09 21:57:30 +0100 <monochrom> Bloated is beside the point. gcc is even more bloated but you wouldn't notice. make is even more bloated but you wouldn't notice. You only notice how many commands you actually use, and how hard to find them.
2021-01-09 21:58:03 +0100 <monochrom> But gcc and make never changed their user-facing models. cabal did.
2021-01-09 21:58:12 +0100knupfer(~Thunderbi@200116b82c54da00c0fe6bfc73b4a5f3.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-09 21:58:38 +0100 <monochrom> how-to-set-up-xmonad tutorials need to be updated for the new model. Probably even xmonad itself needs to.
2021-01-09 21:58:50 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99) (Ping timeout: 264 seconds)
2021-01-09 21:58:59 +0100 <monochrom> But clearly, all those authors belong are yesteryear and no longer interested.
2021-01-09 21:59:08 +0100 <monochrom> s/belong//
2021-01-09 21:59:13 +0100cj_(~cj@c-71-204-177-39.hsd1.ca.comcast.net)
2021-01-09 22:00:19 +0100 <ryantrinkle> oh i see, join blows everything away, so maybe it would only make sense for Const ()
2021-01-09 22:00:52 +0100villek(~villek@82.128.181.28)
2021-01-09 22:01:17 +0100 <monochrom> In other words, you would find instructions for building eggdrop, it would be "./configure && make && make install", it was written in 1970, and it still is correct today, because the user-facing semantics of gcc and make didn't change.
2021-01-09 22:01:27 +0100 <monochrom> This is false for xmonad.
2021-01-09 22:02:13 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-01-09 22:02:25 +0100 <nij> monochrom: very good point
2021-01-09 22:02:37 +0100villek(~villek@82.128.181.28) (Client Quit)
2021-01-09 22:02:49 +0100 <nij> Yeah non-fans step away if a few tries failed them
2021-01-09 22:03:10 +0100 <nij> And the official doc for cabal is still confusing
2021-01-09 22:03:17 +0100 <nij> And cabal does not support uninstall
2021-01-09 22:04:18 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-01-09 22:04:18 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Read error: Connection reset by peer)
2021-01-09 22:04:51 +0100niekvandepas(~niekvande@2001:985:bebc:1:3d53:915:922b:d9c)
2021-01-09 22:05:41 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-09 22:05:42 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-09 22:06:56 +0100 <__monty__> I stay away from cabal install. It's really not a package manager.
2021-01-09 22:08:43 +0100 <nij> __monty__: What would you use then?
2021-01-09 22:08:58 +0100 <__monty__> To install packages? A package manager.
2021-01-09 22:09:04 +0100niekvandepas(~niekvande@2001:985:bebc:1:3d53:915:922b:d9c) (Ping timeout: 240 seconds)
2021-01-09 22:09:59 +0100 <nij> What's a good package manager for haskell programs?
2021-01-09 22:10:20 +0100 <__monty__> Nix, but don't let merijn hear this >.> <.<
2021-01-09 22:10:33 +0100 <bi_functor> nij: stack is what most people use
2021-01-09 22:10:34 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-01-09 22:10:44 +0100 <geekosaur> stack isn't a package manager either
2021-01-09 22:10:50 +0100 <__monty__> Exactly.
2021-01-09 22:11:04 +0100 <__monty__> Ideally you can use your distro's package manager.
2021-01-09 22:11:21 +0100 <nij> __monty__: Lol! I'm aiming for Guix actually.
2021-01-09 22:12:04 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
2021-01-09 22:12:19 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com) (Quit: leaving)
2021-01-09 22:12:25 +0100 <nij> What stops you from using Guix, but ended up with Nix?
2021-01-09 22:12:30 +0100 <nij> Is it cuz of the size of the community?
2021-01-09 22:13:12 +0100 <__monty__> nij: We can talk about this in #haskell-offtopic.
2021-01-09 22:19:00 +0100 <merijn> __monty__: I don't think "I get confused by building xmonad" is a problem where the solution "use nix" isn't going to help get people to like Haskell...
2021-01-09 22:19:31 +0100 <merijn> "use nix" is the polite way of saying "go fuck yourself" to beginners :p
2021-01-09 22:19:56 +0100xff0x(~fox@port-92-193-205-79.dynamic.as20676.net) (Ping timeout: 240 seconds)
2021-01-09 22:20:57 +0100 <merijn> bitonic: tbh I don't think "what most people use" is remotely accurate
2021-01-09 22:21:07 +0100 <merijn> Unless you're definition of most "around 50%"
2021-01-09 22:21:31 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-01-09 22:21:43 +0100xff0x(~fox@2001:1a81:5386:5c00:5db0:c4c4:4eba:efe0)
2021-01-09 22:22:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-09 22:22:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Read error: Connection reset by peer)
2021-01-09 22:23:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 22:25:19 +0100 <__monty__> I didn't say it's great for beginners. Though I'm skeptical using cabal as a package manager is better for beginners. But if it's what the XMonad community recommends, sure, go with the least friction route.
2021-01-09 22:25:32 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-mvrdbovajsozrgcj) (Quit: Connection closed for inactivity)
2021-01-09 22:26:16 +0100saitamaplus(uid272474@gateway/web/irccloud.com/x-nkiniljwvcptfvfg) (Quit: Connection closed for inactivity)
2021-01-09 22:26:46 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-09 22:27:16 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-09 22:28:09 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99)
2021-01-09 22:28:55 +0100 <dmj`> nij: guix doesn't have the critical mass around it like nix does
2021-01-09 22:29:30 +0100 <nij> dmj`: what is "critical"?
2021-01-09 22:29:44 +0100 <dmj`> nij: if you use docker and have a single haskell project you might be able to get away with just using stack, otherwise nix is nice
2021-01-09 22:29:45 +0100 <nij> (english aint my native tongue @@)
2021-01-09 22:30:01 +0100 <dmj`> nij: just means there's a larger movement around nix
2021-01-09 22:30:07 +0100 <MarcelineVQ> @remember merijn "use nix" is the polite way of saying "go fuck yourself" to beginners
2021-01-09 22:30:08 +0100 <lambdabot> I will remember.
2021-01-09 22:30:49 +0100 <ij> that is very harsh and very humorous... also a bit true
2021-01-09 22:30:54 +0100 <monochrom> Well, you don't know that a random "beginner" does not already know nix.
2021-01-09 22:32:05 +0100 <monochrom> What you can have much higher confidence, ironically, is that a self-described "beginner" and "mac user" does not know PATH.
2021-01-09 22:32:31 +0100 <monochrom> In fact, does not read the text output of ghcup at all.
2021-01-09 22:33:52 +0100 <dmj`> nij: There's a lot of unjustified hatred around nix due to people's primary experience in dev ops being configuration files, so when something just "doesn't work" they get upset. It's like when imperative programmers move to Haskell and try to call print inside of a pure function and get upset. Instead of blaming their lack of understanding, they blame the tool.
2021-01-09 22:33:57 +0100 <monochrom> So I wonder if it's polite to suggest to them "use a speech synthesizer"
2021-01-09 22:35:16 +0100 <nij> loll
2021-01-09 22:35:34 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 260 seconds)
2021-01-09 22:35:45 +0100 <nij> dmj` nice said
2021-01-09 22:35:54 +0100 <dolio> What is the appeal of XMonad for people who don't want to learn anything about Haskell? Aren't there other similar things that you can just install, and don't require writing and compiling Haskell source to configure?
2021-01-09 22:36:26 +0100 <nij> dolio: core was written in 500 lines
2021-01-09 22:36:31 +0100 <nij> that was my motivation
2021-01-09 22:36:59 +0100 <dmj`> dolio: probably none
2021-01-09 22:37:34 +0100 <dsal> dolio: It's a pretty great window manager. I used it for a while before I did anything serious in haskell. I've not really done much with it since.
2021-01-09 22:37:56 +0100dominik(~weechat@aftr-62-216-207-253.dynamic.mnet-online.de) (Quit: WeeChat 2.8)
2021-01-09 22:38:28 +0100fosterite(~fosterite@2600:6c46:7800:fecf:6d72:fa24:7fe8:ff99) (Ping timeout: 260 seconds)
2021-01-09 22:38:37 +0100 <__monty__> It seems like all the tiling WMs require basic familiarity with a language so why not haskell : )
2021-01-09 22:38:39 +0100minimario(2fe3e53b@047-227-229-059.res.spectrum.com)
2021-01-09 22:39:48 +0100 <nij> bspwm! in shell : )
2021-01-09 22:39:57 +0100 <dmj`> __monty__: why not nix :P
2021-01-09 22:41:14 +0100 <dolio> I'm skeptical that i3 and sway require you to mess around with build tools for whatever language they're written in.
2021-01-09 22:41:20 +0100nij(~user@24-124-119-167-dynamic.midco.net) ("ERC (IRC client for Emacs 27.1)")
2021-01-09 22:41:36 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 272 seconds)
2021-01-09 22:43:13 +0100fendor_fendor
2021-01-09 22:44:15 +0100 <__monty__> Not sure that's a fair assesment since lua's interpreted, so it doesn't have a build tool?
2021-01-09 22:44:30 +0100 <monochrom> Networking effect and words of mouth are usually stronger than truth. If I have only heard of xmonad, never heard of i3, I would think that my only choice would be xmonad.
2021-01-09 22:46:52 +0100 <dolio> Right, that's because lua is incorporated differently into those (if that's what they use). Lua is embedded as a scripting language for the program. In XMonad, you are writing and building a window manager using a Haskell library.
2021-01-09 22:47:03 +0100geekosaur(42d52137@66.213.33.55) (Remote host closed the connection)
2021-01-09 22:49:33 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-09 22:49:57 +0100 <ephemient> awesomewm uses lua, I don't think i3 does
2021-01-09 22:51:08 +0100 <ephemient> (and as sway ≅ i3, I don't think sway does either)
2021-01-09 22:52:14 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-09 22:52:46 +0100conal(~conal@64.71.133.70)
2021-01-09 22:52:57 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-09 22:53:17 +0100 <dolio> The only example I'm aware of that's comparable to XMonad is dwm, although maybe people have realized the general idea in other languages.
2021-01-09 22:54:14 +0100conal(~conal@64.71.133.70)
2021-01-09 22:54:42 +0100dcbdnl(~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Quit: dcbdnl)
2021-01-09 22:55:29 +0100 <dolio> And that's because XMonad was written by someone who was using dwm, but didn't like writing C code to configure it, I think.
2021-01-09 22:58:27 +0100cuz(~user@2601:182:cc02:8b0:4d5:a0a:63d7:bebb)
2021-01-09 22:59:45 +0100 <cuz> quick question, would you say a type implements a typeclass?
2021-01-09 23:01:06 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-09 23:01:18 +0100 <monochrom> Yes.
2021-01-09 23:01:25 +0100jneira(5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156) (Ping timeout: 264 seconds)
2021-01-09 23:02:00 +0100jneira(5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156)
2021-01-09 23:03:51 +0100 <cuz> ty
2021-01-09 23:07:39 +0100 <ephemient> an instance of a class may involve more than one type, but if there's one unique type I think it's clear what it means
2021-01-09 23:12:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-09 23:12:37 +0100 <texasmynsted> I think of type classes as classes of ad hoc types.
2021-01-09 23:12:41 +0100cj_(~cj@c-71-204-177-39.hsd1.ca.comcast.net) (Quit: Lost terminal)
2021-01-09 23:14:44 +0100hggdh1(~hggdh@185.163.110.125) (Remote host closed the connection)
2021-01-09 23:16:27 +0100 <cuz> what do you mean by ad hoc types?
2021-01-09 23:18:08 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2021-01-09 23:18:13 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2021-01-09 23:18:30 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
2021-01-09 23:18:42 +0100DavidEichmann(~david@98.27.93.209.dyn.plus.net)
2021-01-09 23:18:53 +0100 <texasmynsted> Each type you wish to join to the type class must have an instance that shows how it fit. This is ad hoc because how this works may and likely is different for each type.
2021-01-09 23:20:17 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2021-01-09 23:20:55 +0100 <texasmynsted> You can compare that with parametric polymorphism where there is uniform behavior and fit for each fitting type.
2021-01-09 23:22:45 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-09 23:23:06 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-09 23:24:34 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
2021-01-09 23:24:51 +0100Tario(~Tario@201.192.165.173)
2021-01-09 23:24:58 +0100 <ij> is HashSet unordered, but Set ordered?
2021-01-09 23:26:03 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-09 23:28:42 +0100 <ij> seems so
2021-01-09 23:30:00 +0100 <__monty__> ij: Probably more like ordered differently.
2021-01-09 23:30:05 +0100 <__monty__> I.e., by hash.
2021-01-09 23:30:20 +0100xff0x(~fox@2001:1a81:5386:5c00:5db0:c4c4:4eba:efe0) (Quit: xff0x)
2021-01-09 23:30:58 +0100SummerNinja(~SummerNin@84.39.117.57)
2021-01-09 23:31:04 +0100 <texasmynsted> ij, this might sound like a silly question, but why is the order/unorder nature of them important to you?
2021-01-09 23:31:10 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-01-09 23:31:42 +0100 <ij> I was just surprised that I won't get a Set, but a HashSet from HashMap, so I had to switch to Map
2021-01-09 23:32:18 +0100 <ij> __monty__, makes sense
2021-01-09 23:32:35 +0100dcbdnl(~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net)
2021-01-09 23:34:28 +0100 <__monty__> It's probably because of the constraints. HashMap only requires the keys be hashable not Ord. So it can't promise a Set because that requires elements to be Ord.
2021-01-09 23:36:23 +0100knupfer(~Thunderbi@200116b82c54da00e8524efffe32a62e.dip.versatel-1u1.de)
2021-01-09 23:37:13 +0100knupfer(~Thunderbi@200116b82c54da00e8524efffe32a62e.dip.versatel-1u1.de) (Client Quit)
2021-01-09 23:37:22 +0100knupfer(~Thunderbi@200116b82c54da006183220b81d59311.dip.versatel-1u1.de)
2021-01-09 23:37:42 +0100edge563(~edge563@gateway/tor-sasl/edge563)
2021-01-09 23:38:44 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-09 23:38:55 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving)
2021-01-09 23:39:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-09 23:41:38 +0100dcbdnl(~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net) (Quit: dcbdnl)
2021-01-09 23:43:23 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-09 23:43:43 +0100aveltras(uid364989@gateway/web/irccloud.com/x-ancwmmnynxvujmes) (Quit: Connection closed for inactivity)
2021-01-09 23:44:16 +0100usr25(~usr25@unaffiliated/usr25) ("Leaving")
2021-01-09 23:44:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-09 23:44:40 +0100re6(5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net) (Ping timeout: 245 seconds)
2021-01-09 23:45:23 +0100 <ij> is there a way to make record destructuring assignment pretty for long records? will multiline work?
2021-01-09 23:45:37 +0100dcbdnl(~dcbdnl@68-74-201-196.lightspeed.hstntx.sbcglobal.net)
2021-01-09 23:45:47 +0100 <ph88> is there a function that turns [Maybe String] int [String] when filtering out Nothing ?
2021-01-09 23:46:17 +0100 <ij> :t catMaybes
2021-01-09 23:46:18 +0100 <lambdabot> [Maybe a] -> [a]
2021-01-09 23:46:38 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-01-09 23:46:43 +0100 <ph88> thx !
2021-01-09 23:46:58 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-09 23:47:32 +0100 <sm[m]> ij: RecordWildCards and NamedFieldPuns ?
2021-01-09 23:48:22 +0100 <__monty__> Though simply writing them over multiple lines is perfectly possible afaik.
2021-01-09 23:49:11 +0100 <ij> ah, NFP would be very nice
2021-01-09 23:49:16 +0100 <ephemient> even without RecordWildCards, you can bind only the names you care about
2021-01-09 23:49:22 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-01-09 23:49:34 +0100 <ij> I wanted RecordDotSyntax, but it didn't work with haskell-language-server
2021-01-09 23:49:56 +0100 <ephemient> data X = X { a :: Int, b :: Int, c :: Int }; f X { a = a} = a + 1
2021-01-09 23:50:00 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-01-09 23:50:10 +0100 <ephemient> NamedFieldPuns just reduces the a = a to a
2021-01-09 23:50:17 +0100 <ij> I do only bind the ones I'm using, but I still have quite a few
2021-01-09 23:50:44 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-01-09 23:50:48 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-01-09 23:51:49 +0100f-a(~f-a@151.82.78.117)
2021-01-09 23:51:53 +0100 <ij> RecordWildCards is pretty nice
2021-01-09 23:51:58 +0100 <sm[m]> In real code the field names are often much longer, so writing them only once or not at all is quite a win
2021-01-09 23:52:21 +0100 <ij> man, all these record extensions are badass
2021-01-09 23:52:31 +0100 <ij> I'm glad that's sorted out somewhat
2021-01-09 23:53:32 +0100 <sm[m]> ij: you can also assign values via RWC
2021-01-09 23:54:03 +0100philopso1(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2021-01-09 23:55:31 +0100skidoesn't really like `RecordWildCards'
2021-01-09 23:55:55 +0100 <ij> why not?
2021-01-09 23:56:36 +0100 <ephemient> > data X = X { a :: Int, b :: Int } deriving show; let a = 0 in X { .. }
2021-01-09 23:56:39 +0100 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘data’
2021-01-09 23:57:03 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-hzinwdistayxyvoe) (Quit: Connection closed for inactivity)
2021-01-09 23:57:26 +0100 <ski> introduces identifiers into a scope, without an explicit binding occurance, which would make it obvious where it's coming from
2021-01-09 23:58:10 +0100 <ephemient> on the construction side, it's way too easy to create a partial value
2021-01-09 23:58:21 +0100 <ski> @let data X = X { a,b :: Int } deriving Show
2021-01-09 23:58:23 +0100 <lambdabot> Defined.
2021-01-09 23:58:27 +0100 <ski> > let a = 0 in X { .. }
2021-01-09 23:58:29 +0100 <lambdabot> error:
2021-01-09 23:58:29 +0100 <lambdabot> Illegal `..' in record construction
2021-01-09 23:58:29 +0100 <lambdabot> Use RecordWildCards to permit this
2021-01-09 23:58:43 +0100 <ski> % data X = X { a,b :: Int } deriving Show
2021-01-09 23:58:43 +0100 <yahb> ski:
2021-01-09 23:58:46 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 246 seconds)
2021-01-09 23:58:47 +0100 <ski> % let a = 0 in X { .. }
2021-01-09 23:58:47 +0100 <yahb> ski: ; <interactive>:70:14: warning: [-Wmissing-fields]; * Fields of `X' not initialised: b; * In the expression: X {..}; In the expression: let a = 0 in X {..}; In an equation for `it': it = let a = 0 in X {..}; <interactive>:70:14: warning: [-Wmissing-fields]; * Fields of `X' not initialised: b; * In the expression: X {..}; In the expression: let a = 0 in X {..}; In an