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