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