Logs on 2020-12-17 (freenode/#haskell)
| 00:00:10 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
| 00:00:19 | <monochrom> | yes up to parenthesizing |
| 00:00:44 | <monochrom> | Perhaps think of :: as very low priority. |
| 00:00:49 | <monochrom> | err, low precedence |
| 00:00:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 00:01:04 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 00:03:13 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-jxedmdsaplwusuum) (Quit: Connection closed for inactivity) |
| 00:03:15 | × | Adluc quits (~Adluc@2a01:430:17:1::ffff:328) (Quit: ZNC - http://znc.in) |
| 00:03:15 | × | hexo- quits (~hexo@83.167.228.130) (Quit: ZNC - http://znc.in) |
| 00:03:23 | → | cosimone_ joins (~cosimone@5.171.25.104) |
| 00:03:45 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 240 seconds) |
| 00:03:52 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 00:04:35 | cosimone_ | is now known as cosimone |
| 00:05:24 | <monochrom> | > (((((\x -> x) :: a -> a) :: [a] -> [a]) :: [[a]] -> [[a]]) :: [[Int] -> [[Int]]) [] |
| 00:05:26 | <lambdabot> | <hint>:1:80: error: <hint>:1:80: error: parse error on input ‘)’ |
| 00:05:30 | <monochrom> | Darn |
| 00:06:11 | × | Trixar_za quits (~Trixar_za@185.103.96.147) (Remote host closed the connection) |
| 00:06:41 | <monochrom> | > (((((\x -> x) :: a -> a) :: [a] -> [a]) :: [[a]] -> [[a]]) :: [[Int]] -> [[Int]]) [] |
| 00:06:43 | <lambdabot> | [] |
| 00:06:44 | <monochrom> | :) |
| 00:06:57 | × | drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 00:08:21 | <monochrom> | Ah, I had [[Int] lacking one ] |
| 00:08:41 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Read error: Connection reset by peer) |
| 00:09:27 | <fuzzypixelz> | uhh, suppose I have functions f1, f2, and f3 |
| 00:09:55 | <fuzzypixelz> | and I want to say f is the function that applies f3 then f2 then f1 |
| 00:10:13 | <monochrom> | f = f1 . f2 . f3 ? |
| 00:10:28 | <monochrom> | becuase then f x = f1 (f2 (f3 x)) |
| 00:10:30 | <fuzzypixelz> | okay... the dot operator is new to me |
| 00:10:43 | × | Gigabitten quits (~Somn@098-127-002-172.res.spectrum.com) (Remote host closed the connection) |
| 00:10:49 | <monochrom> | You can also just write f x = f1 (f2 (f3 x)) and KISS |
| 00:11:21 | <monochrom> | Haskell's f . g is math's f ∘ g |
| 00:11:25 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:11:28 | × | patrickp quits (~patrickp@windows98.dev) (Quit: Ping timeout (120 seconds)) |
| 00:11:32 | <fuzzypixelz> | oh yes, I just wanted to define a function and not apply it |
| 00:11:48 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 00:11:54 | <fuzzypixelz> | I took up programming because I was tired of doing maths :| |
| 00:12:00 | <fuzzypixelz> | something like that |
| 00:12:24 | → | patrickp joins (~patrickp@windows98.dev) |
| 00:12:35 | × | nrmt^ quits (nrm@ip98-184-89-2.mc.at.cox.net) () |
| 00:12:39 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 00:14:00 | <hpc> | you may find that you're tired of doing calculation, and math (via programming) is a breath of fresh air ;) |
| 00:14:04 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 260 seconds) |
| 00:16:51 | × | wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 265 seconds) |
| 00:18:53 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 00:21:05 | → | Adluc joins (~Adluc@83.167.228.130) |
| 00:22:23 | <dolio> | Not designing with automatic calculation in mind is one of the fundamental problems with most math. |
| 00:22:25 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 264 seconds) |
| 00:23:30 | <boxscape> | understandable considering a lot of it was invented before there were practical automata |
| 00:23:39 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 00:23:49 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 2.9) |
| 00:24:02 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds) |
| 00:24:13 | × | cads2 quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 268 seconds) |
| 00:24:25 | <dolio> | For instance, some of the HoTT people proved "homotopy canonicity" of one of the theories. Canonicity is the thing that computer folks care about, because it says that when you define `M : Nat`, the computer will actually calculate a numeral for you. Homotopy canonicity says that every term is path-equivalent to a numeral, which only tells you that if you already know the answer you want, whatever the computer calculates will be provably equal to the |
| 00:24:25 | <dolio> | answer. |
| 00:24:45 | → | devdsp joins (~devdsp@178.162.212.214) |
| 00:25:17 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:25:31 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection) |
| 00:27:47 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 00:27:56 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 00:28:07 | <boxscape> | so then someone had to invent cubical type theory? |
| 00:28:19 | <dolio> | Yes, that was invented by people who actually cared about computation. |
| 00:28:27 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 265 seconds) |
| 00:29:59 | <dolio> | Being prior to automata isn't a very good excuse, really, because it generally seems that it's only been a problem since around the late 1800s or early 1900s, which is roughly the same time people started really getting into automata. |
| 00:29:59 | → | hexo- joins (~hexo@83.167.228.130) |
| 00:30:10 | <boxscape> | hm, interesting |
| 00:30:32 | <boxscape> | is the problem you're referring to basically having non-constructive proofs? |
| 00:30:37 | <dolio> | Yeah. |
| 00:31:22 | <fuzzypixelz> | why can't I use foldl on a tuple? |
| 00:31:36 | <monochrom> | You can. At least I can. |
| 00:31:37 | × | solonarv quits (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
| 00:31:45 | <chibi_> | Say, what's the best way to program haskell on vim? |
| 00:31:50 | <monochrom> | So your problem is probably elsewhere. |
| 00:31:51 | <fuzzypixelz> | >foldl (*) 1 (2, 4, 6) |
| 00:32:01 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) |
| 00:32:04 | <boxscape> | > foldl (*) 1 (2, 4, 6) |
| 00:32:06 | <lambdabot> | error: |
| 00:32:06 | <lambdabot> | • Could not deduce (Foldable ((,,) Integer Integer)) |
| 00:32:06 | <monochrom> | Oh, that. Tuple != List |
| 00:32:07 | <lambdabot> | arising from a use of ‘foldl’ |
| 00:32:14 | <monochrom> | Use [2, 4, 6] |
| 00:32:21 | <fuzzypixelz> | uhh |
| 00:32:27 | <chibi_> | All the guides I see online, even those published this same year are already outdated and don't with the latest version of ghc. |
| 00:32:37 | <fuzzypixelz> | that's the only way to get a product of the elements? |
| 00:33:07 | <boxscape> | fuzzypixelz basically, foldl is for containers that contain elements of a single type, but tuples can contain elements of different types |
| 00:33:09 | <monochrom> | No, 2*4*6 too |
| 00:33:47 | <boxscape> | fuzzypixelz so you can do it with any such container, e.g. Data.Set and Data.Vector |
| 00:33:52 | <monochrom> | I trust that you don't have a 10000-tuple, you merely have say a 4-tuple, so don't perfection-OCD it, just write "f (a,b,c,d) = a*b*c*d" and be done. |
| 00:34:10 | <fuzzypixelz> | I though the type system can infer that my tuple has elements of the same type |
| 00:34:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:34:28 | <koz_> | chibi_: I use ALE. |
| 00:34:31 | <koz_> | (and Neoformat) |
| 00:34:33 | <monochrom> | The type system can. But no function uses that information. |
| 00:34:36 | <koz_> | It does basically everything I care about. |
| 00:34:46 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 2.9) |
| 00:34:55 | <koz_> | It requires some config adjustment but it works pretty well. |
| 00:35:07 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 00:35:16 | <c_wraith> | fuzzypixelz: that's the opposite of how it works. The type system sees that a tuple is allowed to have different types for each element, therefore things that process a tuple aren't allowed to assume they are the same. |
| 00:35:18 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 00:35:36 | <boxscape> | fuzzypixelz I think you could technically make a foldable instance for (a,a,a,a) (i.e. for a 4-tuple where every element has the same type), but I suppose it doesn't exist in the base library because it's not a typical use case |
| 00:35:44 | <boxscape> | or wait |
| 00:35:51 | <boxscape> | you could only with a newtype around it |
| 00:36:00 | × | johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in) |
| 00:36:04 | <dolio> | No, Foldable's argument is * -> *. |
| 00:36:04 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 00:36:17 | × | Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 00:36:24 | <boxscape> | write but like `newtype Tuple4 a = Tuple4 (a,a,a,a)` should work |
| 00:36:26 | <c_wraith> | of course... libraries can do wacky things |
| 00:36:27 | <c_wraith> | > productOf each (2, 4, 7) |
| 00:36:29 | <boxscape> | s/write/right |
| 00:36:29 | <lambdabot> | 56 |
| 00:36:31 | <boxscape> | -.- |
| 00:36:37 | → | Kaeipi joins (~Kaiepi@47.54.252.148) |
| 00:36:53 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 00:37:00 | koz_ | . o O ( Tuple4 = Fourple? ) |
| 00:37:01 | <monochrom> | Oh, so you just need lens. |
| 00:37:10 | <boxscape> | koz_ quadruple |
| 00:37:16 | <c_wraith> | lens's Each class, in particular. |
| 00:37:19 | <koz_> | boxscape: I know, let me have my fun. :P |
| 00:37:23 | <c_wraith> | Which has instances for tuples of all the same type |
| 00:37:44 | <boxscape> | koz_ we had this discussion in ##adventofcode-spoilers the other day about thruple and triple |
| 00:38:04 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:d958:171:8e7f:eb0c) (Remote host closed the connection) |
| 00:38:17 | <monochrom> | Is thruple a Thursday tuple? :) |
| 00:38:18 | <koz_> | boxscape: Colour me unsurprised. |
| 00:38:29 | <koz_> | monochrom: Maybe in some households. |
| 00:39:12 | × | Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 272 seconds) |
| 00:39:38 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 00:40:37 | <chibi_> | koz_: I'll try those two out, thanks |
| 00:40:47 | <chibi_> | Anything else you'd reccomend? |
| 00:40:52 | × | nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 268 seconds) |
| 00:41:15 | <koz_> | chibi_: I don't really need anything else. I use cabal-fmt and ormolu (cabal-fmt also needs some config twiddling, but not much) with Neoformat. |
| 00:41:34 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 00:41:50 | → | Noldorin joins (~noldorin@unaffiliated/noldorin) |
| 00:42:17 | <chibi_> | koz_: Gotcha, thankye. |
| 00:42:29 | <dolio> | I use hasktags. I think that's the only thing that isn't default vim. |
| 00:42:33 | <koz_> | You're welcome. If you want my config, I'm happy to share. |
| 00:42:52 | <koz_> | (I make use of local configs, but if you want all the same settings everywhere it'd work too) |
| 00:44:08 | × | plutoniix quits (~q@node-uqx.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
| 00:44:18 | × | mounty quits (~mounty@2001:8000:2f59:0:e5bf:1b14:94d8:de8b) (Quit: Konversation terminated!) |
| 00:47:02 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 00:47:02 | × | erolm_a quits (~erolm_a@62.19.36.64) (Read error: Connection reset by peer) |
| 00:47:46 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 00:48:13 | → | mounty joins (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c) |
| 00:49:47 | <fuzzypixelz> | Anyone want to give feedback/comments/criticism/remarks on my AOC day 1 solution? https://bpa.st/U74Q |
| 00:50:22 | <fuzzypixelz> | First time writing something in Haskell that isn't a "oh look at this fancy trick" example |
| 00:50:40 | <fuzzypixelz> | thanks in advance |
| 00:50:46 | <fuzzypixelz> | :) |
| 00:51:07 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e) |
| 00:53:30 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:54:54 | <ChaiTRex> | fuzzypixelz: It seems like you might be able to reuse a number, like if you had 2 and 1009, you would find 2 + 1009 + 1009 == 2020. |
| 00:55:10 | <ChaiTRex> | I think `Num a` implies `Eq a`. |
| 00:55:39 | <koala_man> | fuzzypixelz: did you consider doing it in a single list comprehension, a la [ x*y*z | x <- list, y <- list, z <- list, x+y+z == 2020]? |
| 00:56:11 | <ChaiTRex> | No, I was wrong, `Num a` doesn't imply `Eq a`. |
| 00:56:36 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:56:48 | <fuzzypixelz> | koala_man: I wanted to get the entries too, didn't realize I had no use for them until the end |
| 00:57:15 | <fuzzypixelz> | ChaiTRex: ghc genrated the type signatures |
| 00:57:42 | <koala_man> | could obviously have been (x,y,z) if you wanted them individually as well, and it would save an explicit filter |
| 00:58:30 | <fuzzypixelz> | well yeah, there is no need for the filering part as I can see |
| 00:58:31 | <ChaiTRex> | Oh, OK. |
| 00:59:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 00:59:43 | <ridcully> | i'd extract the read part (separate it from generating the combinations). also can you do it agnostic of generating combinations for 2 and 3 elements? |
| 01:00:30 | × | softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 245 seconds) |
| 01:01:47 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 01:02:05 | <fuzzypixelz> | ridcully: I struggled to get the cartesian product part independent of the number of elements |
| 01:02:20 | <fuzzypixelz> | ridcully: but the rest should be okay |
| 01:03:13 | <glguy> | fuzzypixelz, I didn't generate the triples ahead of time so that I could prune some of them out as I went. Doing the read :: String -> Int ahead of time will keep you from duplicating that work once for each triple |
| 01:03:21 | <ChaiTRex> | fuzzypixelz: One way to eliminate a bunch of nested parentheses like `putStr (solution (lines contents))` is to use `.`s between each function and `$` in front of the argument, like `putStr . solution . lines $ content`. |
| 01:03:21 | <ChaiTRex> | Then it's sort of like an assembly line, where `content` goes through `lines`, then `solution`, then `putStr`. |
| 01:03:50 | <chibi_> | You can even not include the argument if you write the function out pointfree and just have a composition. |
| 01:03:54 | <glguy> | fuzzypixelz, your solution returns triples that can reuse the same element from the list multiple times |
| 01:03:59 | <chibi_> | Though that depends on what exactly you're doing. |
| 01:04:11 | × | stevenxl quits (uid133530@gateway/web/irccloud.com/x-dagdxzdthcnbrsqa) (Quit: Connection closed for inactivity) |
| 01:04:22 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 01:04:23 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 01:04:38 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 01:04:56 | → | nineonine joins (~nineonine@50.216.62.2) |
| 01:05:15 | <glguy> | https://github.com/glguy/advent2020/blob/master/execs/Day01.hs -- this solution doesn't bother generating the triples at all |
| 01:05:17 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 01:06:08 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 01:06:31 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 2.9) |
| 01:06:45 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection) |
| 01:08:20 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 01:08:21 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 01:08:23 | → | eruditass joins (uid248673@gateway/web/irccloud.com/x-mzencwftwbmswmrc) |
| 01:09:26 | → | Tario joins (~Tario@201.192.165.173) |
| 01:11:21 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 01:12:01 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 01:14:41 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 01:16:33 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2075:545b:f2d1:a150) |
| 01:16:54 | × | lazyshrk quits (~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:17:12 | × | alx741 quits (~alx741@186.178.110.61) (Ping timeout: 272 seconds) |
| 01:17:34 | → | lazyshrk joins (~lazyshrk@128.199.58.13) |
| 01:19:08 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 01:19:36 | → | ransom_ joins (~c4264035@70-59-9-132.hlrn.qwest.net) |
| 01:20:18 | → | bitmagie joins (~Thunderbi@200116b8065b450029a1f7959c8665e8.dip.versatel-1u1.de) |
| 01:21:34 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2075:545b:f2d1:a150) (Ping timeout: 268 seconds) |
| 01:22:28 | → | Merfont joins (~Kaiepi@47.54.252.148) |
| 01:22:48 | × | Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 01:23:12 | × | joaj quits (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Ping timeout: 260 seconds) |
| 01:24:02 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 268 seconds) |
| 01:24:43 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) |
| 01:24:50 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e) (*.net *.split) |
| 01:24:50 | × | mounty quits (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c) (*.net *.split) |
| 01:24:50 | × | Noldorin quits (~noldorin@unaffiliated/noldorin) (*.net *.split) |
| 01:24:51 | × | xff0x quits (~fox@2001:1a81:5229:f800:6bf4:ad68:acd0:bb77) (*.net *.split) |
| 01:24:51 | × | jespada quits (~jespada@90.254.245.49) (*.net *.split) |
| 01:24:51 | × | weechat_1 quits (~mingc@2400:8902::f03c:91ff:feb7:8e82) (*.net *.split) |
| 01:24:51 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-esxplnjepcfjthew) (*.net *.split) |
| 01:24:51 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-zzifphhwbirnbmhh) (*.net *.split) |
| 01:24:51 | × | amerigo quits (uid331857@gateway/web/irccloud.com/x-rgqindfclfxyvhfd) (*.net *.split) |
| 01:24:51 | × | fissureman quits (~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (*.net *.split) |
| 01:24:51 | × | tabaqui quits (~tabaqui@2604:a880:800:c1::21b:3001) (*.net *.split) |
| 01:24:51 | × | DigitalKiwi quits (~kiwi@unaffiliated/digitalkiwi) (*.net *.split) |
| 01:24:51 | × | teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split) |
| 01:24:51 | × | entropygain quits (levitate@unaffiliated/entropygain) (*.net *.split) |
| 01:24:51 | × | grol_ quits (~quassel@2620:11e:1000:2:250:56ff:fea4:7) (*.net *.split) |
| 01:24:51 | × | NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (*.net *.split) |
| 01:24:51 | × | emmanuel_erc quits (~user@2604:2000:1382:ce03::9af) (*.net *.split) |
| 01:24:51 | × | Raito_Bezarius quits (~Raito@unaffiliated/raito-bezarius/x-8764578) (*.net *.split) |
| 01:24:51 | × | benschza quits (~quassel@2604:1380:2000:cf00::1) (*.net *.split) |
| 01:24:51 | × | TheScoop quits (~TheScoop@unaffiliated/tryte) (*.net *.split) |
| 01:24:51 | × | lolmac quits (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng) (*.net *.split) |
| 01:24:51 | × | betawaffle quits (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc) (*.net *.split) |
| 01:24:52 | × | tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (*.net *.split) |
| 01:24:52 | × | coeus quits (~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de) (*.net *.split) |
| 01:24:52 | × | mcfilib quits (sid302703@gateway/web/irccloud.com/x-pupkwpbkjgigplfb) (*.net *.split) |
| 01:24:52 | × | glowpelt quits (~myst@focks.pw) (*.net *.split) |
| 01:24:52 | × | nurupo quits (~nurupo.ga@unaffiliated/nurupo) (*.net *.split) |
| 01:24:52 | × | aizen_s quits (sid462968@gateway/web/irccloud.com/x-ighywpehicgiourx) (*.net *.split) |
| 01:24:52 | × | PoliticsII______ quits (sid193551@gateway/web/irccloud.com/x-ifhtanwghthhvmbn) (*.net *.split) |
| 01:24:52 | × | benl23 quits (sid284234@gateway/web/irccloud.com/x-hgqgnkygwwcwddwc) (*.net *.split) |
| 01:24:52 | × | yogani quits (sid42623@gateway/web/irccloud.com/x-xwocvhxoqauihzue) (*.net *.split) |
| 01:24:52 | × | ManiacTwister quits (~Twister@2a01:4f8:171:4de::40:2) (*.net *.split) |
| 01:24:52 | × | tnks quits (sid412124@gateway/web/irccloud.com/x-zbyszpuhbbhjdzks) (*.net *.split) |
| 01:24:52 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw) (*.net *.split) |
| 01:24:52 | × | typetetris quits (sid275937@gateway/web/irccloud.com/x-msdsoshziggpwxpy) (*.net *.split) |
| 01:24:52 | × | simony quits (sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf) (*.net *.split) |
| 01:24:52 | × | dgpratt quits (sid193493@gateway/web/irccloud.com/x-eisigjveajsvarno) (*.net *.split) |
| 01:24:52 | × | moobar quits (sid171730@gateway/web/irccloud.com/x-svksvglonzzyzxxy) (*.net *.split) |
| 01:24:52 | × | ReinH__ quits (sid179972@gateway/web/irccloud.com/x-ujhxicmjajcluchu) (*.net *.split) |
| 01:24:52 | × | jakalx quits (~jakalx@base.jakalx.net) (*.net *.split) |
| 01:24:52 | × | debugloop quits (~danieln@unaffiliated/debugloop) (*.net *.split) |
| 01:24:52 | × | krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split) |
| 01:24:52 | × | Ferdirand quits (~max@2001:4c78:2012:5000::2) (*.net *.split) |
| 01:24:52 | × | lightandlight quits (sid135476@gateway/web/irccloud.com/x-iidtschrmhcqrxgl) (*.net *.split) |
| 01:24:52 | × | J_Arcane quits (sid119274@gateway/web/irccloud.com/x-efprusjudjcoflyt) (*.net *.split) |
| 01:24:52 | × | rodlogic__ quits (sid214676@gateway/web/irccloud.com/x-egfcshsulxcglqnw) (*.net *.split) |
| 01:24:52 | × | dsturnbull quits (sid347899@gateway/web/irccloud.com/x-xmzhvaiswgjcomqa) (*.net *.split) |
| 01:24:52 | × | topos quits (sid467876@gateway/web/irccloud.com/x-mqpmkdyaexkjdklr) (*.net *.split) |
| 01:24:53 | × | jackdk quits (sid373013@gateway/web/irccloud.com/x-arnfpemfesqxinsb) (*.net *.split) |
| 01:24:53 | × | yorick quits (~yorick@oftn/oswg-member/yorick) (*.net *.split) |
| 01:24:53 | × | i7c quits (8Tki2L7DF5@unaffiliated/i7c) (*.net *.split) |
| 01:24:53 | × | miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (*.net *.split) |
| 01:24:53 | × | zyeri quits (zyeri@tilde.team/users/zyeri) (*.net *.split) |
| 01:24:53 | × | infinisil quits (~infinisil@NixOS/user/infinisil) (*.net *.split) |
| 01:24:53 | × | denucat quits (teqwve@2001:bc8:28d6::2) (*.net *.split) |
| 01:24:53 | × | dumptruckman quits (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd) (*.net *.split) |
| 01:24:53 | × | ego quits (~ego@parallaxcorporation.xyz) (*.net *.split) |
| 01:24:53 | × | bspar quits (~bspar@2604:a880:0:1010::776:e001) (*.net *.split) |
| 01:24:53 | × | idupree quits (~quassel@2604:a880:400:d0::9bb:2001) (*.net *.split) |
| 01:24:53 | × | lpsmith quits (~lpsmith@unaffiliated/lpsmith) (*.net *.split) |
| 01:24:53 | × | Forkk quits (forkk@2600:3c00::f03c:91ff:fe84:de4d) (*.net *.split) |
| 01:24:53 | × | drdo quits (~drdo@overlord0.drdo.eu) (*.net *.split) |
| 01:24:53 | × | riatre quits (~quassel@2001:310:6000:f::5198:1) (*.net *.split) |
| 01:24:53 | × | bonz060 quits (~quassel@2001:bc8:47a4:a23::1) (*.net *.split) |
| 01:24:53 | × | PHO_ quits (~pho@akari.cielonegro.org) (*.net *.split) |
| 01:24:53 | × | solarus quits (~solarus@2a03:b0c0:2:d0::48:7001) (*.net *.split) |
| 01:24:53 | × | xcin quits (~x@159.203.132.140) (*.net *.split) |
| 01:24:53 | × | sim642 quits (~simmo@unaffiliated/sim642) (*.net *.split) |
| 01:24:53 | × | xnyhps quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split) |
| 01:24:53 | × | tomjaguarpaw quits (~tom@li367-225.members.linode.com) (*.net *.split) |
| 01:25:09 | → | nurupo joins (~nurupo.ga@unaffiliated/nurupo) |
| 01:25:58 | × | sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
| 01:27:07 | × | dredozub- quits (~dredozubo@37.139.21.214) (Ping timeout: 246 seconds) |
| 01:27:07 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 01:27:07 | × | adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (Ping timeout: 246 seconds) |
| 01:27:16 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds) |
| 01:28:36 | × | melosense quits (~melosense@4e69b241.skybroadband.com) (Ping timeout: 240 seconds) |
| 01:29:27 | × | Kronic quits (~Kronic___@84.203.96.46) (Quit: Leaving) |
| 01:29:50 | → | alx741 joins (~alx741@186.178.110.75) |
| 01:30:07 | → | adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) |
| 01:30:12 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e) |
| 01:30:12 | → | mounty joins (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c) |
| 01:30:12 | → | Noldorin joins (~noldorin@unaffiliated/noldorin) |
| 01:30:12 | → | xff0x joins (~fox@2001:1a81:5229:f800:6bf4:ad68:acd0:bb77) |
| 01:30:12 | → | jespada joins (~jespada@90.254.245.49) |
| 01:30:12 | → | weechat_1 joins (~mingc@2400:8902::f03c:91ff:feb7:8e82) |
| 01:30:12 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-esxplnjepcfjthew) |
| 01:30:12 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-zzifphhwbirnbmhh) |
| 01:30:12 | → | amerigo joins (uid331857@gateway/web/irccloud.com/x-rgqindfclfxyvhfd) |
| 01:30:12 | → | fissureman joins (~quassel@c-73-163-84-25.hsd1.dc.comcast.net) |
| 01:30:12 | → | tabaqui joins (~tabaqui@2604:a880:800:c1::21b:3001) |
| 01:30:12 | → | DigitalKiwi joins (~kiwi@unaffiliated/digitalkiwi) |
| 01:30:12 | → | teddyc joins (theodorc@cassarossa.samfundet.no) |
| 01:30:12 | → | entropygain joins (levitate@unaffiliated/entropygain) |
| 01:30:12 | → | grol_ joins (~quassel@2620:11e:1000:2:250:56ff:fea4:7) |
| 01:30:12 | → | NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur) |
| 01:30:12 | → | emmanuel_erc joins (~user@2604:2000:1382:ce03::9af) |
| 01:30:12 | → | Raito_Bezarius joins (~Raito@unaffiliated/raito-bezarius/x-8764578) |
| 01:30:12 | → | benschza joins (~quassel@2604:1380:2000:cf00::1) |
| 01:30:12 | → | TheScoop joins (~TheScoop@unaffiliated/tryte) |
| 01:30:12 | → | lolmac joins (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng) |
| 01:30:12 | → | betawaffle joins (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc) |
| 01:30:12 | → | tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io) |
| 01:30:12 | → | coeus joins (~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de) |
| 01:30:12 | → | mcfilib joins (sid302703@gateway/web/irccloud.com/x-pupkwpbkjgigplfb) |
| 01:30:12 | → | glowpelt joins (~myst@focks.pw) |
| 01:30:12 | → | aizen_s joins (sid462968@gateway/web/irccloud.com/x-ighywpehicgiourx) |
| 01:30:12 | → | PoliticsII______ joins (sid193551@gateway/web/irccloud.com/x-ifhtanwghthhvmbn) |
| 01:30:12 | → | benl23 joins (sid284234@gateway/web/irccloud.com/x-hgqgnkygwwcwddwc) |
| 01:30:12 | → | yogani joins (sid42623@gateway/web/irccloud.com/x-xwocvhxoqauihzue) |
| 01:30:12 | → | ManiacTwister joins (~Twister@2a01:4f8:171:4de::40:2) |
| 01:30:12 | → | tnks joins (sid412124@gateway/web/irccloud.com/x-zbyszpuhbbhjdzks) |
| 01:30:12 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw) |
| 01:30:12 | → | typetetris joins (sid275937@gateway/web/irccloud.com/x-msdsoshziggpwxpy) |
| 01:30:12 | → | simony joins (sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf) |
| 01:30:12 | → | dgpratt joins (sid193493@gateway/web/irccloud.com/x-eisigjveajsvarno) |
| 01:30:12 | → | moobar joins (sid171730@gateway/web/irccloud.com/x-svksvglonzzyzxxy) |
| 01:30:12 | → | ReinH__ joins (sid179972@gateway/web/irccloud.com/x-ujhxicmjajcluchu) |
| 01:30:12 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 01:30:12 | → | debugloop joins (~danieln@unaffiliated/debugloop) |
| 01:30:12 | → | krjst joins (~krjst@2604:a880:800:c1::16b:8001) |
| 01:30:12 | → | Ferdirand joins (~max@2001:4c78:2012:5000::2) |
| 01:30:12 | → | lightandlight joins (sid135476@gateway/web/irccloud.com/x-iidtschrmhcqrxgl) |
| 01:30:12 | → | J_Arcane joins (sid119274@gateway/web/irccloud.com/x-efprusjudjcoflyt) |
| 01:30:12 | → | rodlogic__ joins (sid214676@gateway/web/irccloud.com/x-egfcshsulxcglqnw) |
| 01:30:12 | → | dsturnbull joins (sid347899@gateway/web/irccloud.com/x-xmzhvaiswgjcomqa) |
| 01:30:12 | → | topos joins (sid467876@gateway/web/irccloud.com/x-mqpmkdyaexkjdklr) |
| 01:30:12 | → | jackdk joins (sid373013@gateway/web/irccloud.com/x-arnfpemfesqxinsb) |
| 01:30:12 | → | i7c joins (8Tki2L7DF5@unaffiliated/i7c) |
| 01:30:12 | → | yorick joins (~yorick@oftn/oswg-member/yorick) |
| 01:30:12 | → | miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
| 01:30:12 | → | zyeri joins (zyeri@tilde.team/users/zyeri) |
| 01:30:12 | → | infinisil joins (~infinisil@NixOS/user/infinisil) |
| 01:30:12 | → | denucat joins (teqwve@2001:bc8:28d6::2) |
| 01:30:12 | → | dumptruckman joins (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd) |
| 01:30:12 | → | ego joins (~ego@parallaxcorporation.xyz) |
| 01:30:12 | → | bspar joins (~bspar@2604:a880:0:1010::776:e001) |
| 01:30:12 | → | idupree joins (~quassel@2604:a880:400:d0::9bb:2001) |
| 01:30:12 | → | lpsmith joins (~lpsmith@unaffiliated/lpsmith) |
| 01:30:12 | → | Forkk joins (forkk@2600:3c00::f03c:91ff:fe84:de4d) |
| 01:30:12 | → | drdo joins (~drdo@overlord0.drdo.eu) |
| 01:30:12 | → | sim642 joins (~simmo@unaffiliated/sim642) |
| 01:30:12 | → | riatre joins (~quassel@2001:310:6000:f::5198:1) |
| 01:30:12 | → | bonz060 joins (~quassel@2001:bc8:47a4:a23::1) |
| 01:30:12 | → | PHO_ joins (~pho@akari.cielonegro.org) |
| 01:30:12 | → | solarus joins (~solarus@2a03:b0c0:2:d0::48:7001) |
| 01:30:12 | → | xcin joins (~x@159.203.132.140) |
| 01:30:12 | → | xnyhps joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) |
| 01:30:12 | → | tomjaguarpaw joins (~tom@li367-225.members.linode.com) |
| 01:30:15 | → | dredozubov joins (~dredozubo@37.139.21.214) |
| 01:30:59 | × | miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Max SendQ exceeded) |
| 01:31:10 | → | miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
| 01:31:26 | × | columbarius quits (~columbari@mue-88-130-54-048.dsl.tropolys.de) (Ping timeout: 268 seconds) |
| 01:33:22 | × | betawaffle quits (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc) (Ping timeout: 249 seconds) |
| 01:33:23 | × | aizen_s quits (sid462968@gateway/web/irccloud.com/x-ighywpehicgiourx) (Ping timeout: 249 seconds) |
| 01:33:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:33:27 | → | columbarius joins (~columbari@i5E86B369.versanet.de) |
| 01:33:57 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-esxplnjepcfjthew) (Ping timeout: 260 seconds) |
| 01:33:58 | × | amerigo quits (uid331857@gateway/web/irccloud.com/x-rgqindfclfxyvhfd) (Ping timeout: 260 seconds) |
| 01:33:58 | × | lolmac quits (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng) (Ping timeout: 260 seconds) |
| 01:34:04 | → | betawaffle joins (sid2730@gateway/web/irccloud.com/x-iqipatfmsyxtpnsb) |
| 01:34:09 | → | aizen_s joins (sid462968@gateway/web/irccloud.com/x-lsbqjsnyhdhmooyk) |
| 01:35:52 | → | lolmac joins (sid171216@gateway/web/irccloud.com/x-espdqhkcxsbkntws) |
| 01:36:01 | → | amerigo joins (uid331857@gateway/web/irccloud.com/x-dofzufotyixjvskt) |
| 01:36:37 | × | mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 260 seconds) |
| 01:36:56 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-zxxiepmgnexcriai) |
| 01:37:12 | × | nhs quits (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
| 01:37:25 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 01:38:16 | × | Tene quits (~tene@poipu/supporter/slacker/tene) (Ping timeout: 260 seconds) |
| 01:38:55 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:39:02 | × | ByronJohnson quits (~bairyn@unaffiliated/bob0) (Ping timeout: 264 seconds) |
| 01:39:18 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 01:43:52 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 01:44:26 | → | ByronJohnson joins (~bairyn@unaffiliated/bob0) |
| 01:44:44 | → | Tene joins (~tene@poipu/supporter/slacker/tene) |
| 01:49:40 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 01:51:05 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
| 01:51:05 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:56:38 | → | mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) |
| 01:59:44 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 02:01:23 | × | mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 260 seconds) |
| 02:01:26 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 02:03:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection) |
| 02:03:13 | → | brodie_ joins (~brodie@207.53.253.137) |
| 02:03:45 | × | stux|RC-only quits (stux2@grid9.quadspeedi.net) (Read error: Connection reset by peer) |
| 02:04:05 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 02:04:08 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 02:04:22 | × | joeyh quits (~joeyh@kitenet.net) (Quit: ZNC 1.8.1+deb1 - https://znc.in) |
| 02:04:29 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 02:04:32 | × | demiurge quits (e@freenode/staff/spy.edk) (Quit: edk) |
| 02:04:49 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 02:05:22 | → | joeyh_ joins (joeyh@kitenet.net) |
| 02:05:30 | → | stux|RC-only joins (stux2@grid9.quadspeedi.net) |
| 02:07:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 02:07:49 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds) |
| 02:08:17 | × | tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Remote host closed the connection) |
| 02:09:32 | × | xff0x quits (~fox@2001:1a81:5229:f800:6bf4:ad68:acd0:bb77) (Ping timeout: 260 seconds) |
| 02:11:18 | → | xff0x joins (~fox@2001:1a81:5260:ab00:b677:a698:4a99:d811) |
| 02:11:22 | → | tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io) |
| 02:14:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 02:15:11 | → | mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) |
| 02:21:36 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:24:49 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 02:25:34 | → | edk_ joins (e@freenode/staff/spy.edk) |
| 02:25:53 | × | lep-delete quits (~lep@94.31.80.94) (Ping timeout: 260 seconds) |
| 02:27:55 | → | lep-delete joins (~lep@94.31.80.94) |
| 02:30:07 | × | Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com) |
| 02:31:08 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 260 seconds) |
| 02:32:34 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 02:32:57 | lep-delete | is now known as test |
| 02:33:27 | test | is now known as Guest18945 |
| 02:33:34 | → | jespada joins (~jespada@90.254.245.49) |
| 02:35:50 | → | hNoob joins (6b80d5f1@107-128-213-241.lightspeed.sntcca.sbcglobal.net) |
| 02:37:07 | × | ransom_ quits (~c4264035@70-59-9-132.hlrn.qwest.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:37:45 | × | boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Ping timeout: 240 seconds) |
| 02:39:12 | <hNoob> | I just installed stack for the first time (and did a 'stack update' and 'stack upgrade' just for good measure). When I attempt to install ghc-mod (stack install ghc-mod) it fails because ghc-mod (it decided to get ghc-mod-5.8.0.0) has dependency issues with a bunch of things including Cabal, base, etc. Any insights would be appreciated. |
| 02:41:10 | × | amerigo quits (uid331857@gateway/web/irccloud.com/x-dofzufotyixjvskt) (Quit: Connection closed for inactivity) |
| 02:41:44 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 268 seconds) |
| 02:42:03 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 02:42:39 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 02:42:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:43:20 | → | christo joins (~chris@81.96.113.213) |
| 02:43:42 | × | columbarius quits (~columbari@i5E86B369.versanet.de) (Ping timeout: 260 seconds) |
| 02:45:58 | <chibi_> | hNoob: ghc-mod is deprecated |
| 02:46:33 | <hNoob> | Thank you chibi_ |
| 02:47:04 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:47:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 02:49:50 | × | Guest18945 quits (~lep@94.31.80.94) (Ping timeout: 256 seconds) |
| 02:53:41 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) |
| 02:54:04 | → | renzhi joins (~renzhi@2607:fa49:6500:ac00::bfed) |
| 02:58:03 | → | columbarius joins (~columbari@87.123.198.173) |
| 02:59:50 | × | cosimone quits (~cosimone@5.171.25.104) (Quit: cosimone) |
| 03:02:38 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 03:03:19 | × | jmchael_ quits (~jmchael@87.112.46.194) (Ping timeout: 268 seconds) |
| 03:08:07 | × | cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection) |
| 03:09:04 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:11:00 | → | cheater joins (~user@unaffiliated/cheater) |
| 03:11:29 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd) |
| 03:12:31 | × | bitmagie quits (~Thunderbi@200116b8065b450029a1f7959c8665e8.dip.versatel-1u1.de) (Quit: bitmagie) |
| 03:14:12 | → | ransom_ joins (~c4264035@70-59-9-132.hlrn.qwest.net) |
| 03:16:47 | × | mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 272 seconds) |
| 03:17:17 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:17:24 | → | guest1216 joins (~user@49.5.6.87) |
| 03:18:42 | → | lep-delete joins (~lep@94.31.81.93) |
| 03:18:54 | <guest1216> | if there're two parser, how to concat them? I mean let the second parser work on the result of the first one |
| 03:19:00 | × | ransom_ quits (~c4264035@70-59-9-132.hlrn.qwest.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 03:19:37 | <guest1216> | removeSpace = spaces *> many (anyChar <* spaces) |
| 03:19:45 | <guest1216> | p8 :: Parser [String] |
| 03:20:19 | <guest1216> | p8 = {do; x <- many letter; char '='; y <- many letter; return [x,y]} |
| 03:20:46 | × | theDon quits (~td@94.134.91.88) (Ping timeout: 256 seconds) |
| 03:20:58 | <dsal> | You can push the result back into the parser state with megaparsec, but it's a bit weird. Why not just do the right thing the first time? |
| 03:20:58 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 03:21:08 | <guest1216> | parse (removeSpace *> p8) "" "ab = cd" /= Right ["ab","cd"] |
| 03:21:17 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:21:55 | <guest1216> | (Right (parse p8 "")) <*> (parse removeSpaces "" " a = b") == Right (Right ["a","b"]) |
| 03:22:02 | <guest1216> | but this is ugly... |
| 03:22:16 | → | theDon joins (~td@muedsl-82-207-238-174.citykom.de) |
| 03:22:18 | × | cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection) |
| 03:22:22 | <guest1216> | dsal: more specific? |
| 03:22:26 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 03:22:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:23:21 | <dsal> | If you want space consumed lexemes, that's lexeme here: https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec-Char-Lexer.html |
| 03:23:30 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd) |
| 03:23:36 | <jle`> | looks like you're talking about mutli-stage parsing |
| 03:24:04 | <guest1216> | jle`: remove spaces first, then split by '=' into a list |
| 03:24:05 | lagothrix | is now known as Guest64420 |
| 03:24:05 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:24:05 | × | Guest64420 quits (~lagothrix@unaffiliated/lagothrix) (Killed (karatkievich.freenode.net (Nickname regained by services))) |
| 03:24:05 | xirhtogal | is now known as lagothrix |
| 03:24:05 | <jle`> | but working with parser combinators, it is sort of designed to not require it if you are able to phrase your main problem in a parser combinatory way |
| 03:24:19 | <jle`> | yes, that's what i mean. that's multi-pass/multi-stage parsing |
| 03:24:45 | <jle`> | but that's not really how you're "supposed" to use parser combinators, in the general wisdom |
| 03:24:52 | <jle`> | these days it's considered unidiomatic |
| 03:24:52 | <dsal> | for that exact expression, a list seems weird. I'd just do something like `liftA2 (,) (lexeme word <* lexeme "=") (lexeme word)` |
| 03:25:21 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 03:25:32 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds) |
| 03:26:15 | lep-delete | is now known as Guest18945 |
| 03:27:18 | → | cheater joins (~user@unaffiliated/cheater) |
| 03:31:24 | × | dax quits (dax@bitbot/dax) (Quit: brb) |
| 03:31:51 | → | dax joins (dax@bitbot/dax) |
| 03:32:07 | <guest1216> | p8 = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many letter; spaces; return [x,y]} |
| 03:32:07 | <guest1216> | |
| 03:32:19 | <guest1216> | this one can do that |
| 03:32:43 | <jle`> | right, there is usualyl a way you can rephrase your program to not require multi stage parsing |
| 03:33:06 | <dsal> | A list feels pretty wrong there, still. Why would you use a list of two items vs. a tuple? |
| 03:33:06 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.229) |
| 03:33:50 | <RENNNN> | what's the easiest to use implementation of dikstra? |
| 03:33:52 | <dsal> | `lexeme` is basically `spaces *> x <* spaces` so you can just drop it in places where spaces are optional. |
| 03:33:55 | <RENNNN> | on cyclic graph |
| 03:34:16 | → | johnw joins (~johnw@haskell/developer/johnw) |
| 03:34:56 | <guest1216> | dsal: ok, I will change it to a tuple |
| 03:36:04 | <dsal> | guest1216: tuple also means you can do the liftA2 thing there if you want. e.g., `p8 = liftA2 (,) (lexeme word <* lexeme "=") (lexeme word) where word = many letter` |
| 03:36:11 | → | drbean joins (~drbean@TC210-63-209-202.static.apol.com.tw) |
| 03:38:37 | <guest1216> | dsal: what's x in `spaces *> x <* spaces`? |
| 03:38:45 | <dsal> | x is the parser you want between the spaces. |
| 03:39:26 | <guest1216> | parse (spaces *> many letter <* spaces) "" "a = b" == Right 'a' |
| 03:40:03 | <guest1216> | dsal: should I use many anyChar? |
| 03:40:14 | <dsal> | Yes, but you can name `spaces *> x <* spaces` `lexeme x = spaces *> x <* spaces` and then just type `lexeme (many letter)` (or use the one in Text.Megaparsec.Char.Lexer |
| 03:40:15 | <dsal> | ) |
| 03:40:51 | <dsal> | `many anychar ` might not do what you want. There are combinators like `manyTill`, but `many anyChar` will basically eat the rest of your input. |
| 03:40:56 | <guest1216> | dsal: I'd like to try Text.ParserCombinators.Parsec first |
| 03:41:06 | <dsal> | I usually use something like `satisfy` |
| 03:41:59 | × | cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer) |
| 03:42:25 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 03:42:43 | <dsal> | Oh, I just looked at the source. lexeme is actually: `lexeme spc p = p <* spc` |
| 03:42:46 | <MarcelineVQ> | idk if it's typical to consume the following spaces when lexing |
| 03:42:57 | <MarcelineVQ> | oh huh :> |
| 03:43:26 | → | pfurla joins (~pfurla@216.151.180.208) |
| 03:43:29 | <dsal> | It makes more sense to me to consume from the left. I guess that's worth knowing. |
| 03:43:50 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 03:43:55 | <dsal> | I remember in the past getting confused and just shotgunning lexeme all over my code. |
| 03:44:09 | → | cheater joins (~user@unaffiliated/cheater) |
| 03:44:16 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 03:48:07 | × | cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer) |
| 03:48:32 | <dsal> | I still find Haskell easier to read than English. If I'd've read that code a long time ago, I'd've been less confused. The *parameter* doc says it's for the whitespace after the lexeme, but function doc doesn't make that obvious. |
| 03:49:31 | <guest1216> | dsal: that lexeme is only in megaparsec? not in pasec? |
| 03:50:02 | <dsal> | I don't know that anyone's used parsec in a long time, but that's the actual code for it there, so you can make your own. :) |
| 03:50:36 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-sqydmizngzbsyouz) () |
| 03:50:48 | <guest1216> | haha, but parsec comes with ghc, so I like to try the old one first then others |
| 03:51:48 | → | cheater joins (~user@unaffiliated/cheater) |
| 03:52:23 | × | cheater quits (~user@unaffiliated/cheater) (Client Quit) |
| 03:52:44 | <monochrom> | MarcelineVQ: There is a convention that each parser holds the invariant "consume spaces after the stuff I need", therefore "when I start I can assume no space before the stuff I need". There is a global do-once "slurp beginning spaces" to kickstart the invariant. |
| 03:53:20 | <monochrom> | Basically parsec's Token module started that convention. |
| 03:55:13 | <monochrom> | I guess ReadS started that convention actually. |
| 03:56:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 03:56:37 | <monochrom> | Err no, ReadS didn't. (Or, Prelude.lex didn't.) |
| 03:57:46 | → | hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
| 03:57:57 | <monochrom> | > lex " abc " |
| 03:57:59 | <lambdabot> | [("abc"," ")] |
| 03:58:46 | <glguy> | consuming spaces after lexing a token is particularly useful for parsec where consuming any input has an effect on backtracking |
| 03:59:00 | Maxdamantus | always thought it made more sense to read at the start rather than at the end. |
| 03:59:00 | <monochrom> | Yeah. |
| 03:59:21 | <glguy> | so you don't want your lexeme parsers eating whitespace only to fail at parsing a lexeme |
| 03:59:50 | <glguy> | nor do you want every alternative to have to reprocess the same whitespac |
| 04:00:30 | → | Rudd0 joins (~Rudd0@185.189.115.98) |
| 04:01:00 | <Maxdamantus> | since nothing comes before the first thing to consume any leading whitespace, and trailing whitespace gets consumed by the EOF parser. |
| 04:01:55 | <glguy> | all the other factors end up being much more important than that |
| 04:02:42 | <glguy> | ideally you're just using an actual lexing pass, anyway |
| 04:02:48 | → | cheater joins (~user@unaffiliated/cheater) |
| 04:03:28 | <dsal> | It's not lexec |
| 04:03:44 | × | SupaYoshii quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
| 04:03:46 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 04:04:01 | × | pfurla quits (~pfurla@216.151.180.208) (Ping timeout: 265 seconds) |
| 04:04:16 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Client Quit) |
| 04:04:41 | × | hNoob quits (6b80d5f1@107-128-213-241.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 04:05:10 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 04:06:17 | → | SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 04:06:44 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 04:06:57 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 04:07:24 | × | jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 265 seconds) |
| 04:07:42 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer) |
| 04:08:01 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 04:09:44 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 260 seconds) |
| 04:09:55 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Ping timeout: 268 seconds) |
| 04:10:16 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 04:10:41 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:10:55 | × | RENNNN quits (~sobhan@gentoo/developer/sobhan) (Quit: Leaving) |
| 04:10:57 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 04:11:37 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 264 seconds) |
| 04:13:11 | → | stefan joins (~cri@42dots.de) |
| 04:13:31 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 04:13:42 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Ping timeout: 256 seconds) |
| 04:16:15 | × | xsperry quits (~as@unaffiliated/xsperry) (Read error: Connection reset by peer) |
| 04:17:34 | → | petersen joins (~petersen@redhat/juhp) |
| 04:18:33 | × | devdsp quits (~devdsp@178.162.212.214) (Ping timeout: 268 seconds) |
| 04:19:22 | → | argento joins (~argent0@168.227.97.23) |
| 04:21:43 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd) (Quit: Textual IRC Client: www.textualapp.com) |
| 04:23:57 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:24:48 | <steve-chavez> | Hello. While trying to upgrade cabal with `cabal install cabal-install`, I get a `unknown package: lukko` error. Does anyone know how to solve that? |
| 04:25:38 | × | gienah quits (~mwright@gentoo/developer/gienah) (Quit: leaving) |
| 04:25:44 | <steve-chavez> | cabal install lukko tells me there's no package lukko.. |
| 04:25:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:28:07 | → | gienah joins (~mwright@gentoo/developer/gienah) |
| 04:28:18 | <glguy> | steve-chavez, You can upgrade your cabal-install with ghcup |
| 04:28:39 | <glguy> | steve-chavez, you might have to run 'cabal update' for it to see that package |
| 04:29:33 | <steve-chavez> | Yes, I've done cabal update before. Will ghcup work on aarch64? |
| 04:30:53 | <steve-chavez> | Just got ghc 8.8.3 working on ubuntu aarch64. If possible I'd like to compile cabal from source.. |
| 04:31:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 04:32:35 | → | frankie2 joins (~frankie@s91904426.blix.com) |
| 04:32:49 | <glguy> | I have no idea |
| 04:33:16 | <MarcelineVQ> | dsal, monochrom: It does make sense, I wasn't thinking |
| 04:33:38 | <dsal> | The backtracking thing made sense. |
| 04:35:32 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection) |
| 04:36:10 | → | `shy_boy` joins (~xhearth@110.54.206.153) |
| 04:36:12 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 04:36:13 | × | `shy_boy` quits (~xhearth@110.54.206.153) (Excess Flood) |
| 04:36:50 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 04:37:16 | × | drbean quits (~drbean@TC210-63-209-202.static.apol.com.tw) (Ping timeout: 256 seconds) |
| 04:37:28 | → | `shy_boy` joins (~xhearth@110.54.206.153) |
| 04:37:55 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:c08f:f3d8:5294:ef76) |
| 04:40:37 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 04:42:19 | → | mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) |
| 04:43:30 | <remexre> | is there something like Functor+Foldable for containers with a fixed element? |
| 04:44:08 | <jle`> | fixed element? |
| 04:44:17 | <MarcelineVQ> | like monofunctor or something? |
| 04:44:18 | <remexre> | uh like, specialized containers, e.g. IntVector |
| 04:44:33 | <remexre> | ah yep that looks like it |
| 04:44:33 | <jle`> | maybe mono-traversable |
| 04:44:35 | <remexre> | thanks! |
| 04:44:36 | <jle`> | mono-foldable |
| 04:46:58 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 04:48:20 | → | triode joins (~melosense@4e69b241.skybroadband.com) |
| 04:48:24 | triode | is now known as Guest95606 |
| 04:48:36 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 04:51:27 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 04:51:43 | × | chibi_ quits (~chibi@75-26-238-119.lightspeed.glvwil.sbcglobal.net) (Ping timeout: 260 seconds) |
| 04:54:04 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 04:56:49 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 04:57:24 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 268 seconds) |
| 04:58:07 | × | renzhi quits (~renzhi@2607:fa49:6500:ac00::bfed) (Ping timeout: 272 seconds) |
| 04:59:04 | → | mbomba joins (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
| 04:59:28 | × | brodie_ quits (~brodie@207.53.253.137) (Quit: brodie_) |
| 05:01:43 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 268 seconds) |
| 05:01:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:14:40 | → | brodie_ joins (~brodie@207.53.253.137) |
| 05:15:02 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 05:15:56 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 05:15:57 | × | mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 260 seconds) |
| 05:17:09 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 05:20:49 | brodie_ | is now known as brodie |
| 05:21:47 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 05:23:48 | × | StoneToad quits (~StoneToad@199-167-119-150.ppp.storm.ca) (Ping timeout: 260 seconds) |
| 05:24:56 | → | pyx joins (~pyx@unaffiliated/pyx) |
| 05:25:05 | × | pyx quits (~pyx@unaffiliated/pyx) (Client Quit) |
| 05:28:59 | → | StoneToad joins (~StoneToad@104-192-232-58.ppp.storm.ca) |
| 05:34:11 | × | brodie quits (~brodie@207.53.253.137) (Quit: brodie) |
| 05:36:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 05:37:30 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 05:39:55 | → | DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
| 05:41:22 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@66.115.189.229) (Ping timeout: 256 seconds) |
| 05:41:52 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 05:45:12 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 05:48:10 | <guest1216> | why there's no splitOn and splitWith in Data.List? |
| 05:48:39 | <guest1216> | I know there's Data.List.Split, but why it doesn't come with ghc? |
| 05:49:12 | × | `shy_boy` quits (~xhearth@110.54.206.153) (Remote host closed the connection) |
| 05:49:26 | <guest1216> | and yeah, they're in Data.Text, but if we want to operate on String, we have to unpack String to Text? |
| 05:49:29 | → | plutoniix joins (~q@184.82.198.131) |
| 05:50:32 | → | `shy_boy` joins (~xhearth@110.54.206.153) |
| 05:56:36 | <maerwald> | steve-chavez: not yet (wrt aarch64), but should be possible, since there are already debian aarch bindists and cabal ones as well |
| 05:58:18 | <maerwald> | https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-aarch64-ubuntu-18.04.tar.xz |
| 05:58:19 | → | nek0 joins (~nek0@mail.nek0.eu) |
| 05:58:25 | <maerwald> | https://downloads.haskell.org/~ghc/9.0.1-alpha1/ghc-9.0.0.20200925-aarch64-deb9-linux.tar.xz |
| 06:02:23 | <steve-chavez> | maerwald: Whoa.. thanks! Hope that cabal-install 3.4 works with ghc 8.8.2.. 3.2 didn't .. |
| 06:02:37 | <steve-chavez> | Because of https://github.com/haskell/cabal/issues/6327 |
| 06:03:08 | → | brodie joins (~brodie@207.53.253.137) |
| 06:05:43 | → | coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) |
| 06:06:06 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:06:26 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:07:54 | <steve-chavez> | 3.4 contained a cabal binary! Hope I can compile my project now.. (crossing fingers).. |
| 06:09:06 | × | cgfbee quits (~bot@oc1.itim-cj.ro) (Remote host closed the connection) |
| 06:11:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 06:13:36 | × | brodie quits (~brodie@207.53.253.137) (Quit: brodie) |
| 06:18:38 | × | mounty quits (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c) (Ping timeout: 260 seconds) |
| 06:18:40 | × | keltono quits (~keltono@x-160-94-179-178.acm.umn.edu) (Ping timeout: 246 seconds) |
| 06:20:51 | → | keltono joins (~keltono@x-160-94-179-178.acm.umn.edu) |
| 06:27:30 | × | `shy_boy` quits (~xhearth@110.54.206.153) (Quit: PLease buy best selected product at http://amazonian2.000webhostapp.com/) |
| 06:28:30 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:32:35 | <koz_> | maerwald: The oleg.fi download of cabal-install-3.4.0.0 blows up when ghcup tries to cURL it down. |
| 06:33:29 | → | mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) |
| 06:33:58 | × | noecho quits (~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - http://znc.in) |
| 06:34:31 | → | noecho joins (~noecho@2a01:4f8:1c0c:80ee::4223) |
| 06:37:25 | × | sim590 quits (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 264 seconds) |
| 06:38:35 | <maerwald> | koz_: how is that |
| 06:39:09 | <koz_> | Where's tomsmeding's pastebin link gone... |
| 06:39:34 | <int-e> | @where paste |
| 06:39:34 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 06:39:56 | <int-e> | . o O ( I |
| 06:40:00 | <koz_> | maerwald: https://paste.tomsmeding.com/Ky4SpOIX |
| 06:40:04 | <koz_> | Like that. |
| 06:40:26 | <int-e> | . o O ( I'd update @paste but we seem to be changing pastebins more frequently than I'm updating lambdabot :-/ ) |
| 06:40:51 | <koz_> | This is not specific to my machine (I've reproed it in at least two places), my cURL works fine on every other site, and every other version of cabal (when installing via ghcup). |
| 06:41:16 | <koz_> | int-e: Are you in charge of lambdabot? |
| 06:41:26 | <koz_> | If so, could you update @unmtl with more transformers? |
| 06:41:29 | <maerwald> | internet is broken then I guess |
| 06:41:55 | <koz_> | maerwald: I think it's an issue with oleg.fi honestly. |
| 06:41:57 | × | nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Read error: Connection reset by peer) |
| 06:42:02 | <koz_> | Figured I'd run it by you first. |
| 06:42:07 | → | nyaomin joins (~naomi@2603-7080-c43e-59ad-c878-29ff-fedf-ce89.res6.spectrum.com) |
| 06:42:22 | <int-e> | koz_: maybe? |
| 06:42:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:42:30 | <maerwald> | the certificate has no issuer name it seems |
| 06:42:44 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 06:43:36 | → | sim590 joins (~sim590@modemcable090.207-203-24.mc.videotron.ca) |
| 06:43:51 | <koz_> | int-e: Maybe you're in charge, or maybe you could update @unmtl with more transformers? |
| 06:45:49 | <int-e> | I'm in charge. I may get around to adding something to @unmtl |
| 06:46:23 | <koz_> | int-e: OK, thanks! |
| 06:46:34 | <koz_> | Main one is ExceptT. |
| 06:47:33 | <int-e> | that one is actually in the repo version, just never got around to rebuilding the thing, it seems |
| 06:48:24 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Ping timeout: 268 seconds) |
| 06:52:12 | <int-e> | koz_: so since you brought it up, what are the others? |
| 06:52:41 | <koz_> | int-e: That was basically the only one I need. |
| 06:53:00 | <koz_> | I recall other folks mentioning some more, but that's the main one for me. |
| 06:57:05 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
| 07:04:45 | <guest1216> | how to match a continuum string? letter can't match abc.cdef |
| 07:05:53 | <koz_> | "Continuum string" sounds like a physics term. :P |
| 07:05:59 | → | p8m_ joins (p8m@gateway/vpn/protonvpn/p8m) |
| 07:06:26 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:c08f:f3d8:5294:ef76) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:06:43 | <guest1216> | I don't know how to describe it, a string without spaces |
| 07:07:14 | <guest1216> | a continuum non-space char? |
| 07:07:23 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Read error: Connection reset by peer) |
| 07:08:23 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 07:08:48 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 256 seconds) |
| 07:10:25 | × | leothrix quits (~leothrix@elastic/staff/leothrix) (Ping timeout: 240 seconds) |
| 07:12:17 | → | asheshambasta joins (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) |
| 07:14:20 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:15:20 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 07:15:43 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 07:15:43 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 07:15:51 | <MarcelineVQ> | you'remadcompletelymadandIwon'thaveit |
| 07:16:03 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 07:16:03 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
| 07:16:04 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 07:16:04 | × | skiold quits (~skiold@gateway/tor-sasl/skiold) (Ping timeout: 240 seconds) |
| 07:16:04 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 07:16:10 | <steve-chavez> | maerwald: It worked! Thank you so much man.. you saved me! |
| 07:16:23 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 07:16:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 07:17:14 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 07:17:17 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 07:17:18 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:8872:797c:1a98:8dff) |
| 07:17:18 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 07:17:21 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 07:17:24 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 07:17:36 | → | skiold joins (~skiold@gateway/tor-sasl/skiold) |
| 07:17:39 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 07:18:49 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 07:20:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 07:20:18 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@49.228.254.151) |
| 07:20:56 | → | dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
| 07:23:25 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 07:23:31 | → | solonarv joins (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr) |
| 07:25:11 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 07:26:13 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 07:26:31 | → | leothrix joins (~leothrix@elastic/staff/leothrix) |
| 07:26:56 | × | p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds) |
| 07:29:01 | × | iteratee quits (~kyle@162.211.154.4) (Ping timeout: 264 seconds) |
| 07:31:22 | → | iteratee joins (~kyle@162.211.154.4) |
| 07:33:53 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: brb) |
| 07:34:01 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 07:34:01 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 07:34:01 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 07:34:43 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
| 07:34:43 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds) |
| 07:35:05 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 07:36:03 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 07:36:23 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
| 07:36:24 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 07:36:43 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 07:37:01 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 07:37:02 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 07:37:06 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 07:37:08 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 07:37:45 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 07:39:20 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 07:39:26 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 07:40:38 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 07:41:26 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 07:44:35 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:44:42 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 07:50:23 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 07:50:40 | → | p8m_ joins (p8m@gateway/vpn/protonvpn/p8m) |
| 07:52:46 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds) |
| 07:52:51 | Guest18945 | is now known as lep-delete |
| 07:56:53 | × | frankie2 quits (~frankie@s91904426.blix.com) (Remote host closed the connection) |
| 07:59:58 | → | fendor joins (~fendor@178.165.130.183.wireless.dyn.drei.com) |
| 08:02:09 | × | Varis quits (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
| 08:02:47 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 08:03:42 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 08:04:27 | × | steve-chavez quits (~steve-cha@190.43.229.137) (Quit: WeeChat 2.4) |
| 08:09:08 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-soxuifipgxjanjxg) (Quit: Connection closed for inactivity) |
| 08:09:34 | → | fendor_ joins (~fendor@77.119.130.134.wireless.dyn.drei.com) |
| 08:09:40 | <dsal> | guest1216: You are probably looking for `satisfy` |
| 08:11:31 | <guest1216> | dsal: I saw that letter = satisfy isAlpha, digit = satisfy isDigit, how to match a string without space |
| 08:11:56 | <dsal> | :t satisfy |
| 08:11:58 | <lambdabot> | error: Variable not in scope: satisfy |
| 08:12:15 | <dsal> | satisfy is just (Char -> Bool) |
| 08:12:27 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 08:12:29 | <dsal> | Make a function that returns true for chars you like. |
| 08:12:40 | × | fendor quits (~fendor@178.165.130.183.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 08:12:40 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) |
| 08:12:44 | <dsal> | `satisfy (/= ' ')` |
| 08:12:53 | <dibblego> | :type isSpace |
| 08:13:41 | <dsal> | :t isSpace |
| 08:13:42 | <lambdabot> | Char -> Bool |
| 08:14:45 | → | Usurp1 joins (~Usurp@178.239.168.171) |
| 08:15:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:18:56 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 08:19:28 | × | marek quits (~mmahut@209.250.249.245) (Changing host) |
| 08:19:28 | → | marek joins (~mmahut@fedora/pyxel) |
| 08:20:03 | <guest1216> | dsal: that's right! |
| 08:26:31 | <guest1216> | dsal: sometimes the parser's return values may not be the same type, how to use <|> work on them? like `parse (x :: Parser (String,String) <|> y :: Parser (String, Int)) "" "..."` |
| 08:26:53 | <guest1216> | <|> :: f a -> f a -> f a |
| 08:27:28 | <guest1216> | I should use *> here... |
| 08:27:51 | <guest1216> | never mind |
| 08:30:57 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:36:27 | × | Usurp1 quits (~Usurp@178.239.168.171) (Remote host closed the connection) |
| 08:37:15 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:37:25 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 08:39:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 08:40:51 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection) |
| 08:43:12 | × | iteratee quits (~kyle@162.211.154.4) (Ping timeout: 256 seconds) |
| 08:43:38 | → | limpkin1 joins (~limpkin@s91904426.blix.com) |
| 08:44:21 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 08:46:07 | → | iteratee joins (~kyle@162.211.154.4) |
| 08:48:24 | <guest1216> | try to turn "server = abc.net\nport=6667\nname =nick\n" to fromList[("server", "abc.net"), ("port","6667"), ("name","nick")] |
| 08:48:32 | × | xff0x quits (~fox@2001:1a81:5260:ab00:b677:a698:4a99:d811) (Ping timeout: 260 seconds) |
| 08:49:27 | → | xff0x joins (~fox@2001:1a81:5260:ab00:d51e:2f78:24df:5c60) |
| 08:49:54 | <guest1216> | p9 :: Parser (String,String); p9 = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many (satisfy (/= ' ')); spaces; return (x,y)} |
| 08:51:06 | <guest1216> | parse p9 "" "on that repeatly string" won't work |
| 08:51:44 | → | kuribas joins (~user@ptr-25vy0i8agrj36ppuptm.18120a2.ip6.access.telenet.be) |
| 08:53:59 | <idnar> | shouldn't that be satisfy (/= '\n')? |
| 08:54:37 | <iqubic> | Even better is "satify (not isSpace)" |
| 08:54:47 | <iqubic> | Using "isSpace" from Data.Char |
| 08:55:43 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 08:56:32 | <guest1216> | but that only get Right ("server","abc.net") |
| 08:56:51 | <guest1216> | there're three repeat blocks in that string |
| 08:57:03 | <merijn> | guest1216: Well, p9 doesn't magically get repeated |
| 08:57:05 | <guest1216> | I don't know how to math that |
| 08:57:19 | <merijn> | guest1216: If you write "parse p9" it will parse 'p9' *once* |
| 08:57:23 | <guest1216> | merijn: how to let p9 repeat? |
| 08:57:28 | <guest1216> | forever p9: |
| 08:57:45 | <merijn> | Well, looking at your example input, you probably want "sepBy p9 eol" |
| 08:57:49 | <merijn> | @hoogle sepBy |
| 08:57:50 | <lambdabot> | Text.ParserCombinators.ReadP sepBy :: ReadP a -> ReadP sep -> ReadP [a] |
| 08:57:50 | <lambdabot> | Text.Parsec sepBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a] |
| 08:57:50 | <lambdabot> | Text.Parsec.Combinator sepBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a] |
| 08:57:53 | <merijn> | hmm |
| 08:58:10 | <merijn> | Probably want the version from parser-combinators if you're using megaparsec |
| 08:58:27 | <solonarv> | yes, and it's re-exported by megaparsec |
| 08:58:33 | <guest1216> | I don't know speBy's usage, spe is short for? |
| 08:58:38 | <merijn> | separator |
| 08:58:52 | <solonarv> | *sep*, not *spe* |
| 08:58:55 | <merijn> | "sepBy x y" is "parse 0 or more 'x' separated by 'y'" |
| 08:59:11 | <solonarv> | "sepBy" is short for "separated by", it's meant to be used infix |
| 08:59:13 | <merijn> | So "sepBy p9 eol" would be "parse 0 or more p9, separated by newlines" |
| 08:59:36 | <solonarv> | for example, "p9 `sepBy` eol" reads "p9 separated by newline(s)" |
| 08:59:56 | <guest1216> | ok, I will try it |
| 09:00:26 | × | Ekho quits (~Ekho@unaffiliated/ekho) (Quit: CORE ERROR, SYSTEM HALTED.) |
| 09:01:17 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 09:01:36 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 268 seconds) |
| 09:01:38 | <guest1216> | there's no eol in Text.Parsec... |
| 09:02:15 | <dminuoso> | merijn: From what I gathered over the past few days, they're using parsec? |
| 09:02:21 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 09:02:32 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds) |
| 09:03:32 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 09:04:37 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 09:05:52 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds) |
| 09:07:08 | <int-e> | guest1216: there's https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec-Char.html#v:endOfLine |
| 09:07:36 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 09:08:51 | → | superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
| 09:09:28 | <superstar64> | is there a sort of semi flexible instances, where you can only match `T a b c` or raw type variables `a`? |
| 09:09:36 | <superstar64> | i find i'm doing this pattern a lot in my code |
| 09:09:44 | <guest1216> | parse (sepBy p9 endOfLine) "" "server = abc.net\n port= 6667\n" == Right ("server", "abc.net\n") |
| 09:11:43 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
| 09:12:54 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 09:13:38 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 09:13:48 | → | Ekho joins (~Ekho@unaffiliated/ekho) |
| 09:14:08 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Remote host closed the connection) |
| 09:14:51 | <dminuoso> | superstar64: What do you mean by "only match `T a b c`" exactly? |
| 09:15:08 | <superstar64> | that's the normal requirement for instances right? |
| 09:15:10 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 09:15:51 | <superstar64> | i just want instances with that and the option to match with only a type variable |
| 09:15:55 | <dminuoso> | superstar64: Standard Haskell demands the shape of the instance head to be `T a_0 a_2 .. a_n` where a_0 through a_n is an arbitrary amount of type variables |
| 09:16:08 | <superstar64> | yes i know that |
| 09:16:15 | <dminuoso> | So what is your question exactly? |
| 09:16:52 | <superstar64> | i'm just noticing i'm doing something slightly looser and i'm wonder if there's a limited version of flexible instances? |
| 09:17:00 | <dminuoso> | What do you mean by "limited" exactly? |
| 09:17:12 | <dminuoso> | Do you have an example of an instance you'd like to write? |
| 09:17:17 | <superstar64> | the normal `T a b c` and the ability to match `a` |
| 09:17:24 | <dminuoso> | You mean like `T Int b c` ? |
| 09:17:29 | <superstar64> | no |
| 09:17:43 | <dminuoso> | Then I do not understand. |
| 09:18:29 | <superstar64> | `instance (a ~ a') => F a (MyObject a')` |
| 09:18:56 | <superstar64> | i only want the ability to match `T a b c` and `a` |
| 09:20:22 | <superstar64> | " (Arguably it should be okay if just one has this form and the others are type variables, but that’s the rules at the moment)." from https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#extension-FlexibleInstances |
| 09:20:30 | <superstar64> | is there more info on this? |
| 09:24:07 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 09:24:58 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Quit: hyiltiz) |
| 09:25:13 | × | Bigcheese quits (~quassel@unaffiliated/bigcheese) (Remote host closed the connection) |
| 09:26:09 | → | hyiltiz joins (~quassel@93.119.106.77) |
| 09:26:09 | × | hyiltiz quits (~quassel@93.119.106.77) (Changing host) |
| 09:26:09 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 09:26:21 | → | Bigcheese joins (~quassel@unaffiliated/bigcheese) |
| 09:26:50 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@49.228.254.151) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:27:45 | <lortabac> | superstar64: do you mean you want to forbid the head of the instance declaration from mentioning concrete types in type-constructor arguments? |
| 09:28:02 | <superstar64> | yes |
| 09:28:23 | <superstar64> | i just want normal rules in addition to matching type variables |
| 09:29:18 | <guest1216> | where it's wrong? https://paste.ubuntu.com/p/QSCc59fsFR/ |
| 09:29:29 | <lortabac> | superstar64: isn't it just Haskell 98? |
| 09:29:55 | <superstar64> | lortabac, no you can't do `instance F a where` |
| 09:31:15 | <lortabac> | is there a use case for 'instance F a'? |
| 09:31:18 | <merijn> | superstar64: You can, but that overlaps everything, so that's not what you want :p |
| 09:31:21 | <merijn> | lortabac: No |
| 09:31:22 | <dminuoso> | superstar64: https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/multi.pdf should be a worthwhile read. |
| 09:31:50 | <superstar64> | there's a uses with multiple param typeclasses |
| 09:32:22 | <merijn> | superstar64: multi param typeclasses aren't standard anyway, so Haskell2010 says nothing about it :p |
| 09:32:23 | <int-e> | guest1216: satisfy (/= ' ') matches newlines |
| 09:32:23 | → | michalz joins (~user@185.246.204.59) |
| 09:32:42 | <superstar64> | well i want multi param typeclasses with semi flexible instances |
| 09:32:52 | <merijn> | That's not a thing |
| 09:33:03 | <int-e> | guest1216: not sure what to use instead, maybe try satisfy (not . isSpace) (isSpace is from Data.Char) |
| 09:33:05 | <merijn> | Just enable FlexibleInstances |
| 09:33:15 | <lortabac> | superstar64: even with multi param typeclasses, matching on 'a' is generally a bad idea |
| 09:33:49 | <int-e> | guest1216: the other thing that's wrong is that you don't terminate the parse using `eof`, so it can stop in the middle and discard the remaining input. |
| 09:34:35 | <dminuoso> | superstar64: So you roughly want something like `instance {-# OVERLAPPING #-} C (T a b c); instance C a` ? |
| 09:34:36 | <lortabac> | superstar64: there might be situations in which it is necessary, but those are certainly not common |
| 09:34:59 | <superstar64> | what's `{-# OVERLAPPING #-}`? |
| 09:35:10 | <int-e> | guest1216: try parse (endEndBy parseAll endOfLine *> eof) |
| 09:35:21 | <int-e> | guest1216: err, sepEndBy |
| 09:35:43 | <dminuoso> | superstar64: Overlapping instances, keep in mind that `instance C a`, were it allowed, would match *all* types, including `T a b c` |
| 09:37:13 | <dminuoso> | Unlike case-of in the value world, where the pattern matching has a tractable order, such that `case t of T ... -> ...; _ -> ...` makes sense, it doesn't work like that typeclasses. If `instance C a` was allowed, the above would be the sort of equivalent |
| 09:37:19 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 09:37:19 | → | amerigo joins (uid331857@gateway/web/irccloud.com/x-qlwggbtbsclqlize) |
| 09:37:44 | <dminuoso> | Oh. it seems allowed inf act with FlexibleInstances |
| 09:37:48 | <dminuoso> | % instance Functor f |
| 09:37:48 | <yahb> | dminuoso: ; <interactive>:5:10: warning: [-Wmissing-methods]; * No explicit implementation for; `fmap'; * In the instance declaration for `Functor f' |
| 09:37:55 | <dminuoso> | Well. I guess there you go, then. |
| 09:38:26 | dminuoso | regrets overlapping instances every time |
| 09:38:46 | <superstar64> | maybe i can avoid flexible instances with functional dependencies, i'll try to refactor my code |
| 09:38:58 | <dminuoso> | superstar64: fundeps does not replace flexible instances. |
| 09:39:10 | <merijn> | https://twitter.com/Symbo1ics/status/1339328851365814272 >.> |
| 09:39:11 | <superstar64> | does it replace my specific usecase? |
| 09:39:16 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-zxxiepmgnexcriai) (Quit: Connection closed for inactivity) |
| 09:39:25 | <dminuoso> | in fact, for fundeps to be useful you usually have to enable MPTC, and flexible instances/contexts anyway |
| 09:39:36 | → | nineonine joins (~nineonine@50.216.62.2) |
| 09:40:04 | <int-e> | merijn: why does that sound like XML |
| 09:41:09 | <lortabac> | superstar64: you didn't say what you use case is :) |
| 09:41:12 | <lortabac> | *your |
| 09:41:20 | <int-e> | (What I mean is, in this context, JSON looks like an XML-shaped hole for people to fall into.) |
| 09:41:36 | <dminuoso> | int-e: Unlike programming code, JSON is human readable! |
| 09:41:43 | <superstar64> | i'm writing a compiler and i find this neat way of having composible typesystems |
| 09:41:44 | <merijn> | @quote the.essence.of |
| 09:41:44 | <lambdabot> | dibblego says: if only all/most programmers understood the essence of compositional programming... _peter: Stupid question, is there any nice way to do a ::= with a list? |
| 09:41:47 | <merijn> | aww |
| 09:41:49 | <merijn> | wrong quote |
| 09:42:05 | <superstar64> | it's a lot of `instance (a ~ a') => F a (G a')` |
| 09:42:10 | <merijn> | @quote Wadler essence.of |
| 09:42:11 | <lambdabot> | Wadler says: So, the essence of XML is this: the problem it solves is not hard, and it does not solve the problem well. |
| 09:42:25 | × | RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 240 seconds) |
| 09:42:35 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0) |
| 09:43:16 | <kuribas> | the tools around it suck, but then it's made for languages that suck |
| 09:43:23 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 09:43:28 | <kuribas> | so it cancels out |
| 09:43:35 | → | RusAlex joins (~Chel@unaffiliated/rusalex) |
| 09:44:51 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 09:45:15 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 265 seconds) |
| 09:45:17 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 09:45:31 | <lortabac> | superstar64: it's hard to tell without knowing the details, but at first sight it looks like a good use case for singleton-bool |
| 09:46:40 | <superstar64> | i have things like `data Application e = Application e e` ... `instance TypeCheck e (Application e')` ... |
| 09:49:38 | <lortabac> | superstar64: so the purpose of the instance is only to ensure that the types are equal? |
| 09:50:00 | <lortabac> | is there are instance for when the types are NOT equal? |
| 09:50:14 | <superstar64> | i don't think so |
| 09:50:26 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 09:50:36 | <lortabac> | then can't you just write a function? |
| 09:50:50 | × | dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing) |
| 09:51:11 | <superstar64> | i have a giant either chain, and the an instance for `TypeCheck` for either |
| 09:51:19 | <superstar64> | and a project from my ast to the either chain |
| 09:51:21 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:51:21 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 09:51:25 | edk_ | is now known as demiurge |
| 09:51:38 | → | dexterlb joins (~dexterlb@2a01:9e40:2:2::2) |
| 09:52:08 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 09:52:09 | × | fendor_ quits (~fendor@77.119.130.134.wireless.dyn.drei.com) (Remote host closed the connection) |
| 09:52:21 | <lortabac> | superstar64: are you sure you need the TypeCheck class at all? |
| 09:52:35 | <superstar64> | well, i don't need them, but it makes this code way more composble |
| 09:53:21 | <lortabac> | the purpose of type classes is overloading, if you don't do any overloading I don't see the point |
| 09:53:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 09:53:42 | <lortabac> | but I don't know your code, so I might have misunderstood |
| 09:53:44 | <superstar64> | if i have 2 different asts, i can share a lot of code between them this way |
| 09:54:04 | <superstar64> | i just need to project them both into an either chain |
| 09:54:36 | <lortabac> | then it looks like you need 'instance TypeCheck AST1' and 'instance TypeCheck AST2' |
| 09:55:03 | <superstar64> | no, i have each constructor as it's own type |
| 09:55:50 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 264 seconds) |
| 09:58:32 | → | fendor joins (~fendor@77.119.130.134.wireless.dyn.drei.com) |
| 09:58:40 | <solonarv> | superstar64: what are the methods of this TypeCheck class? |
| 09:59:56 | <superstar64> | i just have 1 method per typeclass |
| 10:00:35 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 10:00:45 | <solonarv> | that is an extremely weird way of splitting things up |
| 10:00:50 | × | argento quits (~argent0@168.227.97.23) (Remote host closed the connection) |
| 10:01:42 | <solonarv> | but what, *exactly*, is the (apparently only) method of TypeCheck? |
| 10:03:48 | <superstar64> | `class TypeCheck m e σ where { typeCheck :: e -> m σ }` |
| 10:04:28 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:05:27 | <solonarv> | uhhh... then how are you writing 'data Application e = Application e e; instance TypeCheck e (Application e') where ...' ? that doesn't kind-check |
| 10:06:20 | <superstar64> | give me a second, i'll post a paste after i'm done refactoring |
| 10:08:46 | <merijn> | I'm now morbidly curious |
| 10:11:09 | <superstar64> | https://gist.github.com/Superstar64/5eb07d95e538f8a320d611471471d3dd |
| 10:11:30 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 10:11:45 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds) |
| 10:13:26 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 10:13:42 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 10:13:47 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 10:14:31 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) |
| 10:17:15 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 10:17:46 | <superstar64> | this is called the tagless final style right? |
| 10:18:06 | <superstar64> | i read oleg's paper on tihs |
| 10:18:33 | <superstar64> | or wait, i might be misremebering |
| 10:19:17 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 260 seconds) |
| 10:19:38 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:21:55 | <merijn> | Well...that looks like a nightmare to actually use :) |
| 10:22:22 | <solonarv> | I agree. I can't fathom why you would design your compiler like this. |
| 10:22:38 | <superstar64> | so i can share code between 2 different asts? |
| 10:22:58 | <merijn> | superstar64: In reality you can't share code between different ASTs |
| 10:23:00 | × | pjb quits (~t@2a01cb04063ec5007460d15e87468757.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
| 10:23:04 | <solonarv> | do you actually *have* two different ASTs? I don't even see one AST in there |
| 10:23:06 | <superstar64> | if i have a hindley milner version and an explicited typed version, i can share these typing rules |
| 10:23:20 | <superstar64> | that's only the typing rules solonarv |
| 10:23:39 | <merijn> | Prediction: The overhead and confusion of this whole approach will cost you 5x more time than simply writing the code twice |
| 10:23:59 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 10:24:08 | <solonarv> | merijn: seconded |
| 10:24:15 | <superstar64> | https://gist.github.com/Superstar64/dfd430fcf10f3cb6363b5377116a96d1 |
| 10:24:25 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving) |
| 10:24:27 | <superstar64> | here's a snippet from my core language |
| 10:24:53 | <superstar64> | it's been working pretty well for me so far |
| 10:27:09 | <fuzzypixelz> | can I write multiline list comprehensions? |
| 10:27:31 | <superstar64> | fuzzypixelz, can't you use do notation for that? |
| 10:27:35 | <guest1216> | int-e: https://paste.ubuntu.com/p/SVc9hPqn3t/ |
| 10:28:19 | <solonarv> | fuzzypixelz: of course, you can generally spread any expression out over multiple lines; list comprehensions are no exception to that |
| 10:29:04 | <fuzzypixelz> | yes, but I don't know how to use do notation... |
| 10:29:04 | <guest1216> | int-e: https://paste.ubuntu.com/p/Ssn6PbxJVK/ |
| 10:30:01 | <solonarv> | fuzzypixelz: here's an example of a multiline list comprehension: https://github.com/Solonarv/adventofcode-2020/blob/main/haskell/solutions/Day03.hs#L46-L53 |
| 10:30:03 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 10:30:25 | → | u0_a203__ joins (~u0_a203@37.98.47.224) |
| 10:31:03 | × | u0_a203__ quits (~u0_a203@37.98.47.224) (Client Quit) |
| 10:33:38 | → | ubert joins (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) |
| 10:35:16 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 10:35:16 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Client Quit) |
| 10:35:38 | × | guest1216 quits (~user@49.5.6.87) (Ping timeout: 256 seconds) |
| 10:37:27 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 10:40:50 | × | xff0x quits (~fox@2001:1a81:5260:ab00:d51e:2f78:24df:5c60) (Ping timeout: 264 seconds) |
| 10:41:39 | → | xff0x joins (~fox@2001:1a81:5260:ab00:d700:e460:f864:a3a3) |
| 10:43:10 | × | st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Quit: WeeChat 2.9) |
| 10:47:30 | → | inkbottle joins (~inkbottle@aaubervilliers-654-1-95-58.w86-212.abo.wanadoo.fr) |
| 10:48:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-76-48.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 10:49:01 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 10:51:48 | → | raichoo joins (~raichoo@dslb-092-073-214-015.092.073.pools.vodafone-ip.de) |
| 10:52:36 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 10:55:05 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 10:56:26 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 11:01:44 | × | cvlad- quits (sid203065@gateway/web/irccloud.com/x-tonetmfmrrlnwmtg) (Quit: Connection closed for inactivity) |
| 11:01:59 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 11:03:26 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
| 11:03:39 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 11:07:11 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) |
| 11:09:31 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 11:09:46 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 11:10:38 | × | superstar64 quits (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Remote host closed the connection) |
| 11:11:52 | → | Death_ joins (~Death@125.166.65.72) |
| 11:15:58 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) |
| 11:16:28 | → | borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 11:18:12 | → | dhil joins (~dhil@78.156.97.38) |
| 11:19:49 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 11:21:02 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 264 seconds) |
| 11:21:44 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 11:22:45 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Client Quit) |
| 11:23:06 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 11:24:06 | → | ClaudiusMaximus joins (~claude@196.67.6.51.dyn.plus.net) |
| 11:24:06 | × | ClaudiusMaximus quits (~claude@196.67.6.51.dyn.plus.net) (Changing host) |
| 11:24:06 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 11:24:19 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Client Quit) |
| 11:24:42 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 11:28:58 | × | Miroboru quits (~myrvoll@78.156.11.206) (Ping timeout: 260 seconds) |
| 11:28:59 | × | matryoshka quits (~matryoshk@184.75.223.227) (Ping timeout: 268 seconds) |
| 11:29:14 | → | Miroboru joins (~myrvoll@78.91.103.180) |
| 11:29:57 | × | Death_ quits (~Death@125.166.65.72) (Quit: Leaving...) |
| 11:32:46 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: Lost terminal) |
| 11:33:11 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 11:34:01 | <pja> | solonarv: I usually turn those into do .. pure blocks. |
| 11:34:39 | <pja> | Not sure why, but I prefer it that way. |
| 11:37:55 | <int-e> | pja: they lay out more nicely and the result is at the end... so when reading code linearly you know what the variables in there are. all this for the small price of having to use `guard` for filtering by boolean constraints |
| 11:39:58 | × | rprije quits (~rprije@14-203-203-69.tpgi.com.au) (Ping timeout: 246 seconds) |
| 11:40:44 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: Lost terminal) |
| 11:41:08 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 11:42:33 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 11:45:51 | → | christo joins (~chris@81.96.113.213) |
| 11:49:14 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 264 seconds) |
| 11:50:45 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: Lost terminal) |
| 11:51:11 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 11:55:51 | → | Tario joins (~Tario@201.192.165.173) |
| 11:57:52 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 11:58:01 | → | cgfbee joins (~bot@oc1.itim-cj.ro) |
| 12:01:12 | × | carldd0 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Quit: The Lounge - https://thelounge.chat) |
| 12:01:20 | → | kenran joins (~kenran@i59F67BCB.versanet.de) |
| 12:01:37 | → | carldd joins (~carldd@90-224-49-113-no56.tbcn.telia.com) |
| 12:07:12 | → | superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
| 12:07:14 | × | borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 264 seconds) |
| 12:08:11 | <[exa]> | is there any good reading material about the logic of migrations in Database.Selda ? (tutorial is missing so far) |
| 12:09:27 | × | berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
| 12:09:53 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 12:10:16 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 12:12:18 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:13:57 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 12:14:15 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 12:22:38 | × | Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 268 seconds) |
| 12:29:25 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds) |
| 12:30:42 | → | FreeBirdLjj joins (~freebirdl@101.87.168.174) |
| 12:31:22 | → | jmchael_ joins (~jmchael@87.112.46.194) |
| 12:33:05 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 240 seconds) |
| 12:33:55 | <cheater> | has anyone been able to compile the llvm lib for llvm 9.0.1 on windows? |
| 12:33:57 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 12:35:12 | <fuzzypixelz> | hello |
| 12:35:16 | <fuzzypixelz> | I write |
| 12:35:18 | <fuzzypixelz> | lambda byr: byr >= 1920 and byr <= 2002 |
| 12:35:23 | × | FreeBirdLjj quits (~freebirdl@101.87.168.174) (Ping timeout: 265 seconds) |
| 12:35:48 | <[exa]> | fuzzypixelz: that's some snakeish variant of haskell? |
| 12:35:50 | <int-e> | That doesn't look like Haskell, what is it? Python? |
| 12:35:53 | <fuzzypixelz> | but pylint says: simplify chained expression between operands |
| 12:36:01 | <int-e> | [exa] said it better |
| 12:36:02 | <fuzzypixelz> | oh my lord! wrong channel! |
| 12:36:12 | <[exa]> | p a r s e l t o n g u e |
| 12:36:36 | <superstar64> | https://pyos.github.io/dg/ |
| 12:36:37 | <[exa]> | oh worry not though. :] |
| 12:36:53 | <fuzzypixelz> | Please forgive my blasphemy |
| 12:37:22 | <superstar64> | fuzzypixelz, you might be interested in dogelang |
| 12:37:26 | <idnar> | fuzzypixelz: lambda byr: 1920 <= byr <= 2002 # a freebie |
| 12:37:55 | <fuzzypixelz> | I will definitely check it out superstar64, as in right now |
| 12:38:15 | <[exa]> | cheater: still the same problem with linking btw? (you might want to ask in #llvm, there will likely be more windowsy people) |
| 12:38:17 | <superstar64> | "With Haskell's syntax but none of its type system, dg is the best way to make fans of static typing shut up already" |
| 12:38:27 | <cheater> | [exa]: yes |
| 12:38:28 | <int-e> | fuzzypixelz: good luck with the AoC :P |
| 12:38:30 | <fuzzypixelz> | thanks idnar |
| 12:38:45 | <cheater> | the llvm channel was completely useless no one even uses windows there |
| 12:38:57 | <int-e> | or maybe :--< (split tongue)? |
| 12:39:28 | <[exa]> | cheater: why you want it to work on windows anyway? windows simply doesn't support a lot of stuff, done. |
| 12:39:35 | <fuzzypixelz> | int-e: I tried to do it with Haskell, but my tricks ran our on day 2, I just said what the heck I'll rewrite it later when I learn how to split a freaking string |
| 12:40:23 | <int-e> | :t words |
| 12:40:25 | <lambdabot> | String -> [String] |
| 12:40:34 | <fuzzypixelz> | huh |
| 12:40:38 | → | bliminse joins (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) |
| 12:40:45 | <[exa]> | cheater: anyway if you can't apply various "linux subsystem for W" tricks, I'd suggest to write a nicely formatted error report to LLVM mailing list or something, so that the issue stays for more potential people to see |
| 12:40:51 | <int-e> | I've been abusing `words` a lot this year, including mapping commas to spaces and then using `words`. |
| 12:41:11 | <[exa]> | (or to the authors of the respective haskell wraps) |
| 12:41:28 | <fuzzypixelz> | int-e: but what if you need to split against specific chars? |
| 12:41:32 | <[exa]> | int-e: I'm still missing some variant of strtok() |
| 12:41:36 | <idnar> | :t splitOn |
| 12:41:37 | <lambdabot> | Eq a => [a] -> [a] -> [[a]] |
| 12:41:45 | <cheater> | int-e: are you the person who implemented that bug in cabal i was struggling with |
| 12:41:54 | <int-e> | splitOn is in the split package |
| 12:42:01 | <int-e> | cheater: I was talking AoC, not production code |
| 12:42:15 | <int-e> | cheater: so, no |
| 12:43:00 | <fuzzypixelz> | int-e: does it come with haskell platform? |
| 12:43:22 | <idnar> | > splitOn "," "foo,bar" |
| 12:43:24 | <lambdabot> | ["foo","bar"] |
| 12:43:34 | <int-e> | I don't really know what's included in the Haskell platform |
| 12:43:53 | <int-e> | it has cabal-install so to my mind it practically includes all of hackage |
| 12:44:41 | <int-e> | > words $ map (\c -> if c == ',' then ' ' else c) "foo,bar" |
| 12:44:43 | <lambdabot> | ["foo","bar"] |
| 12:44:52 | <int-e> | nasty, effective |
| 12:45:00 | <superstar64> | how do i make ghc warn me if a `data` could be a `newtype`? |
| 12:45:06 | <int-e> | , good enough for AoC |
| 12:45:10 | <ski> | > words (map (\c -> if c == ',' then ' ' else c) "foo,bar bar") |
| 12:45:12 | <lambdabot> | ["foo","bar","bar"] |
| 12:45:21 | <int-e> | ski: I know! |
| 12:45:42 | <int-e> | ski: include ,, for good measure |
| 12:46:33 | <ski> | escaping ? |
| 12:46:47 | <int-e> | > words " a b " |
| 12:46:50 | <lambdabot> | ["a","b"] |
| 12:47:08 | <int-e> | coalescing |
| 12:47:32 | <int-e> | > splitOn " " " a b " |
| 12:47:34 | <lambdabot> | ["","a","","b",""] |
| 12:47:47 | <ski> | @type Data.List.NonEmpty.words |
| 12:47:48 | <lambdabot> | error: |
| 12:47:48 | <lambdabot> | Not in scope: ‘Data.List.NonEmpty.words’ |
| 12:47:48 | <lambdabot> | No module named ‘Data.List.NonEmpty’ is imported. |
| 12:49:24 | <idnar> | superstar64: use hlint I think |
| 12:49:24 | × | carlomagno quits (~cararell@148.87.23.8) (Remote host closed the connection) |
| 12:50:07 | <ephemient> | if you're working on Text, that has splitOn built-in |
| 12:50:36 | <superstar64> | alright, i'll look into it |
| 12:52:03 | <ski> | @type mapMaybe NE.nonEmpty . splitOn " " |
| 12:52:04 | <lambdabot> | [Char] -> [NE.NonEmpty Char] |
| 12:52:38 | <ski> | > (mapMaybe NE.nonEmpty . splitOn ",") "foo,bar baz,,quux" |
| 12:52:40 | <lambdabot> | ['f' :| "oo",'b' :| "ar baz",'q' :| "uux"] |
| 12:53:03 | <int-e> | ew |
| 12:53:21 | → | Kronic joins (~Kronic___@84.203.96.46) |
| 12:53:37 | <int-e> | . o O ( filter (not . null) ) |
| 12:53:40 | × | todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Quit: Konversation terminated!) |
| 12:54:24 | × | shf quits (~sheaf@2a01:cb19:80cc:7e00:ec10:402a:74e0:28d6) (Quit: Leaving) |
| 12:54:25 | <ski> | but then i have to use `NE.fromList' (which is partial) |
| 12:55:11 | <int-e> | I don't like NonEmpty, so why would I use that. |
| 12:55:52 | <ski> | well, the goal here was to look for a way to implement `Data.List.NonEmpty.words' .. |
| 12:56:30 | <ski> | (since the output elements of `words' are always non-empty) |
| 12:56:34 | <int-e> | yeah I should've stayed out of it, but couldn't help myself |
| 13:00:31 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc) |
| 13:00:54 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:02:08 | <ph88> | when i want to make a tree structure is there some pattern to flatten the tree ? I was looking at monoid with mconcat which uses fold ... but im not sure if this is related |
| 13:03:44 | <solonarv> | ph88: it is indeed related. there's a reason that 'toList' is a method of the 'Foldable' class. |
| 13:05:14 | × | amerigo quits (uid331857@gateway/web/irccloud.com/x-qlwggbtbsclqlize) (Quit: Connection closed for inactivity) |
| 13:07:15 | <dminuoso> | In fact, arguably, toList could be a minimal method of Foldable |
| 13:07:35 | <solonarv> | it certainly could, it just wouldn't be a very good design (IMO) |
| 13:07:59 | <lortabac> | I think it's more a question of performance |
| 13:08:06 | <dminuoso> | Indeed. |
| 13:08:15 | <dminuoso> | If you have an elegant recursive way to build a list, you might as well just implement foldr directly. |
| 13:08:16 | <solonarv> | yes, performance is part of why it wouldn't be a good design |
| 13:09:13 | <solonarv> | I suppose build/foldr fusion would take care of it, if you write toList in terms of build |
| 13:10:02 | <dminuoso> | Well. if you write toList in terms of build... |
| 13:10:10 | <ph88> | i want to make my own data type .. what should i do to flatten the tree structure ? implement Foldabable ? |
| 13:10:13 | <dminuoso> | That's just a very very odd way of writing foldr.. |
| 13:10:13 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
| 13:10:17 | <solonarv> | then you might as well just write foldr instead, yes :p |
| 13:10:32 | <solonarv> | ph88: yes, most likely. What does the data type look like? |
| 13:10:55 | <ph88> | solonarv, i don't have it yet, but should be a simple type with branches and leaves |
| 13:11:13 | <solonarv> | note that "implement Foldable" answers "where do I put my flattening function?", not "how do I write a flattening function in the first place" |
| 13:11:18 | <ph88> | data myTree = MyLeave | MyBranch (MyTree) something like this ? |
| 13:11:22 | <dminuoso> | Well thats not foldable |
| 13:11:28 | <dminuoso> | Foldable must be * -> * kinded. |
| 13:11:39 | <ph88> | oh |
| 13:11:46 | <dminuoso> | Also, that data type does not encode a list.. |
| 13:11:50 | <dminuoso> | That just encodes peano naturals |
| 13:11:55 | <dminuoso> | *does not encode a tree. |
| 13:12:07 | <ph88> | what should i do then ? |
| 13:12:10 | <dminuoso> | At the very least you'd want `data MyTree = MyLeaf | MyBranch MyTree MyTree` |
| 13:12:16 | <dminuoso> | And then perhaps you want to attach values? |
| 13:12:27 | <ph88> | ye, i want some values |
| 13:12:31 | <dminuoso> | So `data MyTree a = MyLeaf a | MyBranch MyTree MyTree` for a leaf-valued binary tree |
| 13:12:51 | <ph88> | it's not a binary tree, should be rose tree ?? |
| 13:12:57 | <dminuoso> | You tell us? |
| 13:13:16 | <ephemient> | *MyBranch (MyTree a) (MyTree a) |
| 13:13:20 | <ephemient> | (but the intent is clear) |
| 13:13:34 | <ph88> | ye there are more branches, and actually when you have one node with variable amount of branches, the order of those branches matter |
| 13:14:00 | <ph88> | MyBranch [MyTree] what about this ? |
| 13:14:38 | <ephemient> | ... no values, but sure |
| 13:14:42 | <dminuoso> | ph88: Do you want only the leafs to carry data, or each node? |
| 13:15:07 | → | geekosaur joins (ac3a3ed0@172.58.62.208) |
| 13:16:05 | <ph88> | each node carries data .. but for the flatten tree i only need the information in the leaves. But i need data in nodes later for other purposes |
| 13:16:57 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Quit: dddddd) |
| 13:17:13 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 13:17:17 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) |
| 13:17:40 | → | Blackraider joins (~Blackraid@188.127.187.5) |
| 13:17:51 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:17:52 | × | Blackraider quits (~Blackraid@188.127.187.5) (Remote host closed the connection) |
| 13:18:08 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-mktflcfjzasruohy) |
| 13:21:14 | <ph88> | i found this package https://hackage.haskell.org/package/rose-trees what's this hash tree ? |
| 13:21:56 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 258 seconds) |
| 13:22:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 13:24:01 | <ph88> | i'll come back later, i don't know what to do about this tree |
| 13:24:40 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 13:26:35 | × | plutoniix quits (~q@184.82.198.131) (Quit: Leaving) |
| 13:28:43 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) |
| 13:30:55 | <superstar64> | how do i get the path of the binary cabal generates when i run cabal build? |
| 13:32:32 | <solonarv> | superstar64: cabal exec where name-of-my-binary |
| 13:32:41 | <solonarv> | that'll give you the path |
| 13:32:51 | <solonarv> | if you want to copy it somewhere 'cabal install' can do that for you |
| 13:33:00 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) |
| 13:33:01 | × | Miroboru quits (~myrvoll@78.91.103.180) (Read error: Connection reset by peer) |
| 13:35:16 | × | columbarius quits (~columbari@87.123.198.173) (Ping timeout: 240 seconds) |
| 13:35:42 | → | softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 13:35:49 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 13:36:13 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 13:36:28 | <boxscape> | Is there a function like forM_ that allows me to stop the loop once a condition is met? |
| 13:36:37 | <boxscape> | If not I suppose writing it myself is fairly straightforward... |
| 13:36:46 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 13:37:18 | × | ubert quits (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 13:37:19 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) (Client Quit) |
| 13:37:37 | × | gawen quits (~gawen@movzbl.root.sx) (Quit: cya) |
| 13:37:56 | → | columbarius joins (~columbari@87.123.198.173) |
| 13:38:00 | → | gawen joins (~gawen@movzbl.root.sx) |
| 13:39:56 | <ephemient> | boxscape: https://hackage.haskell.org/package/monad-loops ? |
| 13:40:32 | <boxscape> | hm yeah looks like there could be something in there, thanks |
| 13:41:03 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 13:41:16 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 13:42:12 | <solonarv> | boxscape: MaybeT could also do it, since "early exit" is exactly what that transformer does |
| 13:42:15 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 13:42:24 | <boxscape> | ah, I see |
| 13:43:03 | <solonarv> | :t \f xs -> runMaybeT (for_ xs (guard <=< lift . f)) |
| 13:43:04 | <lambdabot> | error: |
| 13:43:04 | <lambdabot> | Variable not in scope: runMaybeT :: t0 m () -> t1 |
| 13:43:20 | <solonarv> | @let import Control.Monad.Maybe.Trans |
| 13:43:20 | <lambdabot> | .L.hs:61:1: error: |
| 13:43:20 | <lambdabot> | Could not find module ‘Control.Monad.Maybe.Trans’ |
| 13:43:21 | <lambdabot> | Perhaps you meant Control.Monad.Trans (from mtl-2.2.2) |
| 13:43:24 | <solonarv> | gah |
| 13:43:30 | <solonarv> | % :t \f xs -> runMaybeT (for_ xs (guard <=< lift . f)) |
| 13:43:31 | <yahb> | solonarv: ; <interactive>:1:40: error:; Ambiguous occurrence `lift'; It could refer to; either `Language.Haskell.TH.Syntax.lift', imported from `Language.Haskell.TH.Syntax'; or `Control.Monad.Cont.lift', imported from `Control.Monad.Cont' (and originally defined in `Control.Monad.Trans.Class') |
| 13:43:53 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:44:43 | <solonarv> | % :t \f xs -> runMaybeT (for_ xs (guard <=< MonadTrans.lift . f)) |
| 13:44:44 | <yahb> | solonarv: ; <interactive>:1:10: error: Variable not in scope: runMaybeT :: t0 m () -> t1 |
| 13:45:01 | <boxscape> | % :t \f xs -> Control.Monad.Trans.Maybe.runMaybeT (for_ xs (guard <=< Control.Monad.Cont.lift . f)) |
| 13:45:01 | <yahb> | boxscape: (Foldable t, Monad m) => (a -> m Bool) -> t a -> m (Maybe ()) |
| 13:45:03 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 13:45:59 | → | joaj joins (~joaj@2001:690:2100:110:cceb:227c:edbc:592c) |
| 13:46:15 | <boxscape> | % :t \f xs -> Control.Monad.Trans.Maybe.runMaybeT (for xs (Control.Monad.Cont.lift . f)) |
| 13:46:15 | <yahb> | boxscape: (Traversable t, Monad m) => (a -> m b) -> t a -> m (Maybe (t b)) |
| 13:46:19 | <boxscape> | this looks like what I want actually |
| 13:46:19 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) |
| 13:46:20 | <boxscape> | thanks |
| 13:46:47 | <solonarv> | if you want "early exit with a value" that's ExceptT, of course |
| 13:46:47 | <boxscape> | or not quite |
| 13:46:52 | <boxscape> | I'll figure it out though |
| 13:47:02 | <boxscape> | I only need a value if it doesn't exit early |
| 13:47:35 | <solonarv> | ah, I see |
| 13:47:54 | <ski> | > (runIdentity . runExceptT . (`runStateT` 1) . forever) (do n <- get; put (2 * n); when (n > 1000) (throwError n)) |
| 13:47:56 | <lambdabot> | Left 1024 |
| 13:49:14 | <ski> | `Cont' sounds like overkill, unless you'd like to resume |
| 13:49:17 | → | carlomagno joins (~cararell@148.87.23.9) |
| 13:49:41 | <int-e> | @unmtl StateT s (ExceptT e Identity) a |
| 13:49:41 | <lambdabot> | s -> Either e (a, s) |
| 13:49:42 | <ski> | (i guess you could `Codensity') |
| 13:49:46 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 13:50:14 | <ski> | oh, `unmtl' groks `ExceptT' now ? |
| 13:50:54 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 13:53:00 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 13:53:18 | <int-e> | apparently ;) |
| 13:53:27 | × | limpkin1 quits (~limpkin@s91904426.blix.com) (Remote host closed the connection) |
| 13:54:43 | → | Hafydd joins (~Hafydd@unaffiliated/joo) |
| 13:55:08 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 268 seconds) |
| 13:56:26 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 13:57:27 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 13:57:27 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 13:58:09 | → | proteus-guy joins (~proteusgu@cm-58-10-154-202.revip7.asianet.co.th) |
| 14:01:29 | → | ircbrowse_tom joins (~ircbrowse@64.225.78.177) |
| 14:01:29 | Server | sets mode +CLnt |
| 14:01:34 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 14:01:48 | ← | adeln parts (~adeln@94.180.253.137) () |
| 14:03:47 | → | ggole joins (~ggole@2001:8003:8119:7200:b1ce:df7:cb14:ba8f) |
| 14:03:49 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds) |
| 14:09:17 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 14:11:31 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 14:11:51 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 14:15:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection) |
| 14:15:20 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 14:17:38 | → | zclod joins (9743c5d5@151.67.197.213) |
| 14:17:58 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) |
| 14:18:09 | → | phyll1s_work joins (~phyll1s_w@195.140.213.38) |
| 14:20:35 | <zclod> | hi I was trying to use recursion-schemes to solve some advent of code problems, my issue is that cata is a foldr while many of the challenges require left associative operations so i need to reverse the list first. is there a way to do a foldl with recursion scheme? |
| 14:23:31 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 14:24:44 | × | taurux quits (~taurux@net-188-216-19-113.cust.vodafonedsl.it) (Ping timeout: 268 seconds) |
| 14:24:58 | → | taurux joins (~taurux@net-93-144-87-101.cust.dsl.teletu.it) |
| 14:25:22 | → | guest1217 joins (~user@120.244.28.213) |
| 14:25:48 | × | bjobjo quits (~bjobjo@2a01:79c:cebf:d688::9e6) (Ping timeout: 246 seconds) |
| 14:26:13 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 14:26:41 | <boxscape> | zclod this seems like it should https://stackoverflow.com/questions/57776420/top-down-recursion-schemes |
| 14:26:58 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 14:27:02 | <boxscape> | help |
| 14:27:03 | <guest1217> | parseString = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many (satisfy (/= ' ')); spaces; return (x,y)} |
| 14:27:50 | <boxscape> | is there a fancy general lensy way to go over all the Ints in a pairs like (1,2,(3,4)) and (1,2(3,(4,5)))? |
| 14:27:52 | <guest1217> | parse (sepBy parseString spaces) "" "server=irc.freenode.net port=3 nick=john" == Right [("server","irc.freenode.net"),("port","3"),("nick","john")] |
| 14:28:43 | <guest1217> | parse (sepBy parseString newline) "" "server=irc.freenode.net\nport=3\nnick=john\n" == Right [("server","irc.freenode.net\nport=3\nnick=john\n")] |
| 14:29:00 | <guest1217> | why the second is not like the first? |
| 14:29:08 | <guest1217> | where it's wrong? |
| 14:29:28 | <tomsmeding> | guest1217: perhaps parseString accepts '\n' as part of a string? |
| 14:29:51 | <tomsmeding> | and so by the time the first parseString returns, the whole string has already been consumed |
| 14:30:18 | <guest1217> | tomsmeding: parse (anyChar *> newline *> anyChar) "" "a\nc" == Right 'c' |
| 14:30:41 | <guest1217> | oh |
| 14:31:10 | <guest1217> | tomsmeding: how I can change it? |
| 14:31:26 | <tomsmeding> | what's the source of parseString? or does it come from a library? |
| 14:31:40 | → | Mugisha joins (~Mugisha@154.73.41.12) |
| 14:31:52 | × | zclod quits (9743c5d5@151.67.197.213) (Remote host closed the connection) |
| 14:31:53 | <inkbottle> | Is there something like the STM monad for the dummies? (with nice pictures/diagrams) |
| 14:31:54 | <guest1217> | tomsmeding: parseString = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many (satisfy (/= ' ')); spaces; return (x,y)} |
| 14:32:27 | <tomsmeding> | that `satisfy (/= ' ')` accepts anything that's not a space, including, for example, newlines |
| 14:32:32 | <Mugisha> | Hi guys i'm new here and on irc |
| 14:32:50 | <tomsmeding> | guest1217: I suggest changing that (/= ' ') to (not . isSpace), where isSpace is from Data.Char |
| 14:32:51 | <ski> | hello Mugisha |
| 14:33:33 | <guest1217> | tomsmeding: satisfy (noneOf "\n ")? |
| 14:33:40 | <tomsmeding> | guest1217: or, of course, (/= '\n') if you only want to do newlines |
| 14:33:41 | <tomsmeding> | or that |
| 14:33:49 | <tomsmeding> | depending on what you need :) |
| 14:34:00 | <guest1217> | tomsmeding: space and newline |
| 14:34:05 | → | bitmagie joins (~Thunderbi@200116b80697370068b048f727c82739.dip.versatel-1u1.de) |
| 14:34:17 | <guest1217> | tomsmeding: how I can do it? |
| 14:34:24 | <tomsmeding> | well, like you just said |
| 14:35:11 | <tomsmeding> | also, the `spaces` at the end of `parseString` already swallows all spaces after the key=value pair, so the `spaces` in your `sepBy` will never consume anything |
| 14:35:24 | ← | superstar64 parts (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) () |
| 14:35:38 | <tomsmeding> | so I think you can replace `sepBy parseString spaces` and `sepBy parseString newline` with `many parseString` |
| 14:35:46 | <boxscape> | loosk like tinplate works |
| 14:36:40 | <boxscape> | and template does as well |
| 14:36:57 | <guest1217> | tomsmeding: I tried `many (satisfy (noneOf "\n "))` noneOf applied too many arguments... |
| 14:37:10 | <tomsmeding> | ah right |
| 14:37:14 | <tomsmeding> | many (noneOf "\n ") |
| 14:37:24 | <tomsmeding> | noneOf is already a parser, no need to wrap it in 'satisfy' |
| 14:37:37 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 14:39:28 | <guest1217> | tomsmeding: parse (many parseString) "" "server=irc.freenode.net\nport=3\nnick=john\n" == Right [("server","irc.freenode.net"),("port","3"),("nick","john")] |
| 14:39:31 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 14:39:52 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 14:39:58 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:a1f6:288c:9ca1:722b) |
| 14:40:18 | <boxscape> | hm is there a way to combine lenses, i.e. specifically to make a lens that operates on both _1 and _2? |
| 14:41:16 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 14:42:43 | <guest1217> | tomsmeding: but why parse (sepBy parseString newline) "" "server = irc.freenode.net\nport = 3\nnick = john\n" == Right [("server","irc.freenode.net")], even I use `many (noneOf "\n ")` |
| 14:43:58 | <tomsmeding> | guest1217: I think because the `spaces` at the end of parseString already consumes the \n following "irc.freenode.net". By the time the `newline` in `sepBy parseString newline` is executed, the input is already at "port", meaning the `newline` doesn't match |
| 14:44:44 | × | gentauro quits (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
| 14:44:59 | <tomsmeding> | do you really need to support arbitrary newlines within your key=value lines? If not, perhaps it's a good idea to replace your uses of `spaces` within `parseString` with `many (satisfy (== ' '))` |
| 14:45:01 | → | gentauro joins (~gentauro@unaffiliated/gentauro) |
| 14:45:20 | <tomsmeding> | then the \n won't be consumed by parseString, and the sepBy gets to read it |
| 14:46:06 | × | jneira quits (501e6453@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.83) (Ping timeout: 256 seconds) |
| 14:46:28 | <hololeap> | boxscape: so what, the getter/setter would return/take a tuple? |
| 14:46:32 | <guest1217> | tomsmeding: I remove the last spaces in parseString, then run it again, there's an error, it expecting white space, letter or "=" |
| 14:46:49 | <ski> | > (1,2,(3,4)) ^.. (_1 <> _2 <> _3 . (_1 <> _2)) -- boxscape ? |
| 14:46:51 | <lambdabot> | [1,2,3,4] |
| 14:47:10 | <tomsmeding> | guest1217: oh right, that's the final \n at the end of your input |
| 14:47:31 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 14:47:32 | <tomsmeding> | perhaps not use `many parseString` but instead `many parseString <* spaces <* eof` |
| 14:47:33 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 268 seconds) |
| 14:48:11 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection) |
| 14:48:53 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 14:51:41 | <boxscape> | hololeap ski basically I want to be able to say something like `(1,2,3) & _1 `combine` _2 %~ (+3)' and end up with (5,6,3) |
| 14:52:27 | × | geekosaur quits (ac3a3ed0@172.58.62.208) (Remote host closed the connection) |
| 14:52:35 | <boxscape> | uh |
| 14:52:40 | <iqubic> | Where does the 5 come from? |
| 14:52:42 | <boxscape> | s/(+3)/(+4) |
| 14:52:53 | <boxscape> | yeah I can't do basic arithmetic apparently |
| 14:52:57 | <guest1217> | tomsmeding: if I want `sepBy parseString newline` work, how I should change parseString? |
| 14:52:58 | <iqubic> | Oh. I see. |
| 14:53:28 | <iqubic> | boxscape: That looks hard to do. |
| 14:53:39 | <tomsmeding> | guest1217: read carefully what I said before :) |
| 14:53:47 | <tomsmeding> | I suggested what I think is the right change |
| 14:54:12 | <ski> | Mugisha : if you have any (Haskell-related) question, feel free to ask |
| 14:54:25 | → | shf joins (~sheaf@2a01:cb19:80cc:7e00:c826:d438:7383:b3d6) |
| 14:54:34 | <guest1217> | tomsmeding: final "\n" in the input? |
| 14:54:50 | <iqubic> | boxscape: Essentially you want a function that takes two lenses and makes a traversal over both things. |
| 14:55:06 | <boxscape> | that sounds right |
| 14:55:44 | <iqubic> | > (1,2,3) & each %~ (+4) |
| 14:55:46 | <lambdabot> | (5,6,7) |
| 14:55:50 | <tomsmeding> | guest1217: https://ircbrowse.tomsmeding.com/selection/haskell?title=Conversation&events=203120,203122,203124 |
| 14:56:14 | <guest1217> | tomsmeding: I tried to instead spaces with many (satisfy (== ' ')), sepBy won't work |
| 14:56:16 | <iqubic> | The issue with `each` is that it will traverse *all* elements in the structure. |
| 14:56:20 | <boxscape> | right |
| 14:57:14 | × | Mugisha quits (~Mugisha@154.73.41.12) (Ping timeout: 260 seconds) |
| 14:57:32 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 14:57:52 | <iqubic> | boxscape: I found this with a quick search: https://stackoverflow.com/questions/17528119/combining-lenses |
| 14:58:16 | <boxscape> | iqubic hm, thanks |
| 14:58:21 | <iqubic> | Also this: https://github.com/ekmett/lens/issues/109 |
| 14:58:54 | <boxscape> | hm some interesting discussion there |
| 14:59:06 | × | shf quits (~sheaf@2a01:cb19:80cc:7e00:c826:d438:7383:b3d6) (Read error: Connection reset by peer) |
| 14:59:40 | <guest1217> | tomsmeding: you're right, I remove the last sapces and replace spaces with many (satisfy (== ' ')), now sepBy work |
| 14:59:50 | <guest1217> | tomsmeding: thank you |
| 15:00:14 | <tomsmeding> | guest1217: cool! Note that if you do that, you won't accept ' ' characters at the end of a line |
| 15:00:27 | <iqubic> | boxscape: I'm sorry you can't really do what you want to do. |
| 15:00:36 | <boxscape> | oh well |
| 15:00:48 | <dminuoso> | Id love to have monthly download statistics. |
| 15:01:00 | <dminuoso> | Bet you'd always see *parsec jumping up in december every year. :> |
| 15:01:18 | <merijn> | :p |
| 15:01:20 | <iqubic> | Oh totally. |
| 15:01:22 | <tomsmeding> | where * matches a non-zero length string, I guess? |
| 15:01:27 | <dminuoso> | tomsmeding: Yes. |
| 15:01:33 | <dminuoso> | Err. Not necessarily |
| 15:01:35 | → | notzmv` joins (~user@191.205.12.9) |
| 15:01:48 | <tomsmeding> | because parsec itself is bundled with ghc, you're unlikely to download that often :p |
| 15:01:57 | <dminuoso> | That depends on the version, though. |
| 15:02:10 | <iqubic> | What?! Parsec is bundled with GHC? I didn't know that. |
| 15:02:11 | × | notzmv quits (~user@unaffiliated/zmv) (Read error: Connection reset by peer) |
| 15:02:20 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 15:02:34 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 15:02:41 | <iqubic> | I just use Megaparsec, because 1. I love the error messages I get, and 2. I love that unit of measurement. |
| 15:02:50 | <boxscape> | iqubic turns out `template` is actually even better for what I had intended than a combination of _1 and _2 |
| 15:03:01 | <iqubic> | What is template? |
| 15:03:08 | <iqubic> | :t template |
| 15:03:10 | <lambdabot> | (Data s, Applicative f, Typeable a) => (a -> f a) -> s -> f s |
| 15:03:16 | <iqubic> | Ah. Yes. I see. |
| 15:03:19 | <tomsmeding> | iqubic: I think this is a source of that information: https://gitlab.haskell.org/ghc/ghc/-/blob/master/packages |
| 15:03:19 | <ephemient> | http://hackage.haskell.org/package/parsec old parsec, not megaparsec, is bundled. I prefer using the latter |
| 15:03:24 | <boxscape> | % (1,2,(2,(3,4))) & template %~ (+1) |
| 15:03:24 | <yahb> | boxscape: (2,3,(3,(4,5))) |
| 15:03:33 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 15:03:45 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds) |
| 15:04:23 | <tomsmeding> | iqubic: according to this wiki page ( https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries ), a '-' in the tag column indicates a ghc boot library |
| 15:04:48 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection) |
| 15:04:49 | <tomsmeding> | also before I knew what cabal even was, properly, I've been using parsec without problems :p |
| 15:04:54 | <ephemient> | GHC also comes with ReadP |
| 15:04:56 | <dminuoso> | iqubic: I find the tuple (megaparsec, attoparsec, binary) to be a suitable set of tools for most purposes. :) |
| 15:05:04 | <iqubic> | boxscape: template will create a traversal that targets all elements of a given type, regardless of where they appear in the structure. |
| 15:05:09 | <boxscape> | yes |
| 15:05:12 | <dminuoso> | Neither is enough to cover all needs. |
| 15:05:39 | <iqubic> | boxscape: What are you doing with this? |
| 15:05:56 | <boxscape> | iqubic making the bounds of my array for AOC today smaller |
| 15:06:01 | <iqubic> | How? |
| 15:07:19 | × | kish` quits (~oracle@unaffiliated/oracle) (Quit: Leaving) |
| 15:07:36 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 15:07:39 | <boxscape> | iqubic well, not the actual bounds, but the bounds of the cells I check. I first take the bounds of the entire array and then say let bounds' = bounds & bounds & _1 . template +~ s - 1 & _2 . template -~ s - 1, where s is the number of steps left to perform, so as that number goes down, the number of cells I check gets higher |
| 15:07:40 | <guest1217> | how I can turn Right [("a","b")] to fromList [("a","b")]? transparent transform? |
| 15:08:01 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
| 15:08:12 | <guest1217> | or Right (fromList [("a","b")])? |
| 15:08:17 | × | coot quits (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 15:08:21 | <dminuoso> | guest1217: fmap fromList |
| 15:08:22 | <ski> | guest1217 : what should happen on `Left' ? |
| 15:08:22 | <boxscape> | iqubic whoops one of those `bounds &` shouldn't be there |
| 15:08:26 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 15:08:40 | → | coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) |
| 15:08:56 | <guest1217> | ski: I don't know... |
| 15:09:03 | <iqubic> | ski: I assume that Right [("a","b")] is the result from calling parse. |
| 15:09:19 | <guest1217> | iqubic: yes |
| 15:09:29 | <guest1217> | I need to get the value by the key |
| 15:09:29 | <iqubic> | In that case, I recommend applying fmap *before* running the parser. |
| 15:09:34 | <ski> | if `Right (fromList [("a","b")])' is ok as result, then what dminuoso said (if `Left', then it'll not be changed) |
| 15:09:49 | <iqubic> | :t parse |
| 15:09:51 | <lambdabot> | error: Variable not in scope: parse |
| 15:11:13 | <guest1217> | dminuoso: yes, fmap fromList (Right ...) is ok |
| 15:11:31 | <boxscape> | iqubic btw each wouldn't work because my index is either (x,y,z) or (x,y,(z,w)) depending on dimension, but template works nicely with that. I thought at first I could only apply this optimization to the first two dimensions, hence trying to combine _1 and _2 |
| 15:11:39 | <guest1217> | what about Right [...] to fromList [...]? |
| 15:11:46 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
| 15:11:49 | <guest1217> | fromRight? |
| 15:12:07 | <iqubic> | No. Just use fmap there. |
| 15:12:39 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 15:12:49 | <guest1217> | iqubic: why fromRight and (~>) is not ok? |
| 15:13:52 | <iqubic> | fromRight will give you an error if the argument is Left. |
| 15:13:59 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 15:14:07 | → | ubert joins (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) |
| 15:14:12 | <merijn> | s/give you an error/crash your program |
| 15:15:01 | <guest1217> | and (~>)? |
| 15:15:18 | <iqubic> | I don't know what that is. |
| 15:15:29 | <guest1217> | natural transform? |
| 15:15:45 | <iqubic> | Yeah, you don't want a natural transformation here. |
| 15:15:58 | <dminuoso> | You seem to be conflating terminology here. :) |
| 15:16:39 | <dminuoso> | A natural transformation `S ~> T` is any function `S a -> T a`, assuming both S and T are both functors. |
| 15:16:47 | <iqubic> | I assume they are talking about this: https://hackage.haskell.org/package/natural-transformation-0.4/docs/Control-Natural.html#t:-126--62- |
| 15:16:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:17:29 | <guest1217> | Right is a functor, fromList is not a functor? |
| 15:17:35 | <dminuoso> | guest1217: Right is not a functor. |
| 15:17:36 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 15:17:49 | <merijn> | Types are functors. Neither Right no "fromList" are types |
| 15:17:55 | <guest1217> | Either a is a functor |
| 15:17:59 | <dminuoso> | Correct. |
| 15:18:02 | <dminuoso> | Or `Maybe` |
| 15:18:14 | <dminuoso> | So a function `Either a ~> Maybe` would be a natural transformation. |
| 15:18:22 | <dminuoso> | Or: Maybe ~> [] |
| 15:18:36 | <dminuoso> | That is, `Either a b -> Maybe b` or `Maybe b -> [b]` |
| 15:18:45 | <iqubic> | Here's the main issue he's trying to solve. He has a Parser [(a, b)] and wants a Parser (Map a b) |
| 15:18:45 | <guest1217> | what is Map? |
| 15:18:52 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) |
| 15:19:04 | <guest1217> | Map a is a functor? |
| 15:19:05 | <dminuoso> | No |
| 15:19:16 | <dminuoso> | Or.. mm. `Map a` is actually I think |
| 15:19:20 | <dminuoso> | I was thinking Set. :) |
| 15:19:28 | <merijn> | dminuoso: Map k is a functor, yes |
| 15:19:37 | <merijn> | dminuoso: Also Foldable and Traversable! |
| 15:19:37 | <dminuoso> | merijn: Yeah, my head is so wired to Set at the moment |
| 15:19:41 | <iqubic> | Map k is a functor, but that's not going to help you here. |
| 15:19:51 | <dminuoso> | merijn: being Foldable is easy, Traversable not so much. :p |
| 15:20:25 | <iqubic> | All he needs is a function of the type "Parser [(k,v)] -> Parse (Map k v)" |
| 15:20:27 | <guest1217> | so Either a and Map k both are functors here, and it still can't turn Right a to fromList a? |
| 15:20:41 | <iqubic> | guest1217: ~> is not a function. |
| 15:21:03 | <guest1217> | iqubic: ok... |
| 15:21:26 | → | Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-fpxdgixxyxyfpjbh) |
| 15:21:56 | → | tab65 joins (49819d19@c-73-129-157-25.hsd1.dc.comcast.net) |
| 15:22:09 | → | fendor_ joins (~fendor@77.119.130.146.wireless.dyn.drei.com) |
| 15:22:14 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 15:22:14 | <dminuoso> | guest1217: The point here is, think of it in terms of functions. Let's say you have a function that can turn a `Right a` into `fromList a`, what would that function's type be? |
| 15:22:39 | <guest1217> | Either a b -> Map a b? |
| 15:22:56 | × | tab65 quits (49819d19@c-73-129-157-25.hsd1.dc.comcast.net) (Remote host closed the connection) |
| 15:22:56 | <dminuoso> | Somewhat close, but not quite. |
| 15:23:21 | <merijn> | eh, this seems to just be a random walk through all possible formulations...[ |
| 15:23:30 | <dminuoso> | Yeah.. |
| 15:23:47 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 260 seconds) |
| 15:23:52 | <ephemient> | `uncurry Map.singleton :: (a, b) -> Map a b` does exist |
| 15:23:55 | <guest1217> | then I don't know |
| 15:23:56 | × | kish` quits (~oracle@unaffiliated/oracle) (Ping timeout: 268 seconds) |
| 15:24:07 | <ephemient> | but `Either a b` and `(a, b)` are pretty different |
| 15:24:21 | <Vulfe_> | they are about as different as two things can be using the same letters |
| 15:24:58 | × | fendor quits (~fendor@77.119.130.134.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 15:26:41 | <iqubic> | guest1217: What are you trying to do? |
| 15:27:06 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 15:27:26 | <guest1217> | iqubic: like you said, turn Right a to fromList a |
| 15:27:52 | <tomsmeding> | are you sure you're not wanting to turn 'Right a' into 'Right (fromList a)'? |
| 15:27:56 | <iqubic> | Why are you trying to do that? How did you get a `Right a` value? |
| 15:28:46 | <guest1217> | get Right a by parser... |
| 15:28:54 | <ephemient> | what do you expect to happen with a Left _? |
| 15:29:26 | <guest1217> | tomsmeding: I think I should use Right (fromList a) now |
| 15:29:27 | <dminuoso> | Im thinking you have piled up too many tools and bits that confuse you. |
| 15:30:09 | <guest1217> | yes, there're too many things I don't understand now |
| 15:30:22 | <iqubic> | Look, what he wants to do is take the result of his parser and turn it into a Map. I think he should use (fmap fromList) *before* parsing the string into a "Right a" |
| 15:30:28 | <dminuoso> | Good. So perhaps it's helpful to backtrack to the last spot where you felt comfortable and understood bits. |
| 15:30:31 | <guest1217> | ephemient: I don't know |
| 15:33:02 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc) (Ping timeout: 264 seconds) |
| 15:33:10 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:35:56 | × | jess quits (jess@freenode/staff/jess) (Quit: updates) |
| 15:36:40 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 15:37:04 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 15:37:28 | <dminuoso> | Is there a way to detect unused package dependencies? |
| 15:38:05 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 15:38:19 | <merijn> | dminuoso: Comment them out *duck* |
| 15:40:17 | <Orbstheorem> | Hi, is there any way to have stack compile a small c++ program with my haskell project? |
| 15:40:27 | <merijn> | Orbstheorem: Flee now |
| 15:40:29 | tomsmeding | wonders what an optimal algorithm to figure out unused dependencies would be, if all you could do is commenting them out and trying the build |
| 15:40:41 | <merijn> | Orbstheorem: In short: No |
| 15:40:44 | <Orbstheorem> | xDD |
| 15:40:54 | <Orbstheorem> | Alright, what's the longer answer? x) |
| 15:40:55 | <tomsmeding> | well, yes, that's possible |
| 15:41:01 | <tomsmeding> | whether you want it is another question |
| 15:41:03 | <merijn> | Orbstheorem: In long: This is a cursed question I tried to get working for a week and gave up |
| 15:41:06 | <merijn> | tomsmeding: It's not |
| 15:41:21 | <tomsmeding> | depends on your definition of "working" |
| 15:41:27 | <merijn> | tomsmeding: Or rather, it may work if your C compiler is *also* a C++ compiler and doesn't throw a fit |
| 15:41:47 | <Orbstheorem> | I'm stuck between adding a makefile and adding it to stack, but I find adding a makefile to essentially call stack dirty... |
| 15:41:48 | <tomsmeding> | okay I was naively assuming C++ wouldn't be harder than C |
| 15:41:59 | <Orbstheorem> | For the records, my C++ file is standalone. |
| 15:42:21 | <merijn> | tomsmeding: GHC knows about C compilers, it only half knows about C++ compilers, I have a few GHC issues about this |
| 15:42:36 | <tomsmeding> | TIL |
| 15:43:03 | <merijn> | Orbstheorem: I have a much larger C++ codebase, but I just use my own gmake build system for that and call cabal-install from there |
| 15:43:14 | <Orbstheorem> | :( |
| 15:43:27 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 15:43:30 | <Orbstheorem> | Ideally I'd package it in different packages, but it's for a course. |
| 15:43:43 | <merijn> | Orbstheorem: Unless you are willing to make a few (most likely relatively simple) patches to GHC there's no really good way |
| 15:43:49 | <Orbstheorem> | Aaaaand, well... I'm not doing a package for one-file executable. |
| 15:44:14 | <Orbstheorem> | merijn: I'm curious xD |
| 15:44:16 | <tomsmeding> | define "package" |
| 15:44:22 | <tomsmeding> | if we're mixing C++ and haskell |
| 15:44:26 | <Orbstheorem> | `dpkg -i foo` |
| 15:44:32 | <tomsmeding> | I see |
| 15:44:43 | <Orbstheorem> | C++ generates an executable my haskell code will call from PATH. |
| 15:45:11 | <Orbstheorem> | (It could be rewritten, but I'm not allowed to :/) |
| 15:45:13 | <merijn> | Not sure how well stack plays with Makefile, but cabal-install's v2-build has intentionally been designed to be super fast on noop builds so you can unconditionally call it in make |
| 15:45:59 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:46:10 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 15:46:12 | <Orbstheorem> | stack run takes 6 seconds on my system (NixOS 20.09) on a no-op. |
| 15:46:22 | <Orbstheorem> | stack ghci is much faster though. |
| 15:47:49 | → | shf joins (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) |
| 15:48:44 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 15:49:20 | → | cosimone joins (~cosimone@5.170.241.91) |
| 15:49:55 | <merijn> | Orbstheorem: Anyway, I'd just make a make file that builds the C++ exe and calls stack |
| 15:50:00 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc) |
| 15:51:12 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 15:52:29 | <boxscape> | huh indexing my STUArray with (x, (y, (z, (w, ())))) instead of (x, y, (z, (w, ()))) *doubles* the runtime of my program, interesting |
| 15:52:47 | <Orbstheorem> | Is the really scary way of doing it using Setup.hs and calling g++ from haskell code? x) |
| 15:53:07 | <merijn> | Orbstheorem: Why use Setup.hs at all |
| 15:53:18 | <merijn> | Orbstheorem: Can just have your main program compile with g++ on demand |
| 15:53:27 | <merijn> | (in fact, I literally do that in some code :p) |
| 15:53:35 | <Orbstheorem> | Nah, that sounds horrible x) |
| 15:53:57 | <Orbstheorem> | I'm not saying I won't |
| 15:54:10 | <Orbstheorem> | I just wanna see what's available and make my pick later x) |
| 15:54:17 | <Orbstheorem> | (Yes, I'm lazy) |
| 15:56:17 | <ephemient> | https://hackage.haskell.org/package/inline-c-cpp :P |
| 15:57:26 | × | coot quits (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 15:57:27 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 15:57:46 | → | coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) |
| 15:59:57 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 16:01:38 | <ph88> | how can i go from this function https://hackage.haskell.org/package/Frames-streamly-0.1.0.2/docs/Frames-Streamly-CSV.html#v:readTable to a Vector of my own datatype representing that row ? |
| 16:01:50 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 16:02:03 | × | guest1217 quits (~user@120.244.28.213) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:04:00 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 16:04:56 | → | codeAlways joins (uid272474@gateway/web/irccloud.com/x-uaxhttwxpgbyaiuf) |
| 16:05:01 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 272 seconds) |
| 16:06:22 | → | Ariakenom_ joins (~Ariakenom@2001:9b1:efb:fc00:c9f8:3d5b:f807:f873) |
| 16:09:25 | × | dax quits (dax@bitbot/dax) (Quit: updates) |
| 16:11:13 | → | cosimone_ joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 16:11:16 | → | dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) |
| 16:11:26 | <dminuoso> | Mmm, if I write `f == g && x == y` can I reasonably expect the first equality to be tested first? |
| 16:11:26 | × | xff0x quits (~fox@2001:1a81:5260:ab00:d700:e460:f864:a3a3) (Ping timeout: 264 seconds) |
| 16:11:29 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 16:11:53 | → | xff0x joins (~fox@2001:1a81:5260:ab00:b5e4:2313:abc1:f0cb) |
| 16:12:18 | <dminuoso> | % True && undefined |
| 16:12:18 | <yahb> | dminuoso: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err; undefined, called at <interactive>:22:9 in interactive:Ghci7 |
| 16:12:27 | <ephemient> | yes |
| 16:12:41 | <ephemient> | http://hackage.haskell.org/package/base-4.14.1.0/docs/Prelude.html#v:-38--38- "lazy in the second argument" |
| 16:12:45 | <dminuoso> | yeah but.. |
| 16:12:50 | <dminuoso> | what does "lazy in the second argument" even mean here? |
| 16:13:04 | <dminuoso> | Oh |
| 16:13:10 | <dminuoso> | % False && undefined |
| 16:13:10 | <yahb> | dminuoso: False |
| 16:13:13 | <dminuoso> | I see. |
| 16:13:24 | <dminuoso> | I forgot (&&) is a function. |
| 16:13:28 | <merijn> | dminuoso: lol |
| 16:13:39 | <merijn> | dminuoso: Sounds like time for a break :p |
| 16:13:49 | × | cosimone quits (~cosimone@5.170.241.91) (Read error: Connection reset by peer) |
| 16:13:49 | cosimone_ | is now known as cosimone |
| 16:14:20 | <dminuoso> | Yeah tell me about it. |
| 16:14:30 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: Textual IRC Client: www.textualapp.com) |
| 16:14:36 | <Orbstheorem> | ephemient: That's sounds like I can be even lazier :D |
| 16:14:41 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 16:14:49 | → | christo joins (~chris@81.96.113.213) |
| 16:16:05 | × | dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 240 seconds) |
| 16:16:18 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 16:16:40 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 16:19:02 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 16:19:37 | <dsal> | inkbottle: STM is quite easy. Is there a particular problem you're having? The O'Reily book covers it somewhat, but there's not much to it. |
| 16:24:47 | → | dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) |
| 16:25:21 | × | softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection) |
| 16:25:46 | → | nhs joins (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
| 16:25:57 | × | alexelcu quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:26:17 | → | alexelcu joins (~alexelcu@142.93.180.198) |
| 16:26:46 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 16:27:57 | × | dmiles quits (~dmiles@c-98-232-203-165.hsd1.wa.comcast.net) (Ping timeout: 260 seconds) |
| 16:29:18 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:8872:797c:1a98:8dff) (Ping timeout: 268 seconds) |
| 16:29:34 | → | dmiles joins (~dmiles@c-98-232-203-165.hsd1.wa.comcast.net) |
| 16:29:35 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 16:30:44 | → | Saukk joins (~Saukk@2001:998:ec:954:1c59:9bb5:b94c:3) |
| 16:31:34 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 16:31:47 | → | softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 16:32:26 | → | dax joins (dax@bitbot/dax) |
| 16:33:23 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 16:39:26 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 16:40:23 | × | iteratee quits (~kyle@162.211.154.4) (Read error: Connection reset by peer) |
| 16:40:32 | → | iteratee joins (~kyle@162.211.154.4) |
| 16:42:55 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 16:43:43 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 16:45:49 | × | shf quits (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) (Read error: Connection reset by peer) |
| 16:45:59 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 16:48:38 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 16:50:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 16:50:57 | → | geekosaur joins (42d52137@66.213.33.55) |
| 16:52:33 | × | raichoo quits (~raichoo@dslb-092-073-214-015.092.073.pools.vodafone-ip.de) (Quit: Lost terminal) |
| 16:52:46 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) |
| 16:53:32 | → | christo_ joins (~chris@81.96.113.213) |
| 16:53:50 | ← | chang parts (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) ("Textual IRC Client: www.textualapp.com") |
| 16:54:04 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 16:55:37 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 16:57:24 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 16:58:01 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 16:58:04 | → | tenniscp25 joins (~tenniscp2@134.196.209.118) |
| 16:59:40 | × | christo_ quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 17:00:09 | → | teardown_ joins (~user@gateway/tor-sasl/mrush) |
| 17:00:53 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:1de4:7265:50e8:3545) |
| 17:02:32 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 17:03:03 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 17:03:32 | × | xff0x quits (~fox@2001:1a81:5260:ab00:b5e4:2313:abc1:f0cb) (Ping timeout: 260 seconds) |
| 17:04:06 | → | xff0x joins (~fox@2001:1a81:5260:ab00:82ea:b3e3:e22c:7f9) |
| 17:05:11 | → | christo joins (~chris@81.96.113.213) |
| 17:05:16 | × | brisbin quits (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Quit: WeeChat 2.9) |
| 17:06:29 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 17:06:40 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:07:37 | × | arahael quits (~arahael@194-193-194-178.tpgi.com.au) (Ping timeout: 256 seconds) |
| 17:09:28 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
| 17:13:08 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 17:13:08 | <ph88> | i'm trying to build a project with stack with dependency Frames-streamly stack can't find it, normally it would recommend a line for extra-deps but it doesn't do that this time, how can i add this dependency ? |
| 17:13:38 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 17:13:50 | <koz_> | Just add 'Frames-streamly-whatever.version'. |
| 17:13:56 | <koz_> | The SHA hash is optional. |
| 17:14:01 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:14:08 | <koz_> | (add it to the extra-deps section, I mean) |
| 17:14:59 | × | bliminse quits (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) (Ping timeout: 256 seconds) |
| 17:15:50 | → | bliminse joins (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) |
| 17:21:43 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 17:26:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:28:30 | × | tomku quits (~tomku@unaffiliated/tomku) (Ping timeout: 256 seconds) |
| 17:30:19 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 17:30:41 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:31:35 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 17:34:06 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 17:35:17 | → | tomku joins (~tomku@unaffiliated/tomku) |
| 17:35:42 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
| 17:36:07 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:37:12 | × | Saukk quits (~Saukk@2001:998:ec:954:1c59:9bb5:b94c:3) (Remote host closed the connection) |
| 17:37:46 | → | bjobjo joins (~bjobjo@2a01:79c:cebf:d688::9e6) |
| 17:42:35 | <tomsmeding> | boxscape: that's interesting, it looks like those have Ix instances that traverse the index space in the same order |
| 17:42:47 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 17:44:36 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 17:48:17 | <Kronic> | koz_ so I stumbled upon a similar problem with another lib and I arrived at that solution through trial and error. Is there any particular reason that it does that for some libraries and not others ? |
| 17:48:40 | <koz_> | Kronic: Stack keeps its own index of Hackage I believe. |
| 17:48:55 | <koz_> | If it's in the index, it'll suggest; if it's not, it can't, because it has nothing to go by. |
| 17:49:00 | <koz_> | However, that's just my best guess. |
| 17:49:10 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 17:49:34 | → | jneira joins (501e6453@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.83) |
| 17:49:39 | <Kronic> | I see, thank you |
| 17:50:35 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 17:51:25 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 17:51:43 | <ph88> | thanks koz_ |
| 17:51:44 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 17:59:26 | <Kronic> | So, I've included a question about function application on this paste: https://dpaste.org/Ammy |
| 17:59:28 | × | joaj quits (~joaj@2001:690:2100:110:cceb:227c:edbc:592c) (Ping timeout: 258 seconds) |
| 18:00:06 | <Kronic> | Basically, the list I want out of my function returns out of order but I don't understand why, and it appears that changing it up doesn't impact the result in a desirable way either. Anyone able to explain to me what is happening on the line I highlighted ? |
| 18:00:19 | → | joaj joins (~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0) |
| 18:00:46 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 18:01:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:01:19 | <hyperisco> | Kronic, I don't think this is a question narrowly about function application. If you evaluate your function by hand for a list of, say, 3 elements, do you get what you expect? |
| 18:01:28 | × | dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 18:02:03 | <Kronic> | I included that information because that is what my understanding of the problem is, but my understanding is wrong, so |
| 18:02:18 | <hyperisco> | I mean take it step by step by hand |
| 18:02:30 | <hyperisco> | if you want to really understand what is happening that is what you should do |
| 18:02:38 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 18:02:58 | <gentauro> | anybody using XMonad on nixos? |
| 18:03:04 | <Kronic> | I see the problem |
| 18:03:10 | <Kronic> | It's the last line |
| 18:03:25 | <Kronic> | I fixed it, thank you :) |
| 18:03:27 | <gentauro> | I have an issue when I try to build `building package X11-1.9.2` |
| 18:04:23 | <gentauro> | I noticed that only `libX11-1.6.12` is available :( |
| 18:04:36 | <Kronic> | not meaning to discard your advice to trace it hyperisco, I already know function application fairly well I think I was just tunnel visioned on the line I commented on a little too much |
| 18:04:37 | → | mirrorbird joins (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) |
| 18:04:47 | <ph88> | in which monad can i run this function ? https://hackage.haskell.org/package/Frames-streamly-0.1.0.2/docs/Frames-Streamly-CSV.html#v:readTable |
| 18:04:56 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds) |
| 18:05:02 | → | christo joins (~chris@81.96.113.213) |
| 18:05:30 | <sm[m]> | adding to koz_'s stack answer: I expect doing stack update would help there |
| 18:05:46 | <koz_> | sm[m]: Yeah, that's a good point. |
| 18:05:55 | <ph88> | are you talking to me ? |
| 18:06:11 | <koz_> | ph88: The 'm' part requires MonadIO and MonadCatch. |
| 18:06:21 | <koz_> | Basically, that translates to 'IO, or a stack with IO in its heart'. |
| 18:06:28 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 18:06:56 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 18:07:03 | × | mirrorbird quits (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) (Client Quit) |
| 18:07:30 | × | joaj quits (~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0) (Quit: WeeChat 2.9) |
| 18:07:58 | × | juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 268 seconds) |
| 18:08:19 | <hyperisco> | > let { changeOne p f xs = let (a, a') = span (not . p) xs; (b, b') = splitAt 1 a' in a ++ map f b ++ b' } in changeOne (>3) (*2) [1..10] |
| 18:08:21 | <ph88> | koz_, i am trying to run this in IO but i get a type error https://bpa.st/A2JQ |
| 18:08:21 | <lambdabot> | [1,2,3,8,5,6,7,8,9,10] |
| 18:08:54 | <koz_> | ph88: Pastebin the code? |
| 18:08:59 | <ph88> | ok |
| 18:09:24 | <ph88> | koz_, the code is not much more than what is in line 12 to 15 |
| 18:09:37 | <koz_> | ph88: Pastebin it anyway. |
| 18:09:39 | <koz_> | Context helps. |
| 18:09:42 | <ph88> | ok just a moment |
| 18:09:48 | <koz_> | (for explanation if nothing else0 |
| 18:09:49 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 268 seconds) |
| 18:09:52 | <koz_> | )* |
| 18:10:28 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 18:10:39 | <ph88> | koz_, https://bpa.st/GOVA |
| 18:10:54 | × | phyll1s_work quits (~phyll1s_w@195.140.213.38) (Ping timeout: 260 seconds) |
| 18:11:04 | <koz_> | readTable doesn't return something in IO. |
| 18:11:16 | <koz_> | It gives back t m (Record rs), where t is a stream type. |
| 18:11:17 | <boxscape> | tomsmeding I'm now using a custom length-indexed vector as the index with the same Ix order as the tuples, and it also has the 2x runtime, but yeah, not really sure what's going on with that |
| 18:11:26 | <koz_> | So you have to use the streamly stuff to actually pull records out of it. |
| 18:11:39 | <ph88> | so it's a pure value from IO monad perspective ? |
| 18:11:42 | <xerox_> | > let change p f = traverse (\x -> x : [ f x | p x ]) in change (>3) (*2) [1..5] |
| 18:11:42 | <koz_> | That's what your type error is saying. |
| 18:11:44 | <lambdabot> | [[1,2,3,4,5],[1,2,3,4,10],[1,2,3,8,5],[1,2,3,8,10]] |
| 18:11:52 | <xerox_> | hyperisco: was hoping head was that one but no |
| 18:11:56 | <koz_> | ph88: It's not in IO, if that's what you're asking. |
| 18:12:16 | <tomsmeding> | boxscape: strange things |
| 18:12:30 | <koz_> | Basically, the whole point of streamly is that the streams themselves are not in IO - the values you pull out of them _are_, but then you only have to be in IO for those values, not the whole thing. |
| 18:12:38 | <koz_> | (which could be infinite, and thus could pose some hilarious problems) |
| 18:12:56 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds) |
| 18:13:30 | <xerox_> | ah [f x|p x]++[x] gives the first one as head, right |
| 18:14:12 | <ph88> | koz_, do you know which type i could give it ?? https://bpa.st/IT3A |
| 18:14:27 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 18:14:46 | <koz_> | As far as I can tell, this is a vinyl problem. I dunno vinyl, so I can't help much. |
| 18:15:05 | <ph88> | oki |
| 18:15:14 | <ph88> | thank you koz_ |
| 18:15:17 | <koz_> | No worries. |
| 18:16:18 | <Kronic> | very interesting hyperisco thank you for that! |
| 18:16:31 | <hyperisco> | is it a histomorphism that could do it too |
| 18:17:50 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 268 seconds) |
| 18:18:29 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 18:19:33 | <hyperisco> | > let changeOne p f = fst . foldr (\x (xs',xs) -> (if p x then f x : xs else x : xs', x:xs)) ([],[]) in changeOne (>3) (*2) [1..10] |
| 18:19:35 | <lambdabot> | [1,2,3,8,5,6,7,8,9,10] |
| 18:21:28 | → | pjb joins (~t@2a01cb04063ec500c04af862aff5caa7.ipv6.abo.wanadoo.fr) |
| 18:23:20 | → | justsomeguy joins (~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com) |
| 18:23:20 | × | justsomeguy quits (~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com) (Changing host) |
| 18:23:20 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 18:26:27 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection) |
| 18:27:11 | × | bliminse quits (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) (Quit: leaving) |
| 18:28:00 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 18:28:58 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 18:30:41 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Read error: Connection reset by peer) |
| 18:30:56 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 18:32:19 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-jyxgencxqnzavabz) |
| 18:32:23 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 18:32:32 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds) |
| 18:32:40 | → | mbomba joins (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
| 18:32:49 | → | _linker_ joins (~linker@2a02:a31a:a041:9a80:3db8:9890:7378:91f0) |
| 18:34:22 | → | guest1216 joins (~user@49.5.6.87) |
| 18:35:51 | × | stefan quits (~cri@42dots.de) (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in) |
| 18:35:59 | → | stefan joins (~cri@42dots.de) |
| 18:36:07 | → | u0_a298 joins (~user@47.206.148.226) |
| 18:38:14 | × | stefan quits (~cri@42dots.de) (Client Quit) |
| 18:38:21 | → | stefan-_ joins (~cri@42dots.de) |
| 18:38:42 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:38:54 | × | guest1216 quits (~user@49.5.6.87) (Ping timeout: 260 seconds) |
| 18:39:16 | → | porvak joins (~porvak@84.39.117.57) |
| 18:42:08 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 18:43:31 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 18:43:56 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 18:44:22 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 18:45:53 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 18:46:17 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 18:50:46 | → | fuzzypixelz_ joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 18:51:31 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 246 seconds) |
| 18:51:36 | fuzzypixelz_ | is now known as fuzzypixelz |
| 18:52:05 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit) |
| 18:52:24 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 18:54:22 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection) |
| 18:54:40 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 18:55:26 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 18:56:57 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit) |
| 18:58:18 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 19:00:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 264 seconds) |
| 19:02:11 | × | Merfont quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 19:02:30 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-evqgdihcidrcilck) |
| 19:02:34 | → | Merfont joins (~Kaiepi@47.54.252.148) |
| 19:02:51 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds) |
| 19:03:24 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:06:22 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 19:07:05 | × | Rudd0 quits (~Rudd0@185.189.115.98) (Remote host closed the connection) |
| 19:07:52 | × | ggole quits (~ggole@2001:8003:8119:7200:b1ce:df7:cb14:ba8f) (Quit: Leaving) |
| 19:09:01 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 19:09:03 | × | teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 19:10:19 | → | yitz joins (~yitz@unaffiliated/yitz) |
| 19:11:21 | <yitz> | Any recommendations for a dead-tree book that's good for learning Haskell? |
| 19:11:51 | × | asheshambasta quits (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
| 19:13:36 | → | geekosaur joins (42d52137@66.213.33.55) |
| 19:14:25 | × | codeAlways quits (uid272474@gateway/web/irccloud.com/x-uaxhttwxpgbyaiuf) (Quit: Connection closed for inactivity) |
| 19:19:34 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 19:31:59 | × | dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 260 seconds) |
| 19:32:01 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) |
| 19:33:46 | × | tenniscp25 quits (~tenniscp2@134.196.209.118) (Remote host closed the connection) |
| 19:34:10 | <ph88> | Is anyone familiar with vinyl ?? I would like to supply Record https://hackage.haskell.org/package/Frames-0.7.0/docs/Frames-Rec.html#t:Record with an "empty" type just for test. Maybe i can use a type similar to that of RNil ?? https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Core.html#v:RNil |
| 19:34:19 | → | tenniscp25 joins (~tenniscp2@134.196.209.118) |
| 19:34:34 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 19:34:53 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 19:35:00 | <ph88> | Type ElField is part of Record which needs the actual parameter https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Functor.html#t:ElField |
| 19:35:33 | <suzu_> | ah god this is melting my brain |
| 19:35:42 | <exarkun> | How do I narrow down the cause of a fatal exception? eg, my program exits when "DevBot-exe: user error (Upstream source closed.)". How do I map that onto a function that needs additional exception handling? |
| 19:36:22 | <geekosaur> | +RTS -xc ? |
| 19:36:35 | <geekosaur> | may require rebuilding with profiling |
| 19:36:37 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds) |
| 19:36:42 | → | Achylles joins (~Achylles@189.79.237.44) |
| 19:36:53 | <suzu_> | is there a way to get MonadIO for a Foo -> m a where `m` is an instance of MonadIO |
| 19:38:09 | <ph88> | suzu_, what do you mean ? |
| 19:38:30 | <suzu_> | i've got a monad: Widget HTML |
| 19:38:40 | <suzu_> | making values of Widget HTML a |
| 19:38:47 | <koz_> | suzu_: Sure, via ReaderT Foo m |
| 19:38:54 | <suzu_> | i want to do some RIO stuff in it |
| 19:39:04 | × | tenniscp25 quits (~tenniscp2@134.196.209.118) (Ping timeout: 256 seconds) |
| 19:39:05 | <ph88> | suzu_, maybe you can use function liftIO |
| 19:39:28 | <suzu_> | RIO a is a wrapper on ReaderT env IO a |
| 19:39:35 | <suzu_> | i want to lift RIO a's inside Widget |
| 19:40:10 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 19:40:12 | <suzu_> | i want to go from RIO a -> Widget HTML a pretty much |
| 19:40:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 19:40:34 | <suzu_> | i can almost do this |
| 19:40:36 | <suzu_> | liftRIO :: (MonadIO m, MonadReader env m) => RIO env a -> m a |
| 19:40:38 | <koz_> | suzu_: Do you want an instance of MonadIO for Widget HTML I guess? |
| 19:40:44 | → | nineonine joins (~nineonine@50.216.62.2) |
| 19:40:47 | <suzu_> | Widget HTML has a MonadIO |
| 19:40:51 | <suzu_> | but no MonadReader |
| 19:40:58 | <suzu_> | so im just sorta stuck |
| 19:41:09 | <koz_> | I guess Widget isn't a thing you wrote? |
| 19:41:12 | <suzu_> | right |
| 19:41:48 | → | dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) |
| 19:42:47 | <ph88> | wish i could help :| |
| 19:43:20 | <koz_> | My best bet is 'newtype-wrap Widget and give it the right instance, then unwrap again once you're done lifting'. |
| 19:44:48 | <suzu_> | hmmm |
| 19:45:10 | <suzu_> | newtype-wrap it and give it an 'env' addon perhaps |
| 19:45:16 | <suzu_> | and then add monadreader to it |
| 19:45:19 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 19:45:22 | <koz_> | The whole idea is you write like. |
| 19:45:35 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 19:45:45 | <koz_> | newtype SnoymanStopMessingWithMe a = SSMWM (Widget HTML a) |
| 19:45:47 | <koz_> | Then go |
| 19:45:54 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 19:45:59 | <suzu_> | newtype WidgetedEnv env v a = { unwrap :: env -> Widget v a } |
| 19:46:09 | <koz_> | instance MonadReader HTML SnoymanStopMessingWithMe where |
| 19:46:14 | <suzu_> | lmao snoyman stop messing wit hme |
| 19:46:23 | <koz_> | Since I _assume_ the environment in question is HTML? |
| 19:46:35 | <suzu_> | good guess but not quite |
| 19:46:38 | × | DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
| 19:46:40 | <suzu_> | Widget is rather strange |
| 19:46:53 | <suzu_> | but i think what you're describing might work |
| 19:47:31 | <ph88> | that's an interesting name for a type koz_ xD |
| 19:47:36 | <koz_> | ph88: :D |
| 19:47:55 | <ph88> | does someone know this type level programming data kinds stuff ?? https://bpa.st/HQYA |
| 19:47:57 | <suzu_> | oh i found an idea! |
| 19:48:01 | × | Achylles quits (~Achylles@189.79.237.44) (Quit: Leaving) |
| 19:48:07 | <suzu_> | instead of writing code in :: Widget HTML a |
| 19:48:15 | <suzu_> | i'll write it in :: env -> Widget HTML a |
| 19:48:33 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 19:48:35 | <suzu_> | then i can rioToWidget :: RIO env a -> env -> widget HTML a |
| 19:48:38 | <koz_> | suzu_: So Kleisli (Widget HTML) env a ? |
| 19:48:40 | <ph88> | i had DataKinds enabled btw |
| 19:48:45 | <suzu_> | rioToWidget rr e = runRIO e rr |
| 19:48:55 | <suzu_> | sure idk what Kleisli is |
| 19:48:56 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 19:49:06 | <suzu_> | thats probably what i ended up at by accident |
| 19:49:07 | <suzu_> | lol |
| 19:49:11 | <koz_> | suzu_: Kleisli m a b ~ a -> m b |
| 19:49:18 | <ph88> | some kind of primitive in category theory right |
| 19:49:25 | <suzu_> | looks like monad bind |
| 19:49:28 | <suzu_> | so |
| 19:49:28 | <koz_> | Also known as the fish arrow. |
| 19:49:30 | <suzu_> | yep |
| 19:49:32 | <suzu_> | >=> |
| 19:49:33 | <koz_> | It's not bind - it's fish. |
| 19:49:34 | <suzu_> | this thing? |
| 19:49:38 | <koz_> | Yep, fish. |
| 19:49:45 | <suzu_> | what's the type of fish |
| 19:49:49 | <ph88> | getting hungry now |
| 19:49:51 | <koz_> | :t (>=>) |
| 19:49:53 | <lambdabot> | Monad m => (a -> m b) -> (b -> m c) -> a -> m c |
| 19:49:58 | <koz_> | Oh wait, not fish. |
| 19:49:59 | <suzu_> | that is |
| 19:50:00 | <suzu_> | melting my brain |
| 19:50:08 | <suzu_> | oh i see |
| 19:50:10 | <ephemient> | also (<=<), of course |
| 19:50:13 | <koz_> | Basically, fish composes two Kleislis. |
| 19:50:21 | <dsal> | yitz: I read haskellbook.com on my kindle. It'd be a lot to print. |
| 19:50:21 | <suzu_> | take the a at the end and push it through two almost-bind-like things |
| 19:50:30 | <suzu_> | making one bind-like-thing |
| 19:50:35 | <koz_> | suzu_: They're more like 'functions which add on an effect'. |
| 19:50:41 | <koz_> | Compare a -> b to a -> m b |
| 19:50:54 | <koz_> | The former is pure, the latter (possibly) has effects. |
| 19:51:08 | <ph88> | geekosaur, could you help me with question about DataKinds ? |
| 19:51:11 | <koz_> | So fish is to Kleisli like (.) is to pure functions. |
| 19:51:12 | <yitz> | dsal: Thanks. I'm thinking of taking advantage of company policy to order a book. If they got a print version, I'll look into that one. Thanks! |
| 19:51:42 | <suzu_> | hmm |
| 19:51:45 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 19:51:45 | <merijn> | suzu_: >=> is just "\f g x -> f x >>= g" |
| 19:51:49 | <ph88> | yitz, i think there was another pretty good book released after the haskellbook, and that book looked better to me |
| 19:51:52 | <suzu_> | whats the nice way to write what i ended up with then? |
| 19:51:52 | <merijn> | :t (>>=) |
| 19:51:53 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
| 19:52:07 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 260 seconds) |
| 19:52:24 | <suzu_> | i'm now working in ((->) Env) Widget HTML a |
| 19:52:33 | <suzu_> | so the ((->) Env) monad instance |
| 19:52:33 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 19:52:41 | <yitz> | ph88: got a title? |
| 19:52:42 | <suzu_> | and having to `pure` a lot of stuff |
| 19:52:52 | <ph88> | yitz, i will look just a moment |
| 19:53:10 | <dsal> | yitz: There are print version of books that are not the first book you should read. :) I'd say there are three levels. haskellbook.com is good material, though not perfect. People have also been recommending: https://www.cs.nott.ac.uk/~pszgmh/pih.html |
| 19:53:16 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 240 seconds) |
| 19:53:33 | <dsal> | This is a really good second book: https://simonmar.github.io/pages/pcph.html |
| 19:53:38 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 19:54:19 | <dsal> | From there, https://thinkingwithtypes.com/ will take you quite deep. |
| 19:54:41 | <dsal> | This one is really great for getting a basic understanding of lens: https://leanpub.com/optics-by-example |
| 19:54:59 | <dsal> | Caveat, though. You'll be really angry with all your other tools once you start having better things to compare them to. |
| 19:55:25 | <dsal> | (not that there's nothing to complain about in Haskell, but many of the parts that aren't perfect are just nonexistent in stuff I have to do at work) |
| 19:55:41 | <yitz> | lol. Thank you |
| 19:55:46 | <suzu_> | ok this doesnt work |
| 19:55:53 | <suzu_> | im going to newtype widget as you suggested koz_ |
| 19:55:53 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds) |
| 19:55:55 | <suzu_> | i think that's it |
| 19:56:04 | × | bitmagie quits (~Thunderbi@200116b80697370068b048f727c82739.dip.versatel-1u1.de) (Quit: bitmagie) |
| 19:56:16 | <koz_> | suzu_: Any problem can be solved by adding enough newtypes. :P |
| 19:56:31 | <suzu_> | why cant it derive monad for me wtf |
| 19:56:45 | <koz_> | suzu_: How are you asking it to derive? |
| 19:56:55 | <suzu_> | probably by doing it wrong |
| 19:56:57 | <suzu_> | newtype RIOWidget env v a = RIOWidget {unRIOWidget :: env -> Widget v a} deriving (Functor) |
| 19:57:21 | <suzu_> | adding Monad / Applicative to that list says it can't do eta-reduce it enough to get it to work? |
| 19:57:22 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 19:57:23 | <koz_> | deriving (Functor, Applicative, Monad) via (Kleisli (Widget v) env) should work? |
| 19:57:24 | <ph88> | yitz, i was also thinking of this book https://www.cs.nott.ac.uk/~pszgmh/pih.html |
| 19:57:30 | <suzu_> | oh |
| 19:57:32 | <koz_> | (you need DerivingVia on) |
| 19:57:38 | <yitz> | Two recommendations for the same book! That's promising |
| 19:57:41 | <yitz> | Thanks, ph88 |
| 19:58:14 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 264 seconds) |
| 19:58:45 | <suzu_> | thath worked |
| 19:58:47 | <suzu_> | .. why did that work |
| 19:58:50 | <suzu_> | what did i just do |
| 19:58:52 | <suzu_> | lol |
| 19:58:58 | <koz_> | suzu_: There's two steps here. |
| 19:59:00 | <suzu_> | @i Kleisli |
| 19:59:00 | <lambdabot> | Maybe you meant: id ignore index instances instances-importing irc-connect irc-password irc-persist-connect v @ ? . |
| 19:59:16 | <koz_> | First, GHC sees that your type is coercible to env -> Widget v a |
| 19:59:33 | <koz_> | Then it sees that env -> Widget v a is coercible to Kleisli (Widget v) env a |
| 19:59:38 | <suzu_> | ^ ok what |
| 19:59:47 | <koz_> | Then it sees that Kleisli (Widget v) env a has the instances you asked for. |
| 19:59:57 | <koz_> | So it then basically scribbles in all the methods with a bunch of coerces. |
| 20:00:12 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds) |
| 20:00:18 | <ph88> | that's a lot of scribbling |
| 20:00:26 | <koz_> | ph88: Saves _you_ doing it, though! |
| 20:00:28 | <suzu_> | Kleisli m a b, is a -> m b |
| 20:00:45 | <ph88> | well i'm still stuck on DataKinds, but ok Kleisli lol :p |
| 20:01:16 | <suzu_> | so Kleisli (Widget v) env a is env -> (Widget v) a |
| 20:01:21 | <suzu_> | ok |
| 20:01:25 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 264 seconds) |
| 20:01:48 | <suzu_> | and then all these nistances under Klesli in Control.arrow are on (Kleisli m) for any m |
| 20:01:50 | <suzu_> | okay |
| 20:01:52 | <suzu_> | i get it |
| 20:01:54 | <suzu_> | wow |
| 20:01:56 | → | Deide joins (~Deide@217.155.19.23) |
| 20:02:01 | <suzu_> | that is an excellent tool |
| 20:02:05 | <koz_> | DerivingVia is pretty handy for exactly these kinds of scenarios. |
| 20:02:07 | <suzu_> | i am keeping that in my pocket |
| 20:02:46 | <koz_> | Note: Traverse is annoyingly resistant to being derived this way. |
| 20:02:53 | → | geekosaur joins (42d52137@66.213.33.55) |
| 20:02:56 | <koz_> | So don't be surprised if you see coercion gore from GHC if you try it. |
| 20:03:24 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 20:03:25 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:04:10 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 20:05:52 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 20:07:52 | × | texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection) |
| 20:08:28 | → | texasmynsted joins (~texasmyns@92.119.17.139) |
| 20:09:27 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 268 seconds) |
| 20:10:34 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds) |
| 20:10:36 | <ph88> | anyone else experience that haskell programs in powershell are very slow ? |
| 20:11:31 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 20:12:30 | <koz_> | ph88: What do said programs do? |
| 20:12:39 | <koz_> | (like, in your experience of slowness?) |
| 20:12:48 | <ph88> | well ghc itself is very slow |
| 20:13:00 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 20:13:08 | <ph88> | when i run a virtualmachine on the same machine with linux it's faster |
| 20:13:48 | <Kronic> | I prefer coding in a VM personally, haskell using haskell on windows was a huge pain |
| 20:13:58 | <Kronic> | I brainfarted hard there... |
| 20:14:18 | <Kronic> | s/haskell using haskell/using haskell |
| 20:14:21 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Client Quit) |
| 20:16:23 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 20:18:41 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 20:23:12 | <xsperry> | ph88, "when i run a virtualmachine on the same machine with linux it's faster" <- how much faster? |
| 20:24:05 | → | rprije joins (~rprije@14-203-203-69.tpgi.com.au) |
| 20:24:22 | <dsal> | yitz: I don't exactly count as a recommendation for the Hutton book. I've not read it. The thing I liked about haskellbook.com (and a lot of people *didn't* like) was that it goes very slow with no assumed knowledge. Forgetting things you know about programming will make it easier. |
| 20:25:09 | <monochrom> | Generally linux is more efficient than windows. Even linux in virtualbox on windows is more efficient than native windows, heh. |
| 20:25:24 | <yitz> | I'm good at forgetting things. But I'm not very good at deciding _which_ things to forget... |
| 20:25:48 | → | wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) |
| 20:26:06 | <monochrom> | Kronic: It's alright, when one builds GHC from source, it counts as haskell using haskell, and it's known to take a while :) |
| 20:26:58 | → | knupfer joins (~Thunderbi@200116b82c41c500146d97fffe6f228b.dip.versatel-1u1.de) |
| 20:27:35 | <monochrom> | I like haskellbook.com being slow. I no longer recommend it because it has technical inaccuracy that are unnecessary. |
| 20:27:43 | × | knupfer quits (~Thunderbi@200116b82c41c500146d97fffe6f228b.dip.versatel-1u1.de) (Remote host closed the connection) |
| 20:27:56 | → | knupfer joins (~Thunderbi@200116b82c41c5004d9c68c948169740.dip.versatel-1u1.de) |
| 20:28:06 | <merijn> | monochrom: Which inaccuracies? |
| 20:28:11 | <monochrom> | I forgot. |
| 20:28:28 | <monochrom> | (Conveniently, eh?) |
| 20:28:50 | <Kronic> | what do you recommend instead? |
| 20:28:51 | <merijn> | monochrom: I like that it includes megaparsec and transformers instead of just Haskell, because parser combinators and transformers are kinda mandatory :p |
| 20:29:20 | <monochrom> | Yeah it has a lot of good things. |
| 20:29:24 | <merijn> | Kronic: fwiw it worked well for my girlfriend |
| 20:29:35 | <Kronic> | I own the book already |
| 20:29:59 | <Kronic> | I was just curious because I'm not having many problems making progress, I'm just curious in case I want to recommend a friend or work mate |
| 20:30:30 | <merijn> | I heard Bird's "Thinking Functionally with Haskell" and Hutton's "Programming in Haskell" were good, but I haven't read either |
| 20:30:43 | <ezzieyguywuf> | when a package has a dependency of ">=QuickCheck-2.13.2 && <QuickCheck-2.14", how can I find out the reason for the upper limit? |
| 20:30:48 | <merijn> | Admittedly, I haven't read more than a few half chapters of HFFP either :p |
| 20:30:59 | <ezzieyguywuf> | there's a few that have this same callout for quickcheck |
| 20:31:03 | <merijn> | ezzieyguywuf: Disabling it and seeing if it works ;) |
| 20:31:14 | <ezzieyguywuf> | lol |
| 20:31:21 | <ezzieyguywuf> | is it generally safe to try that? |
| 20:31:27 | <ph88> | xsperry, significantly ... but i would have to measure. bit busy right now to do those measurements |
| 20:31:36 | <monochrom> | I recommend starting with the wikibook, so you don't have to sink money yet, and maybe it is already enough. If it is not enough, then Hutton's, but take it very slowly, it is not long but you should not use speed reading. |
| 20:31:40 | <merijn> | ezzieyguywuf: There is syntax to distinguish "know to not work" and "not known if it works" in newer cabal versions, but not yet |
| 20:31:43 | <ezzieyguywuf> | i.e. do folks usually put the upper limit "just in case"? |
| 20:31:58 | <merijn> | ezzieyguywuf: A lot of people do and the ones who don't *should* |
| 20:32:02 | <ezzieyguywuf> | merijn: awww man can't wait, lol |
| 20:32:26 | <monochrom> | I suspect that the 1000-page length of haskellbook.com works on the simple ground that even if you try speed reading the 1000 pages will slow you down back to the correct pace. |
| 20:32:29 | <ezzieyguywuf> | merijn: hrm, can you elaborote on why one should set an upper limit? should the upper limit always be the next minor rev? |
| 20:32:29 | <merijn> | ezzieyguywuf: "newer" == cabal-install 2.4 :p |
| 20:32:45 | <merijn> | ezzieyguywuf: https://pvp.haskell.org/ |
| 20:33:17 | <ezzieyguywuf> | cabal-install 2.4? isn't that super old? |
| 20:33:27 | <ezzieyguywuf> | I'm trying to package 3.2 right now for gentoo |
| 20:33:44 | <merijn> | ezzieyguywuf: In cabal-version 2.4 and later you have "QuickCheck ^>= 2.13" which means "PVP compatible with the API" of 2.13 (which basically means "untested with anything later") |
| 20:33:49 | <merijn> | ezzieyguywuf: Hence "newer" in quotes :p |
| 20:33:58 | <monochrom> | IOW people these days don't stop after every two sentences and close the book and reflect "does it really mean what I think it means? how do I test my understanding?". |
| 20:34:14 | <merijn> | ezzieyguywuf: As opposed to "QuickCheck < 2.14" which then becomes "*known* to not work" |
| 20:34:29 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:35:03 | <merijn> | ezzieyguywuf: cabal-install also has a flag to allow newer bounds for all upperbounds from ^>= without automatically including all the < bounds |
| 20:35:08 | <ezzieyguywuf> | merijn: hrm, so in my head that is translating to "If I don't see a ^, probs ok to poke it" |
| 20:35:09 | <davean> | monochrom: Two sentances seems like a sentance and a half too much given how I read research papers |
| 20:35:11 | → | jess joins (jess@freenode/staff/jess) |
| 20:35:44 | <monochrom> | Well, for a mere Haskell textbook, it's OK. |
| 20:35:45 | <merijn> | ezzieyguywuf: A lot of cabal files in the wild use an older version of the format for many different reasons, so it's not very wildspread, but yes |
| 20:35:49 | <ezzieyguywuf> | merijn: is that feature specific to cabal-install, or available in the underlying cabal library? |
| 20:35:50 | × | softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection) |
| 20:35:53 | <merijn> | ezzieyguywuf: Actually, more the opposite |
| 20:36:00 | <merijn> | ezzieyguywuf: Which part |
| 20:36:10 | <ezzieyguywuf> | merijn: "allow newer even if it says don't" |
| 20:36:16 | <merijn> | ezzieyguywuf: It's more like "if you see ^ then it probably ok to relax" not the other way |
| 20:36:20 | <davean> | ezzieyguywuf: Cabal. |
| 20:36:40 | <davean> | ezzieyguywuf: cabal-install is just a thing that uses Cabal. Everything really to do with the .cabal file is Cabal. |
| 20:36:53 | <ezzieyguywuf> | right right |
| 20:36:55 | <merijn> | ezzieyguywuf: Since "foo ^>= 3.14" says *known* to work with 3.14 (and PVP compatible releases) which says nothing about whether newer versions work or not |
| 20:37:08 | <ezzieyguywuf> | hrm, I see |
| 20:37:27 | <ezzieyguywuf> | maybe I look at quicheck changelog |
| 20:37:33 | <merijn> | The distinctio between "know to not work" and "not known to work" is why ^>= was introduced |
| 20:37:38 | <ezzieyguywuf> | I mean, from 2.13 to 2.14 what could have changed... |
| 20:39:24 | <ezzieyguywuf> | yea, changelog seems to indicate a bunch of speed improvements behind the scenes, but doesn't explicitly say that the api changed |
| 20:39:33 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 20:39:33 | <ezzieyguywuf> | (I don't even really understand ABI and PVP...) |
| 20:39:50 | <davean> | There are, not well maintained, tools to diff Haskell APIs |
| 20:39:59 | <davean> | but version changes can also relate to semantics |
| 20:43:04 | → | tenniscp25 joins (~tenniscp2@134.196.209.118) |
| 20:43:06 | × | kuribas quits (~user@ptr-25vy0i8agrj36ppuptm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 20:44:50 | <ezzieyguywuf> | ahh, see random (the package) changelog "breaking change that...." |
| 20:44:59 | ezzieyguywuf | sees and nods "ah yes, very good to know" |
| 20:45:42 | → | teardown_ joins (~user@gateway/tor-sasl/mrush) |
| 20:45:43 | <davean> | ight |
| 20:47:41 | × | tenniscp25 quits (~tenniscp2@134.196.209.118) (Ping timeout: 268 seconds) |
| 20:48:14 | <ph88> | anyone know how i add instance of Parseable to read a csv file ? https://bpa.st/BG4A |
| 20:49:03 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 20:49:11 | → | zmagii joins (~zmagii@unaffiliated/zmagii) |
| 20:50:48 | × | darjeeling_ quits (~darjeelin@122.245.217.210) (Ping timeout: 265 seconds) |
| 20:52:51 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 20:53:54 | → | Wuzzy joins (~Wuzzy@p5b0df87d.dip0.t-ipconnect.de) |
| 20:54:32 | → | todda7 joins (~torstein@ppp-2-84-17-53.home.otenet.gr) |
| 20:55:51 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 20:55:56 | × | apoc quits (~apoc@bridge.mattzq.com) (Ping timeout: 240 seconds) |
| 20:57:37 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 20:57:38 | → | apoc joins (~apoc@bridge.mattzq.com) |
| 20:58:20 | → | redmp joins (~redmp@mobile-166-177-250-97.mycingular.net) |
| 21:00:49 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 264 seconds) |
| 21:03:20 | → | borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 21:03:43 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 21:04:46 | → | darjeeling_ joins (~darjeelin@122.245.217.210) |
| 21:07:41 | → | jollygood2 joins (~bc8165ab@217.29.117.252) |
| 21:07:45 | → | electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
| 21:08:44 | → | xcmw joins (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com) |
| 21:10:04 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 21:10:51 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:13:43 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 21:15:18 | <ph88> | oh found it i think |
| 21:15:44 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 21:17:17 | → | arahael joins (~arahael@194-193-194-178.tpgi.com.au) |
| 21:21:28 | → | Philipp joins (~Philipp@8.43.122.34) |
| 21:24:30 | × | Philipp quits (~Philipp@8.43.122.34) (Client Quit) |
| 21:30:43 | <ph88> | hurray, after 4 hours i was able to read a line from the csv :D |
| 21:32:37 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 21:34:03 | <dsal> | Frames? Are you doing R in Haskell? |
| 21:36:12 | <ph88> | https://hackage.haskell.org/package/Frames-0.7.0 |
| 21:41:20 | × | knupfer quits (~Thunderbi@200116b82c41c5004d9c68c948169740.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 21:43:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 21:44:13 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:46:10 | <koz_> | . o O ('R in Haskell' = 'Raskell'? ) |
| 21:48:01 | <Rembane> | Rascal! |
| 21:48:31 | <koz_> | Data-oriented Scheme dialect gogo? |
| 21:48:45 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 21:48:54 | <geekosaur> | waskelly wabbit? |
| 21:49:58 | × | borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 21:49:58 | <Rembane> | ...for the enterprise |
| 21:54:44 | → | mounty joins (~mounty@2001:8000:2f59:0:6c2e:3caf:57c1:9c66) |
| 21:55:41 | × | geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection) |
| 21:56:08 | × | u0_a298 quits (~user@47.206.148.226) (Ping timeout: 268 seconds) |
| 21:56:15 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 21:56:24 | × | redmp quits (~redmp@mobile-166-177-250-97.mycingular.net) (Quit: byeee) |
| 21:56:45 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 21:58:33 | × | taurux quits (~taurux@net-93-144-87-101.cust.dsl.teletu.it) (Quit: ZNC 1.7.5 - https://znc.in) |
| 22:00:23 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 22:02:49 | × | Ariakenom_ quits (~Ariakenom@2001:9b1:efb:fc00:c9f8:3d5b:f807:f873) (Read error: Connection reset by peer) |
| 22:04:06 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 22:06:47 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 22:06:54 | × | kenran quits (~kenran@i59F67BCB.versanet.de) (Quit: leaving) |
| 22:07:02 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 22:07:31 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-mktflcfjzasruohy) (Quit: Connection closed for inactivity) |
| 22:07:43 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:1de4:7265:50e8:3545) (Ping timeout: 260 seconds) |
| 22:09:11 | → | mirrorbird joins (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) |
| 22:09:41 | × | ubert quits (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 22:09:42 | × | dhil quits (~dhil@78.156.97.38) (Ping timeout: 268 seconds) |
| 22:10:03 | → | ubert joins (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) |
| 22:11:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:11:33 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 268 seconds) |
| 22:12:14 | × | fendor_ quits (~fendor@77.119.130.146.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:13:13 | <koz_> | Is there some newtype Foo over Maybe a, such that we have a Semigroup instance where 'Foo Nothing' is an absorbing element? |
| 22:13:26 | <koz_> | (assuming a has a Semigroup instance of its own) |
| 22:14:01 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 22:14:10 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 22:15:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 22:16:00 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:16:46 | → | u0_a298 joins (~user@65.35.205.131) |
| 22:17:01 | <dolio> | Ap Maybe? |
| 22:17:03 | × | teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 22:17:30 | <koz_> | dolio: Perfect, thank you! |
| 22:17:45 | <koz_> | I assume its Monoid instance just does 'Just mempty'? |
| 22:17:57 | <dolio> | Presumably. |
| 22:18:27 | <koz_> | Appears like it does, awesome. |
| 22:19:31 | <koz_> | Time for sick deriving shenanigans. |
| 22:20:34 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 22:20:56 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
| 22:21:11 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 22:21:25 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 22:21:46 | × | matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer) |
| 22:21:58 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 22:22:16 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds) |
| 22:23:59 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 22:24:39 | → | borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 22:25:52 | × | carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection) |
| 22:26:12 | → | carlomagno joins (~cararell@148.87.23.9) |
| 22:29:26 | × | borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 22:29:33 | <koz_> | "The pat_lhs for explicitly bidirectional construction cannot use Record syntax. (Because the rhs expr might be constructing different data constructors.) It can use guards with multiple equations." |
| 22:29:51 | <koz_> | Is the intent of the sentence that 'guards with multiple equations' can substitute for Record syntax? |
| 22:29:55 | <koz_> | Or are they just unrelated? |
| 22:30:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 22:32:53 | × | u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer) |
| 22:33:23 | notzmv` | is now known as notzmv |
| 22:33:35 | <monochrom> | Unrelated. |
| 22:33:42 | → | u0_a298 joins (~user@65.35.205.131) |
| 22:33:42 | × | notzmv quits (~user@191.205.12.9) (Changing host) |
| 22:33:42 | → | notzmv joins (~user@unaffiliated/zmv) |
| 22:33:45 | <koz_> | Figured as much, sads. |
| 22:39:18 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 268 seconds) |
| 22:41:06 | → | borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 22:42:01 | × | johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in) |
| 22:42:50 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:54:24 | × | dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 256 seconds) |
| 22:57:31 | × | notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection) |
| 23:02:44 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 268 seconds) |
| 23:03:06 | → | notzmv joins (~user@unaffiliated/zmv) |
| 23:03:13 | <koz_> | I need naming advice. I keep running into this type: data Foo a = None | ExactlyOne a | TooMany. |
| 23:03:18 | <koz_> | What's a good name for this? |
| 23:05:16 | × | tumdedum quits (~tumdedum@unaffiliated/espiral) (Ping timeout: 240 seconds) |
| 23:05:41 | <EvanR> | Maybe (Maybe a) ? :P |
| 23:06:24 | → | tumdedum joins (~tumdedum@unaffiliated/espiral) |
| 23:06:40 | <koz_> | EvanR: Isomorphism is not naming. :P |
| 23:06:53 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 23:06:56 | <EvanR> | or Maybe on top of the zero or one type of your choice |
| 23:07:15 | <EvanR> | the TooMany seems like an add-on |
| 23:07:30 | <justsomeguy> | koz_: I saw a video where edwin brady mentions a particular name for this from whatever fancy type system he's basing his language on. |
| 23:07:36 | <dolio> | It's the flat lattice on `a`. |
| 23:07:38 | justsomeguy | tries to remember the name he used... |
| 23:08:06 | <koz_> | dolio: What's a flat lattice? |
| 23:08:52 | <dolio> | It's got a bottom and a top and a single layer of 'totally defined values' in the middle, which are all incomparable. |
| 23:09:04 | <koz_> | dolio: TIL, thanks. |
| 23:09:31 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:a1f6:288c:9ca1:722b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:09:31 | <dolio> | Like the integers as a lattice. |
| 23:10:52 | <dolio> | People describe the Haskell integers as a "flat domain", because there's no top. |
| 23:11:07 | justsomeguy | would probably just call it Quantity |
| 23:12:19 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 23:12:42 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 23:13:42 | <EvanR> | data Goldilocks a = TooFew | JustRight a | TooMany |
| 23:15:39 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 23:16:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 23:17:37 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 23:18:16 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 23:18:46 | × | borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 23:20:01 | <koz_> | EvanR: Good enough for me! |
| 23:23:16 | × | terrorjack quits (~terrorjac@static.23.111.201.195.clients.your-server.de) (Quit: Ping timeout (120 seconds)) |
| 23:24:12 | <koz_> | justsomeguy: If you find out what Edwin named it, I'd be curious to hear. |
| 23:24:16 | → | terrorjack joins (~terrorjac@static.23.111.201.195.clients.your-server.de) |
| 23:24:46 | <justsomeguy> | koz_: In this paper he calls it multiplicity https://dl.acm.org/doi/10.1145/3209108.3209189 |
| 23:24:56 | <koz_> | Yeah, that works too. |
| 23:25:16 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Quit: Ping timeout (120 seconds)) |
| 23:25:46 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 23:25:52 | × | xff0x quits (~fox@2001:1a81:5260:ab00:82ea:b3e3:e22c:7f9) (Ping timeout: 260 seconds) |
| 23:26:00 | <EvanR> | ThisMany Int a |
| 23:26:10 | × | michalz quits (~user@185.246.204.59) (Remote host closed the connection) |
| 23:26:15 | <EvanR> | -> Multiplicity a |
| 23:26:24 | <justsomeguy> | "Briefly, in QTT a variable has a multiplicity: 0, 1 or unrestricted (ω)." |
| 23:26:26 | <EvanR> | or some such |
| 23:26:34 | → | xff0x joins (~fox@2001:1a81:5260:ab00:97f1:2be1:c9ad:fa5c) |
| 23:26:43 | <koz_> | So 0, 1 and too many. :P |
| 23:28:30 | <hpc> | "there are 3 numbers in programming: 0, 1, and infinity" :D |
| 23:28:51 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 265 seconds) |
| 23:29:03 | → | TMA joins (tma@twin.jikos.cz) |
| 23:29:28 | → | borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 23:29:42 | × | fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Quit: leaving) |
| 23:30:45 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
| 23:32:52 | <justsomeguy> | I really hope that Idris becomes a useable language for practical things in my lifetime. (Maybe it already is?) |
| 23:33:14 | → | jespada joins (~jespada@90.254.245.49) |
| 23:33:16 | <koz_> | justsomeguy: Libraries and tooling, yo. |
| 23:33:32 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 23:33:34 | <justsomeguy> | Yeah, also better performance. |
| 23:34:01 | <hpc> | just do what python programmers do and write C instead :D |
| 23:34:26 | <hpc> | (or haskell) and then ffi it |
| 23:35:12 | → | tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net) |
| 23:35:26 | × | u0_a298 quits (~user@65.35.205.131) (Ping timeout: 272 seconds) |
| 23:36:41 | justsomeguy | is super interested, but will probably never get around to it. He's already putting a bunch of time in to figure out Haskell, which is already pretty far removed from the mindshare of people who do simple sysadmin things. |
| 23:37:10 | <justsomeguy> | I almost picked go or rust, but haskell was just too interesting. |
| 23:37:22 | <koz_> | justsomeguy: I'll pick 'can do this at all' before 'can do this fast'. |
| 23:37:38 | <koz_> | Having to roll your own... everything is the biggest impediment to Idris' success IMHO. |
| 23:38:00 | <EvanR> | success at being an interesting research project, check |
| 23:38:04 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 23:38:25 | <EvanR> | success at being promoted to de facto next big thing by fans, check |
| 23:38:52 | <EvanR> | it's failed to avoid success already! |
| 23:39:14 | <koz_> | EvanR: 'Avoid success at any cost' is not the Idris motto last I checked. :P |
| 23:39:23 | <hpc> | justsomeguy: there's a surprising amount of overlap between haskell and puppet, i have found |
| 23:39:28 | <EvanR> | exactly |
| 23:42:54 | × | ubert quits (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 23:43:29 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 23:43:43 | <justsomeguy> | hpc: I thought Haskell would be great for writing small cli utilities that are easy to test and easier to distribute than Python, which is what I'm using now. (Well, sort of, I'm a terrible programmer, so I don't write too much to begin with.) |
| 23:43:51 | × | daGrevis quits (~daGrevis@unaffiliated/dagrevis) (Quit: Ping timeout (120 seconds)) |
| 23:44:03 | → | daGrevis joins (~daGrevis@unaffiliated/dagrevis) |
| 23:46:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:48:07 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 23:48:24 | × | texasmynsted quits (~texasmyns@92.119.17.139) (Remote host closed the connection) |
| 23:49:01 | <Boarders> | what is the idiomatic way with a bytestring to drop the first line (everything up to and including the first \n) |
| 23:49:01 | → | texasmynsted joins (~texasmyns@92.119.17.139) |
| 23:51:01 | × | monadmatt quits (~user@119-17-128-101.771180.mel.nbn.aussiebb.net) (Remote host closed the connection) |
| 23:51:23 | <Rembane> | Boarders: I use drop 1 . dropWhile (/= '\n'), but I'm not sure it's the best way. |
| 23:51:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 23:51:56 | <Boarders> | I reach for something similar but with Bytestring.break (== '/n') |
| 23:52:06 | <Boarders> | but unclear if there is something more appropriate |
| 23:52:41 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 268 seconds) |
| 23:52:49 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 23:53:16 | <Rembane> | Boarders: break lets you keep the first line, you can throw it away immediately by using dropWhile instead |
| 23:53:48 | × | texasmynsted quits (~texasmyns@92.119.17.139) (Ping timeout: 272 seconds) |
| 23:55:34 | <Boarders> | fair point |
| 23:57:12 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
| 23:57:19 | × | wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 256 seconds) |
| 23:57:59 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 23:58:29 | <justsomeguy> | Does “{-# LANGUAGE FlexibleInstances #-}” just allow you to write concrete compound types in instance declarations? Am I understanding this correctly? |
| 23:59:26 | <justsomeguy> | So I can do something like “instance Something [Char] { ... }” rather than “instance Something [a] { ... }”? |
All times are in UTC on 2020-12-17.