2020-10-27 00:04:34 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2020-10-27 00:05:10 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-10-27 00:06:30 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
2020-10-27 00:06:47 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2020-10-27 00:08:00 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) (Read error: Connection reset by peer) |
2020-10-27 00:08:34 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-10-27 00:09:13 +0100 | Katarushisu | (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 264 seconds) |
2020-10-27 00:09:22 +0100 | Katarushisu | (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
2020-10-27 00:10:33 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 265 seconds) |
2020-10-27 00:10:59 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:c9f4:39c8:ab29:a9e1) (Ping timeout: 272 seconds) |
2020-10-27 00:12:26 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
2020-10-27 00:13:37 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 00:14:32 +0100 | jbox | (~atlas@unaffiliated/jbox) |
2020-10-27 00:14:39 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr) |
2020-10-27 00:14:50 +0100 | Katarushisu | (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2020-10-27 00:14:57 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
2020-10-27 00:15:13 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds) |
2020-10-27 00:15:18 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2020-10-27 00:15:23 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 00:15:27 +0100 | mrchampion | (~mrchampio@216-211-57-41.dynamic.tbaytel.net) (Quit: Leaving) |
2020-10-27 00:15:40 +0100 | mbomba | (~mbomba@142.114.9.241) |
2020-10-27 00:16:39 +0100 | christo | (~chris@81.96.113.213) |
2020-10-27 00:17:17 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-117-120.w86-198.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2020-10-27 00:17:36 +0100 | mrchampion | (~mrchampio@216-211-57-41.dynamic.tbaytel.net) |
2020-10-27 00:17:54 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 00:18:25 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2020-10-27 00:18:42 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
2020-10-27 00:19:04 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2020-10-27 00:19:07 +0100 | fendor | (~fendor@078132040188.public.t-mobile.at) (Remote host closed the connection) |
2020-10-27 00:19:40 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2020-10-27 00:21:43 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-27 00:22:22 +0100 | <Raito_Bezarius> | is there a way to compose boolean functions of the form a -> Bool arbitrarly using && and || ? |
2020-10-27 00:22:23 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-10-27 00:22:32 +0100 | <Raito_Bezarius> | (>= 32) && (<= 42) for example |
2020-10-27 00:22:42 +0100 | <Raito_Bezarius> | (which is not valid Haskell) |
2020-10-27 00:22:59 +0100 | <dolio> | liftA2 (&&) |
2020-10-27 00:23:20 +0100 | <Raito_Bezarius> | thanks dolio |
2020-10-27 00:23:20 +0100 | akad | (~akad@109107030050.radomsko.vectranet.pl) (Remote host closed the connection) |
2020-10-27 00:23:57 +0100 | <Raito_Bezarius> | dolio: is there a liftAn generalization? |
2020-10-27 00:24:04 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:4528:7514:3a09:f12e) |
2020-10-27 00:24:18 +0100 | <Raito_Bezarius> | my use case is for 4 functions |
2020-10-27 00:25:41 +0100 | frdg | (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-10-27 00:26:02 +0100 | <Raito_Bezarius> | but I guess I can just do three liftA2 |
2020-10-27 00:27:12 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-10-27 00:27:25 +0100 | <dolio> | Depends what you want. The incremental sort of solution is `f <$> x <*> y <*> z` where `f` is your boolean function, and x,y,z are your tests. |
2020-10-27 00:27:48 +0100 | <dolio> | You could use ApplicativeDo, too. |
2020-10-27 00:29:00 +0100 | darjeeling_ | (~darjeelin@115.215.42.47) (Ping timeout: 256 seconds) |
2020-10-27 00:29:55 +0100 | <Raito_Bezarius> | Okay, I'll check out those, but maybe it's over kill to my usecase and I should just write the explicit function |
2020-10-27 00:31:28 +0100 | darjeeling_ | (~darjeelin@115.215.42.47) |
2020-10-27 00:33:12 +0100 | jonatan_ | (~nate@h77-53-70-163.cust.a3fiber.se) (Read error: Connection reset by peer) |
2020-10-27 00:36:47 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-10-27 00:38:00 +0100 | <motte> | say i have a record like this: data A = Foo String deriving (Show, Read) |
2020-10-27 00:38:04 +0100 | plutoniix | (~q@ppp-27-55-68-183.revip3.asianet.co.th) |
2020-10-27 00:38:10 +0100 | <motte> | doing read "Foo a" :: A fails, read "Foo \"a\"" :: A succeeds. is there a way to avoid the need for these quotes? |
2020-10-27 00:40:59 +0100 | danso | (~dan@69-165-210-185.cable.teksavvy.com) |
2020-10-27 00:41:01 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 00:42:12 +0100 | frdg | (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection) |
2020-10-27 00:43:00 +0100 | mimi1vx | (~mimi@tulipan.habr.nat.praha12.net) (Quit: WeeChat 2.9) |
2020-10-27 00:45:51 +0100 | mceier | (~mceier@89-68-132-187.dynamic.chello.pl) (Remote host closed the connection) |
2020-10-27 00:45:56 +0100 | <Squarism> | motte, would need to reimplement Read for String's |
2020-10-27 00:46:11 +0100 | mceier | (~mceier@89-68-132-187.dynamic.chello.pl) |
2020-10-27 00:46:39 +0100 | <Squarism> | but sounds really cumbersome and how would you deal with space |
2020-10-27 00:54:52 +0100 | acidjnk_new | (~acidjnk@p200300d0c7237822f9c109cfb48a3b3a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 00:55:19 +0100 | cebola | (~cebola@2804:14d:149a:a093:35e4:2df:ca12:a86d) |
2020-10-27 00:56:05 +0100 | <motte> | Squarism: alright, guess i won't bother then, thanks |
2020-10-27 00:58:23 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
2020-10-27 00:58:46 +0100 | z0 | (~z0@bl15-166-165.dsl.telepac.pt) |
2020-10-27 00:59:35 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
2020-10-27 01:00:01 +0100 | unknown1 | (~unknown@195.206.169.184) () |
2020-10-27 01:00:04 +0100 | <fresheyeball> | hey |
2020-10-27 01:00:09 +0100 | <fresheyeball> | I have an api I need to query |
2020-10-27 01:00:20 +0100 | <fresheyeball> | that returns a gzip, and all I care about is the status code |
2020-10-27 01:00:27 +0100 | <fresheyeball> | is this doable with servant client? |
2020-10-27 01:00:43 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-27 01:01:14 +0100 | akad | (~akad@109107030050.radomsko.vectranet.pl) |
2020-10-27 01:02:55 +0100 | xff0x | (~fox@2001:1a81:53e0:c700:623b:a273:9fc7:c0b1) (Ping timeout: 272 seconds) |
2020-10-27 01:03:26 +0100 | xff0x | (~fox@2001:1a81:53e0:c700:bc1e:f03e:962e:40cd) |
2020-10-27 01:07:05 +0100 | darjeeling_ | (~darjeelin@115.215.42.47) (Ping timeout: 240 seconds) |
2020-10-27 01:09:23 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 01:10:38 +0100 | KhoN_2 | (~KhoN@cm-84.208.147.132.getinternet.no) |
2020-10-27 01:10:43 +0100 | darjeeling_ | (~darjeelin@115.215.42.47) |
2020-10-27 01:11:02 +0100 | nuncanada | (~dude@179.235.160.168) (Read error: Connection reset by peer) |
2020-10-27 01:11:02 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-27 01:12:10 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:252e:56ab:ce70:1eed) (Quit: Bye) |
2020-10-27 01:12:22 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) |
2020-10-27 01:13:28 +0100 | falafel_ | (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 246 seconds) |
2020-10-27 01:14:00 +0100 | KhoN_1 | (~KhoN@cm-84.208.147.132.getinternet.no) (Ping timeout: 256 seconds) |
2020-10-27 01:14:08 +0100 | <dsal> | :t foldMap (All .) -- Raito_Bezarius |
2020-10-27 01:14:09 +0100 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> All |
2020-10-27 01:15:47 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
2020-10-27 01:15:54 +0100 | <dsal> | > getAll . foldMap (All .) [even, (>5)] $ 4 |
2020-10-27 01:15:56 +0100 | <lambdabot> | False |
2020-10-27 01:15:57 +0100 | <dsal> | > getAll . foldMap (All .) [even, (>5)] $ 6 |
2020-10-27 01:15:59 +0100 | <lambdabot> | True |
2020-10-27 01:16:25 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds) |
2020-10-27 01:16:43 +0100 | GyroW | (~GyroW@d54c03e98.access.telenet.be) |
2020-10-27 01:16:43 +0100 | GyroW | (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
2020-10-27 01:16:43 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 01:17:01 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) |
2020-10-27 01:17:28 +0100 | <dsal> | > let isEvenAndBigEnough = getAll . foldMap (All .) [even, (>5)] in isEvenAndBigEnough <$> [4..7] |
2020-10-27 01:17:30 +0100 | <lambdabot> | [False,False,True,False] |
2020-10-27 01:19:57 +0100 | Alleria_ | (~AllahuAkb@2604:2000:1484:26:9062:c31d:ffbb:9534) (Ping timeout: 260 seconds) |
2020-10-27 01:20:01 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-10-27 01:20:22 +0100 | nyaomi | (~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) |
2020-10-27 01:20:29 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 01:21:04 +0100 | Alleria_ | (~AllahuAkb@2604:2000:1484:26:6857:8c0f:5834:bc03) |
2020-10-27 01:21:57 +0100 | altoid | (~altoid@154.13.1.56) |
2020-10-27 01:23:11 +0100 | alp | (~alp@2a01:e0a:58b:4920:1c2f:db12:618d:602c) (Ping timeout: 272 seconds) |
2020-10-27 01:24:08 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2020-10-27 01:25:32 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 260 seconds) |
2020-10-27 01:25:37 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 01:27:43 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2020-10-27 01:30:17 +0100 | plutoniix | (~q@ppp-27-55-68-183.revip3.asianet.co.th) (Quit: Leaving) |
2020-10-27 01:35:15 +0100 | atondwal | (~atondwal@ip68-107-107-53.sd.sd.cox.net) |
2020-10-27 01:35:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-10-27 01:37:42 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-10-27 01:39:04 +0100 | hekkaidekapus_ | hekkaidekapus |
2020-10-27 01:39:39 +0100 | <hekkaidekapus> | > sortBy (comparing even <> comparing (> 5)) [4..7] -- dsal, let’s golf :) |
2020-10-27 01:39:40 +0100 | <lambdabot> | [5,7,4,6] |
2020-10-27 01:39:51 +0100 | <hekkaidekapus> | > sortBy (comparing even <> comparing (< 5)) [4..7] |
2020-10-27 01:39:53 +0100 | <lambdabot> | [5,7,6,4] |
2020-10-27 01:40:20 +0100 | <hekkaidekapus> | > sortBy (comparing odd <> comparing (> 5)) [4..7] |
2020-10-27 01:40:21 +0100 | <lambdabot> | [4,6,5,7] |
2020-10-27 01:41:03 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 01:43:40 +0100 | jedws | (~jedws@101.184.148.229) |
2020-10-27 01:44:35 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-10-27 01:45:37 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 01:48:54 +0100 | notnatebtw | (~nate@125.161.130.165) (Ping timeout: 256 seconds) |
2020-10-27 01:50:06 +0100 | <olligobber> | :t even |
2020-10-27 01:50:07 +0100 | <lambdabot> | Integral a => a -> Bool |
2020-10-27 01:50:09 +0100 | acidjnk_new | (~acidjnk@p200300d0c723784541890f3c35543fb8.dip0.t-ipconnect.de) |
2020-10-27 01:50:39 +0100 | <olligobber> | what? |
2020-10-27 01:50:57 +0100 | la-jesystani | (~thorn@158.140.231.126) |
2020-10-27 01:51:08 +0100 | notnatebtw | (~nate@125.161.130.165) |
2020-10-27 01:51:09 +0100 | <hekkaidekapus> | olligobber, what did you expect? |
2020-10-27 01:51:45 +0100 | <olligobber> | I'm just confused by what comparing and <> are doing in your code |
2020-10-27 01:51:59 +0100 | <dsal> | :t comparing |
2020-10-27 01:52:00 +0100 | <lambdabot> | Ord a => (b -> a) -> b -> b -> Ordering |
2020-10-27 01:52:14 +0100 | <olligobber> | oh I see |
2020-10-27 01:52:22 +0100 | <hekkaidekapus> | > sortBy (comparing even <> comparing (>5)) (reverse [1..11]) |
2020-10-27 01:52:24 +0100 | <lambdabot> | [5,3,1,11,9,7,4,2,10,8,6] |
2020-10-27 01:52:31 +0100 | <olligobber> | wait, there's a <> instance for Ord? |
2020-10-27 01:52:31 +0100 | <dsal> | It's a sort thing to take two values and a function to build a shwartzian transform for sorting. |
2020-10-27 01:52:40 +0100 | <dsal> | Yeah, it's super useful. |
2020-10-27 01:52:45 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2020-10-27 01:52:47 +0100 | <olligobber> | *Ordering |
2020-10-27 01:52:55 +0100 | whald | (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b) (Remote host closed the connection) |
2020-10-27 01:52:55 +0100 | whald_ | (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b) |
2020-10-27 01:52:59 +0100 | Lord_of_Life_ | (~Lord@46.217.223.11) |
2020-10-27 01:53:00 +0100 | <dsal> | * Semigroup :) |
2020-10-27 01:53:04 +0100 | <dsal> | > LT <> GT |
2020-10-27 01:53:06 +0100 | <lambdabot> | LT |
2020-10-27 01:53:15 +0100 | <hekkaidekapus> | @where monoids -- olligobber, the monoid instance for functions is a superstar topic around here. |
2020-10-27 01:53:15 +0100 | <lambdabot> | comment on "Monoids? In my programming language?" by Cale in 2008 (or 2009 ?) at <http://www.reddit.com/r/programming/comments/7cf4r/monoids_in_my_programming_language/c06adnx> about a use of ` |
2020-10-27 01:53:15 +0100 | <lambdabot> | instance Monoid a => Monoid (rho -> a)' |
2020-10-27 01:53:38 +0100 | <olligobber> | oh, I know about the monoid instance for functions |
2020-10-27 01:53:46 +0100 | <olligobber> | used it myself when golfing a quine |
2020-10-27 01:54:37 +0100 | <dsal> | > fold [EQ, EQ, LT, GT] |
2020-10-27 01:54:39 +0100 | <lambdabot> | LT |
2020-10-27 01:54:45 +0100 | <dsal> | > fold [EQ, EQ, GT, LT, GT] |
2020-10-27 01:54:46 +0100 | <lambdabot> | GT |
2020-10-27 01:54:53 +0100 | <dsal> | In practice, it does the thing you'd want. |
2020-10-27 01:55:04 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-10-27 01:55:22 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 01:55:22 +0100 | <dsal> | > mempty :: Comparing |
2020-10-27 01:55:25 +0100 | <lambdabot> | error: |
2020-10-27 01:55:25 +0100 | <lambdabot> | Not in scope: type constructor or class ‘Comparing’ |
2020-10-27 01:55:31 +0100 | <olligobber> | it returns the first non-EQ thing? |
2020-10-27 01:55:32 +0100 | <dsal> | > mempty :: Ordering |
2020-10-27 01:55:33 +0100 | <lambdabot> | EQ |
2020-10-27 01:55:37 +0100 | <dsal> | *sigh* But yeah, it's a monoid as well. |
2020-10-27 01:55:40 +0100 | <dsal> | Yeah. |
2020-10-27 01:56:47 +0100 | <olligobber> | I still haven't used comparing enough to figure this code out |
2020-10-27 01:57:01 +0100 | <olligobber> | I'm starting to get it though |
2020-10-27 01:57:07 +0100 | <MarcelineVQ> | :t comparing even |
2020-10-27 01:57:08 +0100 | <lambdabot> | Integral a => a -> a -> Ordering |
2020-10-27 01:57:23 +0100 | <olligobber> | ok, I think I get it now |
2020-10-27 01:57:41 +0100 | <dsal> | The question Raito_Bezarius had was about combining `a -> Bool` functions, which means you have to ask what it means to combine bools. So there are two different monoids. |
2020-10-27 01:57:42 +0100 | mbomba | (~mbomba@142.114.9.241) (Ping timeout: 260 seconds) |
2020-10-27 01:58:04 +0100 | <dsal> | even is a weird way to compare numbers. |
2020-10-27 01:58:44 +0100 | <dsal> | > comparing length "a long string" "x" |
2020-10-27 01:58:46 +0100 | <lambdabot> | GT |
2020-10-27 01:58:54 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2020-10-27 02:01:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 02:04:08 +0100 | <la-jesystani> | howdy, has anyone here built a program using nix flakes? id be really interested to hear about it |
2020-10-27 02:06:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-10-27 02:06:42 +0100 | hexfive | (~hexfive@50.35.90.193) |
2020-10-27 02:06:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-10-27 02:09:10 +0100 | servo | (~servo@41.92.79.35) |
2020-10-27 02:09:19 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) |
2020-10-27 02:10:42 +0100 | <servo> | HELLO ALL MEMEBERS |
2020-10-27 02:11:18 +0100 | <hekkaidekapus> | Hi, servo. |
2020-10-27 02:11:44 +0100 | <servo> | what type of work her ? plz |
2020-10-27 02:12:44 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 02:13:04 +0100 | <hekkaidekapus> | servo, please ask a Haskell-related question? |
2020-10-27 02:13:20 +0100 | jespada | (~jespada@90.254.243.98) (Ping timeout: 272 seconds) |
2020-10-27 02:15:06 +0100 | <hekkaidekapus> | dsal | “even is a weird way to compare numbers.” What else to use when comparing numbers without even being odd? |
2020-10-27 02:17:01 +0100 | jespada | (~jespada@90.254.243.98) |
2020-10-27 02:18:37 +0100 | m0rphism | (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds) |
2020-10-27 02:19:55 +0100 | hexfive | (~hexfive@50.35.90.193) (Quit: i must go. my people need me.) |
2020-10-27 02:20:02 +0100 | acidjnk_new | (~acidjnk@p200300d0c723784541890f3c35543fb8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 02:20:03 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2020-10-27 02:23:28 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds) |
2020-10-27 02:24:26 +0100 | akad | (~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 265 seconds) |
2020-10-27 02:24:49 +0100 | darjeeling_ | (~darjeelin@115.215.42.47) (Ping timeout: 256 seconds) |
2020-10-27 02:26:09 +0100 | darjeeling_ | (~darjeelin@115.215.42.47) |
2020-10-27 02:27:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-10-27 02:33:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 02:36:16 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-10-27 02:36:34 +0100 | tito_04 | (~taurux@net-93-146-109-245.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2020-10-27 02:38:19 +0100 | taurux | (~taurux@net-188-152-14-58.cust.vodafonedsl.it) |
2020-10-27 02:39:29 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 02:41:40 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds) |
2020-10-27 02:47:11 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) |
2020-10-27 02:47:57 +0100 | hackage | reanimate 1.1.2.0 - Animation library based on SVGs. https://hackage.haskell.org/package/reanimate-1.1.2.0 (DavidHimmelstrup) |
2020-10-27 02:54:50 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) (Quit: oisdk) |
2020-10-27 02:57:41 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 02:58:30 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 03:00:37 +0100 | solonarv | (~solonarv@astrasbourg-552-1-23-6.w90-13.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2020-10-27 03:01:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 03:01:54 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 03:02:38 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-10-27 03:03:50 +0100 | nuncanada | (~dude@179.235.160.168) (Quit: Leaving) |
2020-10-27 03:06:15 +0100 | <simon> | dsal, isn't xor a third candidate? |
2020-10-27 03:06:43 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-10-27 03:08:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-10-27 03:13:47 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2020-10-27 03:16:01 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-10-27 03:16:38 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-10-27 03:17:13 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2020-10-27 03:19:04 +0100 | firstlove | (~firstlove@58.246.122.242) (Remote host closed the connection) |
2020-10-27 03:20:10 +0100 | firstlove | (~firstlove@58.246.122.242) |
2020-10-27 03:22:37 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-lyptkrhyywcfcsfh) (Quit: Connection closed for inactivity) |
2020-10-27 03:23:48 +0100 | notnatebtw | (~nate@125.161.130.165) (Quit: WeeChat 2.9) |
2020-10-27 03:25:49 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 03:27:11 +0100 | cebola | (~cebola@2804:14d:149a:a093:35e4:2df:ca12:a86d) () |
2020-10-27 03:29:18 +0100 | toorevitimirp | (~tooreviti@117.182.180.36) |
2020-10-27 03:29:36 +0100 | mud | (~mud@unaffiliated/kadoban) |
2020-10-27 03:29:48 +0100 | <dsal> | simon: not sure how that would work, but give it a shot! :) |
2020-10-27 03:33:07 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds) |
2020-10-27 03:33:20 +0100 | <koz_> | dsal: Bool is a monoid under xor and False. |
2020-10-27 03:33:37 +0100 | <koz_> | s/False/True/ argh |
2020-10-27 03:33:49 +0100 | <koz_> | Nope it was False, lol. |
2020-10-27 03:33:52 +0100 | <koz_> | I always get this wrong. |
2020-10-27 03:36:18 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 03:36:24 +0100 | <dsal> | You mean mempty is true? Where is this defined? |
2020-10-27 03:36:51 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 03:37:20 +0100 | AndresFutur | (~androirc@190.18.144.100) |
2020-10-27 03:37:39 +0100 | AndresFutur | (~androirc@190.18.144.100) () |
2020-10-27 03:39:03 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 03:39:42 +0100 | djellemah | (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds) |
2020-10-27 03:40:04 +0100 | lucasb | (uid333435@gateway/web/irccloud.com/x-uadkacgdennrevsw) (Quit: Connection closed for inactivity) |
2020-10-27 03:40:30 +0100 | xff0x | (~fox@2001:1a81:53e0:c700:bc1e:f03e:962e:40cd) (Remote host closed the connection) |
2020-10-27 03:40:38 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 03:40:50 +0100 | xff0x | (~fox@2001:1a81:53e0:c700:5271:1170:9270:a56e) |
2020-10-27 03:40:55 +0100 | <koz_> | dsal: Nowhere presently. |
2020-10-27 03:41:12 +0100 | <koz_> | I did send a thing to the libraries ML a while ago for newtypes to this effect, but it attracted zero attention. |
2020-10-27 03:41:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 03:41:30 +0100 | <koz_> | (and it's False for xor) |
2020-10-27 03:41:56 +0100 | <koz_> | Because False `xor` False = False (because they're the same) and False `xor` True = True (because they're different). |
2020-10-27 03:42:32 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 03:44:01 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds) |
2020-10-27 03:45:08 +0100 | servo | (~servo@41.92.79.35) (Ping timeout: 256 seconds) |
2020-10-27 03:46:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-10-27 03:47:17 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 03:49:03 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-10-27 03:49:03 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-10-27 03:49:03 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-10-27 03:53:28 +0100 | drbean | (~drbean@TC210-63-209-87.static.apol.com.tw) |
2020-10-27 03:53:28 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 03:54:56 +0100 | <int-e> | > let xor = (/=) in xor <$> [False,True] <*> [False,True] |
2020-10-27 03:54:58 +0100 | <lambdabot> | [False,True,True,False] |
2020-10-27 03:57:15 +0100 | efficiently | (~user@209.58.189.165) |
2020-10-27 03:57:54 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 03:58:54 +0100 | entropyga1n | (levitate@unaffiliated/entropygain) (Remote host closed the connection) |
2020-10-27 03:59:43 +0100 | SeMas | (uid32977@gateway/web/irccloud.com/x-rjkgugwtutnfvjwx) |
2020-10-27 04:00:02 +0100 | altoid | (~altoid@154.13.1.56) () |
2020-10-27 04:00:07 +0100 | xff0x | (~fox@2001:1a81:53e0:c700:5271:1170:9270:a56e) (Ping timeout: 260 seconds) |
2020-10-27 04:00:39 +0100 | entropygain | (levitate@unaffiliated/entropygain) |
2020-10-27 04:02:09 +0100 | xff0x | (~fox@2001:1a81:5219:2300:4b1c:219b:a3ac:1af9) |
2020-10-27 04:02:15 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 04:05:37 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 264 seconds) |
2020-10-27 04:06:02 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-27 04:11:00 +0100 | _Marcos | (2db67ff5@45.182.127.245) |
2020-10-27 04:11:10 +0100 | la-jesystani | (~thorn@158.140.231.126) (Ping timeout: 260 seconds) |
2020-10-27 04:11:16 +0100 | _Marcos | (2db67ff5@45.182.127.245) () |
2020-10-27 04:11:39 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:4528:7514:3a09:f12e) (Ping timeout: 272 seconds) |
2020-10-27 04:12:37 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:146b:c489:8b41:e2cb) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 04:13:56 +0100 | lagothrix | Guest43873 |
2020-10-27 04:13:56 +0100 | Guest43873 | (~lagothrix@unaffiliated/lagothrix) (Killed (rothfuss.freenode.net (Nickname regained by services))) |
2020-10-27 04:14:04 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-10-27 04:14:45 +0100 | Rudd0 | (~Rudd0@185.189.115.98) (Ping timeout: 240 seconds) |
2020-10-27 04:15:13 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) (Ping timeout: 264 seconds) |
2020-10-27 04:15:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 04:15:58 +0100 | acidjnk_new | (~acidjnk@p200300d0c7237845edac044e40ff5816.dip0.t-ipconnect.de) |
2020-10-27 04:20:13 +0100 | justHaunted | (~justache@unaffiliated/justache) (Ping timeout: 260 seconds) |
2020-10-27 04:23:46 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 04:23:56 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:6142:ab79:42d1:afc1) |
2020-10-27 04:30:20 +0100 | drbean | (~drbean@TC210-63-209-87.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
2020-10-27 04:32:31 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-10-27 04:34:14 +0100 | theDon | (~td@94.134.91.49) (Ping timeout: 258 seconds) |
2020-10-27 04:36:04 +0100 | theDon | (~td@muedsl-82-207-238-193.citykom.de) |
2020-10-27 04:36:48 +0100 | justHaunted | (~justache@unaffiliated/justache) |
2020-10-27 04:36:51 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds) |
2020-10-27 04:37:22 +0100 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-27 04:37:22 +0100 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-27 04:37:22 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 04:39:28 +0100 | justHaunted | (~justache@unaffiliated/justache) () |
2020-10-27 04:39:37 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 04:39:58 +0100 | drbean | (~drbean@TC210-63-209-18.static.apol.com.tw) |
2020-10-27 04:41:05 +0100 | falafel_ | (~falafel@71-34-132-121.clsp.qwest.net) |
2020-10-27 04:42:32 +0100 | andi- | (~andi-@NixOS/user/andi-) (Remote host closed the connection) |
2020-10-27 04:45:02 +0100 | ddellacosta | (~dd@86.106.121.168) (Ping timeout: 260 seconds) |
2020-10-27 04:47:01 +0100 | andi- | (~andi-@NixOS/user/andi-) |
2020-10-27 04:49:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-10-27 04:53:39 +0100 | falafel_ | (~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection) |
2020-10-27 04:54:16 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Read error: Connection reset by peer) |
2020-10-27 04:55:40 +0100 | falafel | (~falafel@71-34-132-121.clsp.qwest.net) |
2020-10-27 04:56:01 +0100 | nkly | (~nkly@ip5b405665.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2020-10-27 04:56:28 +0100 | nkly | (~nkly@ip5b405665.dynamic.kabel-deutschland.de) |
2020-10-27 04:56:39 +0100 | superfly1 | (~superfly@s91904426.blix.com) |
2020-10-27 04:57:09 +0100 | falafel | (~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection) |
2020-10-27 04:58:00 +0100 | avoandmayo | (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
2020-10-27 04:58:29 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 04:59:27 +0100 | hackage | vulkan 3.6.11 - Bindings to the Vulkan graphics API. https://hackage.haskell.org/package/vulkan-3.6.11 (jophish) |
2020-10-27 05:00:32 +0100 | Rudd0 | (~Rudd0@185.189.115.98) |
2020-10-27 05:01:04 +0100 | nkly | (~nkly@ip5b405665.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds) |
2020-10-27 05:02:58 +0100 | nkly | (~nkly@ip5b405665.dynamic.kabel-deutschland.de) |
2020-10-27 05:03:17 +0100 | z0_ | (~z0@bl15-160-182.dsl.telepac.pt) |
2020-10-27 05:04:17 +0100 | Nik05 | (~Nik05@unaffiliated/nik05) (Read error: Connection reset by peer) |
2020-10-27 05:04:36 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 05:06:18 +0100 | z0 | (~z0@bl15-166-165.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2020-10-27 05:07:10 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2020-10-27 05:07:25 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 264 seconds) |
2020-10-27 05:12:16 +0100 | christo | (~chris@81.96.113.213) |
2020-10-27 05:14:29 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
2020-10-27 05:14:38 +0100 | taurux | (~taurux@net-188-152-14-58.cust.vodafonedsl.it) (Ping timeout: 260 seconds) |
2020-10-27 05:15:00 +0100 | taurux | (~taurux@net-93-151-203-8.cust.dsl.teletu.it) |
2020-10-27 05:17:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 05:22:23 +0100 | __skn- | __skn |
2020-10-27 05:23:01 +0100 | ensyde | (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
2020-10-27 05:23:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-10-27 05:24:49 +0100 | johnw | (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in) |
2020-10-27 05:27:17 +0100 | acidjnk_new | (~acidjnk@p200300d0c7237845edac044e40ff5816.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 05:32:45 +0100 | nkly | (~nkly@ip5b405665.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2020-10-27 05:36:03 +0100 | plutoniix | (~q@175.176.222.7) |
2020-10-27 05:39:01 +0100 | nkly | (~nkly@2a02:8109:9ac0:4a4c::baa2) |
2020-10-27 05:39:57 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 05:44:38 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
2020-10-27 05:46:18 +0100 | xiinotulp | (~q@175.176.222.7) |
2020-10-27 05:46:52 +0100 | xiinotulp | (~q@175.176.222.7) (Read error: Connection reset by peer) |
2020-10-27 05:48:31 +0100 | drbean | (~drbean@TC210-63-209-18.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
2020-10-27 05:50:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 05:52:58 +0100 | tito_04 | (~taurux@net-93-151-203-8.cust.dsl.teletu.it) |
2020-10-27 05:53:43 +0100 | taurux | (~taurux@net-93-151-203-8.cust.dsl.teletu.it) (Ping timeout: 265 seconds) |
2020-10-27 05:54:16 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2020-10-27 05:57:32 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.241.90) |
2020-10-27 06:02:17 +0100 | servo | (~servo@41.92.79.35) |
2020-10-27 06:02:20 +0100 | servo | (~servo@41.92.79.35) (Remote host closed the connection) |
2020-10-27 06:02:26 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-10-27 06:08:11 +0100 | Amras | (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
2020-10-27 06:08:32 +0100 | ensyde | (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds) |
2020-10-27 06:14:25 +0100 | jchia__ | (~jchia@58.32.37.146) (Ping timeout: 240 seconds) |
2020-10-27 06:15:35 +0100 | xerox_ | (~xerox@unaffiliated/xerox) |
2020-10-27 06:20:25 +0100 | danso | (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
2020-10-27 06:20:36 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-10-27 06:22:08 +0100 | dansho | (~dansho@ip68-108-167-185.lv.lv.cox.net) |
2020-10-27 06:22:21 +0100 | drbean | (~drbean@TC210-63-209-17.static.apol.com.tw) |
2020-10-27 06:23:16 +0100 | drbean | (~drbean@TC210-63-209-17.static.apol.com.tw) (Client Quit) |
2020-10-27 06:24:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-10-27 06:24:50 +0100 | day_ | (~Unknown@unaffiliated/day) |
2020-10-27 06:28:34 +0100 | day | (~Unknown@unaffiliated/day) (Ping timeout: 272 seconds) |
2020-10-27 06:28:34 +0100 | day_ | day |
2020-10-27 06:35:38 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 06:38:14 +0100 | alexelcu | (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-10-27 06:38:37 +0100 | alexelcu | (~alexelcu@142.93.180.198) |
2020-10-27 06:40:48 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-10-27 06:44:15 +0100 | bgamari | (~bgamari@72.65.102.81) (Ping timeout: 260 seconds) |
2020-10-27 06:44:34 +0100 | avoandmayo | (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 06:44:44 +0100 | bgamari | (~bgamari@2001:470:e438::1) |
2020-10-27 06:44:55 +0100 | TooDifficult | (~TooDiffic@139.59.59.230) (Ping timeout: 256 seconds) |
2020-10-27 06:45:38 +0100 | Sanchayan | (~Sanchayan@106.201.124.173) |
2020-10-27 06:47:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-10-27 06:48:47 +0100 | idhugo | (~idhugo@563472ae.rev.stofanet.dk) |
2020-10-27 06:49:44 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) |
2020-10-27 06:50:22 +0100 | mbomba | (~mbomba@142.114.9.241) |
2020-10-27 06:52:25 +0100 | mbomba | (~mbomba@142.114.9.241) (Quit: WeeChat 2.9) |
2020-10-27 06:53:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 06:57:07 +0100 | avoandmayo | (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
2020-10-27 06:58:24 +0100 | Tops22 | (~Tobias@dyndsl-095-033-095-051.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2020-10-27 06:58:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-10-27 06:59:31 +0100 | bartemius | (~bartemius@109.252.20.20) |
2020-10-27 07:00:02 +0100 | superfly1 | (~superfly@s91904426.blix.com) () |
2020-10-27 07:00:30 +0100 | lpy | (~nyd@unaffiliated/elysian) |
2020-10-27 07:01:57 +0100 | TooDifficult | (~TooDiffic@139.59.59.230) |
2020-10-27 07:03:37 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-10-27 07:15:49 +0100 | idhugo | (~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 264 seconds) |
2020-10-27 07:17:10 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) |
2020-10-27 07:17:16 +0100 | tuple | (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
2020-10-27 07:17:35 +0100 | tuple | (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
2020-10-27 07:21:12 +0100 | GsC_RuL3Z | (~GsC_RuL3Z@s91904426.blix.com) |
2020-10-27 07:21:41 +0100 | TooDifficult | (~TooDiffic@139.59.59.230) (Quit: TooDifficult) |
2020-10-27 07:21:58 +0100 | TooDifficult | (~TooDiffic@139.59.59.230) |
2020-10-27 07:23:15 +0100 | DTZUZU | (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) (Read error: Connection reset by peer) |
2020-10-27 07:25:08 +0100 | TooDifficult | (~TooDiffic@139.59.59.230) (Client Quit) |
2020-10-27 07:25:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 07:26:23 +0100 | plutoniix | (~q@175.176.222.7) (Quit: Leaving) |
2020-10-27 07:35:59 +0100 | johnw | (~johnw@haskell/developer/johnw) |
2020-10-27 07:38:58 +0100 | hackage | telegram-bot-simple 0.3.3 - Easy to use library for building Telegram bots. https://hackage.haskell.org/package/telegram-bot-simple-0.3.3 (swamp_agr) |
2020-10-27 07:40:56 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 07:41:22 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-10-27 07:41:26 +0100 | lxsameer | (lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 256 seconds) |
2020-10-27 07:43:58 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 07:46:47 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-10-27 07:47:14 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2020-10-27 07:48:27 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 07:50:48 +0100 | tuple | (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) |
2020-10-27 07:51:36 +0100 | tuple | (~igloo@c-67-169-78-228.hsd1.ca.comcast.net) (Client Quit) |
2020-10-27 07:54:18 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 07:57:38 +0100 | alp | (~alp@2a01:e0a:58b:4920:487d:f3bf:e4da:7752) |
2020-10-27 07:58:06 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de) |
2020-10-27 07:58:12 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-10-27 07:59:17 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) (Ping timeout: 260 seconds) |
2020-10-27 07:59:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-10-27 08:06:13 +0100 | asheshambasta | (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) |
2020-10-27 08:07:30 +0100 | MikeD | (ad5822ca@cpe-173-88-34-202.columbus.res.rr.com) (Remote host closed the connection) |
2020-10-27 08:09:45 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) (Ping timeout: 240 seconds) |
2020-10-27 08:10:10 +0100 | mmohammadi9812 | (~mmohammad@5.115.65.59) |
2020-10-27 08:10:18 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-10-27 08:12:49 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
2020-10-27 08:16:48 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-10-27 08:18:01 +0100 | xsperry | (~as@unaffiliated/xsperry) (Ping timeout: 246 seconds) |
2020-10-27 08:18:59 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 08:21:47 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
2020-10-27 08:22:28 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-10-27 08:22:48 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-10-27 08:25:49 +0100 | sfvm | (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine) |
2020-10-27 08:26:19 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Client Quit) |
2020-10-27 08:26:27 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2020-10-27 08:26:37 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Ping timeout: 264 seconds) |
2020-10-27 08:29:21 +0100 | atondwal | (~atondwal@ip68-107-107-53.sd.sd.cox.net) (Quit: Leaving.) |
2020-10-27 08:30:47 +0100 | perry69420 | (6ee39f85@110.227.159.133) |
2020-10-27 08:30:50 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-10-27 08:31:50 +0100 | idhugo | (~idhugo@users-1190.st.net.au.dk) |
2020-10-27 08:35:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 08:36:01 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-10-27 08:36:31 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 08:39:24 +0100 | avoandmayo | (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Read error: Connection reset by peer) |
2020-10-27 08:40:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-10-27 08:41:05 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds) |
2020-10-27 08:44:48 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2020-10-27 08:44:51 +0100 | jedws | (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 08:48:11 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-10-27 08:48:52 +0100 | hiroaki | (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2020-10-27 08:53:12 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-10-27 08:53:19 +0100 | mirrorbird | (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
2020-10-27 08:53:19 +0100 | DTZUZU | (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) |
2020-10-27 08:56:03 +0100 | mmohammadi9812 | (~mmohammad@5.115.65.59) (Ping timeout: 258 seconds) |
2020-10-27 08:56:29 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) |
2020-10-27 08:57:13 +0100 | xsperry | (~as@unaffiliated/xsperry) (Remote host closed the connection) |
2020-10-27 08:57:27 +0100 | hackage | ukrainian-phonetics-basic 0.1.5.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.5.0 (OleksandrZhabenko) |
2020-10-27 08:58:28 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds) |
2020-10-27 08:59:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-10-27 09:01:31 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) |
2020-10-27 09:02:07 +0100 | jedws | (~jedws@101.184.148.229) |
2020-10-27 09:03:12 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
2020-10-27 09:06:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 09:06:38 +0100 | SeMas | (uid32977@gateway/web/irccloud.com/x-rjkgugwtutnfvjwx) (Quit: Connection closed for inactivity) |
2020-10-27 09:07:44 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-10-27 09:07:58 +0100 | hackage | stack-clean-old 0.2 - Clean away old stack build artefacts https://hackage.haskell.org/package/stack-clean-old-0.2 (JensPetersen) |
2020-10-27 09:08:39 +0100 | Franciman | (~francesco@host-82-54-10-114.retail.telecomitalia.it) |
2020-10-27 09:09:07 +0100 | jedws | (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 09:09:35 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2020-10-27 09:10:01 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 09:12:05 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-10-27 09:12:32 +0100 | MindlessDrone | (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 258 seconds) |
2020-10-27 09:13:01 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-27 09:13:16 +0100 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-27 09:13:16 +0100 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-27 09:13:16 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 09:14:40 +0100 | jedws | (~jedws@101.184.148.229) |
2020-10-27 09:14:59 +0100 | christo | (~chris@81.96.113.213) |
2020-10-27 09:15:02 +0100 | jedws | (~jedws@101.184.148.229) (Client Quit) |
2020-10-27 09:16:32 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:6142:ab79:42d1:afc1) (Ping timeout: 260 seconds) |
2020-10-27 09:16:56 +0100 | MindlessDrone | (~MindlessD@unaffiliated/mindlessdrone) |
2020-10-27 09:18:01 +0100 | vodkaInf1rno | (~wormphleg@104.131.156.184) |
2020-10-27 09:18:14 +0100 | vodkaInferno | (~wormphleg@104.131.156.184) (Read error: Connection reset by peer) |
2020-10-27 09:18:38 +0100 | styledash | (~styledash@157.230.173.136) (Read error: Connection reset by peer) |
2020-10-27 09:18:46 +0100 | styledash7 | (~styledash@157.230.173.136) |
2020-10-27 09:19:11 +0100 | beka | (~beka@gothdyke.mom) (Ping timeout: 260 seconds) |
2020-10-27 09:19:28 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
2020-10-27 09:19:49 +0100 | beka | (~beka@gothdyke.mom) |
2020-10-27 09:19:50 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 09:20:24 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-10-27 09:20:59 +0100 | tuple | (~igloo@66.115.157.106) |
2020-10-27 09:21:58 +0100 | SanchayanM | (~Sanchayan@122.167.95.166) |
2020-10-27 09:23:05 +0100 | Sanchayan | (~Sanchayan@106.201.124.173) (Ping timeout: 240 seconds) |
2020-10-27 09:24:15 +0100 | tuple | (~igloo@66.115.157.106) (Client Quit) |
2020-10-27 09:24:30 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-27 09:28:41 +0100 | tuple | (~igloo@66.115.157.106) |
2020-10-27 09:28:57 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:198:130b:ef87:cdda) |
2020-10-27 09:32:00 +0100 | tuple | (~igloo@66.115.157.106) (Client Quit) |
2020-10-27 09:33:12 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2020-10-27 09:37:07 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-10-27 09:40:32 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 09:45:07 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Ping timeout: 256 seconds) |
2020-10-27 09:49:14 +0100 | Lord_of_Life_ | Lord_of_Life |
2020-10-27 09:50:23 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
2020-10-27 09:50:26 +0100 | knupfer | (~Thunderbi@200116b82cb7c400f4108508b0e1b154.dip.versatel-1u1.de) |
2020-10-27 09:53:05 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-slcbmpdbycbqjlou) (Quit: Connection closed for inactivity) |
2020-10-27 09:55:33 +0100 | alp | (~alp@2a01:e0a:58b:4920:487d:f3bf:e4da:7752) (Ping timeout: 272 seconds) |
2020-10-27 09:55:42 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2020-10-27 09:57:15 +0100 | alp | (~alp@2a01:e0a:58b:4920:d873:f5b:1d39:8a1c) |
2020-10-27 09:59:05 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.241.90) (Ping timeout: 240 seconds) |
2020-10-27 09:59:37 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-10-27 10:00:01 +0100 | GsC_RuL3Z | (~GsC_RuL3Z@s91904426.blix.com) () |
2020-10-27 10:02:06 +0100 | jedws | (~jedws@101.184.148.229) |
2020-10-27 10:05:57 +0100 | hackage | lorentz 0.7.0 - EDSL for the Michelson Language https://hackage.haskell.org/package/lorentz-0.7.0 (gromak) |
2020-10-27 10:06:58 +0100 | hackage | hie-compat 0.1.0.0 - HIE files for GHC 8.6 and other HIE file backports https://hackage.haskell.org/package/hie-compat-0.1.0.0 (wz1000) |
2020-10-27 10:08:58 +0100 | <gentauro> | with PRAGMAs like: `{-# Language DerivingVia #-}` taken from https://old.reddit.com/r/haskell/comments/jibgfe/validpreorder_ord_aa_bool/ga5jalm/ will that not make it more complicated for newcomers to understand how to code in Haskell? |
2020-10-27 10:10:15 +0100 | <gentauro> | and would such a PRAGMA be part of the GHC20xx (global) PRAGMA? https://github.com/ghc-proposals/ghc-proposals/pull/372 |
2020-10-27 10:13:51 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2020-10-27 10:15:52 +0100 | lxsameer | (~lxsameer@unaffiliated/lxsameer) |
2020-10-27 10:20:44 +0100 | smtx | (~smtx@185.244.214.217) |
2020-10-27 10:21:06 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2020-10-27 10:21:52 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds) |
2020-10-27 10:22:12 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2020-10-27 10:23:30 +0100 | jedws | (~jedws@101.184.148.229) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 10:23:43 +0100 | vcxvxvxcvcx | (57cf5f18@87-207-95-24.dynamic.chello.pl) |
2020-10-27 10:24:06 +0100 | vcxvxvxcvcx | (57cf5f18@87-207-95-24.dynamic.chello.pl) () |
2020-10-27 10:24:29 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
2020-10-27 10:24:51 +0100 | fendor | (~fendor@078132040188.public.t-mobile.at) |
2020-10-27 10:26:43 +0100 | bartemius | (~bartemius@109.252.20.20) (Remote host closed the connection) |
2020-10-27 10:29:14 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 272 seconds) |
2020-10-27 10:32:35 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) |
2020-10-27 10:37:24 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 10:38:10 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.241.90) |
2020-10-27 10:42:08 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
2020-10-27 10:46:21 +0100 | rinwa | (~rinwa@5.102.238.236) |
2020-10-27 10:48:40 +0100 | dansho | (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
2020-10-27 10:48:46 +0100 | Katarushisu | (~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) |
2020-10-27 10:49:11 +0100 | siggard | (michalc@gateway/shell/xshellz/x-bewvahwmjpoxlmze) |
2020-10-27 10:49:23 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) |
2020-10-27 10:52:12 +0100 | <siggard> | Hello. I come to you from iOS dev world and started studing Haskell with book "Learn You a Haskell for Great Good!". Before that I played a bit with Scala and did that basic Scala course by Martin Odersky. |
2020-10-27 10:52:51 +0100 | <siggard> | There is no slack channel nor gitter for Haskell community, isn't it? :-) |
2020-10-27 10:53:15 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 10:53:42 +0100 | xff0x | (~fox@2001:1a81:5219:2300:4b1c:219b:a3ac:1af9) (Ping timeout: 260 seconds) |
2020-10-27 10:54:18 +0100 | xff0x | (~fox@2001:1a81:5219:2300:9ba4:4fa:1a33:4ccd) |
2020-10-27 10:54:41 +0100 | <merijn> | I'm sure someone has made something like that at some point |
2020-10-27 10:55:00 +0100 | <merijn> | tbh, LYAH isn't a particularly great book |
2020-10-27 10:55:35 +0100 | <Zetagon> | there is a functional programming zulip |
2020-10-27 10:55:39 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-10-27 10:57:14 +0100 | <siggard> | merijn: What would you recommen for someone who has programmed in object oriented environment for last 10 years? :-) |
2020-10-27 10:58:22 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 272 seconds) |
2020-10-27 10:58:36 +0100 | <Cale> | siggard: I often recommend "Programming in Haskell" by Graham Hutton as a good intro. |
2020-10-27 10:58:36 +0100 | <merijn> | There's "Programming in Haskell" by Graham Hutton, "Thinking Functionally with Haskell" by Richard Bird and of course https://haskellbook.com/ |
2020-10-27 10:59:04 +0100 | <merijn> | siggard: The problem with LYAH is: It's not greatly structured, glosses over some details, and has no exercises (and kinda dated) |
2020-10-27 10:59:18 +0100 | <Rembane> | It has cute images though |
2020-10-27 10:59:26 +0100 | <merijn> | So the end result is that LYAH is great at "showing you cool things", but not so great in preparing you to "write actual code that does something" |
2020-10-27 10:59:50 +0100 | <merijn> | LYAH is importance/relevance is mostly historical |
2020-10-27 11:00:05 +0100 | <merijn> | In that it came out when there wasn't that much written about Haskell that was accessible |
2020-10-27 11:00:21 +0100 | <Zetagon> | I like https://www.seas.upenn.edu/~cis194/spring13/lectures.html . I'm not sure how good the introduction is because I didn't read it, but I like the last few parts |
2020-10-27 11:00:42 +0100 | <merijn> | And helped start (well, fuel, maybe?) the semi-mainstream popularity of Haskell |
2020-10-27 11:01:26 +0100 | <merijn> | I remember it coming out and the only other text I could find was the infamous tutorial :p |
2020-10-27 11:01:39 +0100 | <merijn> | @quote Brend whoever.named |
2020-10-27 11:01:39 +0100 | <lambdabot> | No quotes match. Are you on drugs? |
2020-10-27 11:01:41 +0100 | <merijn> | aww |
2020-10-27 11:01:51 +0100 | efficiently | (~user@209.58.189.165) (Ping timeout: 260 seconds) |
2020-10-27 11:02:02 +0100 | <merijn> | @quote Brend |
2020-10-27 11:02:02 +0100 | <lambdabot> | Brend says: Whoever chose the title "A Gentle Introduction to Haskell" is obviously accustomed to wrestling bears in piranha pits or something. |
2020-10-27 11:04:09 +0100 | m0rphism | (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
2020-10-27 11:04:14 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-10-27 11:05:05 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds) |
2020-10-27 11:05:18 +0100 | jbox | (~atlas@unaffiliated/jbox) (Quit: WeeChat 2.9) |
2020-10-27 11:05:41 +0100 | akegalj | (~akegalj@93-142-98-67.adsl.net.t-com.hr) |
2020-10-27 11:06:33 +0100 | <siggard> | Thanks people. I will take a look on your recommendations. :-) Zetagon thanks, it looks like this course is from 2013 but there are homeworks so maybe it'll be easier to follow. Thanks! |
2020-10-27 11:06:56 +0100 | <siggard> | merijn: "infamous tutorial"? ;-) |
2020-10-27 11:07:11 +0100 | <Zetagon> | siggard: I particularily like the functor homeworks |
2020-10-27 11:09:10 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-27 11:09:20 +0100 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-27 11:09:20 +0100 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-27 11:09:20 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 11:11:06 +0100 | <siggard> | Cale: looks like i have that Haskell Book in my emoyer's library. But it's in PDF only which makes it hard to read on Kindle. :D |
2020-10-27 11:11:19 +0100 | <siggard> | But you think it's worth it, right? |
2020-10-27 11:12:42 +0100 | <merijn> | siggard: See the above quote :p |
2020-10-27 11:13:01 +0100 | <merijn> | siggard: There's an e-reader PDF version too, iirc |
2020-10-27 11:14:47 +0100 | bliminse | (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Quit: leaving) |
2020-10-27 11:15:17 +0100 | aarvar | (~foewfoiew@50.35.43.33) (Ping timeout: 260 seconds) |
2020-10-27 11:16:40 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2020-10-27 11:17:16 +0100 | bliminse | (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) |
2020-10-27 11:20:21 +0100 | bartemius | (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
2020-10-27 11:21:30 +0100 | bliminse | (~bliminse@host109-158-26-29.range109-158.btcentralplus.com) (Client Quit) |
2020-10-27 11:21:41 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 11:22:52 +0100 | <ulidtko> | does Cabal's build-type: Simple support distributing custom files? |
2020-10-27 11:23:40 +0100 | <dcoutts__> | ulidtko: do you mean installing extra files, or just including extra files into the source tarball? |
2020-10-27 11:23:45 +0100 | <ulidtko> | I can see there're apis like installOrdinaryFile in Distribution.Simple.Utils, but not sure how to use that |
2020-10-27 11:23:54 +0100 | <ulidtko> | dcoutts__, the former, installing |
2020-10-27 11:24:22 +0100 | <dcoutts__> | ulidtko: no it just supports installing header files I think |
2020-10-27 11:24:40 +0100 | <merijn> | You can install data files |
2020-10-27 11:24:57 +0100 | <merijn> | So it depends exactly what these files are for |
2020-10-27 11:24:57 +0100 | <dcoutts__> | oh yes, and data files |
2020-10-27 11:25:05 +0100 | dcoutts__ | dcoutts |
2020-10-27 11:25:11 +0100 | <ulidtko> | exactly, data files is what i need |
2020-10-27 11:25:20 +0100 | <ulidtko> | any guide links?.. |
2020-10-27 11:26:20 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-10-27 11:26:30 +0100 | <merijn> | ulidtko: https://cabal.readthedocs.io/en/latest/cabal-package.html#accessing-data-files-from-package-code |
2020-10-27 11:27:00 +0100 | <ulidtko> | merijn, thank you |
2020-10-27 11:27:18 +0100 | <merijn> | ulidtko: and https://cabal.readthedocs.io/en/latest/cabal-package.html#pkg-field-data-files |
2020-10-27 11:28:34 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-10-27 11:29:44 +0100 | Kolkrabe | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-10-27 11:32:06 +0100 | bliminse | (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) |
2020-10-27 11:32:06 +0100 | Stanley|00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2020-10-27 11:36:00 +0100 | tito_04 | (~taurux@net-93-151-203-8.cust.dsl.teletu.it) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-10-27 11:39:52 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-10-27 11:40:07 +0100 | avn | (~avn@78-56-108-78.static.zebra.lt) |
2020-10-27 11:42:00 +0100 | son0p | (~son0p@181.58.39.86) |
2020-10-27 11:44:58 +0100 | unlink2 | (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 11:45:26 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 11:46:23 +0100 | unlink2 | (~unlink2@p200300ebcf180b00a39cfda93b79d512.dip0.t-ipconnect.de) |
2020-10-27 11:46:38 +0100 | knupfer | (~Thunderbi@200116b82cb7c400f4108508b0e1b154.dip.versatel-1u1.de) (Quit: knupfer) |
2020-10-27 11:46:48 +0100 | knupfer | (~Thunderbi@200116b82cb7c400ed5464f4c167feaa.dip.versatel-1u1.de) |
2020-10-27 11:47:13 +0100 | knupfer | (~Thunderbi@200116b82cb7c400ed5464f4c167feaa.dip.versatel-1u1.de) (Client Quit) |
2020-10-27 11:47:21 +0100 | knupfer | (~Thunderbi@200116b82cb7c400050f6fe9a7d2b159.dip.versatel-1u1.de) |
2020-10-27 11:47:57 +0100 | averell | (~averell@unaffiliated/averell) (Quit: .) |
2020-10-27 11:50:17 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 11:50:33 +0100 | GyroW_ | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-27 11:50:33 +0100 | GyroW_ | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-27 11:50:33 +0100 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-27 11:50:55 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds) |
2020-10-27 11:51:54 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.241.90) (Ping timeout: 256 seconds) |
2020-10-27 11:54:37 +0100 | taurux | (~taurux@net-93-151-203-8.cust.vodafonedsl.it) |
2020-10-27 11:54:55 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-10-27 11:56:04 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) (Remote host closed the connection) |
2020-10-27 11:57:22 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2020-10-27 11:58:04 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds) |
2020-10-27 11:58:19 +0100 | GyroW_ | (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
2020-10-27 11:58:46 +0100 | GyroW | (~GyroW@d54c03e98.access.telenet.be) |
2020-10-27 11:58:46 +0100 | GyroW | (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
2020-10-27 11:58:46 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 12:01:53 +0100 | averell | (~averell@unaffiliated/averell) |
2020-10-27 12:02:28 +0100 | hackage | reanimate 1.1.2.1 - Animation library based on SVGs. https://hackage.haskell.org/package/reanimate-1.1.2.1 (DavidHimmelstrup) |
2020-10-27 12:04:32 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2020-10-27 12:05:50 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) |
2020-10-27 12:06:07 +0100 | petersen | (~petersen@redhat/juhp) (Quit: petersen) |
2020-10-27 12:08:23 +0100 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) () |
2020-10-27 12:08:33 +0100 | alp | (~alp@2a01:e0a:58b:4920:d873:f5b:1d39:8a1c) (Ping timeout: 272 seconds) |
2020-10-27 12:08:57 +0100 | nkly | (~nkly@2a02:8109:9ac0:4a4c::baa2) (Ping timeout: 260 seconds) |
2020-10-27 12:09:57 +0100 | ndbopoi^ | (ndbopoi@ip98-184-89-2.mc.at.cox.net) |
2020-10-27 12:10:55 +0100 | alx741 | (~alx741@186.178.110.169) (Ping timeout: 260 seconds) |
2020-10-27 12:13:48 +0100 | obihann | (~jhann@156.34.160.69) |
2020-10-27 12:14:35 +0100 | nkly | (~nkly@2a02:8109:9ac0:4a4c::9b9d) |
2020-10-27 12:14:44 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) (Quit: leaving) |
2020-10-27 12:16:47 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 12:16:54 +0100 | rprije | (~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 272 seconds) |
2020-10-27 12:17:28 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2020-10-27 12:18:55 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:198:130b:ef87:cdda) (Ping timeout: 240 seconds) |
2020-10-27 12:24:15 +0100 | nkly | (~nkly@2a02:8109:9ac0:4a4c::9b9d) (Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in) |
2020-10-27 12:25:05 +0100 | nkly | (~nkly@ip5f5bd51d.dynamic.kabel-deutschland.de) |
2020-10-27 12:25:07 +0100 | plutoniix | (~q@175.176.222.7) |
2020-10-27 12:25:24 +0100 | alx741 | (~alx741@186.178.110.246) |
2020-10-27 12:31:43 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:dc8a:5173:1db7:7a54) |
2020-10-27 12:36:40 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds) |
2020-10-27 12:37:57 +0100 | hackage | morley 1.8.1 - Developer tools for the Michelson Language https://hackage.haskell.org/package/morley-1.8.1 (gromak) |
2020-10-27 12:38:02 +0100 | <__monty__> | I think arian was talking about the original issue, i.e., they don't exist after just building the expression. |
2020-10-27 12:38:15 +0100 | <__monty__> | Whoops, wrong chan. |
2020-10-27 12:39:28 +0100 | hackage | indigo 0.3.1 - Convenient imperative eDSL over Lorentz. https://hackage.haskell.org/package/indigo-0.3.1 (gromak) |
2020-10-27 12:40:22 +0100 | alp | (~alp@2a01:e0a:58b:4920:ecb1:3ebe:b736:8221) |
2020-10-27 12:41:22 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-10-27 12:41:22 +0100 | <dminuoso> | Are there QQs for ghc-lib-parser, to generate AST fragments from? |
2020-10-27 12:41:41 +0100 | <dminuoso> | (Say via TH Exp?) |
2020-10-27 12:43:29 +0100 | son0p | (~son0p@181.58.39.86) (Quit: leaving) |
2020-10-27 12:46:53 +0100 | drbean | (~drbean@TC210-63-209-53.static.apol.com.tw) |
2020-10-27 12:52:24 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de) |
2020-10-27 12:54:05 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 12:57:15 +0100 | jchia__ | (~jchia@45.32.62.73) |
2020-10-27 12:58:17 +0100 | jchia__ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-10-27 12:58:45 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds) |
2020-10-27 12:59:15 +0100 | jchia__ | (~jchia@45.32.62.73) |
2020-10-27 13:00:02 +0100 | smtx | (~smtx@185.244.214.217) () |
2020-10-27 13:01:02 +0100 | jchia__ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-10-27 13:01:32 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2020-10-27 13:01:49 +0100 | jchia__ | (~jchia@58.32.37.146) |
2020-10-27 13:01:52 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-10-27 13:03:30 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-10-27 13:08:09 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2020-10-27 13:09:58 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 13:11:54 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-10-27 13:13:47 +0100 | alp | (~alp@2a01:e0a:58b:4920:ecb1:3ebe:b736:8221) (Ping timeout: 272 seconds) |
2020-10-27 13:14:34 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
2020-10-27 13:17:45 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-10-27 13:18:45 +0100 | Rudd0 | (~Rudd0@185.189.115.98) (Ping timeout: 240 seconds) |
2020-10-27 13:21:22 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) |
2020-10-27 13:22:10 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
2020-10-27 13:26:55 +0100 | knupfer | (~Thunderbi@200116b82cb7c400050f6fe9a7d2b159.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
2020-10-27 13:31:13 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88) |
2020-10-27 13:31:43 +0100 | petersen | (~petersen@redhat/juhp) |
2020-10-27 13:33:06 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 13:33:35 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 13:34:05 +0100 | akad | (~akad@109107030050.radomsko.vectranet.pl) |
2020-10-27 13:37:20 +0100 | fendor | (~fendor@078132040188.public.t-mobile.at) (Ping timeout: 272 seconds) |
2020-10-27 13:37:23 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) (Client Quit) |
2020-10-27 13:37:37 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
2020-10-27 13:37:46 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 13:37:53 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2020-10-27 13:39:05 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-10-27 13:39:09 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Ping timeout: 256 seconds) |
2020-10-27 13:40:15 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) (Client Quit) |
2020-10-27 13:40:29 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 13:43:32 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) (Client Quit) |
2020-10-27 13:43:45 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 13:44:45 +0100 | <Raito_Bezarius> | is it a good idea to use Alex & Megaparsec together? |
2020-10-27 13:45:25 +0100 | <Raito_Bezarius> | I'm trying to write a parser for programming language which requires to add automatically semicolon to the end of certain lexemes, I'm not sure megaparsec is built to handle this by itself |
2020-10-27 13:45:31 +0100 | <dminuoso> | It can be sensible, sure |
2020-10-27 13:46:13 +0100 | kish` | (~oracle@unaffiliated/oracle) |
2020-10-27 13:46:25 +0100 | xff0x | (~fox@2001:1a81:5219:2300:9ba4:4fa:1a33:4ccd) (Ping timeout: 240 seconds) |
2020-10-27 13:46:31 +0100 | <dminuoso> | Raito_Bezarius: You can trivially do this yourself |
2020-10-27 13:46:53 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 13:47:00 +0100 | <Raito_Bezarius> | using megaparsec? |
2020-10-27 13:47:08 +0100 | <dminuoso> | Sure |
2020-10-27 13:47:17 +0100 | <dminuoso> | lexeme spc p = p <* spc |
2020-10-27 13:47:19 +0100 | <Raito_Bezarius> | Is there any pointer to where should I look in the megaparsec docs? |
2020-10-27 13:47:25 +0100 | <dminuoso> | lexemeSemi spc p = p <* semi <* spc |
2020-10-27 13:47:29 +0100 | <dminuoso> | Done |
2020-10-27 13:47:31 +0100 | xff0x | (~fox@2001:1a81:5219:2300:5d08:4351:f573:c6af) |
2020-10-27 13:47:35 +0100 | <Raito_Bezarius> | ha |
2020-10-27 13:48:05 +0100 | <dminuoso> | (Note that the first definition is already defined in megaparsec, I just included it for reference) |
2020-10-27 13:48:07 +0100 | <Raito_Bezarius> | well, I'll read more the docs until I understand why is it enough/trivial enough |
2020-10-27 13:48:13 +0100 | <Raito_Bezarius> | but like |
2020-10-27 13:48:20 +0100 | <dminuoso> | lexing and parsing are really the same thing. :) |
2020-10-27 13:48:20 +0100 | <Raito_Bezarius> | if I want to add a semicolon to a lexeme if only it's a certain lexeme |
2020-10-27 13:48:26 +0100 | <Raito_Bezarius> | I can just really chain lexeme & lexemeSemi ? |
2020-10-27 13:48:35 +0100 | <dminuoso> | Raito_Bezarius: Yes, that's why you use both lexeme and lexemeSemi |
2020-10-27 13:48:38 +0100 | <dminuoso> | For example: |
2020-10-27 13:48:55 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-10-27 13:49:05 +0100 | kish | (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds) |
2020-10-27 13:49:13 +0100 | <dminuoso> | say you have: |
2020-10-27 13:49:23 +0100 | <dminuoso> | lexemeSemi = p <* semi <* spc |
2020-10-27 13:49:23 +0100 | carlomagno | (~cararell@148.87.23.7) (Remote host closed the connection) |
2020-10-27 13:49:26 +0100 | <dminuoso> | Where spc is your space consumer |
2020-10-27 13:49:28 +0100 | <dminuoso> | Then you can define |
2020-10-27 13:49:39 +0100 | <dminuoso> | err |
2020-10-27 13:49:42 +0100 | <dminuoso> | lexemeSemi p = p <* semi <* spc |
2020-10-27 13:49:53 +0100 | <dminuoso> | foo = lexemeSemi (string "foo") |
2020-10-27 13:50:00 +0100 | <dminuoso> | which would lex `foo;` plus leading whitespace |
2020-10-27 13:50:05 +0100 | <dminuoso> | (or trailing I guess) |
2020-10-27 13:50:09 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) ("ERC (IRC client for Emacs 28.0.50)") |
2020-10-27 13:50:10 +0100 | <Raito_Bezarius> | yes |
2020-10-27 13:50:17 +0100 | <Raito_Bezarius> | now if I give foo; can I still get foo; without error? |
2020-10-27 13:50:28 +0100 | <dminuoso> | "get foo; without error"? |
2020-10-27 13:50:29 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds) |
2020-10-27 13:50:31 +0100 | <Raito_Bezarius> | sorry |
2020-10-27 13:50:36 +0100 | <Raito_Bezarius> | if I give as input `foo;` |
2020-10-27 13:50:36 +0100 | lpy | (~nyd@unaffiliated/elysian) (Quit: lpy) |
2020-10-27 13:50:41 +0100 | <Raito_Bezarius> | can I still make it so it lex to `foo;` |
2020-10-27 13:50:44 +0100 | <geekosaur> | I think Raito_Bezarius wants the opposite of what you're providing |
2020-10-27 13:50:50 +0100 | <Raito_Bezarius> | I want both |
2020-10-27 13:50:51 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 13:50:55 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-10-27 13:50:58 +0100 | <Raito_Bezarius> | I want semicolon to be automatically added when it's relevant |
2020-10-27 13:50:59 +0100 | <geekosaur> | insert a virtual semicolon after some lexemes, but allow it to be explicit as well |
2020-10-27 13:51:05 +0100 | <dminuoso> | ahh |
2020-10-27 13:51:11 +0100 | <Raito_Bezarius> | something like lexemeSemi (string "foo") <|> lexeme (string "foo;") or something like this |
2020-10-27 13:51:15 +0100 | <dminuoso> | Well, I'd just get rid of it in the parser |
2020-10-27 13:51:19 +0100 | <dminuoso> | or lexer |
2020-10-27 13:51:31 +0100 | <dminuoso> | I see |
2020-10-27 13:51:36 +0100 | <dminuoso> | You can make the semi optional |
2020-10-27 13:51:43 +0100 | <dminuoso> | lexemeSemi p = p <* optional semi <* spc |
2020-10-27 13:52:03 +0100 | <Raito_Bezarius> | but then, this separator won't always appear right? |
2020-10-27 13:52:12 +0100 | <dminuoso> | what do you mean by separator? |
2020-10-27 13:52:15 +0100 | <Raito_Bezarius> | the ; |
2020-10-27 13:52:18 +0100 | <Raito_Bezarius> | it will lex as foo or foo; |
2020-10-27 13:52:20 +0100 | <Raito_Bezarius> | right? |
2020-10-27 13:52:28 +0100 | <dminuoso> | Raito_Bezarius: What do you mean with "lex as"? |
2020-10-27 13:52:32 +0100 | <dminuoso> | It will *consume* both |
2020-10-27 13:52:57 +0100 | <Raito_Bezarius> | I mean, my grammar assumes that those semicolons always appear |
2020-10-27 13:53:32 +0100 | <Raito_Bezarius> | so the parser will expect semicolons for certain rules, but without automatically adding them explicitly, the rules will fail |
2020-10-27 13:53:43 +0100 | <dminuoso> | Im not quite sure what "adding" even means? |
2020-10-27 13:53:54 +0100 | <dminuoso> | We're in a parser, we dont generate a string, we consume it |
2020-10-27 13:53:56 +0100 | <Raito_Bezarius> | in this case, I'm looking at Julia |
2020-10-27 13:54:09 +0100 | <Raito_Bezarius> | if I have, `while foo end` |
2020-10-27 13:54:15 +0100 | carlomagno | (~cararell@148.87.23.12) |
2020-10-27 13:54:23 +0100 | <Raito_Bezarius> | it should appear as `while foo end;` |
2020-10-27 13:54:29 +0100 | <dminuoso> | what do you mean by "appear"? |
2020-10-27 13:54:56 +0100 | <dminuoso> | A parser usually transforms `while foo end;` into some concrete or abstract syntax tree |
2020-10-27 13:55:02 +0100 | <Raito_Bezarius> | Yes |
2020-10-27 13:55:08 +0100 | <Raito_Bezarius> | Hm, maybe I am creating a XY problem or something |
2020-10-27 13:55:54 +0100 | Criggie1 | (~Criggie@154.13.1.56) |
2020-10-27 13:56:16 +0100 | <Raito_Bezarius> | dminuoso: thanks for the ideas, I'll try to go for implementation first and expose the precise problem when I encounter it |
2020-10-27 13:56:19 +0100 | <Raito_Bezarius> | That was very helpful |
2020-10-27 13:56:20 +0100 | <geekosaur> | if you want to parse something and then prettyprint it, just have the prettyprinter always print the semicolons while rendering the AST back into text |
2020-10-27 13:56:34 +0100 | <Raito_Bezarius> | I'm not in the prettyprint phase though I plan to do so |
2020-10-27 13:56:42 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 13:56:46 +0100 | <Raito_Bezarius> | I was rather adapting a set of rules from a grammar into megaparsec parsing code |
2020-10-27 13:57:00 +0100 | <Raito_Bezarius> | and the set of rules expects semicolon because the lexical analysis suggests to automatically add them |
2020-10-27 13:57:02 +0100 | <dminuoso> | Raito_Bezarius: So this is where things can very very quickly become complicated. |
2020-10-27 13:57:16 +0100 | <dminuoso> | Do you need to preserve the exact input? |
2020-10-27 13:57:21 +0100 | <Raito_Bezarius> | No I do not need |
2020-10-27 13:57:34 +0100 | perry69420 | (6ee39f85@110.227.159.133) (Ping timeout: 245 seconds) |
2020-10-27 13:57:39 +0100 | <Raito_Bezarius> | I didn't want to go for custom lexer code because I wanted to benefit from megaparsec source position stuff |
2020-10-27 13:57:48 +0100 | <dminuoso> | Raito_Bezarius: Okay. I think there may be some confusion here of what the output of a parser really is |
2020-10-27 13:57:58 +0100 | <Raito_Bezarius> | I want to output an AST right now |
2020-10-27 13:58:12 +0100 | <Raito_Bezarius> | I have an AST in terms of data |
2020-10-27 13:58:13 +0100 | <dminuoso> | Raito_Bezarius: Do you represent semicolons in that AST? |
2020-10-27 13:58:19 +0100 | <Raito_Bezarius> | No, so I can just discard them |
2020-10-27 13:58:32 +0100 | <Raito_Bezarius> | But I was afraid of stuff like ambiguous things in the grammar |
2020-10-27 14:00:59 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-10-27 14:01:31 +0100 | djellemah | (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
2020-10-27 14:03:45 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-10-27 14:04:27 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-10-27 14:05:09 +0100 | <Raito_Bezarius> | maybe stupid question, I'm trying to have "some digitChar" but I cannot because "Illegal equational constraint Token s ~ Char", should I just enable TypeFamilies or GADTs? |
2020-10-27 14:05:16 +0100 | <Raito_Bezarius> | or am I doing something wrong? |
2020-10-27 14:05:22 +0100 | <Raito_Bezarius> | integer = some digitChar <?> "an integer" |
2020-10-27 14:05:33 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88) |
2020-10-27 14:06:08 +0100 | plutoniix | (~q@175.176.222.7) (Quit: Leaving) |
2020-10-27 14:07:09 +0100 | <dminuoso> | Raito_Bezarius: What's the type signature of integer? |
2020-10-27 14:07:33 +0100 | <dminuoso> | Or.. that error mmm |
2020-10-27 14:07:36 +0100 | ClaudiusMaximus | (~claude@198.123.199.146.dyn.plus.net) |
2020-10-27 14:07:36 +0100 | ClaudiusMaximus | (~claude@198.123.199.146.dyn.plus.net) (Changing host) |
2020-10-27 14:07:36 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2020-10-27 14:07:38 +0100 | <dminuoso> | Which ghc are you using? |
2020-10-27 14:07:52 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-10-27 14:07:53 +0100 | <Raito_Bezarius> | I want something like (MonadParsec m, …) => m [Char] |
2020-10-27 14:07:56 +0100 | <Raito_Bezarius> | GHC8 dminuoso |
2020-10-27 14:08:01 +0100 | <Raito_Bezarius> | 8.10 |
2020-10-27 14:08:36 +0100 | <Raito_Bezarius> | enabling GADT made it work |
2020-10-27 14:09:05 +0100 | xerox_ | (~xerox@unaffiliated/xerox) |
2020-10-27 14:09:55 +0100 | <dminuoso> | It's possible this is due to some changes in 8.10 |
2020-10-27 14:10:23 +0100 | <dminuoso> | "GHC now performs more validity checks on inferred type signatures." |
2020-10-27 14:10:27 +0100 | <dminuoso> | That's very non-descript. |
2020-10-27 14:10:34 +0100 | <dminuoso> | But Im guessing that's why |
2020-10-27 14:11:17 +0100 | <geekosaur> | this might be worth asking haskell-cafe about, if it's affecting random Megaparsec parsers then it might be surprising to a bunch of people |
2020-10-27 14:11:36 +0100 | <geekosaur> | lthough 8.10 has been out for a while now so it should have already caused an uproar, hm |
2020-10-27 14:12:12 +0100 | danza | (~francesco@151.53.87.185) |
2020-10-27 14:12:17 +0100 | <Raito_Bezarius> | Well, I'm okay with enabling type families or GADT meanwhile |
2020-10-27 14:13:29 +0100 | <geekosaur> | I'm kinda not so comfortable with it tbh. Megaparsec seems a strange place for a hidden dependency on GADTs to arise |
2020-10-27 14:14:14 +0100 | <Raito_Bezarius> | Could one of you verify in a REPL I'm not saying stupid things? |
2020-10-27 14:14:26 +0100 | <Raito_Bezarius> | I just imported a bunch of megaparsec classic things, everything is built-in |
2020-10-27 14:14:28 +0100 | <dminuoso> | Raito_Bezarius: Im very sure this is why. |
2020-10-27 14:14:31 +0100 | <merijn> | dminuoso: I think it's basically like before where GHC would infer types that required extensions that weren't enabled |
2020-10-27 14:14:47 +0100 | <merijn> | And then when it (correctly) demanded those extensions be enabled, stuff broke |
2020-10-27 14:14:50 +0100 | <dminuoso> | Raito_Bezarius: The release notes even lists a similar example, albeit with a different extension. |
2020-10-27 14:14:58 +0100 | <Raito_Bezarius> | Fair enough |
2020-10-27 14:15:09 +0100 | <dminuoso> | merijn: Oh because it affected the semantics of other code? |
2020-10-27 14:15:15 +0100 | <dminuoso> | Like ScopedTypeVariables? |
2020-10-27 14:15:17 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) (Read error: Connection reset by peer) |
2020-10-27 14:15:26 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-10-27 14:15:51 +0100 | <merijn> | dminuoso: No, stuff like, if you left out a type signature and GHC inferred one that used MultiParamTypeclasses, then it would allow the inferred type *even* if MPTC wasn't enabled |
2020-10-27 14:15:55 +0100 | <merijn> | Which is, of course, wrong |
2020-10-27 14:16:02 +0100 | <dminuoso> | (Say because you're doing something like `(\(e :: FooException) -> ...)`, then enabling ScopedTypeVariables could actually alter the meaning in other places where if you have ExplicitForAll |
2020-10-27 14:16:22 +0100 | <dminuoso> | mmm |
2020-10-27 14:16:40 +0100 | <merijn> | So it used to allow types with extensions that weren't enabled *iff* the types were inferred, which is a bug, but one you can accidentally rely on |
2020-10-27 14:16:43 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds) |
2020-10-27 14:16:49 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) (Remote host closed the connection) |
2020-10-27 14:17:12 +0100 | xerox__ | (~xerox@unaffiliated/xerox) |
2020-10-27 14:17:13 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2020-10-27 14:17:29 +0100 | <dminuoso> | merijn: I cant even fathom what kind of engineering complexity language extensions brings with them because you have precisely this kind of cross-module friction. |
2020-10-27 14:17:30 +0100 | Franciman | (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Read error: Connection reset by peer) |
2020-10-27 14:17:47 +0100 | Franciman | (~francesco@host-82-54-10-114.retail.telecomitalia.it) |
2020-10-27 14:18:03 +0100 | <merijn> | So it looks like, in Raito_Bezarius's example is that due to the lack of type signature, the inferred type has megaparsec Token constraint, which uses type families, but type families isn't enabled in his code |
2020-10-27 14:18:10 +0100 | <dminuoso> | merijn: Right. |
2020-10-27 14:18:18 +0100 | <merijn> | So writing out a non-polymorphic type would *also* fix the issue |
2020-10-27 14:18:21 +0100 | <dminuoso> | merijn: Im just saying the release note could have explained this better |
2020-10-27 14:18:23 +0100 | <Raito_Bezarius> | merijn: I see |
2020-10-27 14:18:23 +0100 | <dminuoso> | I *assumed* what you said |
2020-10-27 14:18:54 +0100 | <merijn> | Raito_Bezarius: If you write out a specific type, then the constraint is already solved and the extension unneeded |
2020-10-27 14:18:54 +0100 | <dminuoso> | I sometimes wish, GHC would roll out such things with deprecation notices |
2020-10-27 14:18:56 +0100 | <dminuoso> | like |
2020-10-27 14:19:02 +0100 | <dminuoso> | "This is going to fail in a future GHC" |
2020-10-27 14:19:06 +0100 | PragCypher | (~cypher@li1507-98.members.linode.com) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-10-27 14:19:09 +0100 | <merijn> | dminuoso: Where do you draw the line, though? |
2020-10-27 14:19:09 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2020-10-27 14:19:20 +0100 | <merijn> | Does every bugfix need a deprecation warning? |
2020-10-27 14:19:20 +0100 | PragCypher | (~cypher@li1507-98.members.linode.com) |
2020-10-27 14:19:34 +0100 | <merijn> | dminuoso: See the endless discussion on the TH change I got temporarily rolled back in 8.10 |
2020-10-27 14:19:40 +0100 | <dminuoso> | Which TH change? |
2020-10-27 14:20:12 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
2020-10-27 14:20:49 +0100 | <merijn> | That typeclass constraint (incorrectly) are allowed to violate the staging/splicing rules |
2020-10-27 14:20:52 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
2020-10-27 14:20:54 +0100 | <merijn> | https://gitlab.haskell.org/ghc/ghc/-/issues/17816 |
2020-10-27 14:21:07 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2020-10-27 14:22:07 +0100 | <dminuoso> | merijn: Perhaps GHC releases should be tested against stackage. |
2020-10-27 14:22:12 +0100 | <merijn> | They are |
2020-10-27 14:22:17 +0100 | <merijn> | But once again |
2020-10-27 14:22:25 +0100 | <merijn> | Where's the line? |
2020-10-27 14:22:50 +0100 | <merijn> | The behaviour in that ticket is *clearly* a bug that violates the definition of TH as it is specified |
2020-10-27 14:22:51 +0100 | <dminuoso> | 1.73% breakage |
2020-10-27 14:24:02 +0100 | <merijn> | Is that including transitive dependencies? |
2020-10-27 14:24:02 +0100 | mirrorbird | (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Read error: Connection reset by peer) |
2020-10-27 14:24:15 +0100 | <merijn> | Because then you probably will be unable to ever fix anything |
2020-10-27 14:24:32 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-27 14:24:56 +0100 | xerox__ | xerox_ |
2020-10-27 14:25:04 +0100 | <dminuoso> | Unrelatedly |
2020-10-27 14:25:06 +0100 | <dminuoso> | Im sad now |
2020-10-27 14:25:08 +0100 | <dminuoso> | % % Just 'a' <**> (Just 'b' <&> (,)) |
2020-10-27 14:25:08 +0100 | <yahb> | dminuoso: ; <interactive>:183:1: error: parse error on input `%' |
2020-10-27 14:25:13 +0100 | <dminuoso> | % Just 'a' <**> (Just 'b' <&> (,)) |
2020-10-27 14:25:14 +0100 | <yahb> | dminuoso: Just ('b','a') |
2020-10-27 14:25:16 +0100 | <dminuoso> | % Just 'a' <**> Just 'b' <&> (,) |
2020-10-27 14:25:16 +0100 | <yahb> | dminuoso: ; <interactive>:185:15: error:; * Couldn't match type `Char' with `Char -> a'; Expected type: Maybe (Char -> a); Actual type: Maybe Char; * In the second argument of `(<**>)', namely Just 'b'; In the first argument of `(<&>)', namely Just 'a' <**> Just 'b'; In the expression: Just 'a' <**> Just 'b' <&> (,); * Relevant bindings include it :: Maybe (b -> (a, b)) (bound |
2020-10-27 14:25:21 +0100 | <dminuoso> | Why is the precedence all wrong here? :( |
2020-10-27 14:26:51 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 14:27:14 +0100 | <dminuoso> | merijn: But I see what you're getting at. |
2020-10-27 14:27:19 +0100 | <dminuoso> | I mean for bugfixes its hard |
2020-10-27 14:27:25 +0100 | <dminuoso> | But when you *know* you're making breaking changes |
2020-10-27 14:27:34 +0100 | <dminuoso> | Its not too much to ask for a deprecation notice one major release in advance |
2020-10-27 14:27:46 +0100 | <merijn> | dminuoso: -Wcompat exists |
2020-10-27 14:27:54 +0100 | <merijn> | But, sadly, not enabled by default |
2020-10-27 14:28:14 +0100 | <dminuoso> | merijn: Does -Wcompat work with *GHC* changes? |
2020-10-27 14:28:42 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 14:28:48 +0100 | <merijn> | for those added |
2020-10-27 14:28:48 +0100 | <dminuoso> | I mean only if they receive a particular warning for it |
2020-10-27 14:28:54 +0100 | <dminuoso> | Like, star-is-type |
2020-10-27 14:30:01 +0100 | ggole | (~ggole@2001:8003:8119:7200:b94d:2b16:8058:a9b7) |
2020-10-27 14:31:05 +0100 | jespada | (~jespada@90.254.243.98) (Ping timeout: 240 seconds) |
2020-10-27 14:32:45 +0100 | jespada | (~jespada@90.254.243.98) |
2020-10-27 14:33:01 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-10-27 14:33:15 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-10-27 14:33:54 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-nwqswzdnuoofdofv) (Quit: Connection closed for inactivity) |
2020-10-27 14:34:25 +0100 | knupfer | (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de) |
2020-10-27 14:34:25 +0100 | knupfer | (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de) (Client Quit) |
2020-10-27 14:34:38 +0100 | knupfer | (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) |
2020-10-27 14:36:22 +0100 | gothnbass | (~kvirc@111.red-83-37-117.dynamicip.rima-tde.net) |
2020-10-27 14:36:35 +0100 | <Raito_Bezarius> | Let us suppose that I'd like to define a character literal as something which is an ASCII char which is not \ or " and accept the escaped versions as char literals |
2020-10-27 14:36:38 +0100 | mimi_vx | (~mimi@tulipan.habr.nat.praha12.net) |
2020-10-27 14:36:42 +0100 | <Raito_Bezarius> | charLiteral = satisfy (all isValidCharacter) <|> string "\̈ <|> string "̈" <?> "a character" |
2020-10-27 14:36:45 +0100 | <Raito_Bezarius> | something like this |
2020-10-27 14:36:58 +0100 | <Raito_Bezarius> | it would produce [Char] necessarily, right? |
2020-10-27 14:37:22 +0100 | <Raito_Bezarius> | is it a bad idea to have a charLiteral producing [Char]? Is it easy to build stringLiteral which (++) the many charLiteral (?) |
2020-10-27 14:38:34 +0100 | <Raito_Bezarius> | (also, it seems like that this charLiteral produces a type of (Foldable t) => m (t Char) rather than m [Char] which I can understand but I'm not sure how I can enforce the array version |
2020-10-27 14:39:11 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-10-27 14:39:20 +0100 | <geekosaur> | list, not array; and you just ive that as the type signature instead of the more general inferred one |
2020-10-27 14:39:34 +0100 | <geekosaur> | inference always goes for the most general signature, which is not always what you want |
2020-10-27 14:39:46 +0100 | <geekosaur> | *give that |
2020-10-27 14:40:08 +0100 | <Raito_Bezarius> | right |
2020-10-27 14:40:17 +0100 | <Raito_Bezarius> | what I might not understand |
2020-10-27 14:40:28 +0100 | <Raito_Bezarius> | rather than having token of Char, I have now token of [Char] |
2020-10-27 14:40:34 +0100 | <Raito_Bezarius> | so parseTest cannot use such a parser looks like |
2020-10-27 14:40:48 +0100 | <Raito_Bezarius> | is there a way to keep Char token? |
2020-10-27 14:41:01 +0100 | <Raito_Bezarius> | charLiteral |
2020-10-27 14:41:04 +0100 | <Raito_Bezarius> | :: (MonadParsec e s m, Tokens s ~ [Char], Token s ~ [Char]) => |
2020-10-27 14:41:06 +0100 | <Raito_Bezarius> | m [Char] |
2020-10-27 14:41:08 +0100 | <Raito_Bezarius> | here's the obtained type sig |
2020-10-27 14:41:45 +0100 | <Raito_Bezarius> | what I want is Token s ~ Char |
2020-10-27 14:42:15 +0100 | perry69420 | (6ee39f85@110.227.159.133) |
2020-10-27 14:42:59 +0100 | <geekosaur> | not if it returns more than one |
2020-10-27 14:43:13 +0100 | <dminuoso> | satisfy :: MonadParsec e s m => (Token s -> Bool) -> m (Token s) |
2020-10-27 14:43:14 +0100 | <geekosaur> | what makes you think parseTest can't work with [Char]? |
2020-10-27 14:43:44 +0100 | <Raito_Bezarius> | geekosaur: sorry, I meant rather that I would not be able to do parseTest myParser "a string" and would have to do parseTest myParser aListOfString |
2020-10-27 14:43:53 +0100 | <Raito_Bezarius> | so if I do, charLiteral = many (satisfy isValidCharacter) <|> string "\̈ <|> string "̈" <?> "a character" |
2020-10-27 14:44:19 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 256 seconds) |
2020-10-27 14:44:45 +0100 | drbean | (~drbean@TC210-63-209-53.static.apol.com.tw) (Ping timeout: 240 seconds) |
2020-10-27 14:45:04 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-10-27 14:45:07 +0100 | <Raito_Bezarius> | but if I do, parseTest (charLiteral :: Parser [Char]) "abc" |
2020-10-27 14:45:18 +0100 | <Raito_Bezarius> | it fails with Couldn't match type ‘Text’ with ‘[Char]’ |
2020-10-27 14:45:21 +0100 | <Raito_Bezarius> | arising from a use of ‘charLiteral’ |
2020-10-27 14:46:19 +0100 | <Raito_Bezarius> | hm |
2020-10-27 14:46:33 +0100 | <Raito_Bezarius> | many will give: m [a] |
2020-10-27 14:46:52 +0100 | <Raito_Bezarius> | so many (satisfy X) should give m [Token s] right? |
2020-10-27 14:47:09 +0100 | <Raito_Bezarius> | at the same time, string will give m (Tokens s) rather than m [Token s], I suppose? |
2020-10-27 14:47:43 +0100 | <Raito_Bezarius> | but as, Tokens s ~ [Char] and Token s ~ Char, shouldn't it work fine? |
2020-10-27 14:49:49 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) (Quit: leaving) |
2020-10-27 14:49:57 +0100 | roconnor | (~roconnor@host-23-91-186-59.dyn.295.ca) (Ping timeout: 260 seconds) |
2020-10-27 14:50:22 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 246 seconds) |
2020-10-27 14:50:56 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) |
2020-10-27 14:52:50 +0100 | ptrcmd | (~ptrcmd@unaffiliated/petercommand) |
2020-10-27 14:53:01 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-10-27 14:53:06 +0100 | <gothnbass> | I've been looking into porting an existing Common Lisp codebase into Haskell, but it's possible I'm barking up the wrong AST. The application dynamically serialises/deserialises objects according to definitions that are stored in a database, and that cannot be known at compile-time. Is this feasible in Haskell, or am I running myself face-first into the type system? |
2020-10-27 14:53:46 +0100 | ransom | (~c4264035@2601:285:201:6720:b121:bf7e:316a:1ddf) |
2020-10-27 14:55:44 +0100 | son0p | (~son0p@181.136.122.143) |
2020-10-27 14:55:46 +0100 | alp | (~alp@2a01:e0a:58b:4920:aca7:fd95:ef08:3e24) |
2020-10-27 14:56:41 +0100 | kish` | kish |
2020-10-27 14:56:58 +0100 | samlamamma | (~user@c-8283e355.05-76-616c6b1.bbcust.telenor.se) |
2020-10-27 14:56:59 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 265 seconds) |
2020-10-27 14:57:57 +0100 | Amras | (~Amras@unaffiliated/amras0000) |
2020-10-27 14:58:21 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-27 14:58:40 +0100 | <dminuoso> | gothnbass: That's absolutely feasible. |
2020-10-27 14:58:50 +0100 | knupfer | (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) (Quit: knupfer) |
2020-10-27 14:59:33 +0100 | <gothnbass> | That's a relief. There's a lot to love about CL, but I got a taste of the type-system's assurances in Haskell, and I want more :) |
2020-10-27 15:00:45 +0100 | <dminuoso> | gothnbass: What do these definitions look like? |
2020-10-27 15:01:19 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 256 seconds) |
2020-10-27 15:02:15 +0100 | <gothnbass> | They're stored in a Neo4j database, so a JSON object is pretty much their natural representation. I'd just use a Map, but they're heterogeneous. |
2020-10-27 15:04:07 +0100 | <dminuoso> | gothnbass: If they're already in JSON, you could keep that as JSON directly? |
2020-10-27 15:04:09 +0100 | invaser | (~Thunderbi@31.148.23.125) (Remote host closed the connection) |
2020-10-27 15:04:31 +0100 | <dminuoso> | Well, `Value` for instance |
2020-10-27 15:04:32 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) (Remote host closed the connection) |
2020-10-27 15:04:38 +0100 | <gothnbass> | To be slightly less vague, the Haskell representation of one of them looks like `data Tag = Tag { uid :: String , createddate :: Int , original_uid :: String , description :: Maybe String } deriving (Show)` |
2020-10-27 15:05:48 +0100 | akegalj | (~akegalj@93-142-98-67.adsl.net.t-com.hr) (Quit: Lost terminal) |
2020-10-27 15:06:06 +0100 | roconnor | (~roconnor@host-192.252-162-14.dyn.295.ca) |
2020-10-27 15:06:12 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 15:06:57 +0100 | knupfer | (~Thunderbi@200116b82cb7c4008d74fd1dd144f3b4.dip.versatel-1u1.de) |
2020-10-27 15:08:46 +0100 | <gothnbass> | It's a 2-layer app, where the layer closes to the DB is basically an engine that dynamically constructs a REST API according to whatever the DB says is valid. I started with porting the webapp first, which receives JSON objects, and is expected to deal with them on the fly. It _can_ fetch the schema via the API, but of course that's also a runtime operation. |
2020-10-27 15:10:27 +0100 | <gothnbass> | But keeping them in JSON is an interesting idea. It hadn't occurred to me to parse them that far and no further. Thanks for the pointer! |
2020-10-27 15:10:53 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 15:11:08 +0100 | <dminuoso> | gothnbass: JSON/Value might not be an ideal format though. |
2020-10-27 15:11:20 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds) |
2020-10-27 15:11:31 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-10-27 15:13:00 +0100 | <dminuoso> | gothnbass: Maybe I misunderstood. Are the data in JSON, or the definitions? |
2020-10-27 15:13:02 +0100 | ddellacosta | (~dd@86.106.121.168) |
2020-10-27 15:13:23 +0100 | <dminuoso> | Also, can these things be nested? Can there be recursion? |
2020-10-27 15:13:35 +0100 | <dminuoso> | (That is, can the data be cyclic) |
2020-10-27 15:15:25 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds) |
2020-10-27 15:15:50 +0100 | <gothnbass> | dminuoso: JSON's just a representation format, but is a good fit. Absolutely they can be nested and there can be recursion; it's part of the idea, so you can chase assocations from one node to another. |
2020-10-27 15:17:33 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-10-27 15:18:09 +0100 | <gothnbass> | dminuoso: Because of this, I'm using JSON as the format for returning data from the API, as well as for representing the schema when a client calls on that API to find out what's in there. What I'm actually trying to port right now is the webapp on top of the API, which receives JSON and constructs HTML accordingly. |
2020-10-27 15:18:48 +0100 | <gothnbass> | I'm basically putting a relational-inspired schema on top of a graph database, because you can't put one in there directly. This is the most practical (least impractical?) way I found of doing that. |
2020-10-27 15:19:13 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) (Ping timeout: 265 seconds) |
2020-10-27 15:19:42 +0100 | <dminuoso> | It's mildly amusing, that people go to great length to ignore 50 years of research in relational databases, put up unstructured databases, and then there's folks like you putting effort into figuring out how to specify a schema for that. |
2020-10-27 15:19:55 +0100 | <gothnbass> | I know, right? :) |
2020-10-27 15:20:30 +0100 | <Raito_Bezarius> | :D |
2020-10-27 15:20:40 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 15:20:43 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-10-27 15:21:19 +0100 | <dminuoso> | gothnbass: My first instinct, is to not think about JSON here. |
2020-10-27 15:21:22 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-10-27 15:21:29 +0100 | <gothnbass> | I love relational databases, and have since I first administered a production one in '97, but there are problem-spaces for which they're just not a good fit. Graph DBs are a great fit for this space, but I've seen the mess that can result when the data definitions are scattered through the codebase, and nobody actually defined a clear data model. |
2020-10-27 15:21:31 +0100 | <dminuoso> | JSON seems like a bad fit for a few reasons |
2020-10-27 15:21:44 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
2020-10-27 15:21:49 +0100 | <dminuoso> | If you want a graph, use proper graph data types. |
2020-10-27 15:22:07 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-27 15:22:18 +0100 | ddellacosta | (~dd@86.106.121.168) (Ping timeout: 260 seconds) |
2020-10-27 15:22:36 +0100 | ddellacosta | (~dd@86.106.121.168) |
2020-10-27 15:22:41 +0100 | <dminuoso> | gothnbass: So far, any excuse I've heard for unstructured databases is just "We are too lazy/unprincipled/messy" |
2020-10-27 15:23:03 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-vkinnmkhoknarggj) |
2020-10-27 15:23:24 +0100 | <gothnbass> | dminuoso: also, "but properly updating the schema is haaard!" Well, yes, it often is. |
2020-10-27 15:23:49 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-10-27 15:23:49 +0100 | <dminuoso> | Yes. And all the engineering complexity you put into managing the schema *pales* in comparison to all the pain and effort you spend in working with completely unstructured data. |
2020-10-27 15:24:29 +0100 | <gothnbass> | Hence me wanting to put a structure onto it, complete with constraints on what kind of relationships you can make between what kinds of nodes. |
2020-10-27 15:24:39 +0100 | <dminuoso> | And it makes testing so much harder, data retrieval becomes complex, hard to optimize for, and very difficult to analyze with formal methods |
2020-10-27 15:24:45 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Ping timeout: 240 seconds) |
2020-10-27 15:24:56 +0100 | <dminuoso> | At any rate |
2020-10-27 15:25:17 +0100 | <dminuoso> | I have not solved that kind of problem, but I see absolutely no reason why haskell wouldn't be a prime candidate for this type of problem. |
2020-10-27 15:25:51 +0100 | <gothnbass> | Well, I already solved it in CL, so I'd hope it can do it :) |
2020-10-27 15:25:52 +0100 | <dminuoso> | Presumably you're doing something similar to OpenAPI? |
2020-10-27 15:26:37 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 15:27:36 +0100 | <gothnbass> | Will be, yes. At the moment the schema API basically returns a dump into JSON, which has been enough for debugging purposes. I plan to turn that into something OpenAPI-compliant. |
2020-10-27 15:30:19 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 15:31:47 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds) |
2020-10-27 15:31:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 15:34:00 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 15:34:25 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Ping timeout: 240 seconds) |
2020-10-27 15:35:18 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-plvaooheqznjbhqg) |
2020-10-27 15:35:30 +0100 | _vaibhavingale_ | (~Adium@203.188.228.9) |
2020-10-27 15:38:34 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds) |
2020-10-27 15:38:57 +0100 | Kaivo | (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 260 seconds) |
2020-10-27 15:40:58 +0100 | Kaivo | (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) |
2020-10-27 15:41:17 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 15:45:30 +0100 | debugloop | (~danieln@unaffiliated/debugloop) (Quit: WeeChat 2.9) |
2020-10-27 15:50:13 +0100 | ransom | (~c4264035@2601:285:201:6720:b121:bf7e:316a:1ddf) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 15:54:46 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) (Ping timeout: 272 seconds) |
2020-10-27 15:55:03 +0100 | bartemius | (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection) |
2020-10-27 15:56:19 +0100 | cpape | (~user@static.180.18.203.116.clients.your-server.de) (Remote host closed the connection) |
2020-10-27 15:56:30 +0100 | cpape | (~user@static.180.18.203.116.clients.your-server.de) |
2020-10-27 15:57:33 +0100 | <dsal> | Data.Aeson.Lens is pretty great for this kind of thing. |
2020-10-27 15:57:45 +0100 | idhugo | (~idhugo@users-1190.st.net.au.dk) (Ping timeout: 240 seconds) |
2020-10-27 15:58:28 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection) |
2020-10-27 15:59:38 +0100 | <gothnbass> | OK. Lens is a feature I've heard about, but haven't yet gotten to exploring. |
2020-10-27 16:00:01 +0100 | Criggie1 | (~Criggie@154.13.1.56) () |
2020-10-27 16:00:45 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2020-10-27 16:01:31 +0100 | clockboi | (~clockboi@p200300ef8f0a9b00f86fc02b1cd4ca0a.dip0.t-ipconnect.de) |
2020-10-27 16:01:54 +0100 | mirrorbird | (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
2020-10-27 16:02:31 +0100 | Rembane | (~Rembane@li346-36.members.linode.com) (Ping timeout: 256 seconds) |
2020-10-27 16:02:39 +0100 | Rembane | (~Rembane@li346-36.members.linode.com) |
2020-10-27 16:02:51 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Ping timeout: 260 seconds) |
2020-10-27 16:03:43 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds) |
2020-10-27 16:05:24 +0100 | dme2 | (~user@c-24-1-191-153.hsd1.il.comcast.net) |
2020-10-27 16:05:40 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
2020-10-27 16:05:46 +0100 | <__monty__> | Uhm, why does GHC 8.10 come with an older version of text than 8.4? |
2020-10-27 16:06:25 +0100 | <Uniaika> | I think it's a plain mistake |
2020-10-27 16:06:33 +0100 | <Uniaika> | __monty__: what's the status with 8.10.1? |
2020-10-27 16:06:59 +0100 | <__monty__> | Uniaika: Same for both 1.2.3.2. |
2020-10-27 16:07:19 +0100 | <__monty__> | And the 8.8 series came with 1.2.4.0 |
2020-10-27 16:10:02 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-10-27 16:10:26 +0100 | Tops2 | (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de) |
2020-10-27 16:10:41 +0100 | <Uniaika> | __monty__: shit, indeed |
2020-10-27 16:10:42 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c4601c5635e0548f7339d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 16:11:16 +0100 | polyrain | (~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 16:13:41 +0100 | Kaivo | (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Quit: WeeChat 2.9) |
2020-10-27 16:14:46 +0100 | Kaivo | (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) |
2020-10-27 16:16:28 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-10-27 16:17:35 +0100 | toorevitimirp | (~tooreviti@117.182.180.36) (Remote host closed the connection) |
2020-10-27 16:17:49 +0100 | <Uniaika> | __monty__: 8.10.1 should have indeed bundled 1.2.4.0 https://gitlab.haskell.org/ghc/ghc/-/issues/17214 |
2020-10-27 16:18:12 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds) |
2020-10-27 16:18:23 +0100 | SanchayanM | (~Sanchayan@122.167.95.166) (Quit: leaving) |
2020-10-27 16:19:32 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-10-27 16:19:48 +0100 | <yushyin> | https://github.com/haskell/text/issues/279 |
2020-10-27 16:21:21 +0100 | jedi1 | (~jedi@185.204.1.185) |
2020-10-27 16:22:28 +0100 | hackage | byline 1.1.0.0 - Library for creating command-line interfaces (colors, menus, etc.) https://hackage.haskell.org/package/byline-1.1.0.0 (PeterJones) |
2020-10-27 16:22:46 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
2020-10-27 16:22:50 +0100 | <merijn> | __monty__: Due to a miscoordination fuck up |
2020-10-27 16:22:57 +0100 | <merijn> | __monty__: THe older text is intentional (sadly) |
2020-10-27 16:23:07 +0100 | acidjnk_new | (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) |
2020-10-27 16:23:31 +0100 | <monsterchrom> | Data is always structured. Even the most ardent user of "everything is string" has a much-more-rigorously-structured-than-string model. "unstructured" means there is a structure in someone's mind but they are too smug to spell it out. |
2020-10-27 16:24:01 +0100 | <merijn> | __monty__: https://github.com/haskell/text/issues/273 |
2020-10-27 16:24:18 +0100 | <monsterchrom> | Err nevermind, late by an hour. |
2020-10-27 16:30:41 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 16:30:49 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-10-27 16:30:52 +0100 | bliminse | (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) (Ping timeout: 260 seconds) |
2020-10-27 16:30:59 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 16:31:00 +0100 | <gothnbass> | No matter: I agree with your point. There's always a structure somewhere in there; it's just a question of how it's communicated. |
2020-10-27 16:31:01 +0100 | teardown | (~user@unaffiliated/mrush) (Client Quit) |
2020-10-27 16:31:46 +0100 | bliminse | (~bliminse@host109-158-129-241.range109-158.btcentralplus.com) |
2020-10-27 16:31:52 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-27 16:32:19 +0100 | <gothnbass> | Well, also whether it emanates from the minds of humans or Great Old Ones. I swear some structures aren't just non-relational, but outright non-Euclidean. |
2020-10-27 16:33:14 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 16:36:13 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 264 seconds) |
2020-10-27 16:38:06 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 16:40:26 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) |
2020-10-27 16:42:20 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 16:45:28 +0100 | whald_ | (~trem@2a02:810a:8100:11a6:719f:1c0f:efe6:863b) (Remote host closed the connection) |
2020-10-27 16:46:14 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 16:49:58 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-hxonwkkgkhrxlnbv) |
2020-10-27 16:52:09 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 16:54:43 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2020-10-27 16:57:17 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Quit: birdd) |
2020-10-27 16:57:48 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2020-10-27 17:00:18 +0100 | knupfer | (~Thunderbi@200116b82cb7c4008d74fd1dd144f3b4.dip.versatel-1u1.de) (Remote host closed the connection) |
2020-10-27 17:00:32 +0100 | knupfer | (~Thunderbi@200116b82cb7c400d8c9d953179e22c7.dip.versatel-1u1.de) |
2020-10-27 17:00:48 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2020-10-27 17:01:01 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-10-27 17:01:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 17:01:45 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2020-10-27 17:03:26 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-10-27 17:03:39 +0100 | Abletai | (~Lautris@p5df28535.dip0.t-ipconnect.de) |
2020-10-27 17:04:34 +0100 | <Raito_Bezarius> | is there a Text version of Read? |
2020-10-27 17:04:36 +0100 | <Raito_Bezarius> | read * |
2020-10-27 17:05:15 +0100 | Abletai | (~Lautris@p5df28535.dip0.t-ipconnect.de) (Client Quit) |
2020-10-27 17:05:42 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) (Ping timeout: 272 seconds) |
2020-10-27 17:06:18 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
2020-10-27 17:07:21 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-10-27 17:07:28 +0100 | hackage | http-client-openssl 0.3.2.0 - http-client backend using the OpenSSL library. https://hackage.haskell.org/package/http-client-openssl-0.3.2.0 (MichaelSnoyman) |
2020-10-27 17:08:00 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2020-10-27 17:08:59 +0100 | kuribas | (~user@ptr-25vy0i99c8o0gmravvh.18120a2.ip6.access.telenet.be) |
2020-10-27 17:09:09 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-10-27 17:09:16 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-10-27 17:10:45 +0100 | <T0pH4t> | so should this not be legal, I get that x is a rigid type if I try to invoke it with an instance of Show, but it should be legal... `data ShowW = forall x. Show x => ShowW (x -> String)` |
2020-10-27 17:10:52 +0100 | <T0pH4t> | i feel like i'm screwing up the type sig |
2020-10-27 17:11:38 +0100 | <tomsmeding> | T0pH4t: what is your intention with that data type? |
2020-10-27 17:12:07 +0100 | <T0pH4t> | its a simple example, but essentially `case w of ShowW f -> f (8 :: Int)` |
2020-10-27 17:12:11 +0100 | <T0pH4t> | for example ^ |
2020-10-27 17:12:27 +0100 | <tomsmeding> | as it's written, that 'x' in 'forall x' is an existential variable |
2020-10-27 17:12:29 +0100 | StoneToad_ | (~StoneToad@199-167-119-149.ppp.storm.ca) |
2020-10-27 17:12:40 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-10-27 17:12:46 +0100 | <tomsmeding> | meaning that if you have a value ShowW f, then there _exists_ an x such that f is of type x -> String |
2020-10-27 17:13:17 +0100 | <tomsmeding> | since you can't know whether that x is Int, that application f (8 :: Int) won't typecheck |
2020-10-27 17:13:24 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-10-27 17:13:30 +0100 | <T0pH4t> | well x is an instance of Show.. |
2020-10-27 17:13:33 +0100 | nitrix | (~nitrix@haskell/developer/nitrix) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-10-27 17:13:34 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-10-27 17:13:38 +0100 | <tomsmeding> | sure, but you don't know which one |
2020-10-27 17:13:42 +0100 | <T0pH4t> | the function should not care about x |
2020-10-27 17:13:43 +0100 | <tomsmeding> | might be Float |
2020-10-27 17:13:49 +0100 | <T0pH4t> | could be, should not care |
2020-10-27 17:13:55 +0100 | <T0pH4t> | all it cares is that x has show |
2020-10-27 17:13:57 +0100 | <tomsmeding> | but you're applying it to an Int! |
2020-10-27 17:14:13 +0100 | <T0pH4t> | right, but x is a Show instance |
2020-10-27 17:14:22 +0100 | <tomsmeding> | perhaps you wanted your declaration to mean: for _any_ x that is Show, f is a function that takes it |
2020-10-27 17:14:29 +0100 | <tomsmeding> | is that accurate? |
2020-10-27 17:14:30 +0100 | <T0pH4t> | yes |
2020-10-27 17:14:33 +0100 | <tomsmeding> | right |
2020-10-27 17:14:47 +0100 | <T0pH4t> | which is why i think my type sig is wrong :/ |
2020-10-27 17:15:16 +0100 | <tomsmeding> | data ShowW = ShowW (forall x. Show x => x -> String) |
2020-10-27 17:15:21 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2020-10-27 17:15:22 +0100 | <tomsmeding> | now x is universally quantified |
2020-10-27 17:15:31 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) |
2020-10-27 17:15:38 +0100 | <tomsmeding> | so the _user_ of the ShowW can choose x |
2020-10-27 17:15:39 +0100 | StoneToad | (~StoneToad@199-167-119-186.ppp.storm.ca) (Ping timeout: 260 seconds) |
2020-10-27 17:15:47 +0100 | <T0pH4t> | that was it! thx tomsmeding. |
2020-10-27 17:15:58 +0100 | nitrix | (~nitrix@haskell/developer/nitrix) |
2020-10-27 17:15:59 +0100 | dmwitch | (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-10-27 17:16:04 +0100 | <tomsmeding> | as you wrote it, x was existentially quantified, so the _producer_ of the ShowW chooses x, and the caller has no idea which one was chosen |
2020-10-27 17:16:16 +0100 | <T0pH4t> | ok, make sense |
2020-10-27 17:16:37 +0100 | <T0pH4t> | odd that existentially would compile tho |
2020-10-27 17:16:43 +0100 | <T0pH4t> | i don't see how that could ever resolve |
2020-10-27 17:17:01 +0100 | dmwit | (~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) |
2020-10-27 17:17:06 +0100 | <tomsmeding> | well, consider the following type |
2020-10-27 17:17:31 +0100 | <tomsmeding> | data ToShow = forall x. Show x => ToShow (Int -> x) |
2020-10-27 17:17:54 +0100 | <tomsmeding> | then as the producer of a ToShow, you can insert any function from Int to something that implements Show |
2020-10-27 17:18:13 +0100 | bartemius | (~bartemius@109-252-20-20.nat.spd-mgts.ru) |
2020-10-27 17:18:13 +0100 | <tomsmeding> | as the user of a ToShow, you get a function Int -> x, where you have no idea what x is except that it implements Show |
2020-10-27 17:18:27 +0100 | <tomsmeding> | see: same situation as in your datatype, but suddenly you can actually use this |
2020-10-27 17:18:49 +0100 | <tomsmeding> | because if you have a ToShow f, then you can do 'show (f 42)', and you'll get a String :) |
2020-10-27 17:18:51 +0100 | <T0pH4t> | oh so it inverses |
2020-10-27 17:18:53 +0100 | <T0pH4t> | interesting |
2020-10-27 17:19:20 +0100 | <T0pH4t> | very cool, good to know. Thx! |
2020-10-27 17:19:34 +0100 | <tomsmeding> | https://wiki.haskell.org/Existential_type |
2020-10-27 17:19:38 +0100 | <tomsmeding> | this may or may not be a good explanation |
2020-10-27 17:20:09 +0100 | <T0pH4t> | haha as with many haskell wiki pages lol |
2020-10-27 17:20:40 +0100 | <tomsmeding> | do you know the use of GADTs for expression AST's? |
2020-10-27 17:20:48 +0100 | <tomsmeding> | (the typical motivating examples for GADTs) |
2020-10-27 17:21:21 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
2020-10-27 17:21:24 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection) |
2020-10-27 17:21:34 +0100 | <tomsmeding> | like this one https://en.wikibooks.org/wiki/Haskell/GADT#GADTs |
2020-10-27 17:22:04 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2020-10-27 17:22:08 +0100 | <tomsmeding> | sometimes it's useful to define the following: data SomeExpr = forall a. SomeExpr (Expr a) |
2020-10-27 17:22:34 +0100 | <T0pH4t> | yeah gdats i use fairly often |
2020-10-27 17:22:44 +0100 | <T0pH4t> | gadts* |
2020-10-27 17:22:55 +0100 | wraithm | (~wraithm@unaffiliated/wraithm) (Excess Flood) |
2020-10-27 17:22:59 +0100 | <tomsmeding> | e.g. a parser function might have type signature: String -> Either ErrorMsg SomeExpr |
2020-10-27 17:23:10 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-10-27 17:23:20 +0100 | <T0pH4t> | right, infact i'm buidling a parser right now ;) |
2020-10-27 17:23:37 +0100 | <tomsmeding> | existentials are quite useful in some circumstances :) |
2020-10-27 17:24:12 +0100 | <tomsmeding> | the syntax where the exact placement of the 'forall' determines whether it's universal or existential can be very counter-intuitive however |
2020-10-27 17:24:15 +0100 | <T0pH4t> | for example `data Parser a = PNum (forall x. (GTLType x, Num x) => I.Expression x -> I.GTL a)` |
2020-10-27 17:24:18 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-10-27 17:24:33 +0100 | <tomsmeding> | yeah there 'x' is universal |
2020-10-27 17:24:43 +0100 | <tomsmeding> | unsure what GTL is though :) |
2020-10-27 17:24:57 +0100 | <T0pH4t> | yeah, my own monad for the language |
2020-10-27 17:25:01 +0100 | wraithm | (~wraithm@unaffiliated/wraithm) |
2020-10-27 17:25:25 +0100 | <T0pH4t> | but then you can have `parseToken :: Token -> Parser a -> I.GTL a` |
2020-10-27 17:25:34 +0100 | <T0pH4t> | such that you can do some really cool stuff |
2020-10-27 17:26:57 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2020-10-27 17:26:57 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 17:27:34 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 17:27:47 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2020-10-27 17:29:46 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2020-10-27 17:30:11 +0100 | teardown | (~user@unaffiliated/mrush) () |
2020-10-27 17:30:12 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-10-27 17:30:21 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
2020-10-27 17:30:52 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Client Quit) |
2020-10-27 17:30:58 +0100 | taurux | (~taurux@net-93-151-203-8.cust.vodafonedsl.it) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-10-27 17:31:10 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
2020-10-27 17:31:35 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 17:34:16 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2020-10-27 17:34:58 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 17:36:40 +0100 | <T0pH4t> | so apparently this doesn't work :/ `parseToken t1 (PNum pure) >>= <blah>` assuming t1 contains an instance of Num such that Parser can be invoked. |
2020-10-27 17:36:57 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-10-27 17:37:42 +0100 | christo | (~chris@81.96.113.213) |
2020-10-27 17:38:40 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-10-27 17:38:49 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 17:39:41 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 258 seconds) |
2020-10-27 17:41:45 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2020-10-27 17:41:48 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-10-27 17:42:34 +0100 | teardown | (~user@unaffiliated/mrush) (Quit: leaving) |
2020-10-27 17:44:14 +0100 | Narinas | (~Narinas@189.223.113.190.dsl.dyn.telnor.net) |
2020-10-27 17:44:47 +0100 | dequbed | (~dequbed@yanduxian.paranoidlabs.org) (Read error: Connection reset by peer) |
2020-10-27 17:46:47 +0100 | Narinas | (~Narinas@189.223.113.190.dsl.dyn.telnor.net) (Client Quit) |
2020-10-27 17:48:22 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 17:49:53 +0100 | obihann | (~jhann@156.34.160.69) (Ping timeout: 260 seconds) |
2020-10-27 17:50:15 +0100 | obihann | (~jhann@156.34.160.69) |
2020-10-27 17:50:27 +0100 | acidjnk_new | (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 17:50:49 +0100 | <T0pH4t> | tomsmending: is there a way to get both univeral and existential? |
2020-10-27 17:51:25 +0100 | <T0pH4t> | ie the producer sets a and invoke set x, `data Parser a where PNum :: (forall x. (GTLType x, Num x) => (I.Expression x -> I.GTL a)) -> Parser a` |
2020-10-27 17:52:42 +0100 | nlhowell | (~nlhowell@don28-11.ln.rinet.ru) |
2020-10-27 17:52:47 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 17:55:51 +0100 | idhugo | (~idhugo@185.45.22.133) |
2020-10-27 17:56:25 +0100 | samlamamma | (~user@c-8283e355.05-76-616c6b1.bbcust.telenor.se) (Remote host closed the connection) |
2020-10-27 17:56:55 +0100 | <monsterchrom> | If you mean nesting and/or alternating, you can always do that, but you always have to define one more type for each quantifier. |
2020-10-27 17:57:03 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-10-27 17:58:11 +0100 | nitrix | (~nitrix@haskell/developer/nitrix) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-10-27 17:58:26 +0100 | solonarv | (~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr) |
2020-10-27 17:58:31 +0100 | nitrix | (~nitrix@haskell/developer/nitrix) |
2020-10-27 18:01:49 +0100 | <T0pH4t> | mm not sure i get ur meaning monsterchrom, I'm basically want the producer to set the output type based on a consume setting the input type. |
2020-10-27 18:02:01 +0100 | <T0pH4t> | so in theory producer has context to chose how to convert w/e the consumer gives it |
2020-10-27 18:03:47 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-10-27 18:05:25 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds) |
2020-10-27 18:05:35 +0100 | nick__ | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-10-27 18:06:03 +0100 | nick__ | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection) |
2020-10-27 18:08:20 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
2020-10-27 18:08:29 +0100 | <tomsmeding> | T0pH4t: can you write your desired datatype using 'forall' and some hypothetical construct 'exists'? |
2020-10-27 18:08:51 +0100 | thblt | (~thblt@unaffiliated/thblt) |
2020-10-27 18:08:56 +0100 | <monsterchrom> | Oh then it's vanilla polymorphic function. For example, reverse :: [a] -> [a] means the caller decides that the input list should be [Int], so reverse spits out [Int] too. |
2020-10-27 18:09:29 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-10-27 18:09:46 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-10-27 18:10:20 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 18:10:58 +0100 | <nlhowell> | I am trying to write a typeclass instance for Compose F G where F and G are functors; is there any way I can avoid wrapping arguments with Compose { getCompose = ... } ? |
2020-10-27 18:11:10 +0100 | <nlhowell> | (without going point-free) |
2020-10-27 18:11:33 +0100 | <T0pH4t> | so evectively that parser example a few lines up. But actually even what i suggest won't work in the larger context since my Num types can't be guaranteed :/ So for now don't worry about it |
2020-10-27 18:11:37 +0100 | <hyperisco> | nlhowell, no |
2020-10-27 18:11:40 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-10-27 18:11:54 +0100 | <hyperisco> | nlhowell, you don't have to use record syntax though |
2020-10-27 18:11:56 +0100 | <T0pH4t> | tomsmending: thx for now! |
2020-10-27 18:12:27 +0100 | <thblt> | I have a function that produces multiple named files (a compiler of sorts), that I'd rather not write directly in IO, but I'm not sure of an idiomatic way to type this. I was thinking of `type Compiler = Layout -> [(FilePath, String)]`. Does it sound reasonable? |
2020-10-27 18:12:43 +0100 | <nlhowell> | hyperisco: oh? what can i use instead? I think Compose is defined using record syntax |
2020-10-27 18:13:25 +0100 | <hyperisco> | nlhowell, it doesn't matter if it is defined that way, there is still the constructor named Compose |
2020-10-27 18:13:46 +0100 | <nlhowell> | ah, just "Compose x" |
2020-10-27 18:13:48 +0100 | <nlhowell> | thanks! |
2020-10-27 18:13:56 +0100 | <hyperisco> | nlhowell, np |
2020-10-27 18:13:59 +0100 | <nlhowell> | that's at least a lot less typing :) |
2020-10-27 18:14:22 +0100 | <hyperisco> | newtype wrapping and unwrapping is a struggle |
2020-10-27 18:15:01 +0100 | <nlhowell> | i was hoping for some extension that does some auto-coerce or something |
2020-10-27 18:15:36 +0100 | <nlhowell> | but avoiding the record syntax with the wordy getCompose= is more than half the battle |
2020-10-27 18:17:04 +0100 | kuribas | (~user@ptr-25vy0i99c8o0gmravvh.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2020-10-27 18:19:35 +0100 | dcoutts_ | (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 260 seconds) |
2020-10-27 18:23:08 +0100 | LKoen | (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) |
2020-10-27 18:26:06 +0100 | dequbed | (~dequbed@2001:bc8:3f24:100::1) |
2020-10-27 18:26:53 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2020-10-27 18:26:55 +0100 | FreeBird_ | (~freebirdl@101.228.42.108) |
2020-10-27 18:27:11 +0100 | thunderrd | (~thunderrd@183.182.115.32) (Ping timeout: 272 seconds) |
2020-10-27 18:28:13 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Read error: Connection reset by peer) |
2020-10-27 18:30:03 +0100 | debugloop | (~danieln@unaffiliated/debugloop) |
2020-10-27 18:30:05 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
2020-10-27 18:30:26 +0100 | justsomeguy | (~justsomeg@071-046-056-025.res.spectrum.com) |
2020-10-27 18:30:26 +0100 | justsomeguy | (~justsomeg@071-046-056-025.res.spectrum.com) (Changing host) |
2020-10-27 18:30:26 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-10-27 18:33:36 +0100 | alx741 | (~alx741@186.178.110.246) (Ping timeout: 256 seconds) |
2020-10-27 18:36:16 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Quit: quit) |
2020-10-27 18:38:07 +0100 | _vaibhavingale_1 | (~Adium@203.188.228.9) |
2020-10-27 18:39:36 +0100 | christo | (~chris@81.96.113.213) |
2020-10-27 18:39:38 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 18:40:04 +0100 | akegalj | (~akegalj@93-142-98-67.adsl.net.t-com.hr) |
2020-10-27 18:41:01 +0100 | _vaibhavingale_ | (~Adium@203.188.228.9) (Ping timeout: 264 seconds) |
2020-10-27 18:41:16 +0100 | thunderrd | (~thunderrd@183.182.111.47) |
2020-10-27 18:42:50 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-10-27 18:43:52 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Ping timeout: 256 seconds) |
2020-10-27 18:45:52 +0100 | xff0x | (~fox@2001:1a81:5219:2300:5d08:4351:f573:c6af) (Ping timeout: 260 seconds) |
2020-10-27 18:46:38 +0100 | alx741 | (~alx741@186.178.110.246) |
2020-10-27 18:46:46 +0100 | xff0x | (~fox@2001:1a81:5219:2300:d7e5:2604:caa8:802b) |
2020-10-27 18:49:08 +0100 | shadowdao | (~user@unaffiliated/shadowdaemon) |
2020-10-27 18:52:39 +0100 | jakob_ | (~jakob@p200300f49f162200916e30f6bddaa13c.dip0.t-ipconnect.de) |
2020-10-27 18:52:49 +0100 | cylon007 | (~user@173.225.251.134) |
2020-10-27 18:53:23 +0100 | <cylon007> | ls |
2020-10-27 18:54:08 +0100 | perry69420 | (6ee39f85@110.227.159.133) (Remote host closed the connection) |
2020-10-27 18:54:23 +0100 | cylon007 | (~user@173.225.251.134) (Client Quit) |
2020-10-27 18:57:12 +0100 | Tops2 | (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de) (Ping timeout: 265 seconds) |
2020-10-27 18:57:13 +0100 | cylon007 | (~user@173.225.251.134) |
2020-10-27 19:00:02 +0100 | jedi1 | (~jedi@185.204.1.185) () |
2020-10-27 19:00:13 +0100 | asheshambasta | (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
2020-10-27 19:01:13 +0100 | cylon007 | (~user@173.225.251.134) () |
2020-10-27 19:01:21 +0100 | jakob_ | (~jakob@p200300f49f162200916e30f6bddaa13c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:02:51 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) |
2020-10-27 19:03:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-10-27 19:04:01 +0100 | alp | (~alp@2a01:e0a:58b:4920:aca7:fd95:ef08:3e24) (Ping timeout: 272 seconds) |
2020-10-27 19:05:27 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 19:06:03 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 19:06:12 +0100 | <danza> | texasmynsted, did you choose your library for shell scripting? |
2020-10-27 19:07:09 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
2020-10-27 19:07:35 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 19:07:44 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 19:08:52 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 19:10:32 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 19:12:07 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 19:15:40 +0100 | gothnbass | (~kvirc@111.red-83-37-117.dynamicip.rima-tde.net) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
2020-10-27 19:15:41 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-10-27 19:16:00 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 19:17:05 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-10-27 19:18:21 +0100 | danza | (~francesco@151.53.87.185) (Quit: Leaving) |
2020-10-27 19:18:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-10-27 19:19:55 +0100 | valli1 | (~valli@185.244.214.217) |
2020-10-27 19:20:21 +0100 | concept2 | (~concept2@unaffiliated/tubo) (Read error: Connection reset by peer) |
2020-10-27 19:20:35 +0100 | concept2 | (~concept2@unaffiliated/tubo) |
2020-10-27 19:20:36 +0100 | emmanuel_erc | (~user@2604:2000:1382:ce03:6974:40c4:284f:7839) (Remote host closed the connection) |
2020-10-27 19:21:04 +0100 | bartemius | (~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection) |
2020-10-27 19:21:25 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-10-27 19:22:09 +0100 | jneira | (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) (Quit: Connection closed) |
2020-10-27 19:23:32 +0100 | av3games | (6cfab89c@108-250-184-156.lightspeed.gnvlsc.sbcglobal.net) |
2020-10-27 19:23:36 +0100 | <av3games> | hello |
2020-10-27 19:23:38 +0100 | <av3games> | i need |
2020-10-27 19:23:41 +0100 | <av3games> | help |
2020-10-27 19:23:58 +0100 | <av3games> | i am new to haskell and idk what this is |
2020-10-27 19:24:16 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 19:24:22 +0100 | <av3games> | <interactive>:3:1: error: * Variable not in scope: main * Perhaps you meant `min' (imported from Prelude) |
2020-10-27 19:24:51 +0100 | Amras | (~Amras@unaffiliated/amras0000) (Remote host closed the connection) |
2020-10-27 19:24:57 +0100 | <av3games> | here's my code:import Data.Listimport System.IO-- Int -2^63 - 2^63maxInt = maxBound :: Int |
2020-10-27 19:25:01 +0100 | <av3games> | import Data.Listimport System.IO-- Int -2^63 - 2^63maxInt = maxBound :: Int |
2020-10-27 19:25:05 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2020-10-27 19:25:10 +0100 | <av3games> | ... |
2020-10-27 19:25:19 +0100 | <ghoulguy> | av3games: What's your file named? |
2020-10-27 19:25:29 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-10-27 19:25:31 +0100 | <av3games> | main.hs |
2020-10-27 19:25:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-10-27 19:25:38 +0100 | <av3games> | i am stupid |
2020-10-27 19:25:54 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-10-27 19:25:56 +0100 | <av3games> | i am new to haskell |
2020-10-27 19:26:15 +0100 | <ghoulguy> | change the name to something like: Fun.hs |
2020-10-27 19:26:23 +0100 | <ghoulguy> | and then add this to the top of your file: module Fun where |
2020-10-27 19:26:30 +0100 | <av3games> | ok |
2020-10-27 19:26:32 +0100 | <av3games> | thx |
2020-10-27 19:26:35 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-10-27 19:26:54 +0100 | <ghoulguy> | av3games: By default, if you don't specify a 'module' line, you get this by default: module Main (main) where |
2020-10-27 19:27:03 +0100 | <ghoulguy> | which assumes you've defined a 'main' to export |
2020-10-27 19:27:08 +0100 | <av3games> | ok |
2020-10-27 19:27:32 +0100 | <av3games> | thanks ghoulguy |
2020-10-27 19:27:42 +0100 | Amras | (~Amras@unaffiliated/amras0000) |
2020-10-27 19:29:48 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d1e5:1a77:fd52:7b88) (Quit: Textual IRC Client: www.textualapp.com) |
2020-10-27 19:30:57 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-10-27 19:31:33 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:79dc:6e3d:1f6f:5c9) |
2020-10-27 19:31:38 +0100 | Tops2 | (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de) |
2020-10-27 19:31:47 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Remote host closed the connection) |
2020-10-27 19:32:17 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 260 seconds) |
2020-10-27 19:32:59 +0100 | av3games | (6cfab89c@108-250-184-156.lightspeed.gnvlsc.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 19:35:21 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-10-27 19:35:22 +0100 | _vaibhavingale_1 | (~Adium@203.188.228.9) (Ping timeout: 256 seconds) |
2020-10-27 19:35:37 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds) |
2020-10-27 19:35:55 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 19:37:05 +0100 | idhugo | (~idhugo@185.45.22.133) (Ping timeout: 240 seconds) |
2020-10-27 19:37:15 +0100 | Lord_of_Life | (~Lord@46.217.223.11) (Changing host) |
2020-10-27 19:37:15 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-10-27 19:37:48 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:37:58 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) |
2020-10-27 19:38:35 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:38:44 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) |
2020-10-27 19:39:04 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 19:39:23 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:39:27 +0100 | akegalj | (~akegalj@93-142-98-67.adsl.net.t-com.hr) (Quit: leaving) |
2020-10-27 19:39:32 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) |
2020-10-27 19:40:10 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:40:19 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) |
2020-10-27 19:40:25 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds) |
2020-10-27 19:40:27 +0100 | nschoe | (~quassel@2a01:e0a:3c4:c7b0:496b:6bb1:2a12:b6fe) |
2020-10-27 19:40:58 +0100 | jakob_ | (~jakob@p200300f49f1622005d925613eec2f60c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:41:36 +0100 | fendor | (~fendor@91.141.2.36.wireless.dyn.drei.com) |
2020-10-27 19:41:37 +0100 | dmwit | dmwitch |
2020-10-27 19:42:44 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-10-27 19:42:51 +0100 | hyiltiz | (~quassel@82.118.227.47) |
2020-10-27 19:42:51 +0100 | hyiltiz | (~quassel@82.118.227.47) (Changing host) |
2020-10-27 19:42:51 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2020-10-27 19:44:51 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2020-10-27 19:47:42 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:48:45 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds) |
2020-10-27 19:49:09 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-10-27 19:52:14 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-10-27 19:53:31 +0100 | clockboi | (~clockboi@p200300ef8f0a9b00f86fc02b1cd4ca0a.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-10-27 19:54:13 +0100 | falsifian | (~falsifian@cpef81d0f9cb2f3-cmf81d0f9cb2f0.cpe.net.fido.ca) |
2020-10-27 19:56:10 +0100 | wroathe_ | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 19:56:45 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2020-10-27 19:57:15 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c4601bdd32dc7d6289d04.dip0.t-ipconnect.de) |
2020-10-27 20:00:28 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds) |
2020-10-27 20:01:36 +0100 | dcoutts_ | (~duncan@33.14.75.194.dyn.plus.net) |
2020-10-27 20:01:52 +0100 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-27 20:01:52 +0100 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-27 20:01:52 +0100 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-27 20:02:25 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds) |
2020-10-27 20:02:40 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds) |
2020-10-27 20:03:09 +0100 | Tops2 | (~Tobias@dyndsl-095-033-025-205.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2020-10-27 20:03:15 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-10-27 20:03:25 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds) |
2020-10-27 20:03:35 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-10-27 20:03:43 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 20:03:48 +0100 | z0_ | (~z0@bl15-160-182.dsl.telepac.pt) (Read error: Connection reset by peer) |
2020-10-27 20:04:16 +0100 | kish | (~oracle@unaffiliated/oracle) (Ping timeout: 256 seconds) |
2020-10-27 20:04:34 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 20:09:21 +0100 | ggole | (~ggole@2001:8003:8119:7200:b94d:2b16:8058:a9b7) (Quit: Leaving) |
2020-10-27 20:09:39 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-10-27 20:09:54 +0100 | aarvar | (~foewfoiew@50.35.43.33) |
2020-10-27 20:11:02 +0100 | <falsifian> | I'm trying to understand how to work around the monomorphism restriction. If I write (in a .hs file) "x = let f = show in (f 1, f ())", I get an error, which matches my understanding ("No instance for (Num ()) arising from the literal ‘1’"). But what confuses me is that if I write "x = let f = show :: Show a => a -> String in (f 1, f ())" I get the same error. Can I not explicitly tell the compiler |
2020-10-27 20:11:08 +0100 | <falsifian> | the let-bound identifier f should be polymorphic? |
2020-10-27 20:12:42 +0100 | <thblt> | I *think* you need to be explicit about the type of 1, because number literals are polymorphic too. |
2020-10-27 20:13:05 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 265 seconds) |
2020-10-27 20:13:15 +0100 | <geekosaur> | > let f :: Show a => a -> String; f = show in (f 1, f ()) |
2020-10-27 20:13:17 +0100 | <lambdabot> | ("1","()") |
2020-10-27 20:13:31 +0100 | <falsifian> | Replacing 1 with (1::Int) just changes the error to "Couldn't match expected type ‘Int’ with actual type ‘()’" |
2020-10-27 20:13:35 +0100 | <geekosaur> | you assigned a type to show, not to f |
2020-10-27 20:14:01 +0100 | <merijn> | falsifian: "write a type signature"? :) |
2020-10-27 20:14:39 +0100 | <merijn> | falsifian: "f y = show y" should also work |
2020-10-27 20:14:48 +0100 | <merijn> | iirc |
2020-10-27 20:14:49 +0100 | Franciman | (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Quit: Leaving) |
2020-10-27 20:15:20 +0100 | <falsifian> | geekosaur, merijn: Thanks. It hadn't occurred to me that I wasn't giving f a type signature. |
2020-10-27 20:15:45 +0100 | <falsifian> | Yes, "f x = show x" fixes it too. |
2020-10-27 20:17:38 +0100 | <merijn> | monomorphism only apply when something "looks like a value" (i.e. no arguments) *and* has no type signature *and* is typeclass polymorphic |
2020-10-27 20:18:45 +0100 | mirrorbird | (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds) |
2020-10-27 20:20:25 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-10-27 20:20:25 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-10-27 20:20:25 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-10-27 20:21:40 +0100 | chenshen | (~chenshen@2620:10d:c090:400::4:bbc) |
2020-10-27 20:22:02 +0100 | wroathe_ | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2020-10-27 20:22:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 20:23:51 +0100 | thblt | (~thblt@unaffiliated/thblt) ("ERC (IRC client for Emacs 27.1)") |
2020-10-27 20:24:27 +0100 | ahmr88 | (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
2020-10-27 20:24:54 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2020-10-27 20:24:59 +0100 | acidjnk_new | (~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) |
2020-10-27 20:27:52 +0100 | _vaibhavingale_ | (~Adium@42.106.218.208) |
2020-10-27 20:29:31 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-10-27 20:29:36 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2020-10-27 20:29:57 +0100 | hackage | aur 7.0.5 - Access metadata from the Arch Linux User Repository. https://hackage.haskell.org/package/aur-7.0.5 (fosskers) |
2020-10-27 20:30:28 +0100 | jneira | (501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) |
2020-10-27 20:30:57 +0100 | hackage | aura 3.2.0 - A secure package manager for Arch Linux and the AUR. https://hackage.haskell.org/package/aura-3.2.0 (fosskers) |
2020-10-27 20:31:30 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 20:34:37 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-10-27 20:34:52 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 20:35:11 +0100 | teardown | (~user@unaffiliated/mrush) (Client Quit) |
2020-10-27 20:37:17 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 20:38:56 +0100 | _vaibhavingale_ | (~Adium@42.106.218.208) (Read error: Connection reset by peer) |
2020-10-27 20:39:17 +0100 | fraktor | (~walt@129.93.191.18) |
2020-10-27 20:39:59 +0100 | <fraktor> | :t foldr (&&) True . map |
2020-10-27 20:40:00 +0100 | <lambdabot> | error: |
2020-10-27 20:40:00 +0100 | <lambdabot> | • Couldn't match type ‘[b]’ with ‘Bool’ |
2020-10-27 20:40:00 +0100 | <lambdabot> | Expected type: (a -> b) -> [a] -> Bool |
2020-10-27 20:40:08 +0100 | <fraktor> | I don't understand why this is happening. |
2020-10-27 20:40:57 +0100 | <xerox_> | map takes 2 arguments |
2020-10-27 20:41:08 +0100 | <xerox_> | :t (foldr (&&) True .) . map |
2020-10-27 20:41:09 +0100 | <lambdabot> | (a -> Bool) -> [a] -> Bool |
2020-10-27 20:41:21 +0100 | <fraktor> | Oh I see, it's a composition rule thing. |
2020-10-27 20:41:38 +0100 | <fraktor> | Why is the additional `.` required inside the parentheses? |
2020-10-27 20:41:44 +0100 | alp | (~alp@2a01:e0a:58b:4920:95e9:ca1e:6b04:cf54) |
2020-10-27 20:42:31 +0100 | <tomsmeding> | '(f . g) x' is equivalent to 'f (g x)', so '(foldr (&&) True . map) x' is equivalent to 'foldr (&&) True (map x)' |
2020-10-27 20:42:33 +0100 | <tomsmeding> | that won't work :) |
2020-10-27 20:42:58 +0100 | <fraktor> | I see. Thank you! |
2020-10-27 20:43:08 +0100 | <xerox_> | f . g = \x -> f (g x) so (foldr (&&) True .) . map = \f -> (foldr (&&) True .) (map f) = (foldr (&&) True) . (map f) = \xs -> foldr (&&) True (map f xs) |
2020-10-27 20:43:08 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-10-27 20:43:09 +0100 | <fraktor> | Also I know that `all` exists, I just wanted to see how I might implement it. |
2020-10-27 20:43:44 +0100 | <tomsmeding> | however, '(((foldr (&&) True .) . map) x) y' is equivalent to '((foldr (&&) True .) (map x)) y', which is '(foldr (&&) True . map x) y', which is 'foldr (&&) True (map x y)' |
2020-10-27 20:44:03 +0100 | <tomsmeding> | @src . |
2020-10-27 20:44:03 +0100 | <lambdabot> | (f . g) x = f (g x) |
2020-10-27 20:44:14 +0100 | <tomsmeding> | equational reasoning allows you to write it all out :) |
2020-10-27 20:44:45 +0100 | <fraktor> | I didn't know about the `src` thing, that's really cool! Is that lambdabot or ghci? |
2020-10-27 20:44:47 +0100 | <fraktor> | @src all |
2020-10-27 20:44:47 +0100 | <lambdabot> | all p = and . map p |
2020-10-27 20:44:53 +0100 | <fraktor> | :t all |
2020-10-27 20:44:54 +0100 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Bool |
2020-10-27 20:44:59 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-10-27 20:45:02 +0100 | <tomsmeding> | that's lambdabot; it gives you an idealised definition |
2020-10-27 20:45:13 +0100 | <tomsmeding> | the real definition might be more complicated for performance or generality reasons |
2020-10-27 20:45:18 +0100 | <fraktor> | "Idealized"? |
2020-10-27 20:45:29 +0100 | <fraktor> | Like, someone went and wrote these, or it generates them? |
2020-10-27 20:45:36 +0100 | <tomsmeding> | someone wrote these :p |
2020-10-27 20:45:52 +0100 | macrover | (~macrover@ip70-189-231-35.lv.lv.cox.net) |
2020-10-27 20:45:53 +0100 | <fraktor> | I was going to say... |
2020-10-27 20:46:00 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-10-27 20:46:02 +0100 | <fraktor> | :t (and .) . map |
2020-10-27 20:46:03 +0100 | <lambdabot> | (a -> Bool) -> [a] -> Bool |
2020-10-27 20:46:19 +0100 | <geekosaur> | the actual definitions are often optimized or generalized |
2020-10-27 20:46:27 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 20:46:35 +0100 | <tomsmeding> | for example, for (.) : https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Base.html#line-1443 |
2020-10-27 20:47:21 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) (Read error: Connection reset by peer) |
2020-10-27 20:47:28 +0100 | <tomsmeding> | (the comment helpfully explains why it's not the intuitive definition; 'base' is generally well-written like that) |
2020-10-27 20:49:00 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 20:49:04 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) |
2020-10-27 20:50:02 +0100 | <merijn> | fraktor: The definitions are lambdabot are mostly the ones copied from the Haskell Report |
2020-10-27 20:50:21 +0100 | jakob_ | (~textual@p57b0eae0.dip0.t-ipconnect.de) |
2020-10-27 20:50:30 +0100 | <maerwald> | tomsmeding: didn't you say ALE is good wrt LSP? |
2020-10-27 20:50:46 +0100 | <tomsmeding> | maerwald: in my very limited experience, yes |
2020-10-27 20:50:58 +0100 | <merijn> | maerwald: "works for me" |
2020-10-27 20:51:01 +0100 | <maerwald> | It does nothing here lol |
2020-10-27 20:51:14 +0100 | christo | (~chris@81.96.113.213) |
2020-10-27 20:51:17 +0100 | <tomsmeding> | you have to instruct it to use your language server probably |
2020-10-27 20:51:19 +0100 | <merijn> | maerwald: With which client? |
2020-10-27 20:51:24 +0100 | <merijn> | eh, server, I guess |
2020-10-27 20:52:10 +0100 | <maerwald> | https://paste.tomsmeding.com/EdTf9fLZ |
2020-10-27 20:52:12 +0100 | teardown | (~user@unaffiliated/mrush) (Quit: leaving) |
2020-10-27 20:53:03 +0100 | GyroW_ | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-27 20:53:11 +0100 | <maerwald> | wait, now it does something... seems the build just took longer than expected |
2020-10-27 20:53:19 +0100 | christo_ | (~chris@81.96.113.213) |
2020-10-27 20:53:22 +0100 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-27 20:53:22 +0100 | GyroW | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-27 20:53:22 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 20:53:39 +0100 | christo | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2020-10-27 20:53:42 +0100 | <tomsmeding> | in that case your cpu usage should've been an indicator that something was amiss :p |
2020-10-27 20:53:47 +0100 | <maerwald> | oh wow... a sensible default: only lint when saving |
2020-10-27 20:54:02 +0100 | <maerwald> | tomsmeding: not really, since hls often just gets stuck here and sticks to 100% cpu |
2020-10-27 20:54:13 +0100 | <tomsmeding> | interesting |
2020-10-27 20:54:23 +0100 | <tomsmeding> | have you tried plain ghcide? |
2020-10-27 20:54:53 +0100 | <maerwald> | and it behaves very funny when your project GHC is not the currently set ghc (the `ghc`) |
2020-10-27 20:55:36 +0100 | <maerwald> | https://user-images.githubusercontent.com/1241845/97086886-61c80980-1626-11eb-8874-5467c508d60e.png |
2020-10-27 20:55:38 +0100 | <maerwald> | then this happens |
2020-10-27 20:56:11 +0100 | <tomsmeding> | well at least you get some heating |
2020-10-27 20:56:19 +0100 | rprije | (~rprije@194-193-168-77.tpgi.com.au) |
2020-10-27 20:56:24 +0100 | <tomsmeding> | but I gather it works now? otherwise I can share my current setup |
2020-10-27 20:56:28 +0100 | <maerwald> | I don't get OOMed anymore since I bumped my ram, at least |
2020-10-27 20:56:42 +0100 | <maerwald> | how do you do stuff like goto definition and code actions? |
2020-10-27 20:56:42 +0100 | <tomsmeding> | yes with 16G you would've been out at this point :p |
2020-10-27 20:56:49 +0100 | <tomsmeding> | :ALEGoToDefinition |
2020-10-27 20:56:57 +0100 | <tomsmeding> | or map a key to <Plug>(ale_go_to_definition) |
2020-10-27 20:57:07 +0100 | <tomsmeding> | in general :ALE<tab> and their help sections |
2020-10-27 20:57:17 +0100 | ahmr88 | (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
2020-10-27 20:57:39 +0100 | <tomsmeding> | not sure how much support there is for code actions, I don't really use that myself |
2020-10-27 20:58:28 +0100 | <maerwald> | well, that doesn't do anything |
2020-10-27 20:58:46 +0100 | <maerwald> | with no error |
2020-10-27 20:59:09 +0100 | <tomsmeding> | has your cpu quieted down already? |
2020-10-27 20:59:12 +0100 | <maerwald> | seems not https://github.com/dense-analysis/ale/issues/1466 |
2020-10-27 20:59:20 +0100 | <tomsmeding> | if not, might want to wait for that to happen |
2020-10-27 20:59:26 +0100 | <maerwald> | that seems quite limited |
2020-10-27 20:59:32 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2020-10-27 20:59:37 +0100 | <maerwald> | also, my RSI kicks in again, so I'll stop now |
2020-10-27 20:59:47 +0100 | damianfral4 | (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
2020-10-27 21:00:26 +0100 | <maerwald> | (the import code action is very useful) |
2020-10-27 21:00:46 +0100 | <maerwald> | (at least if your project forces you to use explicit import, which I find nonsensical for the record) |
2020-10-27 21:00:58 +0100 | <maerwald> | (you can quote me :p) |
2020-10-27 21:01:37 +0100 | <tomsmeding> | I kind of like the custom, since it reduces dependence on IDE-like integration to navigate through code |
2020-10-27 21:02:17 +0100 | <tomsmeding> | within measure, of course; if you start importing >10 symbols from a module it's not worth the bother anymore |
2020-10-27 21:02:46 +0100 | damianfral3 | (~damianfra@174.red-37-13-187.dynamicip.rima-tde.net) (Ping timeout: 246 seconds) |
2020-10-27 21:03:01 +0100 | <tomsmeding> | but it's certainly a subjective point |
2020-10-27 21:04:03 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 21:04:49 +0100 | falsifian | (~falsifian@cpef81d0f9cb2f3-cmf81d0f9cb2f0.cpe.net.fido.ca) () |
2020-10-27 21:05:39 +0100 | taurux | (~taurux@net-93-151-203-8.cust.dsl.teletu.it) |
2020-10-27 21:08:34 +0100 | <hyperisco> | any hints on how I can hash a dhall config (I am using dhall as a library) |
2020-10-27 21:09:20 +0100 | <maerwald> | output as json, convert to dense format with newlinet removed, make sure you don't have trailing newline |
2020-10-27 21:09:33 +0100 | <maerwald> | and sort the objects |
2020-10-27 21:09:35 +0100 | <hyperisco> | wait why? |
2020-10-27 21:09:56 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) |
2020-10-27 21:10:03 +0100 | <tomsmeding> | or write a https://hackage.haskell.org/package/hashable-1.3.0.0/docs/Data-Hashable.html instance :p |
2020-10-27 21:10:07 +0100 | taurux | (~taurux@net-93-151-203-8.cust.dsl.teletu.it) (Ping timeout: 246 seconds) |
2020-10-27 21:10:15 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2020-10-27 21:10:19 +0100 | <hyperisco> | dhall supports hashing configs |
2020-10-27 21:10:31 +0100 | <maerwald> | oh, why do you ask then? :D |
2020-10-27 21:10:32 +0100 | taurux | (~taurux@net-130-25-120-80.cust.vodafonedsl.it) |
2020-10-27 21:10:33 +0100 | <hyperisco> | the tutorial just doesn't seem to say how to do it using dhall as a library rather than by cli |
2020-10-27 21:11:00 +0100 | <tomsmeding> | https://hackage.haskell.org/package/dhall-1.36.0/docs/Dhall-Import.html#v:hashExpression ? |
2020-10-27 21:11:05 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds) |
2020-10-27 21:11:44 +0100 | <maerwald> | hashExpressionToCode looks cool too |
2020-10-27 21:12:09 +0100 | <hyperisco> | I am not sure... so I decode the file with input auto |
2020-10-27 21:12:25 +0100 | <tomsmeding> | what is the type of the thing you want to hash? |
2020-10-27 21:12:27 +0100 | <hyperisco> | that gives me a type I defined with a FromDhall instance, not an Expr Void Void |
2020-10-27 21:12:40 +0100 | <tomsmeding> | ah |
2020-10-27 21:13:16 +0100 | <hyperisco> | is there a way to break it apart so I can get both? |
2020-10-27 21:13:27 +0100 | hackage | byline 1.1.0.1 - Library for creating command-line interfaces (colors, menus, etc.) https://hackage.haskell.org/package/byline-1.1.0.1 (PeterJones) |
2020-10-27 21:13:31 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-10-27 21:13:56 +0100 | <hyperisco> | well whatever, I'll just use the file mod time then oO |
2020-10-27 21:15:12 +0100 | knupfer | (~Thunderbi@200116b82cb7c400d8c9d953179e22c7.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-10-27 21:15:37 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 21:17:25 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-10-27 21:17:46 +0100 | Gujest_47 | (584bba29@dslb-088-075-186-041.088.075.pools.vodafone-ip.de) |
2020-10-27 21:17:57 +0100 | hackage | themoviedb 1.2.0.1 - Haskell API bindings for http://themoviedb.org https://hackage.haskell.org/package/themoviedb-1.2.0.1 (PeterJones) |
2020-10-27 21:18:43 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-10-27 21:18:54 +0100 | knupfer | (~Thunderbi@200116b82cb7c400e45e2cfffeea1a26.dip.versatel-1u1.de) |
2020-10-27 21:18:56 +0100 | knupfer | (~Thunderbi@200116b82cb7c400e45e2cfffeea1a26.dip.versatel-1u1.de) (Client Quit) |
2020-10-27 21:19:08 +0100 | knupfer | (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) |
2020-10-27 21:19:11 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 21:19:32 +0100 | Gujest_47 | (584bba29@dslb-088-075-186-041.088.075.pools.vodafone-ip.de) (Remote host closed the connection) |
2020-10-27 21:21:15 +0100 | <tomsmeding> | hyperisco: what about inputExpr and rawInput from the Dhall module? |
2020-10-27 21:21:53 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 21:22:49 +0100 | nuncanada | (~dude@179.235.160.168) (Read error: Connection reset by peer) |
2020-10-27 21:23:56 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-10-27 21:24:32 +0100 | xff0x | (~fox@2001:1a81:5219:2300:d7e5:2604:caa8:802b) (Ping timeout: 260 seconds) |
2020-10-27 21:24:57 +0100 | xff0x | (~fox@2001:1a81:5219:2300:29ba:4988:f159:6286) |
2020-10-27 21:27:13 +0100 | quaestor | (~quaestor@griffith.christophrauch.de) (Ping timeout: 264 seconds) |
2020-10-27 21:27:55 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-10-27 21:29:37 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 264 seconds) |
2020-10-27 21:30:04 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-10-27 21:31:49 +0100 | <maerwald> | I wanted to migrate an OpenAPI spec from yaml to dhall. I think that's a pretty good use case (e.g. abstracting and merging multiple types that represent sets of HTTP return codes) |
2020-10-27 21:31:59 +0100 | <maerwald> | yaml anchors don't really do merging |
2020-10-27 21:32:36 +0100 | teardown | (~user@unaffiliated/mrush) (Quit: leaving) |
2020-10-27 21:36:02 +0100 | mirrorbird | (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
2020-10-27 21:36:55 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 21:37:09 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:e20::e363) |
2020-10-27 21:38:03 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-10-27 21:38:21 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
2020-10-27 21:39:22 +0100 | sfvm | (~sfvm@37.228.215.148) |
2020-10-27 21:39:41 +0100 | yianni | (d8d049a0@216.208.73.160) |
2020-10-27 21:40:44 +0100 | nek0 | (~nek0@mail.nek0.eu) (Remote host closed the connection) |
2020-10-27 21:41:21 +0100 | nek0 | (~nek0@2a01:4f8:222:2b41::12) |
2020-10-27 21:41:37 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds) |
2020-10-27 21:41:41 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
2020-10-27 21:41:51 +0100 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-27 21:41:51 +0100 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-27 21:41:51 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 21:43:05 +0100 | lucasb | (uid333435@gateway/web/irccloud.com/x-qizvrgxqojerddcd) |
2020-10-27 21:43:31 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
2020-10-27 21:43:32 +0100 | thir | (~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-10-27 21:44:39 +0100 | Mrbuck | (~Mrbuck@gateway/tor-sasl/mrbuck) |
2020-10-27 21:45:32 +0100 | <Mrbuck> | https://youtu.be/O9upVbGSBFo?t=3801 Hi why did this guy said it took a week to write some small program in haskell and then it run like a turtle? |
2020-10-27 21:45:33 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-10-27 21:47:05 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 240 seconds) |
2020-10-27 21:47:34 +0100 | <Uniaika> | idk, never saw him around asking for help :P |
2020-10-27 21:47:44 +0100 | <Athas> | Mrbuck: I think he's exaggerating for effect, but Haskell is infamous for requiring more ceremony around IO. |
2020-10-27 21:48:16 +0100 | <Athas> | Regarding performance, it's possible he used one of the old interpreters (Hugs), or just had a space leak. Haskell is not generally a particularly slow or fast language. |
2020-10-27 21:48:28 +0100 | hyiltiz | (~quassel@82.118.227.47) |
2020-10-27 21:48:29 +0100 | hyiltiz | (~quassel@82.118.227.47) (Changing host) |
2020-10-27 21:48:29 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2020-10-27 21:49:03 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 21:49:43 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:79dc:6e3d:1f6f:5c9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 21:50:10 +0100 | jtobin | (~jtobin@li1555-212.members.linode.com) |
2020-10-27 21:50:20 +0100 | <maerwald> | They do some nice js bashing later though |
2020-10-27 21:50:20 +0100 | <Mrbuck> | Athas: Thank you for the answer |
2020-10-27 21:51:56 +0100 | <davean> | Haskell can produce quite fast code but calling GHC an optimizing compiler is a little silly. I can beat C implimentations in Haskell but I have to do the work. |
2020-10-27 21:52:09 +0100 | <davean> | When i don't its several times slower by default usually. |
2020-10-27 21:52:23 +0100 | <tomsmeding> | davean: ghc is an optimising compiler; if it didn't optimise your code, it would run a _lot_ slower ;) |
2020-10-27 21:52:33 +0100 | <tomsmeding> | attestable by using -O0 with ghc |
2020-10-27 21:52:34 +0100 | yianni | (d8d049a0@216.208.73.160) (Ping timeout: 245 seconds) |
2020-10-27 21:53:03 +0100 | <davean> | tomsmeding: I find the ASM GHC puts out to be pretty much the straight translation of my Haskell personally. |
2020-10-27 21:53:37 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-10-27 21:53:41 +0100 | <tomsmeding> | hm, perhaps most of the work is to strip away all the abstractions we like to make? |
2020-10-27 21:53:48 +0100 | <tomsmeding> | *most of the work it does |
2020-10-27 21:53:50 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2020-10-27 21:54:04 +0100 | <davean> | yes, thats most of the -O0 -O2 difference in many cases |
2020-10-27 21:54:10 +0100 | <davean> | directly refering to, and inlining things |
2020-10-27 21:54:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-10-27 21:54:16 +0100 | <maerwald> | I've never been able to beat C performance with haskell. That's an interesting statement |
2020-10-27 21:54:18 +0100 | <davean> | but the code its self is straight line either way |
2020-10-27 21:54:51 +0100 | <tomsmeding> | I wonder, ghc can use llvm as a backend, can't it? would that help? |
2020-10-27 21:54:54 +0100 | <davean> | maerwald: usually my benchmarks there are reasonable C programs that compitent people wrote but didn't care to spend time optimizing. |
2020-10-27 21:55:12 +0100 | <davean> | tomsmeding: LLVM doesn't help. Well it does, but only for heavy numerical portions of the code. |
2020-10-27 21:55:23 +0100 | <tomsmeding> | makes sense |
2020-10-27 21:55:27 +0100 | <davean> | for non-numerical codes, not using LLVM is faster |
2020-10-27 21:55:37 +0100 | <maerwald> | Ah, I thought you wrote both implementations |
2020-10-27 21:55:41 +0100 | <tomsmeding> | that may be the most interesting statement yet |
2020-10-27 21:55:55 +0100 | <maerwald> | Everything else isn't really representative imo |
2020-10-27 21:55:58 +0100 | <tomsmeding> | except if you mean _compilation_ is faster without llvm, which is unsurprising |
2020-10-27 21:56:07 +0100 | taurux | (~taurux@net-130-25-120-80.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2020-10-27 21:56:12 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
2020-10-27 21:56:15 +0100 | <davean> | maerwald: I'd say that isn't representative because that would be comparing how much effort and skill *I* had |
2020-10-27 21:56:19 +0100 | <davean> | tomsmeding: no |
2020-10-27 21:56:38 +0100 | <davean> | tomsmeding: I mean the generated program is faster without LLVM if its not generally numerical in nature. |
2020-10-27 21:56:45 +0100 | <maerwald> | Yes and yet it's the only useful comparison |
2020-10-27 21:56:53 +0100 | <tomsmeding> | that sounds like a huge failure of llvm then :p |
2020-10-27 21:56:57 +0100 | chenshen | (~chenshen@2620:10d:c090:400::4:bbc) (Ping timeout: 260 seconds) |
2020-10-27 21:56:57 +0100 | <tomsmeding> | or of ghc's usage of it |
2020-10-27 21:57:14 +0100 | yianni | (18390fbe@d24-57-15-190.home.cgocable.net) |
2020-10-27 21:57:21 +0100 | <davean> | maerwald: I don't think thats true "This is the actual C code people put out as final products" vs. "This is how I can do it in Haskell given $X time" is perfectly useful. |
2020-10-27 21:57:35 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 21:57:40 +0100 | <maerwald> | As in: I want to know if anyone proficient with both languages managed to beat C |
2020-10-27 21:57:52 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-27 21:57:59 +0100 | <maerwald> | I wasn't able to |
2020-10-27 21:58:14 +0100 | <davean> | maerwald: but that just says you're more proficient at C optimization |
2020-10-27 21:58:20 +0100 | <maerwald> | No |
2020-10-27 21:58:32 +0100 | <maerwald> | You need more data points |
2020-10-27 21:58:40 +0100 | m-renaud | (sid333785@gateway/web/irccloud.com/x-nlleieqxzwqsksor) (*.net *.split) |
2020-10-27 21:58:40 +0100 | albethere | (sid457088@gateway/web/irccloud.com/x-jhhnyunwyziyizkz) (*.net *.split) |
2020-10-27 21:58:40 +0100 | liquorice | (sid267884@gateway/web/irccloud.com/x-knalwnvbywyqzpnh) (*.net *.split) |
2020-10-27 21:58:40 +0100 | sis7_ | (~user@2001:15e8:110:473e::1) (*.net *.split) |
2020-10-27 21:58:40 +0100 | ^[_ | (sid43445@gateway/web/irccloud.com/x-gnsjjoiabatnywnb) (*.net *.split) |
2020-10-27 21:58:40 +0100 | J_Arcane | (sid119274@gateway/web/irccloud.com/x-iytmbzigvgcxgusu) (*.net *.split) |
2020-10-27 21:58:40 +0100 | ocharles | (sid30093@musicbrainz/user/ocharles) (*.net *.split) |
2020-10-27 21:58:40 +0100 | joshmeredith | (sid387798@gateway/web/irccloud.com/x-lhhtwrcyukiolswv) (*.net *.split) |
2020-10-27 21:58:40 +0100 | pong | (chiya@2406:3003:2077:2341::babe) (*.net *.split) |
2020-10-27 21:58:40 +0100 | nopf | (~frosch@static.179.17.76.144.clients.your-server.de) (*.net *.split) |
2020-10-27 21:58:48 +0100 | nopf | (~frosch@static.179.17.76.144.clients.your-server.de) |
2020-10-27 21:58:50 +0100 | liquorice | (sid267884@gateway/web/irccloud.com/x-volnulzrerkaifsx) |
2020-10-27 21:58:51 +0100 | m-renaud | (sid333785@gateway/web/irccloud.com/x-jxglvjindagumsef) |
2020-10-27 21:58:52 +0100 | J_Arcane | (sid119274@gateway/web/irccloud.com/x-bqxivhzktyeyfmzj) |
2020-10-27 21:58:54 +0100 | ocharles | (sid30093@musicbrainz/user/ocharles) |
2020-10-27 21:58:54 +0100 | joshmeredith | (sid387798@gateway/web/irccloud.com/x-hdepxcnffbqdlwvu) |
2020-10-27 21:58:59 +0100 | sis7_ | (~user@2001:15e8:110:473e::1) |
2020-10-27 21:58:59 +0100 | pong | (chiya@2406:3003:2077:2341::babe) |
2020-10-27 21:59:00 +0100 | albethere | (sid457088@gateway/web/irccloud.com/x-fmchgsvxhdmjvieq) |
2020-10-27 21:59:16 +0100 | ^[_ | (sid43445@gateway/web/irccloud.com/x-iztepeaguyumtzta) |
2020-10-27 21:59:56 +0100 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 256 seconds) |
2020-10-27 22:00:02 +0100 | valli1 | (~valli@185.244.214.217) () |
2020-10-27 22:00:48 +0100 | Majiir | (~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net) |
2020-10-27 22:00:49 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-10-27 22:01:00 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 22:01:46 +0100 | feuerbach_ | feuerbach |
2020-10-27 22:01:52 +0100 | notnatebtw | (~nate@125.161.130.165) |
2020-10-27 22:01:53 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 260 seconds) |
2020-10-27 22:02:05 +0100 | feuerbach | (~feuerbach@178.62.103.229) (Changing host) |
2020-10-27 22:02:05 +0100 | feuerbach | (~feuerbach@unaffiliated/feuerbach) |
2020-10-27 22:03:45 +0100 | <Athas> | It's a lot easier to write fast C than it is to write fast C. |
2020-10-27 22:04:00 +0100 | <Athas> | And fast C looks a lot more like idiomatic C than fast Haskell looks like idiomatic Haskell. |
2020-10-27 22:04:39 +0100 | <Athas> | Er: It's a lot easier to write fast C than it is to write fast Haskell. |
2020-10-27 22:04:39 +0100 | yianni | (18390fbe@d24-57-15-190.home.cgocable.net) (Ping timeout: 245 seconds) |
2020-10-27 22:06:09 +0100 | <davean> | Hum. I'd say yes and no. In C it "looks" idiomatic sometimes because theres no representation at all that its different then a horrificly slower design. Most C programmers I know would accidently trample some massice optimizations because they didn't see they were there because the language has litterly zero representation of the optimization. That said, theres a lot of basic optimizaiton mistakes |
2020-10-27 22:06:11 +0100 | <davean> | people make in Haskell that don't look much different either. (Though some super important optimizations are directly not idiomatic Haskell and thats sad and GHC should improve because the ones I'm thinking of shouldn't have to be done by hand at all) |
2020-10-27 22:06:15 +0100 | conal | (~conal@198.8.81.89) |
2020-10-27 22:06:55 +0100 | <davean> | Also, more Haskell optimizations are actually optimizations than ways to trick the compiler into generating the code you want. |
2020-10-27 22:07:00 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 22:07:04 +0100 | <davean> | So they stay optimizations. |
2020-10-27 22:07:05 +0100 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
2020-10-27 22:07:05 +0100 | GyroW_ | (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
2020-10-27 22:07:05 +0100 | GyroW_ | (~GyroW@unaffiliated/gyrow) |
2020-10-27 22:07:22 +0100 | <tromp> | It's also a lot easier to write correct Haskell than it is to write correct C :-) |
2020-10-27 22:07:30 +0100 | <davean> | Also C compilers are just *smarter* |
2020-10-27 22:07:49 +0100 | <Athas> | How are C compilers smarter? |
2020-10-27 22:08:03 +0100 | <davean> | Athas: Things like polygonal optimization for ASM instruction dependency breaking. |
2020-10-27 22:08:09 +0100 | <davean> | Athas: C compilers try to optimize code. |
2020-10-27 22:08:25 +0100 | <davean> | GHC translates what you write into ASM pretty directly. |
2020-10-27 22:08:26 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds) |
2020-10-27 22:08:48 +0100 | <davean> | GHC can't even unroll a fold against a CAF. |
2020-10-27 22:08:53 +0100 | conal | (~conal@198.8.81.89) (Client Quit) |
2020-10-27 22:08:54 +0100 | <Athas> | For things like instruction scheduling and register allocation? When going through LLVM, GHC should benefit from the same optimisations. |
2020-10-27 22:09:03 +0100 | <davean> | Athas: incorrect. |
2020-10-27 22:09:11 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 22:09:59 +0100 | <Athas> | Why not? |
2020-10-27 22:10:12 +0100 | <davean> | for a number of reasons, one LLVM doesn't have enough semantic representation left. |
2020-10-27 22:10:27 +0100 | <davean> | For another Haskell has more semantics defined. |
2020-10-27 22:10:38 +0100 | <davean> | which means that LLVM doesn't have the analysis capability |
2020-10-27 22:10:51 +0100 | <davean> | LLVM is fairly weak in understanding semantics, its too late for a number of things. |
2020-10-27 22:11:06 +0100 | <Athas> | Could you clarify what you mean by polygonal optimization? I'm not sure I've heard that term before (is it like polyhedral optimisation?), but my work is mostly in high-level optimisations. |
2020-10-27 22:11:14 +0100 | <tomsmeding> | why does it have that information then if it receives code from e.g. clang? |
2020-10-27 22:11:21 +0100 | <davean> | er, yes, sorry I got it autocorrected it seems. |
2020-10-27 22:11:46 +0100 | <davean> | tomsmeding: well for one they're designed for each other. |
2020-10-27 22:11:53 +0100 | <tomsmeding> | sure |
2020-10-27 22:12:03 +0100 | <Athas> | I'm not sure GCC or Clang does polyhedral optimisations by default, but I could be wrong. |
2020-10-27 22:12:10 +0100 | <tomsmeding> | but then it sounds to me like ghc is leaving some llvm attributes on the table |
2020-10-27 22:12:21 +0100 | <Athas> | Also, LLVM for sure only does polyhedral optimisations at the LLVM IR level (with Polly), and I'm not sure the C compiler helps. |
2020-10-27 22:12:31 +0100 | <Athas> | After all, LLVM barely even has loops - they are reconstructed on demand. |
2020-10-27 22:12:55 +0100 | <davean> | yes but based on the concept of how the C compiler works. |
2020-10-27 22:13:08 +0100 | <davean> | So GHC has things like boxing. |
2020-10-27 22:13:21 +0100 | <Athas> | Sure, LLVM shows its lineage as a C compiler backend, but I thought mostly in the area of nasty undefined behaviour semantics. |
2020-10-27 22:13:41 +0100 | <davean> | Athas: A) not only B) uh, don't you think thats the thing thats directly relivent here? |
2020-10-27 22:14:13 +0100 | <Athas> | By "undefined behaviour semantics", I mean things like LLVM removing some infinite loops, because they happen to be undefined in C. |
2020-10-27 22:14:25 +0100 | <Athas> | I'm not sure it matters much for the kinds of optimisations that would help GHC. |
2020-10-27 22:14:34 +0100 | conal | (~conal@198.8.81.89) |
2020-10-27 22:15:25 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2020-10-27 22:15:29 +0100 | <Athas> | Actually, I'm not really sure which optimisations would help GHC! Better automatic unboxing maybe? |
2020-10-27 22:15:30 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-10-27 22:16:27 +0100 | <davean> | Well yes, though thats not the sort of thing LLVM can reason about. Also just inlining certain things. There are a lot. I have further studies in it to do, but have been working on a bit of a search for which main ones its missing. |
2020-10-27 22:17:03 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-10-27 22:17:15 +0100 | teardown_ | (~user@unaffiliated/mrush) |
2020-10-27 22:17:17 +0100 | <Athas> | GHC does a lot of inlining, doesn't it? It's the enabler of all the other big GHC-level optimisations, like fusion, or anything else driven by simplification rules. |
2020-10-27 22:17:20 +0100 | teardown_ | (~user@unaffiliated/mrush) (Client Quit) |
2020-10-27 22:17:24 +0100 | <davean> | You can't "just" got from boxed to unboxed sums for example, and returning stuff as an unboxed tuple can be pretty massive. |
2020-10-27 22:17:41 +0100 | <davean> | Athas: I mean fusion and such is some pretty basic code rewriting. |
2020-10-27 22:18:00 +0100 | <davean> | Athas: Its a moderate framework for code no one optimized at all. |
2020-10-27 22:18:32 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2020-10-27 22:18:37 +0100 | <davean> | These optimizations *are* semantic changing though I want to point out. Which means they're very hard to talk about |
2020-10-27 22:18:42 +0100 | <davean> | and they're also data representation changing. |
2020-10-27 22:18:43 +0100 | <Athas> | I think there is great value in optimisations that let us write modular code without overhead, which is exactly what fusion does (in ideal cases). |
2020-10-27 22:18:57 +0100 | <davean> | Athas: with *less* overhead |
2020-10-27 22:19:01 +0100 | <Athas> | An optimisation that changes semantics is simply wrong, in the nomenclature I'm familiar with. |
2020-10-27 22:19:14 +0100 | teardown | (~user@unaffiliated/mrush) (Quit: leaving) |
2020-10-27 22:19:22 +0100 | <davean> | Athas: many change semantics locally but won't change them outside the function boundaries for example. |
2020-10-27 22:19:48 +0100 | zq | (~zq@xorshift.org) () |
2020-10-27 22:20:50 +0100 | <Athas> | I'm still not sure I understand. Could you name an example of such an optimisation? |
2020-10-27 22:21:03 +0100 | <davean> | Athas: well, a bang pattern. |
2020-10-27 22:21:07 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds) |
2020-10-27 22:21:20 +0100 | <davean> | That line evaluates differently but the function probably doesn't if the bang is appropriate. |
2020-10-27 22:21:41 +0100 | <Athas> | Those are certainly semantics-changing in an observable way, at least in general. |
2020-10-27 22:21:57 +0100 | <davean> | in general yes, but in many specific cases no |
2020-10-27 22:22:04 +0100 | <davean> | Hence GHC's strictness analysis |
2020-10-27 22:22:07 +0100 | <Athas> | GHC only does the equivalent of adding bang patterns when the strictness analyser determines it can be done without any observable semantic effect. |
2020-10-27 22:22:21 +0100 | <davean> | Right, but define "observable" there |
2020-10-27 22:22:31 +0100 | <davean> | Where is the observer? |
2020-10-27 22:22:35 +0100 | <Athas> | With respect to Haskell's (unwritten...) operational semantics. |
2020-10-27 22:22:38 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 22:22:46 +0100 | <davean> | that line *did* change but the function its in didn't usually is the answer |
2020-10-27 22:23:18 +0100 | <monsterchrom> | It doesn't look like this conversation is getting productive. |
2020-10-27 22:23:23 +0100 | <davean> | no it does not |
2020-10-27 22:23:34 +0100 | teardown | (~user@unaffiliated/mrush) (Client Quit) |
2020-10-27 22:23:41 +0100 | <davean> | I've been looking for how to step away from it politely. |
2020-10-27 22:23:44 +0100 | PlasmaStrike | (~mattplasm@38.73.141.198) |
2020-10-27 22:24:01 +0100 | <monsterchrom> | I recommend "I need a drink" :) |
2020-10-27 22:24:26 +0100 | <monsterchrom> | I'm always fond of "computer science has become a bit too technical, let's go for a drink" |
2020-10-27 22:24:52 +0100 | <monsterchrom> | Jay Misra said that after a conference. |
2020-10-27 22:24:53 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 258 seconds) |
2020-10-27 22:25:24 +0100 | <monsterchrom> | And of all people, he wrote a super technical, hard-to-follow proof in a paper (though not for that conference). |
2020-10-27 22:26:00 +0100 | teardown | (~user@unaffiliated/mrush) |
2020-10-27 22:26:23 +0100 | ahmr88 | (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) |
2020-10-27 22:26:36 +0100 | teardown | (~user@unaffiliated/mrush) (Client Quit) |
2020-10-27 22:27:08 +0100 | <monsterchrom> | To be fair, his proof was merely operational semantics chasing. In the conference, some of the speakers inflicted monads on us. |
2020-10-27 22:27:17 +0100 | bob_twinkles | (~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-10-27 22:27:27 +0100 | <davean> | Monads are the definition of terrible, clearly. |
2020-10-27 22:27:28 +0100 | <monsterchrom> | (basically the monad for Hoare triples) |
2020-10-27 22:27:34 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 22:27:35 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2020-10-27 22:27:37 +0100 | bob_twinkles | (~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) |
2020-10-27 22:27:38 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 22:27:44 +0100 | <davean> | Oh interesting |
2020-10-27 22:27:46 +0100 | <dolio> | Seems like the problem is Hoare logic, not monads. |
2020-10-27 22:27:51 +0100 | <monsterchrom> | :) |
2020-10-27 22:28:09 +0100 | <davean> | dolio: I liked monsterchrom's telling better. |
2020-10-27 22:28:11 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-10-27 22:28:18 +0100 | <davean> | dolio: Its not about the story, its about *how* you tell it. |
2020-10-27 22:29:56 +0100 | dbmikus | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-10-27 22:31:49 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-10-27 22:32:19 +0100 | ahmr88 | (~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection) |
2020-10-27 22:34:28 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 246 seconds) |
2020-10-27 22:35:20 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2020-10-27 22:36:49 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 22:38:42 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-27 22:38:58 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c4601bdd32dc7d6289d04.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-10-27 22:39:23 +0100 | knupfer1 | (~Thunderbi@200116b82cb7c400d15b7230f52137ad.dip.versatel-1u1.de) |
2020-10-27 22:39:35 +0100 | knupfer1 | (~Thunderbi@200116b82cb7c400d15b7230f52137ad.dip.versatel-1u1.de) (Client Quit) |
2020-10-27 22:41:22 +0100 | damianfral4 | (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 258 seconds) |
2020-10-27 22:42:13 +0100 | knupfer | (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) (Ping timeout: 264 seconds) |
2020-10-27 22:42:25 +0100 | knupfer | (~Thunderbi@200116b82cb7c4002ca4e42aeeb0ad5c.dip.versatel-1u1.de) |
2020-10-27 22:42:36 +0100 | taurux | (~taurux@net-130-25-120-80.cust.vodafonedsl.it) |
2020-10-27 22:42:38 +0100 | nschoe | (~quassel@2a01:e0a:3c4:c7b0:496b:6bb1:2a12:b6fe) (Remote host closed the connection) |
2020-10-27 22:42:51 +0100 | knupfer | (~Thunderbi@200116b82cb7c4002ca4e42aeeb0ad5c.dip.versatel-1u1.de) (Client Quit) |
2020-10-27 22:42:53 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Quit: leaving) |
2020-10-27 22:43:01 +0100 | knupfer | (~Thunderbi@200116b82cb7c400415b2bb0b7a3fec7.dip.versatel-1u1.de) |
2020-10-27 22:44:10 +0100 | knupfer1 | (~Thunderbi@200116b82cb7c4002d58dadaff983f63.dip.versatel-1u1.de) |
2020-10-27 22:44:12 +0100 | knupfer | (~Thunderbi@200116b82cb7c400415b2bb0b7a3fec7.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
2020-10-27 22:44:14 +0100 | knupfer1 | knupfer |
2020-10-27 22:46:27 +0100 | knupfer | (~Thunderbi@200116b82cb7c4002d58dadaff983f63.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
2020-10-27 22:46:33 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds) |
2020-10-27 22:46:38 +0100 | knupfer | (~Thunderbi@200116b82cb7c400705675e554fd2851.dip.versatel-1u1.de) |
2020-10-27 22:47:51 +0100 | knupfer | (~Thunderbi@200116b82cb7c400705675e554fd2851.dip.versatel-1u1.de) (Client Quit) |
2020-10-27 22:48:02 +0100 | knupfer | (~Thunderbi@200116b82cb7c4007db48986ca2bd4da.dip.versatel-1u1.de) |
2020-10-27 22:49:01 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2020-10-27 22:49:43 +0100 | taurux | (~taurux@net-130-25-120-80.cust.vodafonedsl.it) (Ping timeout: 260 seconds) |
2020-10-27 22:50:57 +0100 | taurux | (~taurux@net-188-216-37-152.cust.vodafonedsl.it) |
2020-10-27 22:52:24 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-10-27 22:55:40 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) (Remote host closed the connection) |
2020-10-27 22:56:08 +0100 | obihann | (~jhann@156.34.160.69) (Ping timeout: 260 seconds) |
2020-10-27 22:56:32 +0100 | bennofs1 | (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) |
2020-10-27 22:57:02 +0100 | obihann | (~jhann@156.34.160.69) |
2020-10-27 22:57:44 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) |
2020-10-27 22:57:57 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) |
2020-10-27 22:59:45 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-10-27 23:03:02 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) (Quit: Quit) |
2020-10-27 23:03:29 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2020-10-27 23:03:42 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2020-10-27 23:04:25 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Client Quit) |
2020-10-27 23:04:53 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2020-10-27 23:08:23 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-10-27 23:08:29 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) |
2020-10-27 23:08:48 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) (Client Quit) |
2020-10-27 23:09:27 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-10-27 23:09:29 +0100 | mmohammadi9812 | (~mmohammad@5.238.178.31) |
2020-10-27 23:10:46 +0100 | conal | (~conal@198.8.81.89) (Quit: Computer has gone to sleep.) |
2020-10-27 23:11:34 +0100 | conal | (~conal@198.8.81.89) |
2020-10-27 23:11:53 +0100 | conal | (~conal@198.8.81.89) (Client Quit) |
2020-10-27 23:12:37 +0100 | conal | (~conal@198.8.81.89) |
2020-10-27 23:12:37 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-10-27 23:12:40 +0100 | conal | (~conal@198.8.81.89) (Client Quit) |
2020-10-27 23:13:00 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 23:15:07 +0100 | damianfral4 | (~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) |
2020-10-27 23:20:16 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
2020-10-27 23:20:36 +0100 | nuncanada | (~dude@179.235.160.168) (Read error: Connection reset by peer) |
2020-10-27 23:21:11 +0100 | conal | (~conal@64.71.133.70) |
2020-10-27 23:22:36 +0100 | christo_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-10-27 23:25:52 +0100 | knupfer | (~Thunderbi@200116b82cb7c4007db48986ca2bd4da.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-10-27 23:27:11 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-10-27 23:27:24 +0100 | Deide | (~Deide@217.155.19.23) |
2020-10-27 23:27:29 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
2020-10-27 23:28:45 +0100 | mirrorbird | (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds) |
2020-10-27 23:28:49 +0100 | Perlboy | (~Perlboy@178.239.168.171) |
2020-10-27 23:29:41 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2020-10-27 23:30:03 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
2020-10-27 23:31:52 +0100 | mbomba | (~mbomba@142.114.9.241) |
2020-10-27 23:31:55 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:e20::e363) (Ping timeout: 272 seconds) |
2020-10-27 23:31:55 +0100 | <Squarism> | Anyone heard of any library able to (de)serialize a subset of Traversal's (used by lens)? |
2020-10-27 23:32:33 +0100 | <Rembane> | Squarism: What's serialize in this context? |
2020-10-27 23:32:39 +0100 | <Squarism> | e e |
2020-10-27 23:33:16 +0100 | Tspoon | (tlarjoma@hilla.kapsi.fi) (Ping timeout: 246 seconds) |
2020-10-27 23:33:20 +0100 | <Squarism> | Rembane, preferably something human readable. But any string would do I guess. |
2020-10-27 23:33:39 +0100 | Tspoon | (tlarjoma@hilla.kapsi.fi) |
2020-10-27 23:34:07 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-10-27 23:35:25 +0100 | <Rembane> | Squarism: Interesting, I've never seen one but perhaps someone else here has. |
2020-10-27 23:36:53 +0100 | DTZUZU | (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) (Read error: Connection reset by peer) |
2020-10-27 23:38:39 +0100 | <Squarism> | I mean, it feels as if something like "field1 . ix 4 . fieldA . _Just" could have a textual representation. But maybe thats a naive conclusion |
2020-10-27 23:38:58 +0100 | DTZUZU | (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) |
2020-10-27 23:39:18 +0100 | <Rembane> | Well, you need to go from a function to a textual representation and that's kinda tricky |
2020-10-27 23:39:18 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2020-10-27 23:39:52 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 260 seconds) |
2020-10-27 23:40:24 +0100 | Kolkrabe | (~user@unaffiliated/siracusa) |
2020-10-27 23:40:34 +0100 | <Uniaika> | I can't see a way to have a straightforward, abitrary expression of a Traversal that would not need a heap of context for it to make sense |
2020-10-27 23:40:45 +0100 | son0p | (~son0p@181.136.122.143) (Quit: leaving) |
2020-10-27 23:40:46 +0100 | <Uniaika> | hmm. |
2020-10-27 23:40:49 +0100 | <Uniaika> | that being said. |
2020-10-27 23:41:01 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 264 seconds) |
2020-10-27 23:41:22 +0100 | GyroW | (~GyroW@d54C03E98.access.telenet.be) |
2020-10-27 23:41:22 +0100 | GyroW | (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
2020-10-27 23:41:22 +0100 | GyroW | (~GyroW@unaffiliated/gyrow) |
2020-10-27 23:41:27 +0100 | <Uniaika> | Squarism: have you read the Typed Tagless Final Interpreters paper? http://okmij.org/ftp/tagless-final/course/lecture.pdf |
2020-10-27 23:42:01 +0100 | <Uniaika> | the author shows a way to have multiple interpreters for an eDSL. One that would evaluate the functions, one that pretty-prints them, one that serialises them into a Tree, etc |
2020-10-27 23:42:16 +0100 | <Uniaika> | you may get some good stuff out of it |
2020-10-27 23:42:28 +0100 | <Squarism> | Maybe a start would be to just have deserialize and find other means to create the serialized "addresses". |
2020-10-27 23:42:32 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
2020-10-27 23:42:32 +0100 | GyroW_ | (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds) |
2020-10-27 23:42:52 +0100 | <Squarism> | Uniaika, ah cool. Ill look into that |
2020-10-27 23:43:19 +0100 | <Uniaika> | 👍 |
2020-10-27 23:43:25 +0100 | bennofs1 | (~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Quit: WeeChat 2.7.1) |
2020-10-27 23:43:29 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-10-27 23:43:43 +0100 | <Uniaika> | tell me if it helped you acquire some new techniques for your goal |
2020-10-27 23:43:52 +0100 | <Uniaika> | (or if it didn't) |
2020-10-27 23:43:54 +0100 | <Squarism> | I will |
2020-10-27 23:44:28 +0100 | <Rembane> | Squarism: Here's a related blog post that might be easier to digest than the paper: https://serokell.io/blog/tagless-final |
2020-10-27 23:44:44 +0100 | <koz_> | Tagless final doesn't help you here. |
2020-10-27 23:44:48 +0100 | <Squarism> | sounds like a good start. Thanks |
2020-10-27 23:44:52 +0100 | <koz_> | This isn't eDSL territory. |
2020-10-27 23:45:01 +0100 | <koz_> | Uniaika: We had a conversation on this topic already, I believe. :P |
2020-10-27 23:45:29 +0100 | <Rembane> | Uniaika: Have you perhaps found a new hammer? :) |
2020-10-27 23:45:39 +0100 | <koz_> | Rembane: Can confirm. |
2020-10-27 23:46:11 +0100 | <Rembane> | koz_: ^^ |
2020-10-27 23:46:18 +0100 | <Rembane> | It is a very good hammer though. |
2020-10-27 23:46:58 +0100 | <koz_> | Yeah, but all hammers are, after all, hammers, not hammer-chisel-screwdriver-breadmaker-firearm-sketchpads. |
2020-10-27 23:47:02 +0100 | <Rembane> | Isn't there another representation of lenses called optics that's more like an initial encoding than a final encoding? |
2020-10-27 23:47:17 +0100 | <Rembane> | koz_: Are you talking about recursion schemes? :D |
2020-10-27 23:47:35 +0100 | <koz_> | Rembane: No, because you did you see any Ancient Greek there? :P |
2020-10-27 23:47:45 +0100 | <koz_> | Also yes, optics exist, but I don't think it helps here. |
2020-10-27 23:48:04 +0100 | <Rembane> | koz_: I see Ancient Greek everywhere! :D |
2020-10-27 23:48:20 +0100 | <Rembane> | koz_: It's like "I see dead people" but s/dead people/Ancient Greek/g |
2020-10-27 23:48:40 +0100 | <Rembane> | Squarism: What do you need the serialization for btw? |
2020-10-27 23:48:42 +0100 | <koz_> | Yep, both be dead, yo. |
2020-10-27 23:48:58 +0100 | <Rembane> | They have much in common. |
2020-10-27 23:49:02 +0100 | <Rembane> | Deadomorphisms |
2020-10-27 23:49:16 +0100 | <koz_> | Mortimorphisms? |
2020-10-27 23:49:24 +0100 | <koz_> | Thanamorphisms? |
2020-10-27 23:49:45 +0100 | <koz_> | Should be thanamorphisms, I think, since 'mort' is a Latin root. |
2020-10-27 23:49:51 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-10-27 23:50:09 +0100 | <Rembane> | Yeah, mixing greek and latin always makes for good fun |
2020-10-27 23:50:40 +0100 | <koz_> | Rembane: It's how privately-educated English people amuse themselves, I've heard. |
2020-10-27 23:50:59 +0100 | <mort> | "mort" has no relation to "morph" afaik though? |
2020-10-27 23:51:30 +0100 | <koz_> | mort: No it does not, but that's beside the point here. The joke is that all recursion schemes are [some Greek root] + morphism. |
2020-10-27 23:51:44 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-10-27 23:51:47 +0100 | <koz_> | Such as 'anamorphism', 'catamorphism', 'hylomorphism', 'chronomorphism', etc. |
2020-10-27 23:51:56 +0100 | <Rembane> | Adnd you can combine them for even more fun |
2020-10-27 23:51:58 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-10-27 23:52:07 +0100 | <Rembane> | And to make sweet rhymes |
2020-10-27 23:52:11 +0100 | <koz_> | So if we wanna talk about 'dead-related recursion schemes', 'thanamorphism' appears to be the convention-following construction. |
2020-10-27 23:52:28 +0100 | <Squarism> | Rembane, i have a webapp that does addition and changes to some user defined type. So i was hoping to be able to produce "all addresses for addition of values" (Nothing, List-ends) "all modifiable addresses" (any leaf of some data type) |
2020-10-27 23:53:16 +0100 | <mort> | I see. Is thana- or thano- a root for dead in Greek then |
2020-10-27 23:53:28 +0100 | <mort> | this explains the name thanos at least |
2020-10-27 23:53:33 +0100 | <Rembane> | Squarism: I might be out on a limb here, but can you make another representation that can both be shown/serialized and turned into traversals? |
2020-10-27 23:53:47 +0100 | <koz_> | mort: Indeed. |
2020-10-27 23:53:49 +0100 | <Rembane> | mort: Who's Thanos? |
2020-10-27 23:54:02 +0100 | ransom | (~c4264035@2601:285:201:6720:a129:4845:9b41:4504) |
2020-10-27 23:54:08 +0100 | <koz_> | It's the root of words like 'thanatosis', although English doesn't lean on Greek much for words of that meaning. |
2020-10-27 23:54:09 +0100 | <mort> | the Marvel supervillain |
2020-10-27 23:54:15 +0100 | <Squarism> | Rembane, so the address needs to be sent over the wire. Also, the interface on the "server" is untyped as it only operates on a serialized version of the above mentioned user defined type. |
2020-10-27 23:54:25 +0100 | <koz_> | The 'cata' in 'catamorphism' means 'to collapse', like in 'catastrophe'. |
2020-10-27 23:54:57 +0100 | <Squarism> | Rembane, not a bad idea. |
2020-10-27 23:55:03 +0100 | <koz_> | But yes, the Thanos connection is indeed this. |
2020-10-27 23:55:17 +0100 | <Squarism> | Ill ponder that |
2020-10-27 23:55:44 +0100 | <koz_> | Usually we tend to use 'mort' or 'necro' in English for fancy death-related terms. |
2020-10-27 23:55:49 +0100 | <Rembane> | Crunchomorphism! |
2020-10-27 23:56:02 +0100 | <koz_> | (consider 'necrosis', 'necromancy', 'mortify', 'mortal', etc) |
2020-10-27 23:56:42 +0100 | <Rembane> | Squarism: Got it, untyped interface sounds exciting. :) |
2020-10-27 23:56:57 +0100 | <Rembane> | Necrofy, necrtal... hm... |
2020-10-27 23:57:08 +0100 | invaser | (~Thunderbi@31.148.23.125) (Quit: invaser) |
2020-10-27 23:57:17 +0100 | <mort> | hydromorphism |
2020-10-27 23:57:42 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
2020-10-27 23:57:43 +0100 | <mort> | oh, quadromorphism, the true Fourier transform which makes numbers four-ier |
2020-10-27 23:57:48 +0100 | <koz_> | mort: ROFL. |
2020-10-27 23:58:01 +0100 | <Squarism> | Rembane, i guess it doesnt. But web only knows text and json so yeah. |
2020-10-27 23:58:04 +0100 | <Axman6> | gold |
2020-10-27 23:58:15 +0100 | <Rembane> | mort: :D |
2020-10-27 23:58:21 +0100 | <koz_> | Axman6: Chrysomorphism? |
2020-10-27 23:58:32 +0100 | <Rembane> | Squarism: That doesn't stop you from type checking it when you deserialize it. :) |
2020-10-27 23:58:36 +0100 | <koz_> | (inb4 I finally get where the whole 'Christ' thing came from) |
2020-10-27 23:58:43 +0100 | <Axman6> | @quote+ mort quadromorphism, the true Fourier transform which makes numbers four-ier |
2020-10-27 23:58:43 +0100 | <lambdabot> | No quotes for this person. Your mind just hasn't been the same since the electro-shock, has it? |
2020-10-27 23:59:15 +0100 | <Axman6> | @remember mort quadromorphism, the true Fourier transform which makes numbers four-ier |
2020-10-27 23:59:15 +0100 | <lambdabot> | Done. |
2020-10-27 23:59:26 +0100 | <Axman6> | @quote four |
2020-10-27 23:59:26 +0100 | <lambdabot> | copumpkin says: I love: Warning: Due to a known bug, the default Linux document viewer evince prints N*N copies of a PDF file when N copies requested. As a workaround, use Adobe Reader acroread for |
2020-10-27 23:59:26 +0100 | <lambdabot> | printing multiple copies of PDF documents, or use the fact that every natural number is a sum of at most four squares. |
2020-10-27 23:59:57 +0100 | <mort> | @quote fourier |
2020-10-27 23:59:57 +0100 | <lambdabot> | mort says: quadromorphism, the true Fourier transform which makes numbers four-ier |