Logs on 2020-11-09 (freenode/#haskell)
| 00:00:02 | × | rawtaz1 quits (~rawtaz@178.239.168.171) () |
| 00:00:04 | <Feuermagier> | I have a function "constructDigit :: String -> Integer -> String" - I want to call it in the zipWith with a constant string and the zipped-towards integer. What's the syntax for that? |
| 00:01:40 | <Axman6> | I have no idea what you're asking for |
| 00:01:48 | → | christo joins (~chris@81.96.113.213) |
| 00:01:49 | <Axman6> | perhaps give us some example inputs and expected outputs |
| 00:02:05 | <hpc> | not anything specific, but... |
| 00:02:28 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 00:02:29 | <Axman6> | Feuermagier: also zipWith [(+ 5), (* 2), id, id, id] pad(reverse(digits n)) doesn't work because you actually wrote (((zipWith [(+ 5), (* 2), id, id, id]) pad(reverse(digits n)) |
| 00:02:40 | <hpc> | so, you've got code that has some identifier, "foo" - you want it to refer to the same thing everywhere you use it, and not have some extra piece of context deciding for you |
| 00:02:46 | <Axman6> | (((zipWith [(+ 5), (* 2), id, id, id]) pad) (reverse(digits n))) * |
| 00:02:48 | <hpc> | like what type it's supposed to be and so forth |
| 00:02:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:03:04 | → | Tops2 joins (~Tobias@dyndsl-095-033-091-035.ewe-ip-backbone.de) |
| 00:03:20 | <hekkaidekapus> | > ZipList [(+ 5), (* 2), id] <*> ZipList [100, 1000, 10000] |
| 00:03:21 | <lambdabot> | ZipList {getZipList = [105,2000,10000]} |
| 00:03:28 | <Axman6> | pad is being passed as an argument to zipWith |
| 00:03:46 | <hpc> | and constructors are defined as part of their data definition, to produce data of that type |
| 00:03:49 | <Feuermagier> | so, I want to turn [0,1] into [constructDigit "a" 0, constructDigit "b" 1] |
| 00:04:05 | <hpc> | which is more obvious if you look at data definitions with GADTSyntax |
| 00:04:18 | <hpc> | data Maybe where Nothing :: Maybe a; Just :: a -> Maybe a |
| 00:04:25 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 00:04:26 | <hpc> | for example |
| 00:04:28 | <Axman6> | so zipWith constructDigit ["a","b"] [0,1]? |
| 00:04:38 | <Feuermagier> | yes |
| 00:04:45 | <Feuermagier> | that works? |
| 00:04:46 | <Axman6> | need more examples to see how that should be generalised |
| 00:04:53 | <hpc> | and then if you define some other data type using Nothing as a constructor, you have two definitions |
| 00:05:13 | <hpc> | and when definitions have overlapping names, that's an error |
| 00:05:13 | <Axman6> | > zipWith f [a,b] [0,1] :: [Expr] |
| 00:05:15 | <lambdabot> | [f a 0,f b 1] |
| 00:05:25 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 00:05:59 | × | atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
| 00:06:03 | <hpc> | basically the same reason you can't define functions multiple times either |
| 00:06:14 | × | comerijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 00:06:24 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
| 00:07:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 00:07:35 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds) |
| 00:08:22 | → | atk joins (~Arch-TK@erebus.the-tk.com) |
| 00:09:56 | × | atk quits (~Arch-TK@erebus.the-tk.com) (Changing host) |
| 00:09:56 | → | atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK) |
| 00:12:58 | × | AceNovo quits (~chris@184.101.220.149) (Quit: Konversation terminated!) |
| 00:13:05 | × | CMCDragonkai1 quits (~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds) |
| 00:13:15 | → | AceNovo joins (~chris@184.101.220.149) |
| 00:15:48 | → | Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas) |
| 00:16:10 | <Feuermagier> | so, zipWith constructDigit ["a","b"] [0,1] works now. However I want the [0,1] part to be the return of a function (pad :: -> Integer) |
| 00:17:40 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
| 00:17:59 | <hekkaidekapus> | zipWith constructDigit ["a", "b"] (pad …) |
| 00:18:20 | <Feuermagier> | ah, one more parenthesis |
| 00:18:41 | <hekkaidekapus> | zipWith constructDigit ["a", "b"] xs where xs = pad … |
| 00:18:52 | <bqv> | pointfree ftw |
| 00:18:52 | → | todda7 joins (~torstein@athedsl-215972.home.otenet.gr) |
| 00:19:29 | <hekkaidekapus> | let xs = pad … in zipWith constructDigit ["a", "b"] xs |
| 00:19:30 | × | Gurkenglas__ quits (Gurkenglas@gateway/vpn/protonvpn/gurkenglas) (Ping timeout: 256 seconds) |
| 00:20:05 | × | tsaka__ quits (~torstein@ppp-2-84-22-81.home.otenet.gr) (Ping timeout: 240 seconds) |
| 00:21:24 | ← | jcowan parts (sid325434@gateway/web/irccloud.com/x-xccxiqbedbcrqfvq) () |
| 00:24:44 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 00:25:04 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 260 seconds) |
| 00:26:23 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 00:27:11 | hekkaidekapus_ | is now known as hekkaidekapus |
| 00:27:58 | → | irc_user joins (uid423822@gateway/web/irccloud.com/x-sjoykohhohfeylve) |
| 00:29:33 | × | HoolaBoola quits (~HoolaBool@hoolaboola.works) (Quit: WeeChat 2.8) |
| 00:29:49 | × | bidabong quits (uid272474@gateway/web/irccloud.com/x-ppmzlzztyuerpxde) (Quit: Connection closed for inactivity) |
| 00:33:23 | → | jmcarthur joins (~jmcarthur@2601:86:500:2a40:db56:5d66:5919:c95d) |
| 00:33:27 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 00:33:41 | × | atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
| 00:34:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:35:24 | → | atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK) |
| 00:38:25 | × | jbox quits (~atlas@unaffiliated/jbox) (Read error: Connection reset by peer) |
| 00:38:47 | → | jbox joins (~atlas@unaffiliated/jbox) |
| 00:40:00 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 00:40:50 | → | Narinas joins (~Narinas@189.223.113.190.dsl.dyn.telnor.net) |
| 00:41:44 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 00:43:51 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 00:47:38 | ← | jbox parts (~atlas@unaffiliated/jbox) ("WeeChat 2.9") |
| 00:49:31 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 00:50:18 | → | tsaka__ joins (~torstein@athedsl-216011.home.otenet.gr) |
| 00:51:13 | × | todda7 quits (~torstein@athedsl-215972.home.otenet.gr) (Ping timeout: 256 seconds) |
| 00:51:44 | → | renzhi joins (~renzhi@2607:fa49:655f:e600::28da) |
| 00:52:25 | × | m0rphism quits (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds) |
| 00:52:58 | × | _ashbreeze_ quits (~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 260 seconds) |
| 00:55:08 | → | litenull joins (~litenull@s91904426.blix.com) |
| 00:56:04 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 00:56:09 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 00:56:21 | → | Echosolace joins (99ec1b94@p1276149-omed01.tokyo.ocn.ne.jp) |
| 00:57:39 | <Echosolace> | Hey all, I'm still plodding along through learn you a haskell and I have a question about the groupby function, specifically, why the group by function is grouping together more than just pairs of items. Does anyone know why the following works out as it does? |
| 00:57:44 | <Echosolace> | let values = [-4.3, -2.4, -1.2, 0.4, 2.3, 5.9, 10.5, 29.1, 5.3, -2.4, -14.5, 2.9, 2.3] |
| 00:57:59 | <Echosolace> | groupBy (\x y -> (x > 0) == (y > 0)) values |
| 00:58:08 | <Echosolace> | [[-4.3,-2.4,-1.2],[0.4,2.3,5.9,10.5,29.1,5.3],[-2.4,-14.5],[2.9,2.3]] |
| 00:58:56 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Ping timeout: 256 seconds) |
| 00:59:00 | <Axman6> | Echosolace: groupBy is notoriously confusing, it groups runs of values together when _the first_ element combined with the others return true |
| 00:59:33 | <Axman6> | > groupBy (\x y -> y > x) [1,2,3,4,3,2,3,2,1,2,3,2,1] |
| 00:59:35 | <lambdabot> | [[1,2,3,4,3,2,3,2],[1,2,3,2],[1]] |
| 01:00:09 | <Echosolace> | That's comforting to hear. Let me try to understand that. |
| 01:00:10 | <Echosolace> | Thanks. |
| 01:00:19 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:00:49 | <Axman6> | it's basicallt a repeated use of: case xs of (y:ys?) -> takeWhile (f y) ys |
| 01:00:57 | <Axman6> | without the typos... |
| 01:04:36 | → | nbloomf joins (~nbloomf@76.217.43.73) |
| 01:05:14 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds) |
| 01:05:15 | × | nbloomf quits (~nbloomf@76.217.43.73) (Client Quit) |
| 01:06:10 | <Echosolace> | Ok, interesting. So in my example, element 0 (first element in the list, -4.3) gets compared with -2.4, is true and gets grouped, then -4.3 gets compared again with -1.2 and also gets grouped. Is that correct? |
| 01:06:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:06:32 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) |
| 01:09:40 | <Echosolace> | Sounds like it. Thanks for the help. |
| 01:09:43 | × | Echosolace quits (99ec1b94@p1276149-omed01.tokyo.ocn.ne.jp) (Remote host closed the connection) |
| 01:09:51 | → | _ashbreeze_ joins (~mark@72-161-252-32.dyn.centurytel.net) |
| 01:12:10 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 01:12:48 | → | todda7 joins (~torstein@athedsl-347721.home.otenet.gr) |
| 01:13:05 | × | tsaka__ quits (~torstein@athedsl-216011.home.otenet.gr) (Ping timeout: 240 seconds) |
| 01:16:53 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 260 seconds) |
| 01:17:23 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 01:17:42 | × | mputz quits (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 01:17:45 | × | theelous3 quits (~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer) |
| 01:18:20 | <bqv> | looking for a datatype |
| 01:18:37 | <bqv> | must be short, blonde, and located in the penn state area |
| 01:18:52 | <bqv> | no, but seriously, i'm thinking of a write-only-list sort of thing |
| 01:19:33 | <bqv> | so far the closest i can think of is an IntMap where every entry is a Maybe and the delete operation is banned |
| 01:20:10 | <bqv> | my requirement is kinda that there's a unique index for every item added across the lifespan of this container |
| 01:21:33 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
| 01:23:36 | <bqv> | the type i'm thinking of is i guess isomorphic to `IntMap (Maybe a)` and `[Maybe a]`, and I've gone for the former so far because i would need random access |
| 01:23:47 | <bqv> | just wondering if there's a better encoding |
| 01:23:57 | × | jmcarthur quits (~jmcarthur@2601:86:500:2a40:db56:5d66:5919:c95d) (Ping timeout: 244 seconds) |
| 01:24:39 | → | xenon- joins (~bc8165ab@217.29.117.252) |
| 01:26:57 | → | Lord_of_Life_ joins (~Lord@46.217.220.150) |
| 01:27:36 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds) |
| 01:30:12 | → | gproto023 joins (~gproto23@unaffiliated/gproto23) |
| 01:31:40 | → | Tario joins (~Tario@201.192.165.173) |
| 01:32:35 | → | inkbottle joins (~inkbottle@aaubervilliers-654-1-101-233.w86-212.abo.wanadoo.fr) |
| 01:33:11 | × | gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 258 seconds) |
| 01:33:48 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-107-146.w86-212.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 01:35:53 | → | conal joins (~conal@209.58.139.27) |
| 01:38:07 | <jle`> | bqv: by write-only do you mean like append-only? |
| 01:38:24 | <jle`> | you can just use whatever data type you want and only export the operations that are allowed |
| 01:38:24 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.179) |
| 01:38:51 | <jle`> | pure datatypes are all persistent so you can't really truly have 'no undo', since you can just hold a reference to previous values |
| 01:40:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 01:40:51 | × | tmciver quits (~tmciver@172.101.40.226) (Ping timeout: 258 seconds) |
| 01:41:56 | <bqv> | jle`: yes, i do |
| 01:42:00 | <bqv> | and yeah i know |
| 01:42:09 | <bqv> | i was just wondering if this was an already packaged thing |
| 01:42:47 | → | tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
| 01:43:23 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 01:46:11 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds) |
| 01:48:08 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds) |
| 01:49:14 | → | sulu joins (~sulu@unaffiliated/sulu) |
| 01:51:32 | × | AceNovo quits (~chris@184.101.220.149) (Quit: Konversation terminated!) |
| 01:51:57 | → | AceNovo joins (~chris@184.101.220.149) |
| 01:54:09 | <xenon-> | I need to create a relatively simple website for my personal use, and I want to give FRP a try. what library do you recommend? |
| 01:54:10 | → | ski joins (~ski@remote11.chalmers.se) |
| 01:58:02 | × | Tops2 quits (~Tobias@dyndsl-095-033-091-035.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 02:02:13 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 02:05:04 | <jchia> | xenon: Why do you need FRP for a website? |
| 02:06:32 | <xenon-> | I don't NEED it, I want to give it a try |
| 02:09:24 | <bqv> | jle`: what would you call, such a structure? |
| 02:12:02 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 02:15:26 | → | yinfeng joins (~yinfeng@114.212.87.131) |
| 02:16:07 | × | conal quits (~conal@209.58.139.27) (Quit: Computer has gone to sleep.) |
| 02:16:49 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@66.115.189.179) (Quit: Leaving) |
| 02:17:09 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:21:23 | → | tsaka__ joins (~torstein@ppp-2-84-16-76.home.otenet.gr) |
| 02:21:53 | × | todda7 quits (~torstein@athedsl-347721.home.otenet.gr) (Ping timeout: 256 seconds) |
| 02:27:45 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
| 02:28:46 | → | Tario joins (~Tario@201.192.165.173) |
| 02:29:34 | → | toorevitimirp joins (~tooreviti@117.182.180.38) |
| 02:34:02 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 02:35:53 | → | todda7 joins (~torstein@ppp-2-84-27-192.home.otenet.gr) |
| 02:36:04 | × | tsaka__ quits (~torstein@ppp-2-84-16-76.home.otenet.gr) (Ping timeout: 256 seconds) |
| 02:37:28 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 02:38:10 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 02:40:19 | <Axman6> | xenon-: obilisk seems to the the simplest way to start with FRP using Reflex I believe |
| 02:44:37 | → | leungbk joins (~user@2605:e000:1315:706:1ea1:e5bb:dc92:96fe) |
| 02:49:10 | → | conal joins (~conal@209.58.139.27) |
| 02:49:40 | × | mmohammadi9812 quits (~mmohammad@5.238.175.25) (Ping timeout: 272 seconds) |
| 02:50:07 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 02:51:02 | × | xff0x quits (~fox@2001:1a81:52da:100:72bb:28a0:cf70:9b87) (Ping timeout: 264 seconds) |
| 02:51:55 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) |
| 02:51:56 | → | drbean joins (~drbean@TC210-63-209-143.static.apol.com.tw) |
| 02:52:03 | × | lemmih quits (~lemmih@2406:3003:2072:44:2c90:c5a8:23d6:f0a8) (Remote host closed the connection) |
| 02:52:25 | → | lemmih joins (~lemmih@2406:3003:2072:44:c5fe:5b97:f10c:4e16) |
| 02:52:32 | → | xff0x joins (~fox@2001:1a81:531b:1600:59c2:7a84:b705:d4e7) |
| 02:54:05 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 02:55:05 | × | ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:56:02 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 02:57:02 | × | leungbk quits (~user@2605:e000:1315:706:1ea1:e5bb:dc92:96fe) (Ping timeout: 264 seconds) |
| 02:58:32 | × | ransom quits (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Client Quit) |
| 02:58:51 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.179) |
| 03:00:01 | × | litenull quits (~litenull@s91904426.blix.com) () |
| 03:01:15 | → | tsaka__ joins (~torstein@athei53-a-395.home.otenet.gr) |
| 03:03:01 | × | todda7 quits (~torstein@ppp-2-84-27-192.home.otenet.gr) (Ping timeout: 265 seconds) |
| 03:03:36 | lagothrix | is now known as Guest14788 |
| 03:03:36 | × | Guest14788 quits (~lagothrix@unaffiliated/lagothrix) (Killed (tolkien.freenode.net (Nickname regained by services))) |
| 03:03:44 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 03:04:10 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
| 03:05:25 | × | gproto023 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds) |
| 03:05:31 | × | theDon quits (~td@muedsl-82-207-238-009.citykom.de) (Ping timeout: 256 seconds) |
| 03:06:06 | → | mmohammadi9812 joins (~mmohammad@5.238.175.25) |
| 03:07:06 | → | theDon joins (~td@94.134.91.158) |
| 03:08:01 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds) |
| 03:09:55 | × | conal quits (~conal@209.58.139.27) (Quit: Computer has gone to sleep.) |
| 03:10:49 | → | conal joins (~conal@209.58.139.27) |
| 03:11:02 | × | conal quits (~conal@209.58.139.27) (Client Quit) |
| 03:12:35 | <siraben> | is anyone aware of a good tutorial on how to implement tail-call optimization in Haskell? |
| 03:12:37 | → | Lycurgus joins (~niemand@98.4.97.118) |
| 03:12:57 | <Axman6> | what do you mean? |
| 03:13:23 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:13:35 | <Axman6> | TCO isn't a necessary optimisation in Haskell because the way that function calls work basically give you that for free |
| 03:13:53 | <Axman6> | (GHC Haskell) |
| 03:16:29 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 03:19:46 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:20:40 | <siraben> | Axman6: Ah as in, if I'm making a compiler for a functional language and want to implement TCO myself |
| 03:21:00 | hackage | json-to-haskell 0.1.1.1 - https://hackage.haskell.org/package/json-to-haskell-0.1.1.1 (ChrisPenner) |
| 03:21:03 | <Axman6> | that's a very different question :P |
| 03:21:21 | <Axman6> | just jump to the code, BAM, done |
| 03:21:26 | <siraben> | Just reading my old question it wasn't clear semantically, heh. Note to self: people can't read your mind! |
| 03:21:35 | <siraben> | Yes but I have to recognize tail-calls right? |
| 03:21:37 | → | plutoniix joins (~q@node-ull.pool-125-24.dynamic.totinternet.net) |
| 03:21:45 | → | Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
| 03:22:24 | <Axman6> | this really depends a lot on your language |
| 03:23:44 | <siraben> | Axman6: say it's https://github.com/jozefg/pcf/ |
| 03:24:16 | <texasmynsted> | https://stackoverflow.com/questions/13042353/does-haskell-have-tail-recursive-optimization |
| 03:24:19 | <siraben> | Technically a naïve graph reduction machine always uses tail jumps in the opcode interpretation however the stack context grows with recursive calls, so no |
| 03:24:43 | <siraben> | texasmynsted: Yes I'm aware of what TCO is, I'm looking to implement it in a functional compiler. |
| 03:25:22 | <texasmynsted> | By default, haskell has lazy evaluation. |
| 03:25:51 | <siraben> | To constraint the question further, suppose it's a strict, impure and functional language (like Scheme). |
| 03:27:40 | <siraben> | Oh I forgot, Lambda the Ultimate GOTO! |
| 03:29:42 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 03:30:43 | → | todda7 joins (~torstein@ppp-2-84-24-176.home.otenet.gr) |
| 03:31:22 | × | tsaka__ quits (~torstein@athei53-a-395.home.otenet.gr) (Ping timeout: 256 seconds) |
| 03:31:39 | <dsal> | I spent way too much time making software nobody else is ever going to need generally available today. |
| 03:33:22 | → | iqubic joins (~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1) |
| 03:34:01 | <Axman6> | good work |
| 03:34:20 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 03:34:55 | <dsal> | I guess I did the same thing yesterday, so maybe this is just normal. |
| 03:36:33 | <justsomeguy> | What does the Haskell report mean when it says declarations withing let expressions are mutually recursive? |
| 03:36:40 | <dsal> | I got to try optparse-generic today, though. I'm not sure if I like it, but I'm more sure than before I never tried it. |
| 03:36:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:37:10 | <dsal> | justsomeguy: things defined in let can reference each otehr |
| 03:37:15 | <dsal> | s/other/otter/ |
| 03:37:22 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 03:37:29 | <justsomeguy> | Ahh, ok, that helps. |
| 03:37:36 | × | irc_user quits (uid423822@gateway/web/irccloud.com/x-sjoykohhohfeylve) (Quit: Connection closed for inactivity) |
| 03:37:56 | × | codedmart quits (~codedmart@149.28.9.205) (Quit: ZNC 1.7.5 - https://znc.in) |
| 03:38:25 | → | texasmyn_ joins (~texasmyns@64.44.55.77) |
| 03:38:43 | → | codedmart joins (~codedmart@149.28.9.205) |
| 03:38:46 | <justsomeguy> | Otters should definitely be able to reference each other; they form a tight-knit community. |
| 03:38:57 | × | texasmynsted quits (~texasmyns@64.44.55.100) (Ping timeout: 256 seconds) |
| 03:39:00 | <dsal> | ha. mnemonic |
| 03:39:20 | <justsomeguy> | :) |
| 03:41:18 | → | P1p joins (~u0_a216@173-47-2-119.cpe.cableone.net) |
| 03:41:19 | × | iqubic quits (~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1) (Remote host closed the connection) |
| 03:41:30 | <P1p> | hi |
| 03:41:51 | <dsal> | Oh cool, stack changed the way they specify resolvers in stack.yaml and broke default.nix |
| 03:43:17 | × | P1p quits (~u0_a216@173-47-2-119.cpe.cableone.net) (Quit: leaving) |
| 03:44:04 | × | ixian quits (~mgold@2002:4a74:ba78:1701:0:ff:fe78:6269) (Remote host closed the connection) |
| 03:44:12 | → | ixian joins (~mgold@terra.bitplane.org) |
| 03:45:03 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
| 03:45:05 | hackage | json-to-haskell 0.1.1.2 - https://hackage.haskell.org/package/json-to-haskell-0.1.1.2 (ChrisPenner) |
| 03:46:01 | hackage | crdt-event-fold 1.2.0.0 - Garbage collected event folding CRDT. https://hackage.haskell.org/package/crdt-event-fold-1.2.0.0 (rickowens) |
| 03:46:52 | × | texasmyn_ quits (~texasmyns@64.44.55.77) (Remote host closed the connection) |
| 03:47:14 | → | texasmynsted joins (~texasmyns@64.44.55.77) |
| 03:47:25 | × | sulu quits (~sulu@unaffiliated/sulu) (Quit: goodbye) |
| 03:47:52 | → | sulu joins (~sulu@unaffiliated/sulu) |
| 03:47:57 | × | texasmynsted quits (~texasmyns@64.44.55.77) (Remote host closed the connection) |
| 03:48:47 | → | iqubic joins (~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1) |
| 03:52:02 | → | xpika joins (~alan@2001:8003:5d32:1f00:51d0:5bbb:a565:c9fd) |
| 03:52:15 | → | leungbk joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 03:52:54 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 03:53:58 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@66.115.189.179) (Quit: Leaving) |
| 03:55:11 | → | Tario joins (~Tario@201.192.165.173) |
| 03:55:26 | → | P1p joins (~u0_a216@173-47-2-119.cpe.cableone.net) |
| 03:55:47 | <P1p> | hello everyone |
| 03:56:10 | <P1p> | join #haskell |
| 03:56:33 | × | solonarv quits (~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
| 03:56:52 | × | leungbk quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 256 seconds) |
| 03:57:04 | → | p0kerf4ce joins (~u0_a533@72.22.226.85) |
| 03:57:09 | <P1p> | yo |
| 03:57:14 | <P1p> | there you are |
| 03:57:20 | <p0kerf4ce> | woah thats a lot of people |
| 03:57:24 | <P1p> | ik |
| 03:57:37 | <P1p> | no talkin tho |
| 03:57:47 | <p0kerf4ce> | were prolly bein hacked rn |
| 03:58:05 | <P1p> | jump back to e |
| 03:59:22 | <Axman6> | you ok? |
| 04:00:00 | × | Taneb quits (~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.) |
| 04:00:04 | → | bitmagie joins (~Thunderbi@200116b8065109000cdbc28af571c7f9.dip.versatel-1u1.de) |
| 04:00:34 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 04:00:38 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 246 seconds) |
| 04:01:11 | <Axman6> | > let a = 1 : b; b = 2 : a in a -- justsomeguy |
| 04:01:14 | <lambdabot> | [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2... |
| 04:01:30 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 04:01:30 | × | coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 04:01:48 | → | coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
| 04:02:33 | × | theDon quits (~td@94.134.91.158) (Ping timeout: 260 seconds) |
| 04:02:55 | → | christo joins (~chris@81.96.113.213) |
| 04:04:09 | → | theDon joins (~td@muedsl-82-207-238-251.citykom.de) |
| 04:04:14 | × | renzhi quits (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 264 seconds) |
| 04:04:28 | ← | iqubic parts (~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1) ("ERC (IRC client for Emacs 28.0.50)") |
| 04:05:24 | × | plutoniix quits (~q@node-ull.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
| 04:05:37 | × | yinfeng quits (~yinfeng@114.212.87.131) (Ping timeout: 246 seconds) |
| 04:08:51 | × | p0kerf4ce quits (~u0_a533@72.22.226.85) (Quit: Lost terminal) |
| 04:08:56 | × | P1p quits (~u0_a216@173-47-2-119.cpe.cableone.net) (Quit: leaving) |
| 04:10:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 04:11:07 | × | todda7 quits (~torstein@ppp-2-84-24-176.home.otenet.gr) (Ping timeout: 258 seconds) |
| 04:11:09 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 04:15:04 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 246 seconds) |
| 04:15:14 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 04:17:37 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 04:18:50 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 04:21:48 | <justsomeguy> | That's a good example, thank you. |
| 04:23:05 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
| 04:23:17 | → | plakband joins (~plakband@softbank126126238105.bbtec.net) |
| 04:28:25 | × | Foritus quits (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 04:28:26 | → | Foritus joins (~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) |
| 04:30:59 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 04:31:07 | → | falafel joins (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) |
| 04:34:04 | → | bitmagie1 joins (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) |
| 04:35:30 | → | conal joins (~conal@209.58.139.27) |
| 04:35:38 | × | bitmagie quits (~Thunderbi@200116b8065109000cdbc28af571c7f9.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
| 04:35:38 | bitmagie1 | is now known as bitmagie |
| 04:38:14 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds) |
| 04:38:53 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 04:38:56 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
| 04:40:34 | × | conal quits (~conal@209.58.139.27) (Ping timeout: 256 seconds) |
| 04:44:02 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds) |
| 04:44:55 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 04:45:00 | hackage | vty 5.32 - A simple terminal UI library https://hackage.haskell.org/package/vty-5.32 (JonathanDaugherty) |
| 04:47:50 | × | Narinas quits (~Narinas@189.223.113.190.dsl.dyn.telnor.net) (Quit: Quit) |
| 04:49:01 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 04:50:29 | × | mjsor quits (~matt@c-71-238-82-85.hsd1.or.comcast.net) (Quit: Konversation terminated!) |
| 04:53:18 | × | Gurkenglas_ quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
| 04:53:33 | → | balbirs_ joins (~balbirs__@pip.ozlabs.org) |
| 04:53:53 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 04:58:17 | × | drbean quits (~drbean@TC210-63-209-143.static.apol.com.tw) (Ping timeout: 256 seconds) |
| 04:59:09 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 05:00:49 | × | Lycurgus quits (~niemand@98.4.97.118) (Ping timeout: 264 seconds) |
| 05:00:54 | × | balbirs_ quits (~balbirs__@pip.ozlabs.org) (Quit: ZNC 1.8.2+deb1 - https://znc.in) |
| 05:01:33 | → | balbirs_ joins (~balbirs__@pip.ozlabs.org) |
| 05:03:38 | × | falafel quits (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
| 05:04:08 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 05:04:33 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 05:09:19 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 05:13:29 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 05:14:30 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 05:15:54 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 05:20:10 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 246 seconds) |
| 05:20:52 | × | balbirs_ quits (~balbirs__@pip.ozlabs.org) (Quit: ZNC 1.8.2+deb1 - https://znc.in) |
| 05:22:26 | → | balbirs_ joins (~balbirs__@pip.ozlabs.org) |
| 05:22:36 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 05:23:58 | <suzu_> | > let x = 1:2:x in x |
| 05:24:00 | <lambdabot> | [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2... |
| 05:24:52 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 05:27:23 | → | yinfeng joins (~yinfeng@114.212.87.131) |
| 05:27:56 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 260 seconds) |
| 05:29:18 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
| 05:29:51 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 05:29:57 | berberman|T | is now known as berberman[T] |
| 05:30:24 | → | falafel_ joins (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) |
| 05:31:42 | → | drbean joins (~drbean@TC210-63-209-86.static.apol.com.tw) |
| 05:33:23 | → | christo joins (~chris@81.96.113.213) |
| 05:35:54 | → | day_ joins (~Unknown@unaffiliated/day) |
| 05:38:28 | → | adm_ joins (~adm@43.229.88.236) |
| 05:38:45 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds) |
| 05:38:45 | day_ | is now known as day |
| 05:39:19 | × | bitmagie quits (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 05:41:27 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 260 seconds) |
| 05:45:32 | × | plakband quits (~plakband@softbank126126238105.bbtec.net) (Quit: WeeChat 2.9) |
| 05:45:38 | × | falafel_ quits (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
| 05:49:25 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds) |
| 05:49:30 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 05:50:37 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
| 05:52:36 | × | balbirs_ quits (~balbirs__@pip.ozlabs.org) (Quit: ZNC 1.8.2+deb1 - https://znc.in) |
| 05:54:33 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 05:54:58 | → | watt281 joins (~watt281@106.206.8.241) |
| 05:56:11 | × | watt281 quits (~watt281@106.206.8.241) (Read error: Connection reset by peer) |
| 05:58:49 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 06:00:15 | × | xenon- quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (EOF)) |
| 06:01:03 | → | xenon- joins (~bc8165ab@217.29.117.252) |
| 06:03:18 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:06:12 | × | jalumar quits (uid392211@gateway/web/irccloud.com/x-cinmpjhrecfacgba) (Quit: Connection closed for inactivity) |
| 06:07:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:08:39 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 06:09:16 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 06:13:17 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 06:13:43 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 06:14:23 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 06:14:43 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 06:16:02 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 06:16:48 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 06:17:02 | × | AceNovo quits (~chris@184.101.220.149) (Quit: Konversation terminated!) |
| 06:17:28 | → | AceNovo joins (~chris@184.101.220.149) |
| 06:19:25 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 06:23:39 | → | bitmagie joins (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) |
| 06:24:31 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds) |
| 06:28:13 | → | gtk joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 06:28:25 | × | sveit quits (~sveit@45.77.0.246) (Quit: Bye) |
| 06:28:46 | → | sveit joins (~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) |
| 06:33:01 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
| 06:34:15 | × | Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
| 06:41:05 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 06:42:06 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 06:42:22 | × | AceNovo quits (~chris@184.101.220.149) (Quit: Konversation terminated!) |
| 06:42:46 | → | AceNovo joins (~chris@184.101.220.149) |
| 06:42:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 06:44:00 | × | yinfeng quits (~yinfeng@114.212.87.131) (Quit: WeeChat 2.9) |
| 06:44:47 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 06:44:54 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 06:48:23 | → | christo joins (~chris@81.96.113.213) |
| 06:48:46 | → | LKoen joins (~LKoen@77.174.9.109.rev.sfr.net) |
| 06:49:25 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 264 seconds) |
| 06:49:33 | → | elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 06:51:52 | → | bergsans joins (~bergsans@c80-217-8-29.bredband.comhem.se) |
| 06:51:58 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 06:52:42 | → | plutoniix joins (~q@ppp-223-24-153-54.revip6.asianet.co.th) |
| 06:53:23 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 06:53:23 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 06:54:03 | × | bitmagie quits (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 06:54:09 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 06:54:23 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 06:54:54 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 06:55:10 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 06:55:38 | → | leonardo2 joins (~leonardo@185.204.1.185) |
| 06:56:01 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 06:56:51 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 06:57:16 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 06:58:29 | × | nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 260 seconds) |
| 07:02:30 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:04:31 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 268 seconds) |
| 07:04:33 | <Squarism> | how would you map a list such that all but last element are mapped using f and last element is mapped using g? |
| 07:06:59 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 07:07:22 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 07:15:17 | × | alx741 quits (~alx741@186.178.110.159) (Ping timeout: 260 seconds) |
| 07:16:03 | <opqdonut> | Squarism: the straightforward answer is: map f (init xs) ++ [g (last xs)] |
| 07:16:39 | <opqdonut> | but you can write a custom recursive function mapInitLast :: (a->b) -> (a->b) -> [a] -> [b] that does the same a bit more efficiently |
| 07:17:01 | → | bitmagie joins (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) |
| 07:20:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:22:17 | → | chaosmasttter joins (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) |
| 07:24:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 07:24:26 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:25:26 | → | syyan joins (~syyan@111.85.169.156) |
| 07:27:05 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 07:29:44 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 07:29:53 | → | alx741 joins (~alx741@186.178.110.199) |
| 07:30:41 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:32:30 | × | plutoniix quits (~q@ppp-223-24-153-54.revip6.asianet.co.th) (Quit: Leaving) |
| 07:38:41 | → | adm_ joins (~adm@43.229.88.236) |
| 07:42:42 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:43:03 | × | adm_ quits (~adm@43.229.88.236) (Ping timeout: 260 seconds) |
| 07:44:23 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 07:46:30 | → | adm_ joins (~adm@43.229.88.236) |
| 07:46:31 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 07:48:19 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 07:49:14 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 07:49:40 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:51:05 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 265 seconds) |
| 07:52:58 | → | macrover joins (~macrover@ip70-189-231-35.lv.lv.cox.net) |
| 07:53:30 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds) |
| 07:57:11 | → | dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 07:58:47 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 07:59:07 | → | alp joins (~alp@2a01:e0a:58b:4920:a599:6c71:c103:ae96) |
| 08:00:16 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 08:03:49 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds) |
| 08:04:45 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
| 08:06:07 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 08:07:38 | × | macrover quits (~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection) |
| 08:08:58 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 08:09:13 | → | Lycurgus joins (~niemand@98.4.97.118) |
| 08:09:35 | → | asheshambasta joins (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) |
| 08:11:06 | <asheshambasta> | In any given cabal project, given I have default-extensions in some of my .cabal files, is HLint supposed to use these extensions while parsing? |
| 08:12:01 | <asheshambasta> | One of my modules using LambdaCase seems to be confusing HLint where it reports a parse error, while GHC accepts it. |
| 08:12:16 | ← | syyan parts (~syyan@111.85.169.156) ("Leaving") |
| 08:12:47 | <asheshambasta> | It reports an error with `interpret \case ...` and not with `interpret $ \case ...` |
| 08:13:58 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 08:14:25 | <merijn> | asheshambasta: HLint doesn't know about Haskell extensions or, really, anything about the AST/semantics |
| 08:14:30 | → | jespada joins (~jespada@90.254.245.49) |
| 08:14:49 | <merijn> | asheshambasta: It implements its own Haskell parser which may or may not be compatible with any syntax extensions |
| 08:14:56 | <merijn> | (afaict) |
| 08:15:46 | <asheshambasta> | I see, I was concluding it did based on following this as an example https://github.com/ndmitchell/hlint/blob/master/.hlint.yaml#L10 |
| 08:16:11 | <merijn> | HLint doesn't parse cabal files or anything, afaik |
| 08:16:20 | × | bitmagie quits (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 08:16:36 | <merijn> | So perhaps they work if the extensions are in the module as pragma |
| 08:16:57 | → | befuddled joins (~befuddled@49.207.208.95) |
| 08:17:04 | <merijn> | (Incidentally, this is why imo using default-extensions is a bad idea, now all your tools need to somehow be able to parse cabal files) |
| 08:17:15 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 08:17:49 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 08:18:54 | <asheshambasta> | Yeah, that's true. However, at the same time, I'd expect cabal files to define other fundamental things about my project too: where to find the modules, which modules to expose & not, where to find the Main module etc. I personally don't particularly find it problemmatic for the cabal file to also tell which extensions should be turned on by default. |
| 08:19:10 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 08:19:39 | <asheshambasta> | I guess what I'm trying to say is: if cabal files contain that information (which defines the project itself, in its dir. structure, modules etc.), why not also extensions I'd like turned on by default? |
| 08:19:52 | → | bitmagie joins (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) |
| 08:20:02 | <merijn> | Well, for example, because now hlint doesn't work :p |
| 08:20:13 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Remote host closed the connection) |
| 08:20:30 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 08:20:35 | <merijn> | Unless you duplicate the extension list into an hlint configuration file (at least, judging by that hlint link it does support a ton of extensions) |
| 08:20:36 | <asheshambasta> | Doesn't that mean HLint should parse the cabal file more than that the cabal file shouldn't contain x? |
| 08:21:03 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 08:21:25 | <merijn> | asheshambasta: Try adding support for that to hlint and you'll soon learn why it doesn't support that yet :p |
| 08:21:56 | <asheshambasta> | because parsing cabal files is hard? |
| 08:22:04 | <merijn> | Cabal is a *big* dependency to have for a tool like hlint, it also means you need to upgrade hlint a lot |
| 08:22:16 | <merijn> | It will also make the hlint codebase a ton more complicated |
| 08:22:40 | → | jchia1 joins (~jchia@58.32.71.83) |
| 08:23:00 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 08:23:22 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 08:23:23 | <merijn> | Parsing cabal files is easy, IFF you depend on Cabal. |
| 08:23:33 | <asheshambasta> | yeah, fair point. However, like you said, maintaining a separate HLint.yaml file is also going to be more boilerplate and ceremony. |
| 08:23:55 | → | elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
| 08:24:02 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds) |
| 08:24:20 | × | jchia quits (~jchia@58.32.71.108) (Ping timeout: 256 seconds) |
| 08:24:37 | <merijn> | Besides, having to put all the extensions in each Haskell file is a good way to make people think harder about adding extensions, which is a good thing imo |
| 08:25:40 | <asheshambasta> | I also agree with that, but there are some extensions that I almost always need. And these add just to the noise of what needs to be done before writing any module. |
| 08:27:17 | × | jedws quits (~jedws@101.184.150.81) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:27:34 | <asheshambasta> | However, I see that in the example above, it seems to be more of an issue with hlint's parser than an issue of it being aware of the LambdaCase extension. |
| 08:27:44 | <asheshambasta> | (it accepts `interpret $ \case`) |
| 08:28:56 | → | tito_04 joins (~taurux@net-188-152-78-21.cust.dsl.teletu.it) |
| 08:29:06 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 08:29:18 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 08:29:44 | × | taurux quits (~taurux@net-188-152-78-21.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
| 08:29:48 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:34:02 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 08:36:02 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:36:43 | × | tsaka__ quits (~torstein@ppp-2-84-29-23.home.otenet.gr) (Ping timeout: 260 seconds) |
| 08:38:08 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 08:38:09 | → | akegalj joins (~akegalj@93-136-68-191.adsl.net.t-com.hr) |
| 08:39:24 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 08:41:13 | × | akegalj quits (~akegalj@93-136-68-191.adsl.net.t-com.hr) (Client Quit) |
| 08:43:15 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 08:43:56 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 08:44:26 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds) |
| 08:44:43 | <dminuoso> | merijn: What are the chances of splitting Cabal into a cabal-the-file parser and Cabal-the-library? |
| 08:44:54 | → | star_cloud joins (6ace4535@106.206.69.53) |
| 08:45:06 | <dminuoso> | That is, if someone provided the work for it, do you reckon it would stand a chance of landing upstream? |
| 08:45:10 | → | Gtisu joins (~pi@86.red-88-23-45.staticip.rima-tde.net) |
| 08:45:13 | × | drbean quits (~drbean@TC210-63-209-86.static.apol.com.tw) (Ping timeout: 265 seconds) |
| 08:45:23 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 08:45:31 | <sclv> | i don't see the advantage |
| 08:45:48 | <dminuoso> | well, tools could parse the file for information extraction or manipulation |
| 08:46:01 | <sclv> | pulling the parser in requires pulling in the data structures which pulls in a ton of cabal anyway |
| 08:46:04 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 08:46:08 | <dminuoso> | Mmm |
| 08:46:17 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 08:46:36 | <merijn> | sclv: There's some bonus, though |
| 08:46:45 | <merijn> | You can just get the fields without semantics stuff |
| 08:47:00 | hackage | cobot-io 0.1.3.11 - Biological data file formats and IO https://hackage.haskell.org/package/cobot-io-0.1.3.11 (ozzzzz) |
| 08:47:01 | × | star_cloud quits (6ace4535@106.206.69.53) (Remote host closed the connection) |
| 08:47:15 | <merijn> | dminuoso: btw, phadej already made https://hackage.haskell.org/package/cabal-install-parsers |
| 08:47:29 | <merijn> | Or rather, I guess hvr did and he works on it now |
| 08:48:24 | <dminuoso> | merijn: Which depends on Cabal. |
| 08:48:35 | <dminuoso> | Not sure what you win that way |
| 08:49:08 | <dminuoso> | I mean if its just data type definitions, surely that can all be moved into simple Types modules. |
| 08:49:20 | <int-e> | dminuoso: AIUI it provides the parsers that are otherwise buried inside cabal-install, so the project-level stuff. |
| 08:49:34 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 08:49:46 | <int-e> | But maybe I understood incorrectly? |
| 08:49:53 | <merijn> | It does a bit of both |
| 08:50:03 | <dminuoso> | int-e: https://hackage.haskell.org/package/cabal-install-parsers-0.4/docs/src/Cabal.Package.html#readPackage |
| 08:50:12 | <merijn> | dminuoso: Pulling out those parsers is hard, though :) |
| 08:50:21 | ← | Gtisu parts (~pi@86.red-88-23-45.staticip.rima-tde.net) () |
| 08:50:41 | <dminuoso> | This is not very high level. :p |
| 08:52:04 | <int-e> | the biggest files are ... Index (so package index) and Project (project file stuff, including mapping the packages to OS directories) |
| 08:52:39 | <int-e> | Which is about what I expected/remembered. |
| 08:53:21 | <int-e> | But yes, it's on top of Cabal, while dminuoso wants a split below. |
| 08:54:41 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 08:54:49 | × | apoc quits (~apoc@49.12.13.193) (Ping timeout: 264 seconds) |
| 08:55:34 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Ping timeout: 256 seconds) |
| 08:56:21 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 08:56:40 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:56:43 | → | kuribastard joins (~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be) |
| 08:57:33 | <kuribastard> | how do f# computation expressions compare to monads? |
| 08:58:03 | → | apoc joins (~apoc@bridge.mattzq.com) |
| 08:58:08 | <kuribastard> | it looks like it's a generalization of do notation. |
| 08:58:13 | <kuribastard> | but without laws |
| 08:59:04 | × | AceNovo quits (~chris@184.101.220.149) (Quit: Konversation terminated!) |
| 08:59:06 | <kuribastard> | those languages intend to make it easier than haskell, but without laws, won't it become harder in the end? |
| 08:59:18 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 08:59:32 | → | borne joins (~fritjof@200116b864d35e0021c47849b07375d7.dip.versatel-1u1.de) |
| 08:59:36 | <kuribastard> | if it would support indexed monads, that would be an advantage though... |
| 08:59:37 | → | AceNovo joins (~chris@184.101.220.149) |
| 09:00:02 | × | leonardo2 quits (~leonardo@185.204.1.185) () |
| 09:00:18 | × | Codaraxis quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection) |
| 09:00:36 | × | bliminse quits (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds) |
| 09:00:41 | × | alp quits (~alp@2a01:e0a:58b:4920:a599:6c71:c103:ae96) (Ping timeout: 272 seconds) |
| 09:00:50 | → | Codaraxis joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 09:01:06 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 09:01:08 | → | m0rphism joins (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
| 09:01:22 | → | bliminse joins (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) |
| 09:01:37 | → | ahmr88 joins (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
| 09:02:30 | hackage | ukrainian-phonetics-basic 0.2.0.1 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.2.0.1 (OleksandrZhabenko) |
| 09:03:29 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 09:03:38 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 09:04:09 | → | alp joins (~alp@2a01:e0a:58b:4920:6dd8:8351:ec1a:bc84) |
| 09:04:51 | → | adm joins (~adm@43.229.88.236) |
| 09:05:08 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 09:06:17 | × | poljar quits (~poljar@93-139-70-179.adsl.net.t-com.hr) (Remote host closed the connection) |
| 09:06:46 | → | poljar joins (~poljar@93-139-70-179.adsl.net.t-com.hr) |
| 09:07:09 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 09:07:31 | → | Ariakenom joins (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) |
| 09:08:05 | <xpika> | Should there be a Monoid instance for Monad m => Kleisli m a a in the vein as Endo a in Data.Monoid? |
| 09:08:13 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 09:09:49 | × | otulp quits (~otulp@ti0187q162-7043.bb.online.no) (Ping timeout: 264 seconds) |
| 09:10:33 | → | otulp joins (~otulp@ti0187q162-6038.bb.online.no) |
| 09:11:28 | <Taneb> | xpika: http://hackage.haskell.org/package/monoid-extras-0.5.1/docs/Data-Monoid-Endomorphism.html there's this in monoid-extras |
| 09:11:39 | <Taneb> | Whawt you're after is "Endomorphism (Kleisli m)" |
| 09:11:50 | <Taneb> | (it works for any category) |
| 09:15:23 | <Feuermagier> | what does the :set operator do? - and where does it belong (seen it in a stackoverflow post) |
| 09:16:00 | Guest67212 | is now known as lep-delete |
| 09:16:02 | lep-delete | is now known as Guest67212 |
| 09:16:03 | Guest67212 | is now known as lep-delete |
| 09:16:35 | → | christo joins (~chris@81.96.113.213) |
| 09:16:40 | → | gproto23 joins (~gproto23@unaffiliated/gproto23) |
| 09:17:40 | → | enoq joins (~textual@194-208-146-143.lampert.tv) |
| 09:17:45 | × | ahmr88 quits (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Quit: Leaving...) |
| 09:17:48 | <xpika> | Taneb: Thanks |
| 09:18:50 | × | bitmagie quits (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 09:19:02 | <xpika> | question: Are Monads Monoids? |
| 09:20:49 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 09:21:04 | <xpika> | wikipedia doesn't seem to suggest it. https://en.wikipedia.org/wiki/Monad_(category_theory) |
| 09:21:24 | <Taneb> | xpika: the short answer is "no", but there's a long answer which has "yes" as the conclusion |
| 09:22:06 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:22:24 | <Taneb> | So as monoid as is conventionally understood is a set with an associative binary operation that has an identity |
| 09:22:37 | <Taneb> | By this definition, a monad is not a monoid (it's not even a set) |
| 09:23:07 | × | adm quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 09:23:08 | <Taneb> | But through the power of category theory, this definition can be generalized to a "monoid object on a monoidal category" |
| 09:23:45 | → | 92AABGYX7 joins (~adm@43.229.88.236) |
| 09:24:16 | <Taneb> | A monoidal category is a category with a bifunctor * and special object 1 such that A * (B * C) is isomorphic to (A * B) * C and A * 1 is isomorphic to A is isomorphic to 1 * A |
| 09:24:21 | <maralorn> | xpika: There is the sane definition of Monoid, which every mathematician knows. According to that one a Monad is not a Monoid. And then there is a category theory definition of Monoid, which I think out of 30 professors at my department max. 2 know, and as Taneb explains, that one works for Monads. |
| 09:24:53 | <Taneb> | We can make the category of sets a monoidal category with * being ordered pairs and 1 being a singleton set (like () ) |
| 09:26:12 | <Taneb> | A monoid object is an object M in a monoidal category, with morphisms 1 => M and M * M => M, with certain sensible laws corresponding to associativity and identity |
| 09:26:26 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
| 09:26:29 | <Taneb> | If we choose the category of sets as our monoidal category we get the traditional definition of monoids |
| 09:27:05 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 09:27:44 | <Taneb> | Now, let's take another category, the category whose objects are functors from set to set and whose morphisms are natural transformations |
| 09:28:14 | <Taneb> | This can be made monoidal, taking * to be composition of functors and 1 to be the identity functor |
| 09:28:23 | <Taneb> | Monoids in *this* category are exactly monads |
| 09:28:29 | → | mputz joins (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
| 09:28:38 | <Taneb> | (this is where the joke "monads are just monoids in the category of endofunctors, what's the problem?" comes from) |
| 09:28:50 | <Taneb> | xpika: I don't know how useful this is but I hope it's at least interesting |
| 09:29:00 | hackage | libfuse3 0.1.2.0 - A Haskell binding for libfuse-3.x https://hackage.haskell.org/package/libfuse3-0.1.2.0 (yohashi) |
| 09:30:53 | → | raichoo joins (~raichoo@213.240.178.58) |
| 09:31:00 | → | Franciman joins (~francesco@host-79-36-167-172.retail.telecomitalia.it) |
| 09:31:07 | × | Ariakenom quits (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
| 09:31:37 | <xpika> | Taneb: No, it's good. I realized the other day that since I could make a monoid out of monads that I could use the fold function for instance to fold a list of Kleisli arrows |
| 09:32:38 | <Feuermagier> | how can I concatenate strings with space, but only if the concatenated-with string is not empty? - (so I dont get double spaces) |
| 09:33:01 | hackage | r-glpk-phonetic-languages-ukrainian-durations 0.1.3.0 - Can be used to calculate the durations of the approximations of the Ukrainian phonemes. https://hackage.haskell.org/package/r-glpk-phonetic-languages-ukrainian-durations-0.1.3.0 (OleksandrZhabenko) |
| 09:33:26 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 09:33:48 | × | 92AABGYX7 quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 09:34:12 | → | avdb joins (~avdb@ip-83-134-109-5.dsl.scarlet.be) |
| 09:35:30 | hackage | phonetic-languages-properties 0.3.0.0 - A generalization of the uniqueness-periods-vector-properties package. https://hackage.haskell.org/package/phonetic-languages-properties-0.3.0.0 (OleksandrZhabenko) |
| 09:35:38 | → | Ariakenom joins (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) |
| 09:37:17 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 09:38:03 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-vutaqggfkdwqzvto) |
| 09:39:41 | → | adm joins (~adm@43.229.88.236) |
| 09:40:43 | × | Lycurgus quits (~niemand@98.4.97.118) (Quit: Exeunt) |
| 09:40:55 | × | cocreature quits (~cocreatur@eirene.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 09:41:17 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 09:41:31 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 09:41:41 | → | adm_ joins (~adm@43.229.88.236) |
| 09:42:23 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:42:32 | <xpika> | > (\x y -> unwords . words $ [x,y]) "hello " " world" |
| 09:42:34 | <lambdabot> | error: |
| 09:42:34 | <lambdabot> | • Couldn't match expected type ‘Char’ with actual type ‘[Char]’ |
| 09:42:34 | <lambdabot> | • In the first argument of ‘\ x y |
| 09:42:44 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 09:42:48 | <xpika> | > (\x y -> unwords . words $ (x++y)) "hello " " world" |
| 09:42:50 | <lambdabot> | "hello world" |
| 09:43:22 | → | cocreature joins (~cocreatur@eirene.uberspace.de) |
| 09:43:32 | <xpika> | > (\x y -> unwords . words $ (x++y)) "hello " " new world" |
| 09:43:34 | <lambdabot> | "hello new world" |
| 09:44:00 | × | adm_ quits (~adm@43.229.88.236) (Read error: Connection reset by peer) |
| 09:44:09 | × | adm quits (~adm@43.229.88.236) (Ping timeout: 260 seconds) |
| 09:44:51 | × | xff0x quits (~fox@2001:1a81:531b:1600:59c2:7a84:b705:d4e7) (Ping timeout: 268 seconds) |
| 09:44:53 | <Feuermagier> | xpika, interesting! thanks! |
| 09:45:06 | × | invaser quits (~Thunderbi@31.148.23.125) (Read error: Connection reset by peer) |
| 09:45:38 | <xpika> | >"hello" ++ " "++dropWhile (==' ') " world" |
| 09:45:43 | → | xff0x joins (~fox@2001:1a81:531b:1600:ec8f:61b3:570e:bcbc) |
| 09:46:12 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 09:46:38 | → | christo joins (~chris@81.96.113.213) |
| 09:46:39 | <xpika> | > "hello" ++ " "++dropWhile (==' ') " world" |
| 09:46:41 | → | adm joins (~adm@43.229.88.236) |
| 09:46:41 | <Feuermagier> | xpika, can I apply this to a list of Strings, so that it concatenates the entire list like "concat"? |
| 09:46:42 | <lambdabot> | "hello world" |
| 09:47:40 | <xpika> | Feuermagier: yes |
| 09:49:23 | <Feuermagier> | xpika, is there something like a "concatenateWithFunction f" - function? - I don't quite get how to syntactically correctly apply this |
| 09:49:29 | → | invaser joins (~Thunderbi@128-124-156-208.mobile.vf-ua.net) |
| 09:50:17 | <xpika> | >>= does that |
| 09:50:31 | <xpika> | or concatMap which is the same thing |
| 09:53:43 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-dgsoicqoiphpcnpi) (Quit: Connection closed for inactivity) |
| 09:54:12 | → | unknown joins (~unknown@84.39.117.57) |
| 09:56:20 | × | adm quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 09:57:24 | <Feuermagier> | like this?: concatMap (\x y -> unwords . words $ (x++y)) ["u ", " ", " z"] |
| 09:57:29 | <Feuermagier> | > concatMap (\x y -> unwords . words $ (x++y)) ["u ", " ", " z"] |
| 09:57:31 | <lambdabot> | error: |
| 09:57:31 | <lambdabot> | • Couldn't match expected type ‘[b]’ |
| 09:57:31 | <lambdabot> | with actual type ‘[Char] -> String’ |
| 09:57:53 | → | cr0ssw1nd joins (~crosswind@78.162.46.6) |
| 09:58:04 | <cr0ssw1nd> | hey hoe |
| 09:59:46 | × | ulidtko quits (~ulidtko@193.111.48.79) (Ping timeout: 256 seconds) |
| 10:00:18 | × | andreas31 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
| 10:03:25 | → | andreas31 joins (~andreas@gateway/tor-sasl/andreas303) |
| 10:03:53 | → | ulidtko joins (~ulidtko@193.111.48.79) |
| 10:05:03 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 10:07:18 | × | Ariakenom quits (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
| 10:07:39 | × | tsaka__ quits (~torstein@ppp-2-84-29-23.home.otenet.gr) (Remote host closed the connection) |
| 10:07:40 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 10:07:53 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 10:08:04 | × | Lord_of_Life_ quits (~Lord@46.217.220.150) (Read error: Connection reset by peer) |
| 10:08:30 | hackage | phonetic-languages-examples 0.3.0.0 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.3.0.0 (OleksandrZhabenko) |
| 10:08:40 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 10:08:58 | → | Lord_of_Life joins (~Lord@46.217.220.150) |
| 10:08:58 | × | Lord_of_Life quits (~Lord@46.217.220.150) (Changing host) |
| 10:08:58 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 10:09:32 | × | Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 258 seconds) |
| 10:09:42 | <Feuermagier> | xpika, can I apply that dropWhile you used from back to front of a string somehow? |
| 10:10:27 | → | Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus) |
| 10:14:23 | <xpika> | > dropWhileEnd isSpace "hello world " |
| 10:14:24 | <lambdabot> | "hello world" |
| 10:15:45 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 10:17:06 | → | Miroboru joins (~textual@89-162-24-238.fiber.signal.no) |
| 10:17:32 | × | Katarushisu quits (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 265 seconds) |
| 10:18:06 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Remote host closed the connection) |
| 10:18:48 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds) |
| 10:20:16 | × | _xor quits (~xor@74.215.46.133) (Ping timeout: 258 seconds) |
| 10:20:37 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 10:21:17 | <kuribastard> | :t dropWhileEnd |
| 10:21:19 | <lambdabot> | (a -> Bool) -> [a] -> [a] |
| 10:21:25 | → | _xor joins (~xor@74.215.46.133) |
| 10:22:00 | → | Lord_of_Life joins (~Lord@46.217.220.150) |
| 10:22:00 | × | Lord_of_Life quits (~Lord@46.217.220.150) (Changing host) |
| 10:22:00 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 10:22:40 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:22:56 | × | Miroboru quits (~textual@89-162-24-238.fiber.signal.no) (Quit: Textual IRC Client: www.textualapp.com) |
| 10:23:25 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 10:23:29 | → | Miroboru joins (~textual@89-162-24-238.fiber.signal.no) |
| 10:25:21 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 10:25:47 | → | christo joins (~chris@81.96.113.213) |
| 10:26:14 | × | cr0ssw1nd quits (~crosswind@78.162.46.6) (Ping timeout: 265 seconds) |
| 10:27:31 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 10:27:55 | → | jedws joins (~jedws@101.184.150.81) |
| 10:28:10 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 265 seconds) |
| 10:31:27 | → | Katarushisu joins (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
| 10:32:41 | × | rprije quits (~rprije@124.148.131.132) (Ping timeout: 260 seconds) |
| 10:34:10 | × | jedws quits (~jedws@101.184.150.81) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:34:20 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 10:35:43 | <kuribastard> | ouch this burns: "Seriously: the PHP people at least know their languages won’t protect them from anything. We should bring some of that humility back to Haskell." |
| 10:39:44 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 10:41:20 | <Uniaika> | lol yeah I read that one too |
| 10:43:03 | <maerwald> | where was that |
| 10:44:13 | <kuribastard> | https://www.snoyman.com/blog/2020/11/haskell-bad-parts-2 |
| 10:45:22 | × | esph quits (~weechat@unaffiliated/esph) (Quit: WeeChat 2.9) |
| 10:45:30 | → | esph joins (~weechat@unaffiliated/esph) |
| 10:45:34 | <maerwald> | well yeah, it's a popular opinion that types protect you from bugs and ppl get overly enthusiastic about it |
| 10:46:51 | <kuribastard> | types don't protect you from bugs, but they help you to maintain abstraction barriers. It's having proper abstractions that save you from stupid bugs. |
| 10:47:03 | <maerwald> | I even disagree with that |
| 10:47:07 | <Uniaika> | maerwald: yeah in the end, we have a case of overly enthusiast zealot |
| 10:47:11 | <kuribastard> | maerwald: I know |
| 10:47:14 | × | LKoen quits (~LKoen@77.174.9.109.rev.sfr.net) (Read error: Connection reset by peer) |
| 10:47:17 | → | christo joins (~chris@81.96.113.213) |
| 10:47:44 | <merijn> | I have a simple heuristic for maerwald's opinion on most topics. Just invert the popular opinion ;) |
| 10:47:57 | <maerwald> | merijn: that's not very useful |
| 10:48:05 | <Uniaika> | but is it true though? :P |
| 10:48:35 | → | LKoen joins (~LKoen@77.174.9.109.rev.sfr.net) |
| 10:48:47 | → | jalumar joins (uid392211@gateway/web/irccloud.com/x-shdqsvwkocdcmfsf) |
| 10:48:50 | <kuribastard> | it's being able to clearly specify business logic that makes your program less faulty. It does prevent you from implementing the wrong specs, not understanding the customer requirements, etc... |
| 10:48:58 | <maerwald> | kuribastard: types don't construct *architecture*. They are usually more low-level than that. |
| 10:49:11 | <kuribastard> | erm "doesn't" |
| 10:50:05 | <kuribastard> | but then, just as it's a poor decision to run your programs under a desk, I think it's a poor decision to run your long running service using a dynamic language. |
| 10:50:31 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 10:50:32 | <kuribastard> | maerwald: that's exactly why they are useful |
| 10:50:43 | <maerwald> | good architecture facilitates porper abstraction barriers |
| 10:51:15 | <kuribastard> | it doesn't come with a large overhead like OO inheritance hierarchies. |
| 10:51:42 | <maerwald> | I don't follow that thought |
| 10:52:07 | → | adm_ joins (~adm@43.229.88.236) |
| 10:52:09 | <maerwald> | bashing OO isn't hard |
| 10:57:34 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 10:57:37 | → | christo joins (~chris@81.96.113.213) |
| 10:57:55 | <maerwald> | "Deprecate partial functions" ... ok, please provide a proper languagu for that, because Haskell isn't |
| 10:58:05 | <maerwald> | little extreme imo |
| 10:58:22 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 10:59:14 | → | iqubic joins (~user@2601:602:9500:4870:fd55:a12e:3595:eb89) |
| 10:59:26 | → | a_ joins (~a@2402:8100:230f:985:63a5:3c25:ccc1:e6b3) |
| 10:59:37 | <Uniaika> | *some* famous partial functions' types *can* be patched with NonEmpty a instead of [a] |
| 11:00:03 | <maerwald> | I am a fan of partial head. |
| 11:00:19 | → | Rudd0^ joins (~Rudd0@185.189.115.108) |
| 11:00:27 | <maerwald> | Sometimes you have local proof (inside the same function, but haskell isn't expressive enought to know) |
| 11:00:40 | <Uniaika> | yes that is indeed right |
| 11:00:49 | <maerwald> | I don't wanna bother with Maybe types just to satisfy someone elses OCD |
| 11:01:22 | × | xenon- quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 11:01:28 | <Uniaika> | maerwald: Same, but that's why I prefer an upstream NonEmpty rather than a downstream Maybe |
| 11:01:46 | × | mputz quits (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 11:02:09 | × | a_ quits (~a@2402:8100:230f:985:63a5:3c25:ccc1:e6b3) (Client Quit) |
| 11:02:52 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 11:03:01 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds) |
| 11:03:03 | <int-e> | I for one dislike NonEmpty a; it should be a subtype of [a] but we don't have subtypes. |
| 11:03:50 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 11:04:15 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 11:04:17 | <maerwald> | in general seems like a rant about stdlib, which is mostly true |
| 11:04:23 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 11:04:48 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 11:04:52 | <xpika> | consensus is that if your serious: don't use the default prelude |
| 11:05:14 | → | christo joins (~chris@81.96.113.213) |
| 11:05:20 | <int-e> | consensus?! |
| 11:05:28 | <maerwald> | That's what I see quite often: strong types, but the implementation is still naive (e.g. see the 'path' package) |
| 11:06:12 | <int-e> | I suppose you can reach a consensus that the Prelude doesn't get things right. |
| 11:06:20 | <int-e> | You |
| 11:06:38 | <int-e> | I don't think you can reach a consensus on what it should do instead. |
| 11:08:25 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 246 seconds) |
| 11:08:53 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
| 11:09:15 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds) |
| 11:10:49 | <maerwald> | The "checked exceptions" discussion is the worst. And ppl believing haskell actually has checked exceptions. No, Either is not that. ExceptT neither and even if you add open unions, you still need to be careful to always catch all inner IO actions |
| 11:11:04 | → | kish joins (~oracle@unaffiliated/oracle) |
| 11:11:54 | <int-e> | isn't that another thing that wants subtyping |
| 11:12:25 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 11:12:32 | <int-e> | (I guess it can be expressed as constraints if you want to... and you have a kind of subtyping on that level) |
| 11:12:42 | <Squarism> | anyone know of clean "algorithm" to construct a tree from a list of elements containing something like : data KeyedNodes a = KeyedNodes { id::String, parentId::String, content::a } ? |
| 11:13:07 | <maerwald> | int-e: I don't think this is a "type level expressivity" option at all |
| 11:13:08 | <Squarism> | oh, parentId should ofc be Maybe String |
| 11:13:12 | × | kish` quits (~oracle@unaffiliated/oracle) (Ping timeout: 256 seconds) |
| 11:13:22 | <maerwald> | GHC doesn't know what exeptions a function may throw. Fix that first |
| 11:14:22 | <tomsmeding> | Squarism: make a Data.Map (Maybe String) [String] from parent -> children with a single pass over the list in O(n log n), then build the tree recursively in O(n log n) ? |
| 11:14:46 | → | fntastic joins (5f5ac942@ip5f5ac942.dynamic.kabel-deutschland.de) |
| 11:14:57 | <int-e> | maerwald: Oh, sure, it would require quite a different setup for IO. It wouldn't even be a monad... but some indexed thing instead. |
| 11:15:30 | → | solonarv joins (~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr) |
| 11:15:35 | <merijn> | int-e: I disagree, I think the issue is orthogonal |
| 11:15:39 | <kuribastard> | Squarism: you can use a lazy map Data.Map (Maybe String) Tree |
| 11:15:54 | <merijn> | Exceptions shouldn't be in the current types (system) at all |
| 11:16:01 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 265 seconds) |
| 11:16:07 | <merijn> | We should have a new separate type system and types for that |
| 11:16:11 | <tomsmeding> | oh kuribastard's version is nicer indeed |
| 11:16:37 | <kuribastard> | merijn: when are you going to design a new language? |
| 11:16:49 | <kuribastard> | merijn: can it have indexed monads? |
| 11:17:11 | <maerwald> | well, I leave up the "how" wrt checked exceptions to the scientists :p |
| 11:17:16 | <int-e> | merijn: sure, that's an option... |
| 11:17:35 | <maerwald> | I can just give my users experience that all options currently suck |
| 11:17:45 | <maerwald> | and that Java ain't that bad wrt exceptions |
| 11:17:55 | → | beleon joins (~beleon@2a02:810c:4cc0:c8b:50e2:68a8:c1e:3f7f) |
| 11:18:22 | <merijn> | kuribastard: As soon as someone pays me :) |
| 11:18:50 | <maerwald> | merijn: only fintech has the money, so figure out a way to sell your idea to them |
| 11:19:12 | <merijn> | fintech wants me to move too, so that's out :p |
| 11:19:22 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 11:19:49 | <maerwald> | You need a Gandalf kicking you out of your house :p |
| 11:20:00 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 11:21:04 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 11:21:04 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 11:21:15 | <maerwald> | but currently, shouldn't be that hard |
| 11:21:25 | <maerwald> | where can you move now anyway |
| 11:22:20 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) |
| 11:22:23 | <merijn> | maerwald: Well, even if I was willing to move, most fintech is located in countries I would be unwilling to move to :p |
| 11:23:37 | <maerwald> | you mean Cayman Islands? *chuckle* |
| 11:23:39 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 11:23:46 | <beleon> | hi! can you help me out on creating a Monad instance for my type? It's a Monad around the parsec Parser Monad that is supposed to keep track of indentation characters used while parsing. I can't quite figure out how to get the result of >>= out of the Parser Monad. Here's the code: https://gist.github.com/beleon/97273023d3b95fb62d28da6bec273aeb |
| 11:24:51 | <merijn> | maerwald: I meant the US/UK, but close enough :p |
| 11:24:58 | <maerwald> | And SG |
| 11:26:27 | <kuribastard> | beleon: don't, use a newtype and GeneralizedNewtypeDeriving instead |
| 11:26:38 | <kuribastard> | beleon: and mtl |
| 11:26:51 | <kuribastard> | beleon: it will give you all the instances for free |
| 11:27:07 | <dminuoso> | *cunning GeneralizedNewtypeDeriving |
| 11:27:22 | <dminuoso> | Every mention of the extension in documentation and diagnostics calls it cunning. |
| 11:27:25 | <dminuoso> | We should too. :> |
| 11:28:08 | <beleon> | hm, but how would the automated derivation know how to merge the ParserBoxInfo? |
| 11:28:14 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
| 11:28:28 | → | carlomagno1 joins (~cararell@148.87.23.6) |
| 11:28:45 | <dminuoso> | beleon: You'd use <|> instead |
| 11:30:15 | × | AceNovo quits (~chris@184.101.220.149) (Read error: Connection reset by peer) |
| 11:30:29 | <beleon> | dminuoso: but wouldn't <|> also be derived? |
| 11:30:37 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 11:30:37 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Read error: Connection reset by peer) |
| 11:30:37 | × | andreas31 quits (~andreas@gateway/tor-sasl/andreas303) (Write error: Connection reset by peer) |
| 11:30:37 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Write error: Connection reset by peer) |
| 11:30:37 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Read error: Connection reset by peer) |
| 11:30:37 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Write error: Connection reset by peer) |
| 11:30:37 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Read error: Connection reset by peer) |
| 11:30:37 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Read error: Connection reset by peer) |
| 11:30:37 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Write error: Connection reset by peer) |
| 11:30:37 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Write error: Connection reset by peer) |
| 11:30:42 | <dminuoso> | Only if you GND Alternative |
| 11:31:28 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 11:31:31 | × | carlomagno quits (~cararell@148.87.23.13) (Ping timeout: 246 seconds) |
| 11:31:35 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 11:31:36 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 11:31:41 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 11:31:42 | <kuribastard> | beleon: you can make your own monoid instance |
| 11:31:45 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 11:31:45 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 11:31:52 | <beleon> | right, so i'd simply define that myself and derive everything else? |
| 11:32:01 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 11:32:04 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 11:32:19 | → | cosimone_ joins (~cosimone@5.171.26.80) |
| 11:32:26 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 11:32:32 | <dminuoso> | Sure |
| 11:32:54 | <dminuoso> | beleon: Right now your code is violating an implicit assumption: |
| 11:33:00 | <dminuoso> | Coherence between Applicative and Monad |
| 11:33:12 | <dminuoso> | (Because `ap` and `<*>` have conflicting definitoins) |
| 11:33:20 | × | tsaka__ quits (~torstein@ppp-2-84-29-23.home.otenet.gr) (Read error: Connection reset by peer) |
| 11:34:00 | → | andreas31 joins (~andreas@gateway/tor-sasl/andreas303) |
| 11:34:04 | <dminuoso> | So they implement different effects. That alone is reason enough to bury the "merging" behavior as you call it into Alternative instead (which is where we in fact place this behavior into) |
| 11:34:07 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 11:35:23 | <beleon> | i see. will the derived monad instance automatically make use of the custom alternative instance? |
| 11:35:47 | → | drbean joins (~drbean@TC210-63-209-199.static.apol.com.tw) |
| 11:35:49 | <dminuoso> | No, the lattice looks a bit differnece |
| 11:35:51 | <dminuoso> | Hold on |
| 11:36:22 | <dminuoso> | https://wiki.haskell.org/wikiupload/d/df/Typeclassopedia-diagram.png |
| 11:36:25 | <maerwald> | how reasonable is it to create a C API for your haskell library? |
| 11:36:28 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 268 seconds) |
| 11:36:28 | cosimone_ | is now known as cosimone |
| 11:36:33 | <idnar> | dminuoso: is that like the _dreaded_ monomorphism restriction? |
| 11:36:41 | <dminuoso> | idnar: haha, sorta |
| 11:36:51 | <dminuoso> | beleon: As you can see, Alternative/MonadPlus are subclasses of Applicative/Monad respectively. |
| 11:37:05 | <merijn> | maerwald: It depends |
| 11:37:21 | <maerwald> | do we even have means to do so or will I have to write a C wrapper |
| 11:37:22 | <dminuoso> | So it's assumed there's coherence all along `Functor>Applicative>Monad` and there's coherence between `Alternative>MonadPlus` |
| 11:37:24 | <merijn> | maerwald: You'll have to link the RTS with final executable to |
| 11:37:32 | <dminuoso> | (By coherence I mean their implementations must agree) |
| 11:37:55 | <merijn> | maerwald: The current FFI can export Haskell symbols as C symbols just fine the same as importing |
| 11:38:07 | <dminuoso> | So if you GND only up until Monad, you dont get Alternative/MonadPlus |
| 11:38:26 | <merijn> | maerwald: If you wanna include it as standalone library into a C executable you need a bit of boilerplate to setup the RTS, but it's pretty straightforward |
| 11:39:02 | <merijn> | maerwald: I made a minimal example of having a C entry point with Haskell code: https://gist.github.com/merijn/4a0fee2b3a5ef3476aa4 |
| 11:39:21 | <beleon> | what does MonadPlus give me? So I would need custom instances for Alternative and MonadPlus that are coherend? |
| 11:39:42 | <merijn> | maerwald: If you wanna compile the C code independently of cabal you need to do a bit more work (figuring out how to link the RTS, for one), but it should be fairly straightforward (if annoying) |
| 11:40:49 | <maerwald> | so you can't create a real proper .so lib? |
| 11:40:54 | <dminuoso> | beleon: Nobody can really agree on what MonadPlus/Alternative really are in terms of laws.. |
| 11:41:39 | <merijn> | maerwald: Define "real proper" |
| 11:41:56 | <maerwald> | it has all the symbols you need |
| 11:42:06 | <dminuoso> | beleon: https://gist.github.com/dminuoso/59aef9dfe15a5e9bed68850ffe6c6641 |
| 11:42:11 | <dminuoso> | roughly you can imagine this relationship |
| 11:42:55 | <merijn> | maerwald: You can make a .so just fine, it just depends on 1) the RTS so you need to link that to I dunno if you can pre-link that into the package .so, but the RTS is just another .so, so... 2) any foreign code calling the lib needs to initialise the RTS + GC roots like the C code in that gist |
| 11:43:38 | <merijn> | maerwald: If you get a static copy of the RTS you can, presumably, link it into your .so to get a completely standalone .so, but I haven't tried that |
| 11:43:59 | <beleon> | dminuoso: right, i think i got it ... more or less :) thanks for the explanation |
| 11:44:02 | × | alp quits (~alp@2a01:e0a:58b:4920:6dd8:8351:ec1a:bc84) (Ping timeout: 246 seconds) |
| 11:44:12 | <merijn> | In general, I try to just get GHC to do the final link so I don't have to figure it out |
| 11:44:36 | <merijn> | But I don't see any theoretical problems, the only practical problem is "figuring out the exact linker flags" |
| 11:44:48 | <merijn> | I vaguely recall monochrom having a post about this |
| 11:45:34 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 11:45:37 | <dminuoso> | beleon: As a random example about laws, you might think `empty <*> m = empty` holds |
| 11:45:42 | <dminuoso> | But Backwards puts a nail into that one |
| 11:46:14 | × | Codaraxis quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection) |
| 11:46:16 | <merijn> | maerwald: https://www.vex.net/~trebla/haskell/so.xhtml |
| 11:46:42 | → | Codaraxis joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 11:46:54 | → | alp joins (~alp@88.126.45.36) |
| 11:46:57 | <merijn> | maerwald: oh, looks like cabal 2.0+ have explicit support for it too |
| 11:47:16 | × | aarvar quits (~foewfoiew@c.24.56.239.179.static.broadstripe.net) (Ping timeout: 246 seconds) |
| 11:49:39 | × | fntastic quits (5f5ac942@ip5f5ac942.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 11:50:23 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds) |
| 11:50:30 | hackage | restartable 0.1.0.0 - Minimal live coding library for model-view-event-update applications. https://hackage.haskell.org/package/restartable-0.1.0.0 (MichalGajda) |
| 11:50:53 | <maerwald> | interesting |
| 11:53:26 | <Squarism> | tomsmeding, maybe a stupid question, but how would that recursive function look? |
| 11:53:55 | <beleon> | dminuoso: hm, the compiler complains: newtype ParserBox a = ParserBox (ParserBoxInfo, (Either String (Parser a))) deriving (Functor, Applicative, Monad): Can't make a derived instance of ‘Functor ParserBox’ (even with cunning GeneralizedNewtypeDeriving), any idea why? |
| 11:54:18 | <dminuoso> | beleon: Ah yes. |
| 11:55:10 | <Squarism> | tomsmeding, forget it. Its obviously starts with the root. |
| 11:55:11 | <dminuoso> | beleon: You could if ParserBoxInfo was a monoid... |
| 11:55:24 | <dminuoso> | Though.. its hung on Functor already mmm |
| 11:56:09 | <dminuoso> | beleon: Try using `ExceptT String Parser A` instead? |
| 11:57:23 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 11:57:31 | <dminuoso> | beleon: Functor at least can be derived with DeriveFunctor :P |
| 11:57:32 | × | unknown quits (~unknown@84.39.117.57) (Remote host closed the connection) |
| 11:58:15 | → | invaser1 joins (~Thunderbi@31.148.23.125) |
| 11:58:20 | × | invaser quits (~Thunderbi@128-124-156-208.mobile.vf-ua.net) (Read error: Connection reset by peer) |
| 11:58:20 | invaser1 | is now known as invaser |
| 11:59:25 | × | kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds) |
| 12:00:46 | <beleon> | dminuoso: nah, can't get past functor (using DeriveFunctor) with ExceptT |
| 12:00:58 | × | Codaraxis quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 265 seconds) |
| 12:02:23 | <beleon> | but i could add Monoid instance for ParserBoxInfo. Would that help? |
| 12:06:45 | → | Codaraxis joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 12:08:08 | → | Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas) |
| 12:09:42 | → | Lycurgus joins (~niemand@98.4.97.118) |
| 12:10:11 | <absence> | does anyone know what the status of ghc 9 is? the web site suggests release candidate was more than a month ago, but that seems inaccurate as the latest available download is alpha |
| 12:10:31 | <merijn> | "the web site" = ? |
| 12:10:44 | <tomsmeding> | Squarism: :) |
| 12:10:52 | <absence> | merijn: the status page on gitlab |
| 12:11:04 | <absence> | https://gitlab.haskell.org/ghc/ghc/-/wikis/status/ghc-9.0.1 |
| 12:11:55 | <merijn> | absence: Anyhoo, the best way to stay up to date is to just subscribe to the ghc-devs mailing list |
| 12:12:44 | × | mmohammadi9812 quits (~mmohammad@5.238.175.25) (Quit: Quit) |
| 12:13:01 | → | mmohammadi9812 joins (~mmohammad@5.238.175.25) |
| 12:13:02 | × | tsaka__ quits (~torstein@ppp-2-84-29-23.home.otenet.gr) (Quit: Konversation terminated!) |
| 12:13:16 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 12:15:01 | <absence> | merijn: yes, i did check the archive, but only found the alpha announcement |
| 12:17:07 | × | Codaraxis quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection) |
| 12:17:12 | → | cr0ssw1nd joins (~crosswind@78.162.46.6) |
| 12:17:39 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection) |
| 12:17:57 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) |
| 12:18:08 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 12:18:56 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 256 seconds) |
| 12:19:42 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 12:20:32 | → | benjamingr__ joins (uid23465@gateway/web/irccloud.com/x-jujlikfcmwauxivg) |
| 12:21:01 | → | fendor_ joins (~fendor@178.165.129.0.wireless.dyn.drei.com) |
| 12:21:18 | × | fendor quits (~fendor@77.119.131.87.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 12:22:50 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Ping timeout: 264 seconds) |
| 12:23:57 | × | beleon quits (~beleon@2a02:810c:4cc0:c8b:50e2:68a8:c1e:3f7f) (Quit: WeeChat 2.9) |
| 12:26:00 | <cr0ssw1nd> | why Debug.Trace.traceStack could truncate stacktraces? |
| 12:26:32 | <cr0ssw1nd> | I built and ran my server (uses Servant framework) in profiling mode |
| 12:26:42 | → | Deide joins (~Deide@217.155.19.23) |
| 12:26:48 | <cr0ssw1nd> | but when I do traceStack, I get only this: |
| 12:26:48 | <cr0ssw1nd> | 2020-11-06T19:02:09.179431846Z CallStack (from -prof): |
| 12:26:49 | <cr0ssw1nd> | 2020-11-06T19:02:09.179447969Z Galley.API.Update.handleOtrResponse (src/Galley/API/Update.hs:(957,1)-(961,48)) |
| 12:26:49 | <cr0ssw1nd> | 2020-11-06T19:02:09.179457081Z Galley.API.Update.CAF:eta2_r5zv4 (<no location info>) |
| 12:27:07 | <Feuermagier> | how do I get from a [char] to Data.Text.Internal.Text? |
| 12:27:42 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 12:28:03 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 12:28:58 | → | adm_ joins (~adm@43.229.88.236) |
| 12:29:28 | <tdammers> | Feuermagier: assuming you mean [Char]: `Data.Text.pack` |
| 12:29:46 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 12:29:47 | <tdammers> | https://hackage.haskell.org/package/text-1.2.4.0/docs/Data-Text.html#g:6 documentamatation |
| 12:31:45 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Client Quit) |
| 12:32:59 | <Feuermagier> | tdammers, I'm unsure; the compiler says [Char] |
| 12:33:10 | <Feuermagier> | * Couldn't match expected type `Data.Text.Internal.Text' |
| 12:33:10 | <Feuermagier> | with actual type `[Char]' |
| 12:33:45 | → | xikeon joins (~michael@i226028.upc-i.chello.nl) |
| 12:34:03 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 12:34:41 | <Feuermagier> | If I unpack, I get a String out of the [Char] |
| 12:34:49 | <Feuermagier> | but still not a Text |
| 12:36:44 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 258 seconds) |
| 12:37:47 | × | avdb quits (~avdb@ip-83-134-109-5.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 12:38:01 | hackage | restartable 0.2.0.0 - Minimal live coding library for model-view-event-update applications. https://hackage.haskell.org/package/restartable-0.2.0.0 (MichalGajda) |
| 12:38:04 | → | avdb joins (~avdb@ip-83-134-109-5.dsl.scarlet.be) |
| 12:38:50 | <absence> | Feuermagier: use pack, not unpack (or enable the OverloadedStrings language extension) |
| 12:39:08 | <absence> | (if it's a string literal that is) |
| 12:40:42 | → | cfricke joins (cfricke@gateway/vpn/mullvad/cfricke) |
| 12:40:45 | <tdammers> | Feuermagier: [Char] and String are literally the same thing (String is a type alias for [Char]) |
| 12:41:00 | × | toorevitimirp quits (~tooreviti@117.182.180.38) (Remote host closed the connection) |
| 12:41:29 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 12:41:33 | × | cfricke quits (cfricke@gateway/vpn/mullvad/cfricke) (Client Quit) |
| 12:41:35 | → | toorevitimirp joins (~tooreviti@117.182.180.38) |
| 12:41:36 | <tdammers> | if you have a Text but want a String, use `unpack`; in the other direction, use `pack` |
| 12:41:50 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 12:43:10 | → | TMA joins (tma@twin.jikos.cz) |
| 12:43:18 | → | jakob_ joins (~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de) |
| 12:46:39 | ← | __skn parts (~sunil@2001:19f0:5:701:5400:ff:fe7c:4e5c) ("rcirc on GNU Emacs 28.0.50") |
| 12:47:50 | × | _ashbreeze_ quits (~mark@72-161-252-32.dyn.centurytel.net) (Remote host closed the connection) |
| 12:49:07 | → | _ashbreeze_ joins (~mark@72-161-252-32.dyn.centurytel.net) |
| 12:49:36 | → | knupfer joins (~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de) |
| 12:49:37 | × | knupfer quits (~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de) (Client Quit) |
| 12:49:56 | → | knupfer joins (~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de) |
| 12:51:32 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection) |
| 12:52:15 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 12:53:25 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 12:55:04 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 12:55:05 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Read error: Connection reset by peer) |
| 12:55:07 | → | Rcsprinter joins (~Rcsprinte@178.162.209.171) |
| 12:55:52 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection) |
| 12:56:17 | × | Gurkenglas_ quits (~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection) |
| 12:56:33 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 12:56:57 | → | iqubic` joins (~user@2601:602:9500:4870:f97f:76da:55:8502) |
| 12:57:12 | → | Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas) |
| 12:57:20 | → | Redrum020 joins (~crack020@public-nat-08.vpngate.v4.open.ad.jp) |
| 12:57:38 | <Redrum020> | halo |
| 12:57:58 | × | toorevitimirp quits (~tooreviti@117.182.180.38) (Remote host closed the connection) |
| 12:58:25 | → | toorevitimirp joins (~tooreviti@117.182.180.38) |
| 12:59:31 | <Redrum020> | someone herE? |
| 13:00:04 | <Redrum020> | ? |
| 13:00:07 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 13:00:24 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 13:01:12 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 13:01:17 | × | iqubic quits (~user@2601:602:9500:4870:fd55:a12e:3595:eb89) (Ping timeout: 260 seconds) |
| 13:01:51 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 13:04:33 | × | chaosmasttter quits (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 13:04:45 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 13:04:46 | <cr0ssw1nd> | is there any relation between SCC annotation and call stack generated by `traceStack` ? |
| 13:05:03 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
| 13:05:29 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) |
| 13:09:01 | × | tsaka__ quits (~torstein@ppp-2-84-29-23.home.otenet.gr) (Ping timeout: 256 seconds) |
| 13:09:56 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 13:11:54 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 13:14:21 | → | bennofs1 joins (~benno@dslb-094-222-044-018.094.222.pools.vodafone-ip.de) |
| 13:15:09 | <tomsmeding> | cr0ssw1nd: did you compile with -fprof-auto? |
| 13:15:41 | <tomsmeding> | (I believe stack and cabal do that when you enable profiling using their usual interface) |
| 13:16:37 | <cr0ssw1nd> | tomsmeding, yeah, I added --profile to stack |
| 13:16:53 | <cr0ssw1nd> | there is stack trace when I put it in another places |
| 13:17:13 | <cr0ssw1nd> | and technically in that place it is also stacktrace, just really short one |
| 13:17:55 | → | adm_ joins (~adm@43.229.88.236) |
| 13:18:24 | <cr0ssw1nd> | I am meditating on this piece of docs right now: https://www.taran.space/tmp/lenovo-fedora-20201109-141414-140279452.png |
| 13:18:50 | <cr0ssw1nd> | from here https://downloads.haskell.org/~ghc/7.6.3/docs/html/users_guide/profiling.html |
| 13:19:51 | <merijn> | uh |
| 13:20:07 | <merijn> | Probably browse to some newer version of the guide? |
| 13:20:14 | <merijn> | 7.6.3 is ancient xD |
| 13:20:20 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 13:20:27 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Remote host closed the connection) |
| 13:21:11 | <merijn> | (that's unrelated to your question, but 7.6.3 is like a decade old...) |
| 13:21:30 | hackage | restartable 0.3.0.0 - Minimal live coding library for model-view-event-update applications. https://hackage.haskell.org/package/restartable-0.3.0.0 (MichalGajda) |
| 13:21:32 | <cr0ssw1nd> | oh |
| 13:21:42 | <cr0ssw1nd> | yeah, I haven't noticed, thanks |
| 13:22:02 | <cr0ssw1nd> | actually I am thinking now that "HasDebugCallStack" could be related |
| 13:24:01 | → | aveltras joins (uid364989@gateway/web/irccloud.com/x-vhqkaobhwknqfuji) |
| 13:24:53 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:25:23 | × | cosimone quits (~cosimone@5.171.26.80) (Read error: Connection reset by peer) |
| 13:29:33 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 13:30:51 | → | invaser1 joins (~Thunderbi@31.148.23.125) |
| 13:31:21 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds) |
| 13:31:21 | invaser1 | is now known as invaser |
| 13:32:11 | → | ph88 joins (~ph88@ip5f5af72e.dynamic.kabel-deutschland.de) |
| 13:32:30 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 13:32:36 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:33:30 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
| 13:35:22 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 13:38:00 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 13:38:32 | → | chaosmasttter joins (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) |
| 13:42:10 | → | christo joins (~chris@81.96.113.213) |
| 13:42:11 | × | knupfer quits (~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 13:42:49 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Ping timeout: 264 seconds) |
| 13:43:32 | ← | xikeon parts (~michael@i226028.upc-i.chello.nl) ("WeeChat 2.8") |
| 13:45:21 | × | drbean quits (~drbean@TC210-63-209-199.static.apol.com.tw) (Ping timeout: 268 seconds) |
| 13:45:34 | → | son0p joins (~son0p@181.136.122.143) |
| 13:49:25 | → | Iceland_jack joins (~user@95.149.219.123) |
| 13:50:37 | → | mputz joins (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
| 13:54:13 | → | sQVe joins (~sQVe@unaffiliated/sqve) |
| 13:54:53 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 13:54:55 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) |
| 13:56:27 | × | avdb quits (~avdb@ip-83-134-109-5.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 13:56:50 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Client Quit) |
| 13:57:55 | × | Lowl3v3l quits (~Lowl3v3l@dslb-002-203-195-108.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
| 13:58:08 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 13:58:21 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 13:58:26 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-203-195-108.002.203.pools.vodafone-ip.de) |
| 13:59:43 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 14:00:22 | × | Franciman quits (~francesco@host-79-36-167-172.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
| 14:00:32 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 14:00:43 | → | britva joins (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) |
| 14:01:14 | → | renzhi joins (~renzhi@2607:fa49:655f:e600::28da) |
| 14:02:04 | × | apoc quits (~apoc@bridge.mattzq.com) (Ping timeout: 256 seconds) |
| 14:02:10 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Read error: Connection reset by peer) |
| 14:02:12 | → | Franciman joins (~francesco@host-82-56-223-169.retail.telecomitalia.it) |
| 14:06:03 | × | Gurkenglas_ quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 258 seconds) |
| 14:06:04 | → | apoc joins (~apoc@bridge.mattzq.com) |
| 14:07:17 | → | bitmagie joins (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) |
| 14:10:02 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection) |
| 14:10:38 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 14:10:54 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 14:11:46 | → | avdb joins (~avdb@ip-83-134-109-5.dsl.scarlet.be) |
| 14:12:10 | × | ambiso9 quits (~ambiso@209.182.239.205) (Quit: The Lounge - https://thelounge.chat) |
| 14:12:11 | → | adm_ joins (~adm@43.229.88.236) |
| 14:12:48 | × | avdb quits (~avdb@ip-83-134-109-5.dsl.scarlet.be) (Client Quit) |
| 14:13:49 | → | ambiso9 joins (~ambiso@209.182.239.205) |
| 14:15:02 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 264 seconds) |
| 14:15:20 | × | chaosmasttter quits (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 14:17:22 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 14:17:26 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 14:19:11 | → | Ariakenom joins (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) |
| 14:21:08 | × | gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 265 seconds) |
| 14:21:48 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 14:23:07 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 14:23:47 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 14:25:56 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 14:28:42 | × | apoc quits (~apoc@bridge.mattzq.com) (Ping timeout: 256 seconds) |
| 14:29:40 | → | Eugleo joins (5ab552b3@gateway/web/cgi-irc/kiwiirc.com/ip.90.181.82.179) |
| 14:30:07 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) |
| 14:30:12 | <Eugleo> | Hey fellow Haskellers! How do I properly convert from Pico to Scientific and back? |
| 14:30:48 | <merijn> | Depends on your definition of "proper" |
| 14:30:48 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 14:30:53 | <merijn> | But you probably want |
| 14:30:55 | <dminuoso> | unsafeCoerce? |
| 14:30:58 | <merijn> | :t realToFrac |
| 14:30:59 | <lambdabot> | (Real a, Fractional b) => a -> b |
| 14:31:03 | <dminuoso> | Both get you there! |
| 14:31:14 | <merijn> | :t realToFrac :: Pico -> Scientific |
| 14:31:15 | <lambdabot> | error: |
| 14:31:15 | <lambdabot> | Not in scope: type constructor or class ‘Scientific’ |
| 14:31:23 | <Eugleo> | merijn: Thought it would. Thanks |
| 14:31:26 | → | gproto23 joins (~gproto23@unaffiliated/gproto23) |
| 14:31:41 | <Eugleo> | Forgot that Scientific was Fractional |
| 14:32:09 | <Eugleo> | So I went Pico ->(realToFrac) Fractional ->(round) -> Integral ->(fromIntegral) Scientific |
| 14:32:20 | <Eugleo> | And "proper" is then anything better than this :-D |
| 14:32:28 | <merijn> | Yeah, that's weird |
| 14:32:44 | <merijn> | Scientific is an instance of Fractional, so you can do that directy |
| 14:33:59 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 14:35:08 | <Eugleo> | Ok, and how do I go back from Scientific to Pico? Never heard about fracToReal or somehting similar |
| 14:36:01 | <dminuoso> | % :t toRational |
| 14:36:01 | <yahb> | dminuoso: forall {a}. Real a => a -> Rational |
| 14:36:09 | <dminuoso> | Clearly. |
| 14:36:20 | <merijn> | Pico (aka Fixed) is an instance of Fractional to and Scientific is an instance of Real |
| 14:36:27 | <dminuoso> | oh |
| 14:36:29 | <dminuoso> | or just realToFrac again |
| 14:36:32 | <merijn> | So the way you go back is: also realToFrac |
| 14:36:57 | <dminuoso> | I just remember this: add fromIntegral and realToFrac until it compiels |
| 14:37:03 | <dminuoso> | Close your eyes, and just pretend there's no narrowing going on |
| 14:37:12 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 14:37:25 | × | darjeeling_ quits (~darjeelin@122.245.210.126) (Ping timeout: 264 seconds) |
| 14:37:28 | <Eugleo> | dminuoso: Just added realToFrac to my arsenal. Was pretty surprised when fromIntegral didn't cut it |
| 14:37:39 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:37:43 | <Eugleo> | merijn: Thanks a lot |
| 14:37:48 | <dminuoso> | merijn: what was the library forsafe numeric conversions? |
| 14:37:48 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 14:38:12 | → | adm_ joins (~adm@43.229.88.236) |
| 14:38:21 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 14:38:26 | × | sQVe quits (~sQVe@unaffiliated/sqve) (Quit: Bye!) |
| 14:38:34 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 14:38:36 | <dminuoso> | Ah, it was int-cast https://hackage.haskell.org/package/int-cast-0.2.0.0/docs/Data-IntCast.html |
| 14:38:41 | → | christo joins (~chris@81.96.113.213) |
| 14:38:44 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 14:39:20 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 14:39:26 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Read error: Connection reset by peer) |
| 14:39:29 | → | apoc joins (~apoc@bridge.mattzq.com) |
| 14:39:32 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 14:39:45 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 14:40:36 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Read error: Connection reset by peer) |
| 14:42:33 | → | elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 14:42:45 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 14:46:14 | → | Gurkenglas_ joins (~Gurkengla@unaffiliated/gurkenglas) |
| 14:48:54 | × | Lycurgus quits (~niemand@98.4.97.118) (Quit: Exeunt) |
| 14:50:36 | → | darjeeling_ joins (~darjeelin@122.245.210.116) |
| 14:51:13 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 14:51:46 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 14:52:46 | → | adm_ joins (~adm@43.229.88.236) |
| 14:53:51 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 14:56:35 | <dminuoso> | Mmm, there is no extension to allow *modifying* a field with a function, is there? |
| 14:57:41 | <dminuoso> | Something akin to %~ from lens |
| 15:00:01 | × | Rcsprinter quits (~Rcsprinte@178.162.209.171) () |
| 15:03:46 | <typetetris> | I have overlapping instances and get an "two instances involving out-of-scope types" error. Can I ghc somehow convince to prefer the one, I am controlling? |
| 15:05:30 | hackage | uusi 0.1.0.0 - Remove all version constraints of dependencies in .cabal file https://hackage.haskell.org/package/uusi-0.1.0.0 (berberman) |
| 15:05:43 | × | alp quits (~alp@88.126.45.36) (Ping timeout: 246 seconds) |
| 15:05:48 | <Feuermagier> | how do I split a tuple of two integers for a function that takes those two integers as parameters seperately? |
| 15:05:53 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 15:05:58 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 15:06:33 | <dminuoso> | % :t curry |
| 15:06:33 | <yahb> | dminuoso: forall {a} {b} {c}. ((a, b) -> c) -> a -> b -> c |
| 15:06:35 | <dminuoso> | % :t uncurry |
| 15:06:35 | <yahb> | dminuoso: forall {a} {b} {c}. (a -> b -> c) -> (a, b) -> c |
| 15:06:37 | <dminuoso> | Feuermagier: ^- |
| 15:06:40 | <Feuermagier> | thx! |
| 15:06:56 | <dminuoso> | typetetris: depends, can you share the code? |
| 15:07:20 | → | twopoint718 joins (~cjw@fsf/member/twopoint718) |
| 15:07:58 | <dminuoso> | typetetris: Generally the solution is, newtype it. |
| 15:08:03 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-93-172.w86-212.abo.wanadoo.fr) |
| 15:08:16 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 15:08:56 | × | inkbottle quits (~inkbottle@aaubervilliers-654-1-101-233.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 15:09:19 | <typetetris> | dminuoso: It already worked now, had `cts` first instead of `(ct ':cts)`. Seems the Overlappable had `(ct ': cts)` instead of `cts`. https://www.irccloud.com/pastebin/GeBOy4jx/ |
| 15:10:28 | <dminuoso> | typetetris: That looks interesting, what change are you making there? |
| 15:10:37 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds) |
| 15:10:43 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:11:31 | → | machinedgod joins (~machinedg@207.253.244.210) |
| 15:11:34 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-qdwmnzjhildlwlnh) |
| 15:11:54 | <typetetris> | `Verb 'POST 204 '[JSON] NoContent` produced docs claiming to have a response body of empty string. Looked odd, wanted to fix that. (Using servant-docs). |
| 15:12:17 | <typetetris> | That one could be replaced by PostNoContent, but if you need headers, it can't. |
| 15:12:19 | → | samlamamma joins (~user@h188-122-129-70.cust.a3fiber.se) |
| 15:13:09 | <dminuoso> | Haha, we have the same exact problem with servant + OpenAPI |
| 15:13:21 | <dminuoso> | Or rather, a similar |
| 15:13:23 | <samlamamma> | Is anyone here experienced with implementing structural type system? |
| 15:13:25 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection) |
| 15:13:43 | → | v_m_v joins (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) |
| 15:13:59 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 15:16:01 | <dminuoso> | typetetris: Oh! That could explain it, we should just use *NoContent instead. |
| 15:16:12 | <dminuoso> | That could get rid of a few weird instances :) |
| 15:16:20 | <dminuoso> | Cheers |
| 15:16:31 | <typetetris> | dminuoso: Doesn't work for me with Headers. I have endpoints with no response body but they set headers. |
| 15:17:10 | → | Tario joins (~Tario@198.252.153.28) |
| 15:17:51 | × | v_m_v quits (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Ping timeout: 244 seconds) |
| 15:18:01 | <typetetris> | and trying to use `PostNoContent` on endpoints without headers gives me this ... https://www.irccloud.com/pastebin/GSgegDGy/ |
| 15:18:09 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 15:18:38 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
| 15:20:24 | × | machinedgod quits (~machinedg@207.253.244.210) (Quit: Lost terminal) |
| 15:20:49 | <gehmehgeh> | What's the most idiomatic way to use threed dimesional arrays in Haskell? (Or 2x2 matrices for time being)? |
| 15:20:51 | × | stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
| 15:20:51 | <gehmehgeh> | *three |
| 15:20:52 | → | machinedgod joins (~machinedg@207.253.244.210) |
| 15:21:09 | → | stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
| 15:22:01 | × | ph88 quits (~ph88@ip5f5af72e.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 15:22:28 | <dminuoso> | gehmehgeh: vector of vector |
| 15:22:36 | <dminuoso> | I guess? |
| 15:23:22 | <dminuoso> | All the usual suspects dont have support for multi dimensional matrices |
| 15:23:26 | <bqv> | will someone save me some searching |
| 15:23:56 | <bqv> | what's the lens operation i could use to get an element but also it's index |
| 15:24:02 | <bqv> | (index, element), or something |
| 15:24:10 | <dminuoso> | So vector of vector just means you cant have a convenient API of using a Vec3 as index |
| 15:24:32 | <dminuoso> | bqv: iview |
| 15:24:38 | <dminuoso> | But it requires an indexed optic of course |
| 15:24:52 | <bqv> | wonderful |
| 15:24:56 | <bqv> | ty |
| 15:25:07 | <int-e> | :t iview |
| 15:25:08 | <lambdabot> | MonadReader s m => IndexedGetting i (i, a) s a -> m (i, a) |
| 15:25:10 | <int-e> | :t withIndex |
| 15:25:12 | <lambdabot> | (Indexable i p, Functor f) => p (i, s) (f (j, t)) -> Indexed i s (f t) |
| 15:25:13 | <int-e> | hmm. |
| 15:25:51 | <dminuoso> | Or yeah that |
| 15:25:56 | <dminuoso> | % "foobar" ^.. ifolded.withIndex |
| 15:25:57 | <yahb> | dminuoso: [(0,'f'),(1,'o'),(2,'o'),(3,'b'),(4,'a'),(5,'r')] |
| 15:26:25 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 15:26:45 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:27:16 | <dminuoso> | Oh my |
| 15:27:25 | → | nados joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 15:27:30 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 15:27:38 | × | bennofs1 quits (~benno@dslb-094-222-044-018.094.222.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 15:27:42 | <dminuoso> | % :i IndexedFold |
| 15:27:43 | <yahb> | dminuoso: type role ReifiedIndexedFold nominal nominal nominal; type ReifiedIndexedFold :: * -> * -> * -> *; newtype ReifiedIndexedFold i s a = IndexedFold {...}; -- Defined in `Control.Lens.Reified'; type IndexedFold :: * -> * -> * -> *; type IndexedFold i s a = forall (p :: * -> * -> *) (f :: * -> *). (Indexable i p, Contravariant f, Applicative f) => p a (f a) -> s -> f s; -- Defined in `Control.Lens.Ty |
| 15:27:57 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Client Quit) |
| 15:28:10 | <dminuoso> | iview through an IndexedFold, it's sad lens lets you do this :( |
| 15:31:06 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 15:33:05 | <bqv> | man lenses make my head hurt |
| 15:33:41 | <bqv> | why are people so twisted on monads when lenses are a thing |
| 15:34:52 | <int-e> | Because you can use Haskell without touching lenses, but you're kind of forced to use at least one monad on occasion? |
| 15:35:13 | <bqv> | yeah |
| 15:35:21 | <int-e> | Monads also have a longer history of being scary. |
| 15:35:22 | <dminuoso> | bqv: Also, if you find lenses a bit too hard to use, you can also try optics |
| 15:35:30 | <dminuoso> | It offers better readable types and much improved diagnostics |
| 15:35:49 | <maerwald> | and good documentation |
| 15:35:54 | <bqv> | any functional difference? |
| 15:35:56 | <dminuoso> | Part of what makes lens so harsh is that it leaks implementation details in types |
| 15:36:01 | <maerwald> | bqv: yes, some |
| 15:36:13 | <bqv> | hm |
| 15:36:13 | <dminuoso> | bqv: It's a bit safer and doesn't allow some things, also it's missing a few parts left and right |
| 15:36:15 | → | adm_ joins (~adm@43.229.88.236) |
| 15:36:18 | <dminuoso> | Overall it's mostly a drop in replacement |
| 15:36:25 | × | toorevitimirp quits (~tooreviti@117.182.180.38) (Remote host closed the connection) |
| 15:36:27 | <dminuoso> | (modulo replacing . with %, and unsafe combinators) |
| 15:36:48 | <bqv> | fair enough |
| 15:36:48 | <dminuoso> | for example, optics doesnt allow you to `view` through a fold |
| 15:37:06 | <int-e> | . o O ( please describe lens in a sentence ) |
| 15:37:06 | × | ystael quits (~ystael@209.6.50.55) (Quit: Lost terminal) |
| 15:37:56 | <bqv> | something something coalgebras costate comonad... |
| 15:38:00 | <dminuoso> | "First class selectors for dealing with nested data, like css-selector/xpath" |
| 15:38:56 | <gehmehgeh> | dminuoso: hmm, so how would implement something as simply as an array 10x10 array? That is 100 elemnts, selectable by coordinates (x,y) such that x and y are in {0,9} ? |
| 15:39:00 | <gehmehgeh> | *simple |
| 15:39:13 | × | samlamamma quits (~user@h188-122-129-70.cust.a3fiber.se) (Ping timeout: 264 seconds) |
| 15:39:15 | <dminuoso> | gehmehgeh: By writing your own index functions |
| 15:39:17 | <gehmehgeh> | still Vector of VEctor? |
| 15:39:20 | <dminuoso> | Yes. |
| 15:39:20 | <gehmehgeh> | hm |
| 15:39:23 | <gehmehgeh> | ok |
| 15:39:25 | <gehmehgeh> | will do. Thanks |
| 15:39:27 | → | ystael joins (~ystael@209.6.50.55) |
| 15:39:30 | <dminuoso> | For just a matrix, you could use any of the matrix libraires instead too |
| 15:39:50 | <dminuoso> | like hmatrix if you want a BLAS/LAPACK backed matrix |
| 15:40:04 | <gehmehgeh> | hmmm |
| 15:40:19 | × | pjb quits (~t@2a01cb04063ec50070ecdd787f2214a5.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
| 15:40:25 | <dminuoso> | For higher dimensional tensors, it depends. Do you need this with dynamic/arbitrary dimensions? |
| 15:40:28 | <dminuoso> | Or just fixed 3d? |
| 15:41:29 | <gehmehgeh> | At the moment, I'm just experimenting |
| 15:42:06 | <gehmehgeh> | I was thinking about a fixed 10x10 matrix for now, though |
| 15:42:33 | <dminuoso> | bqv: "coalgebras of the costate comonad" is not just a joke, it's also a sad truth of lens. There's of course folks like edwardk who like being directly exposed to the internals of optics, others like me are not fond of having to decode failed constraints into "what optic did I build, what optic is expected" left and right. |
| 15:43:27 | <bqv> | i thought i saw a ghc plugin somewhere that improved the errors a bit |
| 15:43:42 | <bqv> | maybe i just saw the optics library you mentioned |
| 15:43:42 | <dminuoso> | That's the thing, you can do this in all (ghc-extended) haskell without plugins |
| 15:43:52 | <bqv> | hm |
| 15:43:53 | <dminuoso> | optics uses just the standard ghc facilities |
| 15:44:20 | <dminuoso> | • A_Fold cannot be used as A_Getter |
| 15:44:52 | → | da39a3ee5e6b4b0d joins (~textual@cm-171-98-71-231.revip7.asianet.co.th) |
| 15:45:03 | <dminuoso> | * No instance for (Monoid Int) arising from a use of `folded' |
| 15:45:20 | × | da39a3ee5e6b4b0d quits (~textual@cm-171-98-71-231.revip7.asianet.co.th) (Client Quit) |
| 15:45:46 | <dminuoso> | I'll take the former over the latter |
| 15:46:26 | <dminuoso> | Also, with optics you can just say `f % g :: _` and let GHC infer the type for you. And it wont give you some constraint algebra you have to do in your head, but straight up tell you |
| 15:46:26 | × | Tario quits (~Tario@198.252.153.28) (Read error: Connection reset by peer) |
| 15:46:31 | <dminuoso> | "This is an AffineTraversal" |
| 15:46:46 | <dminuoso> | (Okay bad example, since lens cant represent affine traversals) |
| 15:47:01 | <bqv> | to be honest, i am rather interested in the implementation details anyway, so i'm not against the arcane type signatures |
| 15:47:15 | <bqv> | but it does obviously make debugging basically black magic until i'm a master of profunctors |
| 15:48:06 | <dminuoso> | btw, lens already does a mixed van laarhoven/profunctor implementation |
| 15:48:25 | <dminuoso> | the implementation of optics is not more complicated than that of lens, really |
| 15:48:48 | <dminuoso> | (I guess much of the weirdnesses of lens are about generalization and performance) |
| 15:48:55 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 15:49:02 | <dminuoso> | and very opaque naming |
| 15:49:48 | <dminuoso> | Dont get me wrong, I dont have any fundamental problems with lens, but I like not having to decipher type errors. :) |
| 15:49:53 | <dminuoso> | And I like type inference being on my side |
| 15:49:57 | × | bliminse quits (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds) |
| 15:50:41 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 15:50:43 | <bqv> | isn't there a lot of stuff that's targeted at compatibility with lens specifically - would those translate? |
| 15:50:46 | → | bliminse joins (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) |
| 15:51:05 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 15:51:25 | <dminuoso> | Well you can translate lenses from VL to optics forth and back |
| 15:51:45 | <dminuoso> | at least some |
| 15:51:59 | bqv | . o O ( lens isos? ) |
| 15:52:11 | <dminuoso> | Or.. well one direction anyway |
| 15:52:13 | <dminuoso> | foldVL :: (forall f. Applicative f => (a -> f u) -> s -> f v) -> Fold s a |
| 15:52:15 | <dminuoso> | e.g. |
| 15:52:17 | ← | iqubic` parts (~user@2601:602:9500:4870:f97f:76da:55:8502) ("ERC (IRC client for Emacs 28.0.50)") |
| 15:52:30 | <dminuoso> | traversalVL :: TraversalVL s t a b -> Traversal s t a b |
| 15:53:07 | → | alp joins (~alp@88.126.45.36) |
| 15:53:18 | <dminuoso> | It would be kind of nice if such packages were written with backpack to have switchable optics implementation |
| 15:53:38 | <bqv> | yeah.. |
| 15:53:49 | <gtk> | what is the file extension for Happy grammer file? |
| 15:54:49 | <dminuoso> | bqv: But honestly, if you write a library, I'd be careful not to expose lenses as part of the main package |
| 15:55:09 | <dminuoso> | If you wanted to do this at all, try and make a `lib-lenses` package instead, that way someone else can make `lib-optics` too if they desired |
| 15:55:24 | <dminuoso> | And users who dont want to drag in the transitive dependencies can use it without lens/optics |
| 15:55:31 | <bqv> | oh, huh. ok |
| 15:56:40 | → | petersen joins (~petersen@redhat/juhp) |
| 15:57:19 | <idnar> | dminuoso: one nice thing about `lens` is that you don't need to depend on it to export lenses |
| 15:57:56 | <dminuoso> | idnar: otoh optics-core is very light on dependencies |
| 15:57:57 | × | mputz quits (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 15:58:16 | <dminuoso> | (microlens otoh can be too small) |
| 16:01:00 | → | Tario joins (~Tario@198.252.153.28) |
| 16:02:44 | → | pjb joins (~t@2a01cb04063ec50054866239aff0100c.ipv6.abo.wanadoo.fr) |
| 16:02:48 | × | Tario quits (~Tario@198.252.153.28) (Read error: Connection reset by peer) |
| 16:04:13 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 16:04:15 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 16:04:44 | × | acidjnk_new2 quits (~acidjnk@p200300d0c718f646f97e112dfc4bc61a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:05:24 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:06:51 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 16:08:03 | × | machinedgod quits (~machinedg@207.253.244.210) (Quit: Lost terminal) |
| 16:08:53 | → | avdb joins (~avdb@ip-83-134-109-5.dsl.scarlet.be) |
| 16:09:43 | → | adm_ joins (~adm@43.229.88.236) |
| 16:09:54 | → | machinedgod joins (~machinedg@207.253.244.210) |
| 16:12:25 | × | tsaka__ quits (~torstein@ppp-2-84-29-23.home.otenet.gr) (Quit: Konversation terminated!) |
| 16:12:41 | → | tsaka__ joins (~torstein@ppp-2-84-29-23.home.otenet.gr) |
| 16:13:40 | × | aveltras quits (uid364989@gateway/web/irccloud.com/x-vhqkaobhwknqfuji) (Quit: Connection closed for inactivity) |
| 16:14:08 | → | christo joins (~chris@81.96.113.213) |
| 16:14:40 | ← | logo4poop parts (~logo4poop@leagueh.xyz) () |
| 16:15:19 | → | ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net) |
| 16:15:24 | × | ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host) |
| 16:15:24 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 16:15:45 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 16:19:51 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-bxfwtutsrfijbzma) |
| 16:23:03 | × | britva quits (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Quit: This computer has gone to sleep) |
| 16:23:13 | → | knupfer joins (~Thunderbi@200116b82c4b6a00881040fffe4181bd.dip.versatel-1u1.de) |
| 16:23:47 | × | knupfer quits (~Thunderbi@200116b82c4b6a00881040fffe4181bd.dip.versatel-1u1.de) (Remote host closed the connection) |
| 16:24:00 | → | knupfer joins (~Thunderbi@200116b82c4b6a00c4d1ff5d8f844e90.dip.versatel-1u1.de) |
| 16:27:29 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-kmqwoegoouyrgklt) |
| 16:30:00 | → | GsC_RuL3Z joins (~GsC_RuL3Z@185.163.110.116) |
| 16:30:04 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 246 seconds) |
| 16:30:19 | <tomsmeding> | gtk: seems to be .y https://github.com/simonmar/happy/blob/master/tests/issue91.y |
| 16:31:25 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 16:31:36 | → | raichoo joins (~raichoo@dslb-188-100-006-110.188.100.pools.vodafone-ip.de) |
| 16:35:36 | → | britva joins (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) |
| 16:36:05 | <bqv> | in a single haskell file you can have execution going left to right, right to left, top to bottom... but can it go bottom to top? |
| 16:36:07 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:37:15 | × | britva quits (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Client Quit) |
| 16:38:31 | → | leungbk joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 16:39:22 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 16:39:54 | <tomsmeding> | bqv: if you can have it right-to-left, you can always add newlines |
| 16:40:18 | <bqv> | oh no |
| 16:40:35 | <tomsmeding> | also https://hackage.haskell.org/package/rev-state |
| 16:40:51 | <cr0ssw1nd> | what is "(a -> b)" in "myFunction (a -> b) arg1 arg2 arg3" = something" ? |
| 16:40:56 | → | isBEKaml joins (~isBEKaml@unaffiliated/isbekaml) |
| 16:41:02 | <cr0ssw1nd> | never have seen this syntax before |
| 16:41:08 | <merijn> | ViewPattern, probably? |
| 16:41:19 | <tomsmeding> | ViewPatterns |
| 16:41:36 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 16:41:57 | × | avdb quits (~avdb@ip-83-134-109-5.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 16:42:11 | → | avdb joins (~avdb@ip-83-134-109-5.dsl.scarlet.be) |
| 16:42:43 | <cr0ssw1nd> | thank you |
| 16:43:52 | → | Tario joins (~Tario@201.192.165.173) |
| 16:44:04 | <Uniaika> | §22 |
| 16:44:22 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 258 seconds) |
| 16:44:43 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 16:45:41 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 16:45:57 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) |
| 16:47:21 | × | isBEKaml quits (~isBEKaml@unaffiliated/isbekaml) (Quit: leaving) |
| 16:47:26 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:47:55 | → | grimgnr joins (~user@94.19.246.43) |
| 16:48:13 | × | leungbk quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 264 seconds) |
| 16:50:23 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 16:50:24 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 16:50:32 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit) |
| 16:52:03 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:53:29 | → | chaosmasttter joins (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) |
| 16:56:44 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 16:57:05 | → | mu_ joins (~mu@unaffiliated/mu) |
| 16:57:19 | × | twopoint718 quits (~cjw@fsf/member/twopoint718) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:57:50 | mu_ | is now known as mu |
| 17:00:34 | → | conal joins (~conal@64.71.133.70) |
| 17:01:24 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 17:01:35 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 17:01:36 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 17:01:55 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
| 17:02:28 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 17:04:00 | → | jespada joins (~jespada@90.254.245.49) |
| 17:04:03 | kuribastard | is now known as kuribas |
| 17:05:03 | × | kuribas quits (~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 17:05:23 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 260 seconds) |
| 17:05:28 | → | kuribas joins (~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be) |
| 17:05:37 | × | kish` quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 17:05:55 | → | twopoint718 joins (~cjw@fsf/member/twopoint718) |
| 17:06:48 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 17:07:01 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
| 17:07:02 | → | kish joins (~oracle@unaffiliated/oracle) |
| 17:07:24 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 17:10:10 | → | leungbk joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 17:11:37 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds) |
| 17:11:38 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 17:14:05 | × | Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 246 seconds) |
| 17:14:15 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 17:15:39 | × | befuddled quits (~befuddled@49.207.208.95) (Quit: Textual IRC Client: www.textualapp.com) |
| 17:16:00 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-khfppfglbovlyqve) |
| 17:16:50 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 17:17:38 | <sm[m]> | bqv: heh.. can it go diagonally ? in a spiral ? |
| 17:17:39 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 17:18:03 | <bqv> | These are the real questions |
| 17:20:01 | × | cr0ssw1nd quits (~crosswind@78.162.46.6) (Quit: Leaving) |
| 17:24:14 | → | conal joins (~conal@64.71.133.70) |
| 17:24:15 | <geekosaur> | it goes in whatever direction gets the job done. Haskell has an entry point like C/C++ ("main") rather than top-to-bottom like Python |
| 17:24:47 | <tomsmeding> | diagonal? https://paste.tomsmeding.com/DN6jjjhM |
| 17:25:00 | <tomsmeding> | we can do diagonal |
| 17:25:09 | <tomsmeding> | (that's generated code by the way) |
| 17:25:44 | <geekosaur> | next it'll be haskell poetry >.> |
| 17:26:36 | → | nuncanada joins (~dude@179.235.160.168) |
| 17:27:00 | hackage | phonetic-languages-examples 0.3.1.0 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.3.1.0 (OleksandrZhabenko) |
| 17:28:00 | <sm[m]> | excellent tomsmeding |
| 17:29:45 | × | mupf quits (~micha@v22017094964653601.ultrasrv.de) (Quit: WeeChat 2.9) |
| 17:29:49 | <bqv> | is there an easy lens op to get just the indexes, rather than (index, element) with iview/^@. ? |
| 17:30:36 | <maerwald> | bqv: you can always use `to` |
| 17:31:02 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 17:31:15 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit) |
| 17:31:28 | <maerwald> | https://hackage.haskell.org/package/optics-core-0.3.0.1/docs/Optics-Getter.html#v:to |
| 17:31:49 | → | mupf joins (~micha@v22017094964653601.ultrasrv.de) |
| 17:32:36 | <bqv> | well, not sure that helps so much |
| 17:32:43 | <bqv> | i have an indexedlens |
| 17:33:00 | <bqv> | just wanna get an index out of it without having to & fst it |
| 17:33:12 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 17:33:23 | × | leungbk quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 260 seconds) |
| 17:33:35 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Read error: Connection reset by peer) |
| 17:33:37 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit) |
| 17:34:01 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 17:34:03 | → | samlamamma joins (~user@h188-122-129-70.cust.a3fiber.se) |
| 17:34:37 | → | texasmyn_ joins (~texasmyns@64.44.55.28) |
| 17:35:38 | <samlamamma> | Pure FP noob here. I need to traverse a circular graph in a DFS manner. How do I check if I've visited a node before? Basically I need object identities which doesn't depend on the shape of the whole data. |
| 17:35:43 | → | leungbk joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 17:35:46 | × | adm_ quits (~adm@43.229.88.236) (Remote host closed the connection) |
| 17:36:20 | → | adm_ joins (~adm@43.229.88.236) |
| 17:36:33 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 17:38:23 | × | knupfer quits (~Thunderbi@200116b82c4b6a00c4d1ff5d8f844e90.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
| 17:38:37 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Ping timeout: 264 seconds) |
| 17:38:54 | <merijn> | What data structure do you have your graph in? |
| 17:39:11 | <merijn> | i.e. can't you just "make up" a unique identity per node and call it a day |
| 17:39:39 | <maerwald> | > iviews (ito id) (\i _ -> i) ('i', 'x') -- bqv |
| 17:39:41 | <lambdabot> | 'i' |
| 17:40:09 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds) |
| 17:40:25 | <bqv> | oh, nice |
| 17:40:31 | <bqv> | iviews ilens const |
| 17:40:50 | <bqv> | no convenient operator though i guess |
| 17:40:54 | <bqv> | ah well |
| 17:40:55 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-qdwmnzjhildlwlnh) (Quit: Connection closed for inactivity) |
| 17:40:58 | × | adm_ quits (~adm@43.229.88.236) (Ping timeout: 260 seconds) |
| 17:41:03 | <maerwald> | stop complaining :p |
| 17:41:06 | <samlamamma> | merijn: Yeah, I was thinking I can just add an integer to each and use that as its identity. I'm curious what the idiomatic choice is |
| 17:41:10 | <bqv> | :D |
| 17:41:50 | <merijn> | samlamamma: You need some form of node identity for graphs and if you don't have a particular one you need "just assign incrementing integers" is about as sensible as it can be |
| 17:42:45 | × | tobiasBora quits (~weechat@176-190-197-81.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 17:42:46 | × | asheshambasta quits (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 268 seconds) |
| 17:42:51 | <samlamamma> | Hey, fair enough. |
| 17:47:46 | → | iqubic joins (~user@2601:602:9500:4870:f97f:76da:55:8502) |
| 17:48:50 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 17:48:57 | × | samlamamma quits (~user@h188-122-129-70.cust.a3fiber.se) (Ping timeout: 256 seconds) |
| 17:49:30 | → | goldfire joins (~anonymous@c-76-124-205-20.hsd1.pa.comcast.net) |
| 17:50:16 | × | evanjs quits (~evanjs@075-129-188-019.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 17:53:00 | → | evanjs joins (~evanjs@075-129-188-019.res.spectrum.com) |
| 17:53:52 | × | chaosmasttter quits (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 17:54:29 | → | britva joins (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) |
| 17:54:47 | → | Ariakenom_ joins (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) |
| 17:55:11 | × | britva quits (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Client Quit) |
| 17:55:25 | × | hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 240 seconds) |
| 17:55:29 | × | coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:55:57 | → | conal joins (~conal@64.71.133.70) |
| 17:56:31 | hackage | clash-prelude 1.2.5 - CAES Language for Synchronous Hardware - Prelude library https://hackage.haskell.org/package/clash-prelude-1.2.5 (QBayLogic) |
| 17:57:00 | × | Ariakenom quits (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Quit: Leaving) |
| 17:57:24 | → | Ariakenom joins (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) |
| 17:57:25 | → | hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net) |
| 17:57:31 | hackage | clash-ghc 1.2.5, clash-lib 1.2.5 (QBayLogic): https://qbin.io/nasa-ebooks-5888 |
| 17:57:53 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:58:39 | × | Eugleo quits (5ab552b3@gateway/web/cgi-irc/kiwiirc.com/ip.90.181.82.179) (Quit: Connection closed) |
| 17:59:31 | × | jakob_ quits (~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
| 18:00:01 | × | GsC_RuL3Z quits (~GsC_RuL3Z@185.163.110.116) () |
| 18:01:31 | hackage | uniqueness-periods-vector-examples 0.14.2.0 - Usage examples for the uniqueness-periods-vector series of packages https://hackage.haskell.org/package/uniqueness-periods-vector-examples-0.14.2.0 (OleksandrZhabenko) |
| 18:03:57 | × | Ariakenom_ quits (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Quit: Leaving) |
| 18:05:45 | × | dmwit quits (~dmwit@pool-108-28-166-212.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 18:10:11 | × | alp quits (~alp@88.126.45.36) (Remote host closed the connection) |
| 18:10:36 | → | alp joins (~alp@2a01:e0a:58b:4920:45f9:8edd:2bfa:dd05) |
| 18:11:37 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 18:17:29 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 18:17:38 | → | vfaronov joins (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
| 18:18:25 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 18:21:35 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 18:21:39 | → | KevinM joins (~KevinM@185.204.1.185) |
| 18:22:44 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
| 18:23:21 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 18:23:45 | → | dbmikus__ joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
| 18:24:43 | → | chaosmasttter joins (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) |
| 18:24:49 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 18:25:14 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 18:26:34 | → | mnrmnaughmnrgle joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 18:29:08 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 18:30:47 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 18:32:36 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 18:33:09 | × | Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 256 seconds) |
| 18:33:20 | × | borne quits (~fritjof@200116b864d35e0021c47849b07375d7.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 18:34:28 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 18:35:23 | → | Kaivo joins (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) |
| 18:38:50 | → | valdyn joins (~valdyn@host-88-217-143-53.customer.m-online.net) |
| 18:39:14 | × | mmohammadi9812 quits (~mmohammad@5.238.175.25) (Ping timeout: 256 seconds) |
| 18:39:45 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
| 18:40:49 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
| 18:42:28 | → | daydaynatation joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 18:44:12 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 18:44:21 | → | mmohammadi9812 joins (~mmohammad@5.238.175.25) |
| 18:44:41 | <bqv> | y'know when you get to that stage where you have 3 distinct but overlapping refactors going on at the same time |
| 18:44:45 | <bqv> | or is that just me |
| 18:46:23 | <Uniaika> | :'D |
| 18:49:57 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 18:52:16 | → | conal joins (~conal@64.71.133.70) |
| 18:53:48 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 18:54:35 | × | kuribas quits (~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 18:56:05 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 18:56:14 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 18:56:27 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 18:58:29 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 18:58:33 | × | mnrmnaughmnrgle quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds) |
| 18:58:45 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 18:59:02 | × | ridcully quits (~ridcully@p57b5259e.dip0.t-ipconnect.de) (Quit: cleanup) |
| 18:59:57 | → | coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
| 19:00:04 | → | ridcully joins (~ridcully@p57b5259e.dip0.t-ipconnect.de) |
| 19:00:09 | <merijn> | hmm, vector has no foldMap? |
| 19:01:44 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 19:02:13 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 19:02:13 | <tomsmeding> | bqv: be happy you're using haskell |
| 19:02:26 | × | alp quits (~alp@2a01:e0a:58b:4920:45f9:8edd:2bfa:dd05) (Ping timeout: 264 seconds) |
| 19:02:37 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 19:02:53 | <bqv> | i am, i just worry that i use haskell as an excuse to refactor more than write actual code |
| 19:03:00 | → | jakob_ joins (~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de) |
| 19:03:30 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:03:32 | → | conal joins (~conal@64.71.133.70) |
| 19:03:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:03:58 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:04:10 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds) |
| 19:04:36 | × | britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
| 19:06:52 | × | mmohammadi9812 quits (~mmohammad@5.238.175.25) (Ping timeout: 246 seconds) |
| 19:07:02 | texasmyn_ | is now known as texasmynsted |
| 19:07:07 | → | mmohammadi9812 joins (~mmohammad@5.238.183.63) |
| 19:07:24 | fendor_ | is now known as fendor |
| 19:07:32 | <fendor> | maerwald, my gf is a fan of ghcup, great work! |
| 19:07:36 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 19:08:00 | hackage | cachix 0.5.1 - Command line client for Nix binary cache hosting https://cachix.org https://hackage.haskell.org/package/cachix-0.5.1 (domenkozar) |
| 19:08:21 | → | britva joins (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) |
| 19:08:39 | monochrom | <3 maerwald and ghcup too |
| 19:12:10 | × | mmohammadi9812 quits (~mmohammad@5.238.183.63) (Quit: Quit) |
| 19:12:33 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 19:14:59 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 19:17:10 | × | raichoo quits (~raichoo@dslb-188-100-006-110.188.100.pools.vodafone-ip.de) (Quit: Lost terminal) |
| 19:18:32 | → | mmohammadi9812 joins (~mmohammad@5.238.183.63) |
| 19:19:33 | → | DTZUZU joins (~DTZUZU@205.ip-149-56-132.net) |
| 19:20:02 | → | alp joins (~alp@2a01:e0a:58b:4920:681b:9986:ad49:88f7) |
| 19:24:06 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 19:24:13 | × | juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 258 seconds) |
| 19:24:20 | → | mnrmnaughmnrgle joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 19:25:08 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 19:26:05 | × | gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
| 19:26:18 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 19:26:48 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 19:28:02 | → | knupfer joins (~Thunderbi@200116b82c4b6a00d47a4dfffea33367.dip.versatel-1u1.de) |
| 19:28:48 | × | knupfer quits (~Thunderbi@200116b82c4b6a00d47a4dfffea33367.dip.versatel-1u1.de) (Remote host closed the connection) |
| 19:28:56 | → | knupfer joins (~Thunderbi@200116b82c4b6a00dc5455e3637c129b.dip.versatel-1u1.de) |
| 19:29:12 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 19:29:41 | × | mu quits (~mu@unaffiliated/mu) (Quit: mu) |
| 19:29:59 | → | adm_ joins (~adm@43.229.88.236) |
| 19:31:35 | → | mbomba joins (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
| 19:34:25 | × | adm_ quits (~adm@43.229.88.236) (Ping timeout: 264 seconds) |
| 19:35:03 | → | bennofs1 joins (~benno@dslb-188-106-224-177.188.106.pools.vodafone-ip.de) |
| 19:35:58 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 19:39:14 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 256 seconds) |
| 19:40:36 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 19:41:08 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 19:46:48 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 272 seconds) |
| 19:47:26 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 19:50:55 | → | kaysee joins (5d29234b@93-41-35-75.ip79.fastwebnet.it) |
| 19:52:13 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
| 19:53:50 | → | wroathe_ joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:55:08 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 19:55:11 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 19:55:20 | → | Lycurgus joins (~niemand@98.4.97.118) |
| 19:57:13 | × | daydaynatation quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 264 seconds) |
| 19:57:27 | × | kaysee quits (5d29234b@93-41-35-75.ip79.fastwebnet.it) (Remote host closed the connection) |
| 19:59:32 | × | thir quits (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 20:00:21 | → | Codaraxis joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 20:00:31 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 20:00:45 | × | juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 240 seconds) |
| 20:01:43 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 20:01:53 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 20:04:23 | → | rprije joins (~rprije@124.148.131.132) |
| 20:05:17 | × | twopoint718 quits (~cjw@fsf/member/twopoint718) (Quit: Textual IRC Client: www.textualapp.com) |
| 20:06:22 | → | johnw__ joins (~textual@2600:1700:cf00:db0:5550:6a3c:f0cd:2841) |
| 20:08:32 | → | geekosaur joins (82659a09@host154-009.vpn.uakron.edu) |
| 20:09:04 | × | knupfer quits (~Thunderbi@200116b82c4b6a00dc5455e3637c129b.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
| 20:10:25 | × | leungbk quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 260 seconds) |
| 20:12:16 | × | wroathe_ quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 20:13:05 | <koz_> | :t comparing |
| 20:13:06 | <lambdabot> | Ord a => (b -> a) -> b -> b -> Ordering |
| 20:13:16 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 20:13:40 | <koz_> | merijn: Why? Vector (at least the basic one) shoudl be Foldable? Or is there missing context here? |
| 20:14:41 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:15:03 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 20:17:55 | × | mnrmnaughmnrgle quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 246 seconds) |
| 20:18:26 | → | leungbk joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 20:20:18 | <merijn> | Storable vector doesn't have a Foldable instance |
| 20:20:23 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 20:21:05 | <monochrom> | Right, but mono-traversable can help. |
| 20:21:21 | <merijn> | monochrom: There's no reason it can't be Foldable, though |
| 20:21:33 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 20:21:44 | <koz_> | merijn: Ah, yeah. |
| 20:21:48 | <merijn> | oh, wait, no |
| 20:21:56 | <koz_> | Unfortunately it can't be. |
| 20:21:58 | <merijn> | Because you can't limit the argument |
| 20:22:00 | <monochrom> | Perhaps you mean: There is no reason Foldable stays within the restriction of single-parameter type class therefore imposes a parametricity restriction. |
| 20:22:05 | <koz_> | We need a Storable constraint to basically do anything. |
| 20:22:22 | <merijn> | Anyway, there's no reason for it not to export it's own foldMap |
| 20:22:30 | <merijn> | It exports a billion other folds |
| 20:22:43 | <monochrom> | Yes, that I can stand behind. |
| 20:23:14 | <monochrom> | But mono-traversable does it. You can accept this compromise for now. |
| 20:23:38 | <merijn> | monochrom: I just did VS.toList and foldMapped that :p |
| 20:24:08 | <monochrom> | That one may actually fuse. |
| 20:24:24 | <merijn> | Frankly I don't particularly care about the performance anyway |
| 20:24:38 | → | knupfer joins (~Thunderbi@200116b82c4b6a002515619359a4e7a1.dip.versatel-1u1.de) |
| 20:25:00 | → | Entertainment joins (~entertain@104.246.132.210) |
| 20:26:58 | <koz_> | merijn: Do any of the Vector types export (something akin to) foldMap? |
| 20:27:03 | <hekkaidekapus> | merijn: <https://github.com/haskell/vector/pull/337> |
| 20:27:06 | <koz_> | (well, other than the basic one via being Foldable) |
| 20:27:38 | <koz_> | Never mind, hekkaidekapus answered my question. |
| 20:27:45 | <merijn> | hekkaidekapus: Unless to goes onto Hackage in, -15 minutes that's not particularly useful to me, though ;) |
| 20:28:18 | <hekkaidekapus> | hahaha… Admit it, you wanted to let some steam off ;) |
| 20:29:46 | × | wwwww quits (~wwwww@unaffiliated/wwwww) (Ping timeout: 258 seconds) |
| 20:30:50 | <davean> | koz_: why 15 minutes? :) |
| 20:31:20 | <hekkaidekapus> | (Wrong nick) |
| 20:31:28 | <geekosaur> | merijn, and I see -15 |
| 20:31:36 | <merijn> | davean: Because that's 15 minutes ago is when I wrote the code to work around the lack of foldMap |
| 20:31:39 | → | wwwww joins (~wwwww@unaffiliated/wwwww) |
| 20:31:48 | → | mputz joins (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
| 20:31:50 | × | AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
| 20:31:54 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 20:31:57 | <monochrom> | TEN3T |
| 20:32:12 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 20:32:23 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:32:25 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 20:33:10 | × | juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
| 20:34:16 | <merijn> | So...I've got a pro-tip for people |
| 20:34:50 | <merijn> | If you're going to spend 1.5 hours trying to work out why your "real" code deviates from your validation code in a super subtle and weird way... |
| 20:35:06 | <merijn> | Maybe first check your validation code is correct |
| 20:35:48 | <monochrom> | Heh I use that to illustrate Bayes theorem. |
| 20:36:03 | <merijn> | Also, somewhat relatedly |
| 20:36:24 | <merijn> | Use more newtypes for your integers if you're gonna have like 5 different values of the buggers |
| 20:37:14 | × | xff0x quits (~fox@2001:1a81:531b:1600:ec8f:61b3:570e:bcbc) (Ping timeout: 264 seconds) |
| 20:37:26 | <monochrom> | It goes like "you're an experienced programmer, your probability of making a bug is really small. The new intern is writing test cases, their false alarm probability is small but bigger than your bug probability. Your code fails their test case. What's the probability that it's really your fault?" |
| 20:37:54 | → | xff0x joins (~fox@2001:1a81:531b:1600:cd3d:f483:4bd5:a4e5) |
| 20:38:04 | <Rembane> | 7 |
| 20:38:32 | × | Lycurgus quits (~niemand@98.4.97.118) (Quit: Exeunt) |
| 20:38:58 | <hekkaidekapus> | merijn: The tip is drawn from validated-literals? |
| 20:39:21 | × | aldum quits (~vishera@aldum.pw) (Remote host closed the connection) |
| 20:39:31 | → | aldum joins (~vishera@aldum.pw) |
| 20:39:46 | <dsal> | The worst thing is finding compiler bugs after years of conditioning that it's not the compiler. |
| 20:39:47 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 20:40:36 | → | acidjnk_new2 joins (~acidjnk@p200300d0c718f61059b80ee7df292ca6.dip0.t-ipconnect.de) |
| 20:41:23 | → | son0p joins (~son0p@181.136.122.143) |
| 20:42:15 | <merijn> | dsal: Oh, I've got a good way to fix that! |
| 20:42:35 | <merijn> | dsal: Just try Intel's OpenCL FPGA tools! |
| 20:42:41 | <dsal> | ha |
| 20:43:05 | <merijn> | After 2 months your first instinct for any bug is "I bet they fucked up the compiler again" |
| 20:43:24 | <merijn> | hekkaidekapus: That's for literals, not so much runtime values :) |
| 20:43:32 | <merijn> | hekkaidekapus: Hence, the name ;) |
| 20:43:58 | <monochrom> | Use a just-in-time compiler to turn run-time values into compile-time literals. |
| 20:44:05 | <monochrom> | Just look at xmonad. |
| 20:44:30 | → | kjak joins (~kjak@pool-173-73-38-16.washdc.fios.verizon.net) |
| 20:44:41 | <hekkaidekapus> | merijn: I was teasing you because there are no bug reports for the package ;) |
| 20:44:54 | <monochrom> | or javascript eval >:) |
| 20:45:05 | <merijn> | hekkaidekapus: That's because no one's using it :p |
| 20:45:57 | <hekkaidekapus> | By the way, it’s not the first time you’re into Vector.foldMap; <https://github.com/haskell/vector/issues/263#issuecomment-643812468> |
| 20:46:27 | <merijn> | I know, that's cause past me is a genius with impeccable taste |
| 20:46:44 | <hekkaidekapus> | heh |
| 20:47:22 | → | mu joins (~mu@unaffiliated/mu) |
| 20:47:59 | <merijn> | "newtype Index = Index { getIdx :: Int }" now, if I only had thought of that earlier I'd have saved myself a bunch of annoying debugging >.> |
| 20:49:22 | <tomsmeding> | merijn: "I don't think tree fold ever does less operations." |
| 20:49:32 | <merijn> | tomsmeding: That's true |
| 20:49:32 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 20:49:34 | <tomsmeding> | a binary tree with n leaves has n-1 interior nodes |
| 20:49:36 | <tomsmeding> | qed |
| 20:50:29 | <merijn> | I'm unsure if you're agreeing or disagreeing? |
| 20:50:58 | <koz_> | > takeWhile (/= ':') "foo:bar" |
| 20:51:00 | <lambdabot> | "foo" |
| 20:51:19 | <tomsmeding> | merijn: I'm agreeing, and proving that your "I think" can be removed :p |
| 20:51:55 | <merijn> | tomsmeding: Past me is not only a genius with impeccable taste. He's also modest and likes to hedge his claims, except when he doesn't. |
| 20:52:23 | <tomsmeding> | and present you is also fond of tautologies? :) |
| 20:52:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:52:43 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 20:52:43 | <merijn> | Tautologies and showers |
| 20:52:45 | <koz_> | Tautologies are delicious with chocolate syrup. |
| 20:52:53 | <koz_> | Showers are less so. |
| 20:53:09 | <tomsmeding> | is that latter statement from experience? |
| 20:53:21 | <koz_> | tomsmeding: I'll let you figure that one out. :P |
| 20:56:01 | hackage | phonetic-languages-examples 0.3.1.1 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.3.1.1 (OleksandrZhabenko) |
| 20:58:07 | → | Tario joins (~Tario@201.192.165.173) |
| 20:59:26 | <merijn> | Excellent. My newtype refactor to avoid similar mistakes in the future actually causes a type error on the bug \o/ |
| 21:00:01 | × | KevinM quits (~KevinM@185.204.1.185) () |
| 21:00:55 | <tomsmeding> | 🎉 |
| 21:04:02 | × | coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 21:04:02 | × | alp quits (~alp@2a01:e0a:58b:4920:681b:9986:ad49:88f7) (Ping timeout: 246 seconds) |
| 21:05:26 | → | plakband joins (~plakband@softbank126126238105.bbtec.net) |
| 21:07:43 | <hekkaidekapus> | The takeWhile above by koz_ reminded me something I saw in the backlog. merijn, why did you shy away of Data.Sequence when someone asked about a takeWhile going from right to left? |
| 21:08:24 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 21:08:52 | <merijn> | What? |
| 21:09:01 | <merijn> | I didn't ask about takeWhile? |
| 21:09:25 | <hekkaidekapus> | No, someone asked you about it. |
| 21:10:22 | <merijn> | The only vaguely related thing I recall is someone wanting to do left padding? |
| 21:10:41 | <merijn> | How long ago is this backlog? :p |
| 21:10:52 | × | bennofs1 quits (~benno@dslb-188-106-224-177.188.106.pools.vodafone-ip.de) (Quit: WeeChat 2.9) |
| 21:11:26 | <hekkaidekapus> | yesterday |
| 21:11:53 | <merijn> | That's about 12 hours outside my short term memory storage :p |
| 21:12:10 | <hekkaidekapus> | L4 anyone? |
| 21:12:46 | → | gtk` joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 21:13:06 | <gtk`> | Is the Rio library still being actively developed? |
| 21:13:31 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 21:14:30 | × | bitmagie quits (~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie) |
| 21:14:33 | <hekkaidekapus> | merijn: <https://ircbrowse.tomsmeding.com/browse/haskell?id=113736×tamp=1604876499#t1604876499> |
| 21:16:09 | → | conal joins (~conal@64.71.133.70) |
| 21:16:25 | <tomsmeding> | can't have an infinite Seq? |
| 21:16:34 | <hekkaidekapus> | Nope. |
| 21:16:41 | <bqv> | if i have a Getter |
| 21:16:44 | <tomsmeding> | so then you can't do the same trick anyhow |
| 21:16:44 | <bqv> | and i have a Setter |
| 21:16:51 | <bqv> | can I make a Lens' |
| 21:17:02 | <bqv> | without going the roundabout route |
| 21:17:15 | × | nuncanada quits (~dude@179.235.160.168) (Read error: Connection reset by peer) |
| 21:17:29 | <bqv> | i can't quite decipher the types enough to work out if that's possible |
| 21:17:50 | → | nuncanada joins (~dude@179.235.160.168) |
| 21:17:56 | <hekkaidekapus> | tomsmeding: In the grand scheme of things, yes. But I doubt the code involved in that convo wouldn’t fare well with a takeWhileR. |
| 21:18:25 | → | aarvar joins (~foewfoiew@c.24.56.239.179.static.broadstripe.net) |
| 21:22:18 | × | knupfer quits (~Thunderbi@200116b82c4b6a002515619359a4e7a1.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 21:23:21 | <gtk`> | cabal install Quickcheck give this error: fdTryLock: invalid argument (Invalid argument) |
| 21:23:30 | <gtk`> | any hint? |
| 21:24:37 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 21:24:49 | × | jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
| 21:25:29 | <merijn> | hekkaidekapus: I don't really see how Seq fits there, tbh? |
| 21:26:34 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ) |
| 21:26:55 | → | jathan joins (~jathan@69.61.93.38) |
| 21:28:23 | × | vfaronov quits (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
| 21:29:04 | × | johnw__ quits (~textual@2600:1700:cf00:db0:5550:6a3c:f0cd:2841) (Quit: Textual IRC Client: www.textualapp.com) |
| 21:29:08 | → | lawr3nce joins (~lawr3nce@gateway/tor-sasl/lawr3nce) |
| 21:31:27 | × | gtk` quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
| 21:31:43 | × | gtk quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
| 21:31:55 | <hekkaidekapus> | gtk`: Are you on Windows? |
| 21:32:52 | <hekkaidekapus> | merijn: I’m suggesting Seq in case the real use case was to view a list in the right-left direction. |
| 21:33:04 | × | lawr3nce quits (~lawr3nce@gateway/tor-sasl/lawr3nce) (Remote host closed the connection) |
| 21:33:06 | → | borne joins (~fritjof@200116b864d35e0021c47849b07375d7.dip.versatel-1u1.de) |
| 21:33:15 | <merijn> | The question was how to pad to a fixed length, though? |
| 21:33:17 | × | ulidtko quits (~ulidtko@193.111.48.79) (Remote host closed the connection) |
| 21:33:49 | × | avdb quits (~avdb@ip-83-134-109-5.dsl.scarlet.be) (Ping timeout: 264 seconds) |
| 21:34:27 | <hekkaidekapus> | Yeah, so if the list is built right-leftly, I can pad at the front with Seq. |
| 21:35:07 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 21:35:40 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 21:36:14 | <tomsmeding> | but then you still have to compute (desired length) - (current length) to determine the amount of padding, right? |
| 21:36:53 | <tomsmeding> | in which case you could just as well have used `take desired (replicate (desired - length my_list) ++ my_list)` |
| 21:37:42 | <tomsmeding> | hm, except if it can happen that the list is _longer_ than the desired length and you want to truncate |
| 21:38:09 | <hekkaidekapus> | How are the asymptotics of that? (Haven’t checked, have just a hunch) |
| 21:38:23 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
| 21:38:24 | <tomsmeding> | linear? :p |
| 21:38:38 | <bqv> | dminuoso? |
| 21:38:46 | <tomsmeding> | whereas using Seq would even be n log n |
| 21:38:51 | <bqv> | Resident lens expert... |
| 21:39:00 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:39:25 | <merijn> | I know the asymptotics of thinking about complicated alternatives and their complexity are higher than my simple O(1) reflex reaction :p |
| 21:40:25 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 264 seconds) |
| 21:41:11 | <hekkaidekapus> | Empty |> 0 |> 0 |> 0 |> 5 |> 4 |> 3 |> 2 |> 1 -- Is that so bad? |
| 21:41:25 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer) |
| 21:42:20 | → | Guest41 joins (50a46f47@gateway/web/cgi-irc/kiwiirc.com/ip.80.164.111.71) |
| 21:42:22 | <bqv> | Yikes |
| 21:43:17 | <tomsmeding> | talking about aesthetics, performance, or time spent typing? :p |
| 21:43:43 | <hekkaidekapus> | All of them :) |
| 21:44:37 | <tomsmeding> | looks nice, is probably slower than `reverse (take 8 ([1..5] ++ repeat 0))`, and takes longer to type except if you use editor macros |
| 21:44:50 | → | Lord_of_Life joins (~Lord@46.217.220.150) |
| 21:44:50 | × | Lord_of_Life quits (~Lord@46.217.220.150) (Changing host) |
| 21:44:50 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 21:45:00 | hackage | hls-plugin-api 0.5.0.0 - Haskell Language Server API for plugin communication https://hackage.haskell.org/package/hls-plugin-api-0.5.0.0 (jneira) |
| 21:45:06 | <tomsmeding> | ("slower" -> assuming you convert to a list again afterwards) |
| 21:45:41 | <hekkaidekapus> | #haskell, where typing happens :P |
| 21:47:23 | <invaser> | Hi, it seems that I've found a bug in syntax highlighter for vscode |
| 21:48:13 | <invaser> | if you write this code `t = [f| f <-""]` (without space between `f` and `|`) everything that comes after the list comprehension isn't highlighted |
| 21:48:19 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:48:59 | <[exa]> | invaser: sounds like it's mistaking it for some kind of template haskell construct? |
| 21:48:59 | <invaser> | should I report it in Haskell externsion repo or in syntax highlighter one? |
| 21:49:29 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 2.9) |
| 21:49:31 | <invaser> | [exa]: yes, it seems like it, though the code runs perfectly ok |
| 21:50:06 | <invaser> | I'm new to the bug reporting, so I thought I should ask here first where should I report this :) |
| 21:50:31 | <[exa]> | invaser: I'd start with syntax highlighter, at worst they tell you that the problem is not at their side (maybe the compiler flags get reported wrong) |
| 21:50:56 | <[exa]> | if you want to be triple sure, try to run the syntax highlighter standalone on the problematic snippet |
| 21:52:18 | <[exa]> | btw if you're new, it's good to follow a "template", like say this one https://github.com/JustusAdam/language-haskell/issues/176 |
| 21:52:30 | hackage | j 0.2.0.0 - J in Haskell https://hackage.haskell.org/package/j-0.2.0.0 (vmchale) |
| 21:53:00 | <[exa]> | (uh wait that actually looks like the same issue :D ) |
| 21:53:41 | → | armin76 joins (~armin76@s91904426.blix.com) |
| 21:53:49 | <invaser> | [exa]: haha yeah, just saw it myself |
| 21:54:43 | <[exa]> | the 'wontfix' label is sad, obviously there's no way to tell the highlighter if the file should have +TemplateHaskell or not |
| 21:55:06 | × | chaosmasttter quits (~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 21:55:29 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 21:56:10 | <[exa]> | (grumpy voice:) what would we expect from an IDE anyway |
| 21:56:23 | <jackdk> | Does this have a well-known name? `data FooBar a b = Foo a (Maybe b) | Bar b`? i.e., you might have `a`, you might have `b`, but you definitely don't have neither |
| 21:56:41 | → | nuruuu joins (6dced5cb@109.206.213.203) |
| 21:57:00 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 256 seconds) |
| 21:58:35 | <monochrom> | "inclusive or" is close, but no one really say that. |
| 21:58:47 | <[exa]> | jackdk: why not make the type symmetric, like JustA a | JustB b | Both a b ? |
| 21:58:47 | × | ski quits (~ski@remote11.chalmers.se) (Remote host closed the connection) |
| 21:59:22 | <monochrom> | And yeah it is usually nicer to make it symmetry like that. |
| 21:59:25 | <nshepperd2> | isn't that called These |
| 21:59:46 | <jackdk> | haha yes it is These. thanks nshepperd2 |
| 22:01:05 | <monochrom> | I am beginning to suspect that "These" is a poorly chosen name. |
| 22:01:21 | <[exa]> | monochrom: I just rediscovered what it does for the 3rd time |
| 22:01:30 | hackage | cabal-fmt 0.1.5.1 - Format .cabal files https://hackage.haskell.org/package/cabal-fmt-0.1.5.1 (phadej) |
| 22:01:33 | <[exa]> | remember once asking for it here myself |
| 22:01:41 | → | Solarion joins (~solarion@fsf/member/solarion) |
| 22:01:53 | Gurkenglas_ | is now known as Gurkenglas |
| 22:03:21 | <monochrom> | You tell people "I have an apple, or an orange, or both", people will respond "that sounds like 'and/or'" or "that sounds like 'inclusive or'". No one is going to respond "that sounds like 'these'". |
| 22:03:45 | <monochrom> | If you go on to tell people "someone named this situation 'these'" people will be like "wait what?" |
| 22:05:00 | <[exa]> | naming is hard |
| 22:05:07 | <[exa]> | can we do better than say.. EitherBoth ? |
| 22:05:21 | <dolio> | Yeah, These is better. |
| 22:06:01 | × | britva quits (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Quit: This computer has gone to sleep) |
| 22:06:56 | → | alp joins (~alp@88.126.45.36) |
| 22:08:14 | × | jakob_ quits (~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
| 22:08:16 | <[exa]> | :[ |
| 22:08:50 | × | machinedgod quits (~machinedg@207.253.244.210) (Ping timeout: 256 seconds) |
| 22:08:56 | × | \x2D quits (~Thunderbi@freenode/staff/grumble) (Quit: echo -e '\e#8') |
| 22:09:58 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 265 seconds) |
| 22:11:23 | → | grumble joins (~Thunderbi@freenode/staff/grumble) |
| 22:12:51 | <dminuoso> | bqv: with optics or with lens? And what do you mean with roundabout vote? |
| 22:13:08 | → | britva joins (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) |
| 22:14:37 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 22:14:55 | <dminuoso> | 23:10:35 monochrom | [22:01:05] I am beginning to suspect that "These" is a poorly chosen name. |
| 22:15:25 | <dminuoso> | I think it's a good name because it's somewhat suggestive, but not too concretely so. |
| 22:15:56 | × | nuruuu quits (6dced5cb@109.206.213.203) (Remote host closed the connection) |
| 22:15:59 | <dminuoso> | Maybe as a type constructor is a dumb name as well, you wouldn't say "I have maybe apple" |
| 22:16:43 | <monochrom> | But I say "Maybe I have an apple" all the time. |
| 22:17:21 | <Rembane> | monochrom: Are Schrödinger apples an important part of the food you eat? |
| 22:18:49 | <dminuoso> | monochrom: Strangely, if you have an issue with naming, why not complain about MonadChronicle ;) |
| 22:19:09 | <dminuoso> | Nothing but cute workplay |
| 22:19:10 | <monochrom> | I haven't heard of MonadChronicle. |
| 22:19:13 | <dminuoso> | https://hackage.haskell.org/package/monad-chronicle-1.0.0.1/docs/Control-Monad-Chronicle.html#t:MonadChronicle |
| 22:19:22 | <dminuoso> | It's essentially an mtl style for These |
| 22:19:27 | <dminuoso> | as a monad transformer |
| 22:19:32 | → | jakob_ joins (~textual@p200300f49f162200d485fdd402f900db.dip0.t-ipconnect.de) |
| 22:19:46 | <dminuoso> | Or rather, there's ChroncicleT that is essentially a TheseT, and MonadChronicle as a tagless final encoding |
| 22:20:53 | → | sagax joins (~sagax_nb@213.138.71.146) |
| 22:22:02 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:22:25 | × | enoq quits (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com) |
| 22:22:25 | × | Ariakenom quits (~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Quit: Leaving) |
| 22:23:55 | → | machinedgod joins (~machinedg@207.253.244.210) |
| 22:27:10 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Remote host closed the connection) |
| 22:29:34 | × | solonarv quits (~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
| 22:30:17 | → | ystael joins (~ystael@209.6.50.55) |
| 22:30:38 | → | falafel_ joins (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) |
| 22:32:33 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 22:32:40 | → | jonatanb joins (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) |
| 22:33:35 | × | dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 22:35:00 | × | Franciman quits (~francesco@host-82-56-223-169.retail.telecomitalia.it) (Quit: Leaving) |
| 22:35:42 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 22:37:06 | × | Guest41 quits (50a46f47@gateway/web/cgi-irc/kiwiirc.com/ip.80.164.111.71) (Quit: Connection closed) |
| 22:37:21 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 22:38:38 | × | thecoffemaker quits (~thecoffem@unaffiliated/thecoffemaker) (Max SendQ exceeded) |
| 22:38:38 | → | conal joins (~conal@64.71.133.70) |
| 22:39:02 | → | thecoffemaker joins (~thecoffem@unaffiliated/thecoffemaker) |
| 22:39:12 | → | texasmynsted joins (~texasmyns@64.44.55.28) |
| 22:39:44 | × | renzhi quits (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 240 seconds) |
| 22:39:50 | → | jneira joins (5127ac76@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.118) |
| 22:40:33 | × | texasmynsted quits (~texasmyns@64.44.55.28) (Read error: Connection reset by peer) |
| 22:42:37 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 22:43:22 | × | son0p quits (~son0p@181.136.122.143) (Remote host closed the connection) |
| 22:47:26 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 22:49:49 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Read error: Connection reset by peer) |
| 22:50:43 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 22:51:13 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 22:51:34 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 22:52:11 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:53:03 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds) |
| 22:54:05 | <jackdk> | I have used These in the past, and said to people "I either have This thing, That thing, or These things" and it doesn't seem too bad |
| 22:55:42 | × | britva quits (~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Quit: This computer has gone to sleep) |
| 22:57:45 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 2.8) |
| 22:58:36 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:59:39 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 23:00:37 | → | reggie39 joins (4953da9f@c-73-83-218-159.hsd1.wa.comcast.net) |
| 23:05:36 | × | reggie39 quits (4953da9f@c-73-83-218-159.hsd1.wa.comcast.net) (Remote host closed the connection) |
| 23:08:26 | × | falafel_ quits (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
| 23:09:17 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:11:04 | × | Guest8524 quits (~AllahuAkb@zrcout.mskcc.org) (Quit: Textual IRC Client: www.textualapp.com) |
| 23:14:16 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 23:14:54 | <monochrom> | I wouldn't object ThisThatThese or ThisOrThatOrBoth |
| 23:15:12 | <monochrom> | "These" alone? Where is "this" and "that" in that? |
| 23:15:37 | <Axman6> | AOrBOrAxB >_> |
| 23:16:07 | → | conal joins (~conal@64.71.133.70) |
| 23:16:11 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 23:16:19 | <Axman6> | also, I feel like These answers thew question of "Which of these do I have? A or B or Both? |
| 23:16:22 | <Axman6> | " |
| 23:17:05 | <monochrom> | You have a data type that has 3 cases, and in all likelihood, all 3 cases have equal probability. And you decide that the name of the whole data type is monopolized by only 33.3% of the cases. This I don't understand. |
| 23:17:33 | × | joehillen quits (~joehillen@unaffiliated/joehillen) (Ping timeout: 260 seconds) |
| 23:17:53 | → | falafel_ joins (~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) |
| 23:17:56 | <monochrom> | It also answers the question of "which of these do I have? A xor B?" |
| 23:17:57 | <Axman6> | nah, it's A x B / (A + B + AxB) of the values though "{ |
| 23:18:13 | <monochrom> | It also answers the question of "which of these do I have? Just A or Nothing?" |
| 23:18:37 | <monochrom> | All of these could have equal claim to the name These. |
| 23:18:56 | <dolio> | The name reminds you that it's the type with the "This, That, These" constructors, and that's good enough, and isn't a huge waste of horizontal space. |
| 23:19:34 | × | leungbk quits (~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 246 seconds) |
| 23:20:01 | → | joehillen joins (~joehillen@unaffiliated/joehillen) |
| 23:20:03 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 23:20:16 | <monochrom> | I would be OK with the contraction "Thiaese". |
| 23:20:16 | <davean> | monochrom: clearly the right name is NonEmptyCan or Can1 |
| 23:21:18 | → | leungbk joins (~user@cpe-104-33-52-83.socal.res.rr.com) |
| 23:21:26 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 23:21:39 | <dolio> | As an added advantage, it teaches people that the name of the type has nothing to do with 'probability' of constructor occurrence. |
| 23:21:55 | <davean> | dolio: Thats a thing to teach? |
| 23:22:00 | <dolio> | Apparently. |
| 23:22:22 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 23:22:39 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
| 23:23:15 | hekkaidekapus | proposes an inclusive Celleux :) |
| 23:23:16 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 23:23:18 | <Axman6> | clearly the These constructor of These's probability approaches 1 as the inhabitants of a and b grow |
| 23:24:32 | <hekkaidekapus> | Bayes again? :p |
| 23:24:50 | → | jedws joins (~jedws@101.184.150.81) |
| 23:28:19 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 246 seconds) |
| 23:28:44 | → | GreeboSnabble joins (45ae8f08@1565318-v106.1628-static.lfytina2.metronetinc.net) |
| 23:28:57 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) |
| 23:29:03 | <GreeboSnabble> | Hi all, quick question: |
| 23:29:20 | → | conal joins (~conal@64.71.133.70) |
| 23:29:24 | <GreeboSnabble> | Has anyone thought of making functions a typeclass? |
| 23:29:52 | <GreeboSnabble> | Lists, Data.Map, regular functions a -> b could all be instances |
| 23:30:05 | <monochrom> | I think that's what C++ did. |
| 23:30:10 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 23:30:13 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) (Client Quit) |
| 23:30:49 | <Axman6> | and Scala does some weird crap like that with its PartialFunction type |
| 23:30:50 | <GreeboSnabble> | Idk, but it seems like function notation would be nicer than (!!) or M.lookup |
| 23:30:51 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 23:31:44 | <dibblego> | scala.PartialFunction is pretty broken, but it is still used today in production systems |
| 23:31:53 | <Axman6> | it sure is -_- |
| 23:32:22 | <monochrom> | I bet it would be type inference really difficult, for both compilers and humans. C++ isn't affected because it has very limited type inference. |
| 23:32:32 | <monochrom> | s/it would be/it would make/ |
| 23:32:54 | <merijn> | monochrom: Also, C++ compiler writers just said "fuck this, you sort it out" :p |
| 23:32:54 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds) |
| 23:33:01 | × | dan64 quits (~dan64@dannyadam.com) (Quit: ZNC - http://znc.in) |
| 23:33:12 | → | texasmynsted joins (~texasmyns@2600:6c40:700:193f:153:816f:d64c:6f7d) |
| 23:33:27 | <merijn> | That's why I have to stupid stuff like calling object methods like "foo.template my_method(bar);" >.> |
| 23:33:51 | → | dan64 joins (~dan64@dannyadam.com) |
| 23:34:09 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 23:34:48 | → | JohnnyL joins (~john@unaffiliated/johnnyl) |
| 23:35:17 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-vutaqggfkdwqzvto) (Quit: Connection closed for inactivity) |
| 23:36:07 | × | jonatanb quits (~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 23:36:16 | <JohnnyL> | What is the mosted complicated Category Theory structure in Haskell? |
| 23:36:37 | <Axman6> | Void |
| 23:36:42 | <monochrom> | Why? |
| 23:36:54 | <dibblego> | 12 |
| 23:37:03 | <merijn> | JohnnyL: Define "in Haskell" |
| 23:37:22 | <JohnnyL> | merijn: Ability to use in Haskell. |
| 23:37:35 | <Axman6> | and complicated? |
| 23:37:37 | <merijn> | I would personally define the set of "category theory structures *in* Haskell" as empty >.> |
| 23:37:45 | <JohnnyL> | So functor would be more compliated than a morphism. |
| 23:37:55 | <JohnnyL> | complicated sorry. |
| 23:37:59 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 23:38:04 | <Axman6> | do we have a lattice of complications? |
| 23:38:06 | <merijn> | But functors are morphisms in the category of categories! >.< |
| 23:38:33 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) |
| 23:38:35 | <dibblego> | I can only imagine complicated to mean, those structures which most programmers look at and proclaim, rightly or wrongly, "that's complicated" |
| 23:38:46 | <JohnnyL> | You can say robust. |
| 23:38:52 | <Axman6> | I'm sure some horologists would like to know the answer to that... |
| 23:39:02 | → | Kaeipi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 23:39:03 | <JohnnyL> | Or the ability to be more detailed without repetition. |
| 23:39:03 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 23:39:32 | <monochrom> | You know what, functors suffer more restrictions than other categories' morphisms, so actually I think functors are simpler, than say, morphisms in Set. |
| 23:39:36 | × | GreeboSnabble quits (45ae8f08@1565318-v106.1628-static.lfytina2.metronetinc.net) (Remote host closed the connection) |
| 23:39:52 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 272 seconds) |
| 23:40:28 | × | goldfire quits (~anonymous@c-76-124-205-20.hsd1.pa.comcast.net) (Quit: goldfire) |
| 23:41:57 | → | lawr3nce joins (~lawr3nce@gateway/tor-sasl/lawr3nce) |
| 23:43:05 | <JohnnyL> | monochrom: A morphism is *any* structure that preserve it's mapping. |
| 23:43:27 | × | kish quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 23:43:34 | <JohnnyL> | Okay. Thank you for playing Jeopardy. |
| 23:43:35 | <JohnnyL> | hahaha. |
| 23:43:52 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:44:38 | → | kish joins (~oracle@unaffiliated/oracle) |
| 23:45:41 | <Axman6> | I'm not really sure what answer you were after with your question |
| 23:46:38 | × | jathan quits (~jathan@69.61.93.38) (Ping timeout: 265 seconds) |
| 23:46:44 | <monochrom> | This is why I asked why. |
| 23:48:43 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) |
| 23:49:04 | <JohnnyL> | Maybe this is a better for question for math since I am asking for what computational Categorical Structure that can be classified in CA exists in Haskell. |
| 23:50:42 | → | elfets_ joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 23:50:43 | <monochrom> | Axman6: Actually, I'm now interested in how horologists come into this. What would some of them be interested in? |
| 23:51:06 | <dolio> | Set (or an analogue) is always the most complicated thing in a way, because it has all of the structure you ever want to talk about, and structure in any other category is defined by reflection from Set. |
| 23:51:38 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 23:52:11 | <JohnnyL> | dolio: Wow, are you way off. |
| 23:53:18 | → | jathan joins (~jathan@69.61.93.38) |
| 23:53:53 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds) |
| 23:55:52 | <monochrom> | No, dolio is right on. |
| 23:56:35 | → | thir joins (~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) |
| 23:56:35 | <monochrom> | Instead, wrong descriptions such as "structure that preserve it's mapping" are the ones that are way off. |
| 23:57:07 | <monochrom> | even after, especially after, auto-correcting "it's" to "its" |
| 23:57:28 | <JohnnyL> | monochrom: Description of what? |
| 23:57:46 | <dibblego> | morphism |
| 23:57:49 | <monochrom> | You forgot what you wrote? Already? |
| 23:57:49 | <JohnnyL> | monochrom: How do you say monochrom is right about set? |
| 23:58:14 | <JohnnyL> | monochrom: Hm,the act of forgetting shouldn't be confused with the ability to scroll up. |
| 23:58:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 23:58:46 | <JohnnyL> | Common, you guys want to say Splunge.. Just say it. SPLUNGE! hahaha. |
| 23:58:54 | ChanServ | sets mode +o monochrom |
| 23:58:59 | monochrom | sets mode +b *!*@unaffiliated/johnnyl |
| 23:58:59 | JohnnyL | is kicked by monochrom (JohnnyL) |
| 23:59:50 | monochrom | sets mode +b-bo $a:JohnnyL *!*@unaffiliated/johnnyl monochrom |
All times are in UTC on 2020-11-09.