2021-01-02 00:08:07 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Remote host closed the connection) |
2021-01-02 00:10:06 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 00:11:35 +0100 | ransom | (~c4264035@70-59-22-250.hlrn.qwest.net) |
2021-01-02 00:13:00 +0100 | ransom | (~c4264035@70-59-22-250.hlrn.qwest.net) (Client Quit) |
2021-01-02 00:13:18 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2021-01-02 00:13:43 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-01-02 00:14:13 +0100 | ransom | (~c4264035@70-59-22-250.hlrn.qwest.net) |
2021-01-02 00:15:25 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2021-01-02 00:15:49 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-01-02 00:18:30 +0100 | HarveyPwca | (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) |
2021-01-02 00:18:36 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:507e:67a8:8e33:6ee2) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 00:19:36 +0100 | nhs_ | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-01-02 00:20:01 +0100 | ransom | (~c4264035@70-59-22-250.hlrn.qwest.net) (Ping timeout: 264 seconds) |
2021-01-02 00:20:27 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Remote host closed the connection) |
2021-01-02 00:21:23 +0100 | nhs_ | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-01-02 00:26:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-02 00:27:28 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-02 00:27:36 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-01-02 00:28:11 +0100 | christo | (~chris@81.96.113.213) |
2021-01-02 00:32:15 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2021-01-02 00:32:44 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
2021-01-02 00:37:43 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
2021-01-02 00:39:36 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
2021-01-02 00:40:15 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-02 00:40:23 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
2021-01-02 00:45:05 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-02 00:47:02 +0100 | knupfer | (~Thunderbi@200116b82c90ff003c203efffe389899.dip.versatel-1u1.de) |
2021-01-02 00:47:44 +0100 | knupfer | (~Thunderbi@200116b82c90ff003c203efffe389899.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-02 00:48:00 +0100 | knupfer | (~Thunderbi@200116b82c90ff009d83bf767b64260e.dip.versatel-1u1.de) |
2021-01-02 00:49:54 +0100 | bartholin | (~bartholin@unaffiliated/bartholin) (Quit: Leaving) |
2021-01-02 00:52:26 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) |
2021-01-02 00:52:50 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) |
2021-01-02 00:53:33 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-148.cust.tzulo.com) |
2021-01-02 00:54:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 00:54:32 +0100 | <phaazon> | anyone using haskell-mode on emacs? |
2021-01-02 00:54:34 +0100 | <phaazon> | I’m becoming crazy |
2021-01-02 00:54:53 +0100 | <phaazon> | I keep having messaging stating that my “haskell app has died; restart?” when I move my cursor around |
2021-01-02 00:55:01 +0100 | <halbGefressen> | How would I get all two-partitions of a List that fulfills the Set invariant? E.g I have a list [0,1,2,3], it would return a list of lists. Those lists contain the two partitions of the original list and form the original list. |
2021-01-02 00:55:43 +0100 | <halbGefressen> | (dunno why i put the example in, retardation) |
2021-01-02 00:55:47 +0100 | dyamon | (~dyamon@cpc69058-oxfd26-2-0-cust662.4-3.cable.virginm.net) (Quit: WeeChat 2.9) |
2021-01-02 00:58:54 +0100 | <dsal> | halbGefressen: what do you mean by "two partitions"? |
2021-01-02 00:59:07 +0100 | <dsal> | > partition odd [0..3] |
2021-01-02 00:59:09 +0100 | <lambdabot> | ([1,3],[0,2]) |
2021-01-02 00:59:28 +0100 | <halbGefressen> | that would be two partitions yes |
2021-01-02 00:59:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-02 01:00:01 +0100 | <halbGefressen> | and I look for a function that returns every possibility to partition a list into two lists |
2021-01-02 01:01:35 +0100 | <dsal> | You want to know every possible way to partition numbers? That sounds a little XY -- what are you trying to accomplish? |
2021-01-02 01:03:26 +0100 | <halbGefressen> | Let's say I have an instance Finite which defines a function that enumerates all options of a type, e.g. enumerated :: bool = [True, False]. |
2021-01-02 01:03:42 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-148.cust.tzulo.com) (Quit: Leaving) |
2021-01-02 01:04:05 +0100 | <halbGefressen> | By assuming that a is instance of Finite, I want to implement Finite for Trees of a. |
2021-01-02 01:04:47 +0100 | <halbGefressen> | This means listing every possible tree that contains every element of the original enumeration of a exactly once. |
2021-01-02 01:05:40 +0100 | <dsal> | :t enumFrom minBound |
2021-01-02 01:05:41 +0100 | <lambdabot> | (Enum a, Bounded a) => [a] |
2021-01-02 01:06:14 +0100 | knupfer | (~Thunderbi@200116b82c90ff009d83bf767b64260e.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
2021-01-02 01:06:55 +0100 | <dsal> | If it's an Enum and Bounded, it's just that. That sounds a lot like what you're asking, but I'm sure I'm missing something. It'd be easier to see your type and what you are hoping to get from it. |
2021-01-02 01:07:41 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-01-02 01:08:20 +0100 | <dmwit> | Trees are almost certainly not Enum and Bounded. |
2021-01-02 01:08:42 +0100 | <dmwit> | (They're almost certainly neither.) |
2021-01-02 01:09:14 +0100 | <dsal> | Sure, similar to lists. I just don't quite understand what it means to produce a list of all possible lists any more than I would for trees. |
2021-01-02 01:09:19 +0100 | <dmwit> | That said, I don't understand how partitioning is related to enumerating trees. Doesn't sound right to me. |
2021-01-02 01:09:55 +0100 | <dmwit> | dsal: You can produce the list of all finite lists fairly easily. |
2021-01-02 01:10:08 +0100 | <dmwit> | The list of all finite trees seems pretty plausible, too. |
2021-01-02 01:10:47 +0100 | <halbGefressen> | The intuition I had is to first pick an element from the enumeration. Then partition the rest of numbers into two partitions and for each subtree, those are the possible values that can be in a subtree. |
2021-01-02 01:11:06 +0100 | <dmwit> | halbGefressen: You might like the functions in http://hackage.haskell.org/package/universe-base-1.1.1/docs/Data-Universe-Helpers.html |
2021-01-02 01:11:30 +0100 | <dmwit> | halbGefressen: But an element from the enumeration is a Bool. |
2021-01-02 01:12:05 +0100 | <dmwit> | I'll be honest, I'm a bit surprised we don't have a Universe instance for Tree lying around. |
2021-01-02 01:12:08 +0100 | <dmwit> | Seems super doable. |
2021-01-02 01:12:53 +0100 | <dmwit> | instance Finite a => Universe (Tree a) where universe = cartesianProduct Node universe universe -- seems like it should be enough? |
2021-01-02 01:13:18 +0100 | <dmwit> | Might... might even work for `Universe a => Universe (Tree a)`. I'd have to ponder more than 0 seconds to be sure. |
2021-01-02 01:13:31 +0100 | <halbGefressen> | For bool, it is pretty trivial as there are only 4 possible combinations: Node Leaf True (Node Leaf False Leaf), Node (Leaf False Leaf) True Leaf and the same with True and False exchanged |
2021-01-02 01:13:51 +0100 | ahhhhhhhhhhh | (6c3548b1@pool-108-53-72-177.nwrknj.fios.verizon.net) |
2021-01-02 01:13:55 +0100 | <dmwit> | What about Node True Leaf Leaf? |
2021-01-02 01:14:10 +0100 | <dmwit> | That's a perfectly cromulent Tree Bool, isn't it? |
2021-01-02 01:14:33 +0100 | <halbGefressen> | This is a valid tree, but it does not contain every possible value of Bool |
2021-01-02 01:14:40 +0100 | <dmwit> | Sure. |
2021-01-02 01:14:46 +0100 | <dmwit> | Anyway, the answer to the question as asked looks like this: |
2021-01-02 01:16:00 +0100 | <dmwit> | :t map (partition snd) . mapM (\x -> [(x, False), (x, True)]) |
2021-01-02 01:16:02 +0100 | <lambdabot> | [a] -> [([(a, Bool)], [(a, Bool)])] |
2021-01-02 01:16:11 +0100 | <dmwit> | Oh, strip out the Bools, too, I guess. |
2021-01-02 01:16:32 +0100 | ahhhhhhhhhhh | (6c3548b1@pool-108-53-72-177.nwrknj.fios.verizon.net) (Remote host closed the connection) |
2021-01-02 01:16:55 +0100 | <halbGefressen> | https://www21.in.tum.de/teaching/fpv/WS20/assets/ex07.pdf |
2021-01-02 01:16:56 +0100 | <dmwit> | :t map ((\(ls, rs) -> (map fst ls, map fst rs)) . partition snd) . mapM (\x -> [(x, False), (x, True)]) |
2021-01-02 01:16:58 +0100 | <lambdabot> | [b] -> [([b], [b])] |
2021-01-02 01:17:12 +0100 | <dmwit> | > map ((\(ls, rs) -> (map fst ls, map fst rs)) . partition snd) . mapM (\x -> [(x, False), (x, True)]) $ "abcd" |
2021-01-02 01:17:15 +0100 | <lambdabot> | [("","abcd"),("d","abc"),("c","abd"),("cd","ab"),("b","acd"),("bd","ac"),("b... |
2021-01-02 01:17:31 +0100 | <dmwit> | There are probably more efficient (read: lazy) ways. |
2021-01-02 01:17:54 +0100 | <halbGefressen> | H7.2e) is my problem. Maybe I am too stupid to formulate it correctly. |
2021-01-02 01:18:24 +0100 | <dmwit> | https://hackage.haskell.org/package/combinatorial-0.1.0.1/docs/Combinatorics.html#v:partitions has it |
2021-01-02 01:19:07 +0100 | <halbGefressen> | Looks interesting. I'll read through that |
2021-01-02 01:19:27 +0100 | <dmwit> | Oh, you're solving a homework. Then the task isn't obligated to make sense, and I am at peace again. |
2021-01-02 01:20:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 01:22:17 +0100 | <halbGefressen> | Yes, it probably does not have a real-world use. I already have acquired enough points to get the check mark for this sheet. But I still want to solve this challenge because I really think it is an interesting problem. |
2021-01-02 01:22:33 +0100 | <dmwit> | Great attitude. ^_^ |
2021-01-02 01:22:43 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
2021-01-02 01:22:46 +0100 | <dmwit> | That is a good way to grow quickly. |
2021-01-02 01:23:10 +0100 | <halbGefressen> | well, why study computer science if you don't care about it? if you're in for the money you aint gonna last long |
2021-01-02 01:23:37 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 260 seconds) |
2021-01-02 01:23:43 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2021-01-02 01:24:13 +0100 | <halbGefressen> | also I kinda prefer haskell over almost everything I used before and want to learn stuff about it haha |
2021-01-02 01:24:37 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds) |
2021-01-02 01:24:41 +0100 | <dmwit> | There's a lot to like about it. ^_^ |
2021-01-02 01:24:48 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-01-02 01:25:57 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 260 seconds) |
2021-01-02 01:27:03 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 01:27:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-01-02 01:28:56 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 240 seconds) |
2021-01-02 01:29:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 01:29:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 01:29:56 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-01-02 01:30:46 +0100 | <dmwit> | :t foldM |
2021-01-02 01:30:47 +0100 | <lambdabot> | (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b |
2021-01-02 01:30:53 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
2021-01-02 01:31:27 +0100 | <dmwit> | > foldM (\(ts, fs) a -> [(a:ts, fs), (ts, a:fs)]) ([],[]) "abcd" |
2021-01-02 01:31:30 +0100 | <lambdabot> | [("dcba",""),("cba","d"),("dba","c"),("ba","dc"),("dca","b"),("ca","db"),("d... |
2021-01-02 01:31:35 +0100 | <dmwit> | Oh that is much comfier to read. |
2021-01-02 01:31:54 +0100 | <dmwit> | And doesn't require you to install any libraries! |
2021-01-02 01:34:57 +0100 | <halbGefressen> | ohh, this looks promising! |
2021-01-02 01:35:40 +0100 | <Squarism> | in a pattern match of a constructor. If you capture the "identifier@Constructor", I assume the capture gets the type of the constructors type and no nice direct access to the constructor? |
2021-01-02 01:35:58 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2021-01-02 01:35:58 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2021-01-02 01:35:58 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-01-02 01:36:30 +0100 | <Squarism> | I'd need that language extension thingy for that ? CAnt recall its name |
2021-01-02 01:36:49 +0100 | <glguy> | What is "direct access to the constructor"? |
2021-01-02 01:37:05 +0100 | <Squarism> | wishful thinking? |
2021-01-02 01:37:29 +0100 | <dmwit> | But like, if your wishes came true, what would the world look like? |
2021-01-02 01:37:33 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 01:38:31 +0100 | <Squarism> | I mean if constructor Boo has field "baz" I cannot do : case someVal of ; capt @ Boo {} -> baz capt |
2021-01-02 01:38:49 +0100 | <dmwit> | Sure, you can do that. |
2021-01-02 01:39:33 +0100 | <dmwit> | It will probably even get optimized into a single pattern match instead of the two that the naive compilation would do. |
2021-01-02 01:40:00 +0100 | <monochrom> | Yes. |
2021-01-02 01:40:03 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2021-01-02 01:40:31 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2021-01-02 01:40:41 +0100 | <dmwit> | If someVal is just a variable you don't even need the @ pattern. `case someVal of Boo{} -> baz someVal`. |
2021-01-02 01:41:07 +0100 | alx741 | (~alx741@186.178.110.198) (Ping timeout: 260 seconds) |
2021-01-02 01:41:15 +0100 | <monochrom> | https://mail.haskell.org/pipermail/haskell-cafe/2013-April/107775.html |
2021-01-02 01:41:17 +0100 | <Squarism> | hmm, need to look at my code again |
2021-01-02 01:41:17 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 01:41:38 +0100 | <monochrom> | It is the easier half of stream fusion in text and vector. |
2021-01-02 01:42:25 +0100 | <dmwit> | lmao ghc 2gud |
2021-01-02 01:44:25 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-01-02 01:44:47 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-01-02 01:45:34 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds) |
2021-01-02 01:45:54 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-01-02 01:48:41 +0100 | jacks2 | (~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-01-02 01:49:21 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) |
2021-01-02 01:50:56 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-01-02 01:53:25 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-01-02 01:54:51 +0100 | alx741 | (~alx741@181.196.69.173) |
2021-01-02 01:58:50 +0100 | knupfer | (~Thunderbi@200116b82c90ff001c8dbffffefdf880.dip.versatel-1u1.de) |
2021-01-02 01:59:32 +0100 | knupfer | (~Thunderbi@200116b82c90ff001c8dbffffefdf880.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-02 01:59:45 +0100 | knupfer | (~Thunderbi@200116b82c90ff008ddd7d0fb380906e.dip.versatel-1u1.de) |
2021-01-02 02:01:32 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-02 02:01:55 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-02 02:03:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 02:03:31 +0100 | matryoshka` | (~matryoshk@184.75.223.227) |
2021-01-02 02:03:42 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Remote host closed the connection) |
2021-01-02 02:03:53 +0100 | Feuermagier | (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
2021-01-02 02:04:32 +0100 | spopejoy | (~stuart@ool-44c5f8c9.dyn.optonline.net) |
2021-01-02 02:05:11 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection) |
2021-01-02 02:07:17 +0100 | knupfer | (~Thunderbi@200116b82c90ff008ddd7d0fb380906e.dip.versatel-1u1.de) (Quit: knupfer) |
2021-01-02 02:07:29 +0100 | knupfer | (~Thunderbi@200116b82c90ff008ddd7d0fb380906e.dip.versatel-1u1.de) |
2021-01-02 02:07:59 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2021-01-02 02:08:25 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2021-01-02 02:09:38 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit) |
2021-01-02 02:09:53 +0100 | matryoshka` | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-02 02:10:13 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 02:10:36 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
2021-01-02 02:11:02 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-02 02:13:25 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 264 seconds) |
2021-01-02 02:14:27 +0100 | Ishutin | (~Ishutin@80-95-69-205.pool.digikabel.hu) |
2021-01-02 02:14:37 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 264 seconds) |
2021-01-02 02:14:52 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit) |
2021-01-02 02:15:01 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2021-01-02 02:15:12 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-02 02:17:17 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Client Quit) |
2021-01-02 02:17:35 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-02 02:19:05 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 02:19:11 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer) |
2021-01-02 02:19:12 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Client Quit) |
2021-01-02 02:19:35 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-02 02:20:50 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Read error: Connection reset by peer) |
2021-01-02 02:21:00 +0100 | b5er | (~b5er_@91.193.4.138) |
2021-01-02 02:21:04 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-02 02:21:53 +0100 | b4er | (~b5er_@91.193.4.138) (Read error: Connection reset by peer) |
2021-01-02 02:22:27 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) |
2021-01-02 02:22:40 +0100 | b5er | (~b5er_@91.193.4.138) (Client Quit) |
2021-01-02 02:22:45 +0100 | matryoshka` | (~matryoshk@184.75.223.227) |
2021-01-02 02:22:49 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Client Quit) |
2021-01-02 02:23:18 +0100 | b4er | (~b4er@91.193.4.138) |
2021-01-02 02:23:42 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-01-02 02:23:54 +0100 | <phaazon> | anyone used to pandoc? |
2021-01-02 02:24:01 +0100 | <phaazon> | https://github.com/jgm/pandoc/blob/master/src/Text/Pandoc/Readers/Org/Inlines.hs#L25 |
2021-01-02 02:24:15 +0100 | matryoshka` | (~matryoshk@184.75.223.227) (Read error: Connection reset by peer) |
2021-01-02 02:24:16 +0100 | <phaazon> | I can’t find the module imported from here (Text.Pandoc.Builder) |
2021-01-02 02:24:19 +0100 | <phaazon> | what kind of magic is this again :D |
2021-01-02 02:24:38 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 02:25:03 +0100 | knupfer | (~Thunderbi@200116b82c90ff008ddd7d0fb380906e.dip.versatel-1u1.de) (Quit: knupfer) |
2021-01-02 02:25:11 +0100 | knupfer | (~Thunderbi@200116b82c90ff00dd065b5b3de4f5c0.dip.versatel-1u1.de) |
2021-01-02 02:25:52 +0100 | <phaazon> | http://hackage.haskell.org/package/pandoc-types-1.22/docs/Text-Pandoc-Builder.html nevermind, it was defined here… |
2021-01-02 02:25:54 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-02 02:26:08 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) (Client Quit) |
2021-01-02 02:26:09 +0100 | dansho | (~dansho@ec2-18-179-39-119.ap-northeast-1.compute.amazonaws.com) |
2021-01-02 02:26:19 +0100 | <yushyin> | hoogle can be helpful! |
2021-01-02 02:26:37 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
2021-01-02 02:26:48 +0100 | <phaazon> | yeah currently my editor’s LSP is a bit in holidays |
2021-01-02 02:26:51 +0100 | <phaazon> | I need to fix that :D |
2021-01-02 02:27:03 +0100 | <phaazon> | I think I’ll make a PR to pandoc tomorrow |
2021-01-02 02:27:25 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit) |
2021-01-02 02:27:45 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 02:28:27 +0100 | ces1 | (~ces@fsf/member/ces) |
2021-01-02 02:29:26 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer) |
2021-01-02 02:29:30 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-02 02:30:32 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 02:31:02 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-02 02:31:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 02:33:58 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-02 02:34:24 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-02 02:34:40 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 02:36:13 +0100 | columbarius | (~columbari@mue-88-130-54-094.dsl.tropolys.de) (Ping timeout: 264 seconds) |
2021-01-02 02:36:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 02:38:21 +0100 | columbarius | (~columbari@87.123.198.45) |
2021-01-02 02:39:00 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2021-01-02 02:42:45 +0100 | knupfer1 | (~Thunderbi@87.123.206.117) |
2021-01-02 02:42:48 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-148.cust.tzulo.com) |
2021-01-02 02:43:38 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-01-02 02:44:25 +0100 | GuerrillaMonkey | (~Jeanne-Ka@86.106.143.186) |
2021-01-02 02:44:54 +0100 | knupfer | (~Thunderbi@200116b82c90ff00dd065b5b3de4f5c0.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
2021-01-02 02:44:54 +0100 | knupfer1 | knupfer |
2021-01-02 02:45:38 +0100 | FreeBirdLjj | (~freebirdl@101.87.175.26) |
2021-01-02 02:47:45 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-01-02 02:48:16 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-148.cust.tzulo.com) (Ping timeout: 240 seconds) |
2021-01-02 02:49:22 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:507e:67a8:8e33:6ee2) |
2021-01-02 02:49:52 +0100 | FreeBirdLjj | (~freebirdl@101.87.175.26) (Ping timeout: 256 seconds) |
2021-01-02 02:50:10 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-100.cust.tzulo.com) |
2021-01-02 02:51:43 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:5c08:7b47:1b0:b77) (Quit: Leaving) |
2021-01-02 02:51:51 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:507e:67a8:8e33:6ee2) (Client Quit) |
2021-01-02 02:52:25 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2021-01-02 02:52:42 +0100 | GuerrillaMonkey | (~Jeanne-Ka@86.106.143.186) (Ping timeout: 256 seconds) |
2021-01-02 02:53:04 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-01-02 02:53:36 +0100 | knupfer | (~Thunderbi@87.123.206.117) (Ping timeout: 240 seconds) |
2021-01-02 02:53:49 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:cde2:1e79:768c:58ea) |
2021-01-02 02:56:59 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-02 02:57:27 +0100 | ces1 | (~ces@fsf/member/ces) (Quit: WeeChat 3.0) |
2021-01-02 02:59:04 +0100 | argento | (~argent0@168.227.96.51) |
2021-01-02 02:59:45 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 03:01:37 +0100 | <halbGefressen> | dmwit: I did it! My solution is probably in O(yes), but idc, it works and all automated tests pass! |
2021-01-02 03:02:37 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
2021-01-02 03:02:37 +0100 | <dsal> | Is O(yes) like O(MG)? |
2021-01-02 03:03:15 +0100 | <halbGefressen> | yes |
2021-01-02 03:03:45 +0100 | <ephemient> | there's 2^n partitions to return; as long as you're O(2^n) overall it seems reasonable? |
2021-01-02 03:03:56 +0100 | <halbGefressen> | alright, for a list with 3 elements, there are 30 possibilities. For 4 elements, it's already 336 and for 5 it's 5040. |
2021-01-02 03:05:14 +0100 | <halbGefressen> | it would be much easier if I would just have to find out the number of distinct trees, but I guess that would be too trivial since it is an easy problem of combinatorics |
2021-01-02 03:05:23 +0100 | dansho | (~dansho@ec2-18-179-39-119.ap-northeast-1.compute.amazonaws.com) (Quit: Leaving) |
2021-01-02 03:05:47 +0100 | dansho | (~dansho@ec2-18-179-39-119.ap-northeast-1.compute.amazonaws.com) |
2021-01-02 03:05:56 +0100 | MrMuffles[m] | (mrmufflesm@gateway/shell/matrix.org/x-xyejpsqzvzaqmmkc) |
2021-01-02 03:06:47 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-01-02 03:06:47 +0100 | <halbGefressen> | The only exercise left is the enumeration of all possible surjective functions from finite sets a to b. but I guess I'll just go to sleep now. |
2021-01-02 03:08:19 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-02 03:08:33 +0100 | argento | have you tried list's monad instance? |
2021-01-02 03:08:44 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Remote host closed the connection) |
2021-01-02 03:09:00 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 03:10:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 03:13:34 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 260 seconds) |
2021-01-02 03:14:36 +0100 | cwj1 | (~cwj@s91904426.blix.com) (Remote host closed the connection) |
2021-01-02 03:15:46 +0100 | t3xp4t | (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection) |
2021-01-02 03:16:46 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Remote host closed the connection) |
2021-01-02 03:17:48 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2021-01-02 03:18:11 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-01-02 03:19:32 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-02 03:20:44 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 03:22:02 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 03:22:59 +0100 | pjb | (~t@2a01cb04063ec5007877dab9a3fb2e14.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2021-01-02 03:23:44 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 03:26:06 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-01-02 03:26:28 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-02 03:26:54 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 272 seconds) |
2021-01-02 03:32:04 +0100 | <b4er> | What is an efficient representation of something like STLC? De Bruijn is nice for alpha-equivalence I guess but it doesn't help with "free variable checks" does it? |
2021-01-02 03:33:33 +0100 | Tops21 | (~Tobias@dyndsl-095-033-090-103.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-01-02 03:33:37 +0100 | <b4er> | If I have `Lambda (Lambda (App 3 (App 0 1)))` then I have 3 as a fee variable and 0,1 bound. But if I want to query for 3 being free, I still need to walk the structure hmm |
2021-01-02 03:34:21 +0100 | <b4er> | Would it be sound to use smart-constructors and carry the depth of Lambdas at each Lambda? |
2021-01-02 03:34:59 +0100 | <b4er> | So I'd have `Lambda 2 (Lambda 1 ...)` and then if I ask with 3, I just check (3>2)? |
2021-01-02 03:35:25 +0100 | <b4er> | Ah, but then `App` etc. need that stuff too |
2021-01-02 03:36:26 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) |
2021-01-02 03:37:18 +0100 | <koz_> | b4er: Check out 'bound'. |
2021-01-02 03:37:28 +0100 | <b4er> | In hackage? |
2021-01-02 03:37:53 +0100 | <koz_> | Yes. |
2021-01-02 03:38:00 +0100 | <b4er> | * We represent the target language itself as an ideal monad supplied by the user, and provide a Scope monad transformer for introducing bound variables in user supplied terms. |
2021-01-02 03:38:16 +0100 | <b4er> | Sounds good I'll check that out, ty! |
2021-01-02 03:38:22 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) (Quit: halbGefressen) |
2021-01-02 03:38:51 +0100 | <b4er> | The first slide in that presentation though... |
2021-01-02 03:39:03 +0100 | nhs_ | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) |
2021-01-02 03:40:41 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-01-02 03:41:28 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) |
2021-01-02 03:41:32 +0100 | dansho | (~dansho@ec2-18-179-39-119.ap-northeast-1.compute.amazonaws.com) (Quit: Leaving) |
2021-01-02 03:42:33 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2021-01-02 03:44:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-02 03:47:18 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) (Quit: halbGefressen) |
2021-01-02 03:47:42 +0100 | xff0x_ | (~fox@2001:1a81:53cd:600:4280:8eb:d6d7:f299) (Ping timeout: 260 seconds) |
2021-01-02 03:48:42 +0100 | plutoniix | (~q@184.82.206.66) |
2021-01-02 03:49:23 +0100 | xff0x_ | (~fox@2001:1a81:5204:2a00:adb6:cba:f871:aaef) |
2021-01-02 03:50:30 +0100 | jmchael | (~jmchael@81.174.205.210) (Ping timeout: 256 seconds) |
2021-01-02 03:50:37 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
2021-01-02 03:54:03 +0100 | CoolMa7 | (~ColMa7@2a02:8109:9d40:14ea:9c11:93da:85f4:5b67) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 03:55:13 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 03:55:17 +0100 | sgibber2018 | (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Ping timeout: 272 seconds) |
2021-01-02 03:55:36 +0100 | lawid | (~quassel@dslb-178-005-075-009.178.005.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-01-02 03:55:44 +0100 | lawid | (~quassel@dslb-090-186-035-082.090.186.pools.vodafone-ip.de) |
2021-01-02 03:55:59 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-02 03:56:43 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 03:58:16 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
2021-01-02 04:00:14 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-02 04:01:07 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 04:04:47 +0100 | Varis | (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
2021-01-02 04:05:52 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 04:08:16 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 240 seconds) |
2021-01-02 04:09:23 +0100 | xirhtogal | (~lagothrix@unaffiliated/lagothrix) |
2021-01-02 04:09:23 +0100 | lagothrix | Guest23977 |
2021-01-02 04:09:23 +0100 | xirhtogal | lagothrix |
2021-01-02 04:11:52 +0100 | Varis | (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
2021-01-02 04:12:11 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 04:12:29 +0100 | Guest23977 | (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 260 seconds) |
2021-01-02 04:12:56 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 04:13:20 +0100 | <koz_> | b4er: Lol. |
2021-01-02 04:13:35 +0100 | <koz_> | The title of the presentation is literally 'how to make de Bruijn succ less'. |
2021-01-02 04:13:44 +0100 | petersen | (~petersen@redhat/juhp) |
2021-01-02 04:13:51 +0100 | <koz_> | And there are multiple references to something 'succing a lot', etc. |
2021-01-02 04:16:06 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2021-01-02 04:16:25 +0100 | Varis | (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
2021-01-02 04:16:56 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 04:18:23 +0100 | drbean | (~drbean@TC210-63-209-163.static.apol.com.tw) |
2021-01-02 04:19:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 04:22:41 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) (Quit: carthia) |
2021-01-02 04:24:27 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-02 04:24:48 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 04:25:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-01-02 04:26:19 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 04:29:07 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 260 seconds) |
2021-01-02 04:30:12 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-02 04:30:33 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-02 04:31:04 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-02 04:31:27 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 260 seconds) |
2021-01-02 04:32:32 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 04:33:54 +0100 | petersen | (~petersen@redhat/juhp) |
2021-01-02 04:34:38 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) |
2021-01-02 04:35:23 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 04:36:23 +0100 | denisse_ | (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds) |
2021-01-02 04:36:23 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
2021-01-02 04:37:05 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-01-02 04:37:08 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2021-01-02 04:37:08 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2021-01-02 04:37:08 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-01-02 04:37:23 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
2021-01-02 04:37:25 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-01-02 04:37:37 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-01-02 04:37:49 +0100 | solonarv | (~solonarv@astrasbourg-653-1-252-231.w92-161.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
2021-01-02 04:37:52 +0100 | <monochrom> | Yes, "data N = Z | S N" succs a lot. |
2021-01-02 04:38:15 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-02 04:38:23 +0100 | Varis | (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
2021-01-02 04:38:33 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-02 04:38:43 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
2021-01-02 04:38:58 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 04:39:23 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds) |
2021-01-02 04:40:13 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Remote host closed the connection) |
2021-01-02 04:40:26 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-02 04:40:48 +0100 | laen_ | (~laen_@195.140.213.38) |
2021-01-02 04:42:14 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2021-01-02 04:42:23 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 04:44:37 +0100 | Varis | (~Tadas@unaffiliated/varis) (Quit: Leaving) |
2021-01-02 04:48:29 +0100 | <spopejoy> | "I am not a number, I am a free monad!" |
2021-01-02 04:48:44 +0100 | <spopejoy> | https://hackage.haskell.org/package/bound-2.0.2/docs/Bound-Var.html |
2021-01-02 04:48:55 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-02 04:48:59 +0100 | GuerrillaMonkey | (~Jeanne-Ka@86.106.143.10) |
2021-01-02 04:49:04 +0100 | codeAlways | (uid272474@gateway/web/irccloud.com/x-wmlqjaxzgcivyywk) (Quit: Connection closed for inactivity) |
2021-01-02 04:50:06 +0100 | <b4er> | The code from Bird & Paterson was what cracked me up the most |
2021-01-02 04:50:21 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:cde2:1e79:768c:58ea) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 04:51:17 +0100 | theDon | (~td@muedsl-82-207-238-228.citykom.de) (Ping timeout: 260 seconds) |
2021-01-02 04:52:16 +0100 | <b4er> | spopejoy, it's a play on "I am not a Number—I am a Free Variable" |
2021-01-02 04:52:31 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-100.cust.tzulo.com) (Ping timeout: 246 seconds) |
2021-01-02 04:52:59 +0100 | <spopejoy> | which originates from ... Elephant Man? |
2021-01-02 04:53:08 +0100 | theDon | (~td@muedsl-82-207-238-216.citykom.de) |
2021-01-02 04:53:42 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-132.cust.tzulo.com) |
2021-01-02 04:56:16 +0100 | GuerrillaMonkey | (~Jeanne-Ka@86.106.143.10) (Ping timeout: 240 seconds) |
2021-01-02 04:57:13 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 264 seconds) |
2021-01-02 04:58:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 04:58:29 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-uagwkmdlrotoupds) () |
2021-01-02 04:58:46 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-01-02 04:59:14 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-02 04:59:45 +0100 | <nshepperd> | it's from _The Prisoner_ iirc |
2021-01-02 04:59:57 +0100 | GuerrillaMonkey | (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) |
2021-01-02 05:00:52 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-01-02 05:01:19 +0100 | <nshepperd> | so |
2021-01-02 05:01:21 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-02 05:02:01 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 264 seconds) |
2021-01-02 05:02:08 +0100 | <spopejoy> | lol I was thinking of "I am not an animal, I am a human being" but it's def the Prisoner |
2021-01-02 05:03:32 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-132.cust.tzulo.com) (Ping timeout: 260 seconds) |
2021-01-02 05:03:39 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:cde2:1e79:768c:58ea) |
2021-01-02 05:05:07 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) (Ping timeout: 246 seconds) |
2021-01-02 05:05:16 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-01-02 05:06:13 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) |
2021-01-02 05:13:26 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-01-02 05:16:55 +0100 | Eelis | (~Eelis@unaffiliated/eelis) |
2021-01-02 05:17:00 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-01-02 05:17:23 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-02 05:17:26 +0100 | GuerrillaMonkey | (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) (Quit: Leaving) |
2021-01-02 05:17:35 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) |
2021-01-02 05:17:44 +0100 | <Eelis> | is there a nicer way (perhaps using some extension) to write case () of { _ | pred1 -> res1 | pred2 -> res2 | pred3 -> res3 | otherwise -> res4 } ? |
2021-01-02 05:18:56 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-01-02 05:20:38 +0100 | <Eelis> | ah i found MultiWayIf, nvm |
2021-01-02 05:21:43 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-02 05:21:55 +0100 | christo | (~chris@81.96.113.213) |
2021-01-02 05:22:29 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) |
2021-01-02 05:25:26 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-01-02 05:25:52 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-02 05:29:22 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) (Remote host closed the connection) |
2021-01-02 05:30:41 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-02 05:32:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-02 05:34:09 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) |
2021-01-02 05:39:11 +0100 | <jle`> | Eelis: -XMultiWayIf |
2021-01-02 05:42:14 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 05:42:43 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2021-01-02 05:43:29 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds) |
2021-01-02 05:45:51 +0100 | kderme | (2eb0d7c7@ppp046176215199.access.hol.gr) (Remote host closed the connection) |
2021-01-02 05:46:18 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-02 05:48:56 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) (Quit: Leaving) |
2021-01-02 05:50:11 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2021-01-02 05:50:55 +0100 | ransom | (~c4264035@8.47.12.52) |
2021-01-02 05:52:07 +0100 | <c_wraith> | I find that almost any time I'd want to use multiway if, I can just use guards on a non-function local binding... |
2021-01-02 05:52:47 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 05:55:20 +0100 | <ephemient> | > let x | False = 0 | otherwise = 1 in x |
2021-01-02 05:55:23 +0100 | <lambdabot> | 1 |
2021-01-02 05:55:37 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-02 05:55:53 +0100 | ransom | (~c4264035@8.47.12.52) (Read error: Connection reset by peer) |
2021-01-02 05:56:14 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) |
2021-01-02 05:56:55 +0100 | ransom | (~c4264035@2a09:bac0:72::82f:c34) |
2021-01-02 05:59:43 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Quit: dandart) |
2021-01-02 06:02:13 +0100 | argento | (~argent0@168.227.96.51) (Remote host closed the connection) |
2021-01-02 06:03:57 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr) (Remote host closed the connection) |
2021-01-02 06:04:22 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-01-02 06:04:47 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-02 06:04:55 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2021-01-02 06:05:55 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2021-01-02 06:06:13 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 06:06:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 06:08:04 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-02 06:08:21 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-01-02 06:09:16 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Remote host closed the connection) |
2021-01-02 06:09:35 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 06:10:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-01-02 06:12:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 06:15:16 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 06:16:24 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-02 06:16:37 +0100 | jamm | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-01-02 06:19:05 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
2021-01-02 06:19:43 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 06:19:52 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) |
2021-01-02 06:20:21 +0100 | CMCDragonkai1 | (~Thunderbi@120.17.23.213) |
2021-01-02 06:20:51 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 06:24:44 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 06:25:13 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Quit: frankdmartinez) |
2021-01-02 06:25:36 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 06:25:38 +0100 | CMCDragonkai1 | (~Thunderbi@120.17.23.213) (Remote host closed the connection) |
2021-01-02 06:25:43 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-02 06:26:17 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:8c40::ee4f) (Ping timeout: 268 seconds) |
2021-01-02 06:26:27 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 06:26:27 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Remote host closed the connection) |
2021-01-02 06:26:35 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-02 06:27:20 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) |
2021-01-02 06:28:02 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 06:29:22 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 06:29:41 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-02 06:37:17 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-02 06:38:34 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:8c40::1d01) |
2021-01-02 06:42:07 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-01-02 06:43:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 06:44:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 06:48:22 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Remote host closed the connection) |
2021-01-02 06:49:56 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-02 06:50:12 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 272 seconds) |
2021-01-02 06:55:27 +0100 | laen_ | (~laen_@195.140.213.38) (Remote host closed the connection) |
2021-01-02 06:58:14 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 07:01:22 +0100 | pacak | (~pacak@bb116-14-220-91.singnet.com.sg) (Remote host closed the connection) |
2021-01-02 07:03:00 +0100 | pacak | (~pacak@bb116-14-220-91.singnet.com.sg) |
2021-01-02 07:04:34 +0100 | frankdmartinez | (~frankdmar@5.181.234.188) (Ping timeout: 260 seconds) |
2021-01-02 07:06:13 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 246 seconds) |
2021-01-02 07:09:36 +0100 | bitmagie | (~Thunderbi@200116b80642150055a14958a21bc79e.dip.versatel-1u1.de) |
2021-01-02 07:10:27 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-01-02 07:18:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 07:19:05 +0100 | ransom | (~c4264035@2a09:bac0:72::82f:c34) (Quit: Textual IRC Client: www.textualapp.com) |
2021-01-02 07:19:16 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-01-02 07:26:01 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
2021-01-02 07:27:50 +0100 | amueller | (~amueller@185.103.96.147) |
2021-01-02 07:31:42 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 260 seconds) |
2021-01-02 07:36:56 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 07:39:53 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-01-02 07:41:37 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Ping timeout: 260 seconds) |
2021-01-02 07:46:10 +0100 | gioyik_ | (~gioyik@179.32.228.107) |
2021-01-02 07:48:37 +0100 | gioyik | (~gioyik@179.32.228.107) (Ping timeout: 260 seconds) |
2021-01-02 07:51:31 +0100 | <VarikValefor[m]> | PROTIP: When in a bind, use `>>=`. |
2021-01-02 07:54:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 07:59:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 08:09:55 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2021-01-02 08:11:06 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 08:12:37 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) |
2021-01-02 08:13:00 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) (Client Quit) |
2021-01-02 08:13:35 +0100 | <koz_> | VarikValefor[m]: PROTIP: If you're lost, just `return`. |
2021-01-02 08:15:43 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 08:23:27 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-02 08:24:04 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-01-02 08:24:13 +0100 | christo | (~chris@81.96.113.213) |
2021-01-02 08:24:54 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-pwwljkdtgciejnte) (Quit: Connection closed for inactivity) |
2021-01-02 08:25:24 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-02 08:26:10 +0100 | bitmagie | (~Thunderbi@200116b80642150055a14958a21bc79e.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-01-02 08:28:28 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 246 seconds) |
2021-01-02 08:29:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 08:30:02 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-02 08:31:13 +0100 | chambln | (~user@2.31.230.114) |
2021-01-02 08:33:22 +0100 | b4er | (~b4er@91.193.4.138) (Ping timeout: 246 seconds) |
2021-01-02 08:36:29 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-01-02 08:41:06 +0100 | zangi | (~azure@36.79.200.71) (Read error: Connection reset by peer) |
2021-01-02 08:41:27 +0100 | zangi | (~azure@103.154.230.250) |
2021-01-02 08:46:47 +0100 | rmk236 | (~lcampos@ip-37-201-211-236.hsi13.unitymediagroup.de) |
2021-01-02 08:51:18 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Ping timeout: 260 seconds) |
2021-01-02 08:51:19 +0100 | rmk236 | (~lcampos@ip-37-201-211-236.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds) |
2021-01-02 08:51:47 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:5d3c:3ea2:9142:e850) |
2021-01-02 08:52:37 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:cde2:1e79:768c:58ea) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 08:58:46 +0100 | tomku | (~tomku@unaffiliated/tomku) (Ping timeout: 272 seconds) |
2021-01-02 09:04:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 09:06:27 +0100 | tomku | (~tomku@unaffiliated/tomku) |
2021-01-02 09:10:55 +0100 | tomku | (~tomku@unaffiliated/tomku) (Client Quit) |
2021-01-02 09:12:13 +0100 | tomku | (~tomku@unaffiliated/tomku) |
2021-01-02 09:15:29 +0100 | jrm | (~jrm@freebsd/developer/jrm) (Quit: ciao) |
2021-01-02 09:15:54 +0100 | jrm | (~jrm@freebsd/developer/jrm) |
2021-01-02 09:20:11 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 09:22:28 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-01-02 09:25:22 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-01-02 09:33:02 +0100 | bitmagie | (~Thunderbi@200116b80642150055a14958a21bc79e.dip.versatel-1u1.de) |
2021-01-02 09:34:14 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303) |
2021-01-02 09:37:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 09:38:26 +0100 | bitmagie | (~Thunderbi@200116b80642150055a14958a21bc79e.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-01-02 09:39:12 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2021-01-02 09:40:10 +0100 | <idnar> | @pl \f -> f a b c |
2021-01-02 09:40:10 +0100 | <lambdabot> | flip (flip ($ a) b) c |
2021-01-02 09:42:27 +0100 | amueller | (~amueller@185.103.96.147) (Remote host closed the connection) |
2021-01-02 09:42:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-02 09:43:37 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:5d3c:3ea2:9142:e850) (Ping timeout: 272 seconds) |
2021-01-02 09:45:25 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-02 09:49:06 +0100 | christo | (~chris@81.96.113.213) |
2021-01-02 10:00:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 10:05:16 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2021-01-02 10:16:38 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-01-02 10:16:45 +0100 | drbean | (~drbean@TC210-63-209-163.static.apol.com.tw) (Ping timeout: 240 seconds) |
2021-01-02 10:18:46 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-02 10:20:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 10:24:36 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) |
2021-01-02 10:26:01 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-01-02 10:31:06 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
2021-01-02 10:33:33 +0100 | aenesidemus_ | (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) |
2021-01-02 10:34:59 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-01-02 10:35:16 +0100 | chambln | (~user@2.31.230.114) (Ping timeout: 240 seconds) |
2021-01-02 10:36:49 +0100 | aenesidemus | (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net) (Ping timeout: 264 seconds) |
2021-01-02 10:37:08 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) (Ping timeout: 256 seconds) |
2021-01-02 10:38:11 +0100 | Anthaas | (~Anthaas@unaffiliated/anthaas) |
2021-01-02 10:40:57 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-01-02 10:43:43 +0100 | larsan1 | (~larsan@217.146.82.202) |
2021-01-02 10:44:30 +0100 | <gentauro> | @:t fix |
2021-01-02 10:44:30 +0100 | <lambdabot> | Maybe you meant: wn v rc pl let id do bf @ ? . |
2021-01-02 10:44:41 +0100 | <gentauro> | @:t Data.Function.fix |
2021-01-02 10:44:41 +0100 | <lambdabot> | Maybe you meant: wn v rc pl let id do bf @ ? . |
2021-01-02 10:46:12 +0100 | <gentauro> | lambdabot: nope |
2021-01-02 10:48:06 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2021-01-02 10:50:02 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-02 10:51:33 +0100 | <xerox_> | gentauro: either @ or : |
2021-01-02 10:54:32 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 268 seconds) |
2021-01-02 10:57:50 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-bphofpilzzzitilm) (Quit: Connection closed for inactivity) |
2021-01-02 10:59:16 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds) |
2021-01-02 11:01:07 +0100 | perdent | (~perdent@101.175.79.103) |
2021-01-02 11:02:37 +0100 | <ski> | @type fix |
2021-01-02 11:02:39 +0100 | <lambdabot> | (a -> a) -> a |
2021-01-02 11:03:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 11:11:45 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-01-02 11:12:20 +0100 | olligobber | (~olligobbe@unaffiliated/olligobber) |
2021-01-02 11:18:43 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-02 11:24:44 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 11:29:07 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Ping timeout: 260 seconds) |
2021-01-02 11:33:48 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:5d3c:3ea2:9142:e850) |
2021-01-02 11:37:47 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection) |
2021-01-02 11:39:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 11:40:29 +0100 | bartholin | (~bartholin@unaffiliated/bartholin) |
2021-01-02 11:40:32 +0100 | <bartholin> | guys |
2021-01-02 11:40:40 +0100 | <bartholin> | how do I install sdl |
2021-01-02 11:41:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Remote host closed the connection) |
2021-01-02 11:41:25 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2021-01-02 11:42:15 +0100 | <xerox_> | bartholin: depends on what system you're running |
2021-01-02 11:42:23 +0100 | <bartholin> | xerox_: linux |
2021-01-02 11:42:32 +0100 | <xerox_> | which flavor of linux |
2021-01-02 11:42:53 +0100 | <bartholin> | archlinux |
2021-01-02 11:43:08 +0100 | <bartholin> | xerox_: I have tried cabal install --lib sdl2, but I get https://p.teknik.io/ThSub |
2021-01-02 11:44:02 +0100 | <xerox_> | archlinux has got its own package manager I think it's called pacman through which you can get libsdl2 on your system |
2021-01-02 11:44:12 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) |
2021-01-02 11:44:32 +0100 | <bartholin> | xerox_: but what about the haskell module |
2021-01-02 11:44:38 +0100 | <xerox_> | hmm |
2021-01-02 11:50:23 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
2021-01-02 11:51:33 +0100 | pjb | (~t@2a01cb04063ec500d400c5fa56f501d7.ipv6.abo.wanadoo.fr) |
2021-01-02 11:51:40 +0100 | plutoniix | (~q@184.82.206.66) (Ping timeout: 272 seconds) |
2021-01-02 11:55:11 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-01-02 11:55:52 +0100 | <xerox_> | bartholin: if I make a new empty project with cabal init and add sdl2 to the build-deps it does seem to work correctly for me https://i.imgur.com/lCVZzaw.png |
2021-01-02 11:56:37 +0100 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) (Ping timeout: 264 seconds) |
2021-01-02 11:57:25 +0100 | tsrt^ | (~hph@ip98-184-89-2.mc.at.cox.net) |
2021-01-02 11:58:04 +0100 | <bartholin> | xerox_: I have cabal 3.2 |
2021-01-02 11:58:13 +0100 | <xerox_> | I think I got 3.4 |
2021-01-02 11:58:27 +0100 | <xerox_> | yes ✔✔ cabal 3.4.0.0-rc4 |
2021-01-02 11:58:39 +0100 | <xerox_> | (using ghcup to manage ghc, cabal & friends) |
2021-01-02 11:59:12 +0100 | <xerox_> | I'm on 8.10.2 tho I should try .3 and see if things break, that's the version you're on |
2021-01-02 11:59:16 +0100 | <bartholin> | xerox_: what is the point of .cabal files |
2021-01-02 11:59:16 +0100 | Ishutin | (~Ishutin@80-95-69-205.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2021-01-02 11:59:43 +0100 | <xerox_> | bartholin: it's how you make haskell packages, just like the sdl2 one |
2021-01-02 11:59:49 +0100 | fendor | (~fendor@77.119.129.8.wireless.dyn.drei.com) |
2021-01-02 11:59:56 +0100 | <xerox_> | they can be either binaries or libraries (or both, or multiple of each, etc) |
2021-01-02 12:00:15 +0100 | olban | (~olban@213.152.161.20) |
2021-01-02 12:01:24 +0100 | olban | (~olban@213.152.161.20) (Remote host closed the connection) |
2021-01-02 12:02:15 +0100 | Ishutin | (~Ishutin@80-95-69-205.pool.digikabel.hu) |
2021-01-02 12:03:11 +0100 | <xerox_> | old cabal install would put stuff in the global (to your user) registry of packages but recent ones (backed by v2-* commands) do the build of all the dependencies in place, right there in the "dist-newstyle" directory of the package |
2021-01-02 12:03:56 +0100 | <xerox_> | then you use cabal build, cabal run, cabal ghci, etc to interact with your code and its dependencies |
2021-01-02 12:04:13 +0100 | plutoniix | (~q@ppp-223-24-93-108.revip6.asianet.co.th) |
2021-01-02 12:04:23 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
2021-01-02 12:06:03 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) |
2021-01-02 12:06:57 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:ad76:8f15:d0f4:d04e) |
2021-01-02 12:09:19 +0100 | sunrise_ | (~sunrise_@51.194.80.91) (Ping timeout: 246 seconds) |
2021-01-02 12:10:42 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Read error: Connection reset by peer) |
2021-01-02 12:10:54 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2021-01-02 12:12:26 +0100 | madjestic | (~Android@89-200-4-179.mobile.kpn.net) |
2021-01-02 12:13:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-02 12:13:15 +0100 | <bartholin> | xerox_: comonad doesn't compile, because of tagged |
2021-01-02 12:13:48 +0100 | <xerox_> | bartholin: ah we do have a difference, I'm on 8.10.2 not .3 |
2021-01-02 12:14:10 +0100 | <xerox_> | I'll try switching to that and see |
2021-01-02 12:14:24 +0100 | <bartholin> | I have the error Could not find module ‘Data.Tagged’ |
2021-01-02 12:15:46 +0100 | p-core | (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) (Quit: p-core) |
2021-01-02 12:15:49 +0100 | <bartholin> | but if I do import Data.Tagged in ghci, it werks |
2021-01-02 12:16:03 +0100 | p-core | (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) |
2021-01-02 12:17:26 +0100 | jneira | (501e6579@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.121) (Ping timeout: 264 seconds) |
2021-01-02 12:18:46 +0100 | <xerox_> | bartholin: it works for me, builds and installs (locally to the test package I made) comonad-5.0.8 |
2021-01-02 12:19:04 +0100 | <xerox_> | there might be something funny going on with your setup |
2021-01-02 12:20:07 +0100 | <bartholin> | xerox_: I have erased my ~/.cabal and ~/.ghc folders multiple times |
2021-01-02 12:20:29 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 12:21:08 +0100 | <bartholin> | and ghc-pkg check gives me nothing but lots of warning lines such as Warning: haddock-interfaces: /usr/share/doc/haskell-haddock-library/html/haddock-library.haddock doesn't exist or isn't a file |
2021-01-02 12:21:18 +0100 | <xerox_> | bartholin: I think if you use ghcup and get ghc and cabal 3.4 installed through it, then make an empty project with cabal init and add sdl2 to the build deps, then you should remove a lot of guessing from the problem |
2021-01-02 12:21:53 +0100 | <xerox_> | it might even just work, if libsdl2 is installed, just as it did for me |
2021-01-02 12:21:55 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 12:24:38 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:5d3c:3ea2:9142:e850) (Quit: Leaving.) |
2021-01-02 12:24:51 +0100 | <xerox_> | bartholin: https://pastebin.com/raw/mD8LVS0f |
2021-01-02 12:26:05 +0100 | <xerox_> | bartholin: and these are the tools via ghcup: https://pastebin.com/raw/4ysC8FZ3 |
2021-01-02 12:28:25 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) (Ping timeout: 240 seconds) |
2021-01-02 12:32:45 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) |
2021-01-02 12:32:46 +0100 | madjestic | (~Android@89-200-4-179.mobile.kpn.net) (Read error: Connection reset by peer) |
2021-01-02 12:35:56 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2021-01-02 12:37:34 +0100 | <bartholin> | xerox_: I don't understand https://p.teknik.io/r5LId |
2021-01-02 12:38:13 +0100 | <xerox_> | bartholin: ghcup installs everything under ~/.ghcup and then lets you pick what you want to use |
2021-01-02 12:38:46 +0100 | <xerox_> | bartholin: you installed the "recommended" version, see "ghcup list" |
2021-01-02 12:39:09 +0100 | <xerox_> | you want to ghcup install ghc 8.10.3 and then ghcup set ghc 8.10.3 to install and use the lastest |
2021-01-02 12:39:12 +0100 | spopejoy | (~stuart@ool-44c5f8c9.dyn.optonline.net) (Ping timeout: 256 seconds) |
2021-01-02 12:39:38 +0100 | spopejoy | (~stuart@ool-44c5f8c9.dyn.optonline.net) |
2021-01-02 12:39:46 +0100 | <xerox_> | then do the same with cabal 3.4.0.0-rc4 |
2021-01-02 12:40:12 +0100 | <xerox_> | when a tool is 'set', its binaries are brought into $PATH so you can run them |
2021-01-02 12:40:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 12:40:19 +0100 | <bartholin> | xerox_: I have ✓ ghc 8.10.3 latest,base-4.14.1.0 |
2021-01-02 12:40:25 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds) |
2021-01-02 12:40:30 +0100 | <xerox_> | the single tick means it's installed, but not set |
2021-01-02 12:40:41 +0100 | <bartholin> | oh ok |
2021-01-02 12:40:58 +0100 | <xerox_> | e.g. I have ✓ ghc 8.10.2 and then ✔✔ ghc 8.10.3 |
2021-01-02 12:41:30 +0100 | madjestic | (~Android@89-200-4-179.mobile.kpn.net) |
2021-01-02 12:41:46 +0100 | <xerox_> | you can also ghcup uninstall ghc 8.8.4 to not waste that space |
2021-01-02 12:42:03 +0100 | <xerox_> | sorry, 'rm' not uninstall |
2021-01-02 12:42:08 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 12:43:26 +0100 | <maerwald> | xerox_: you can also use `ghcup tui` to do those things interactively |
2021-01-02 12:43:26 +0100 | madjestic | (~Android@89-200-4-179.mobile.kpn.net) (Read error: Connection reset by peer) |
2021-01-02 12:43:39 +0100 | <xerox_> | forgot about that (: |
2021-01-02 12:45:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-02 12:45:38 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2021-01-02 12:45:40 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) |
2021-01-02 12:48:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 264 seconds) |
2021-01-02 12:48:17 +0100 | <bartholin> | xerox_: it works now |
2021-01-02 12:48:34 +0100 | <bartholin> | \o/ |
2021-01-02 12:50:16 +0100 | <bartholin> | xerox_: wait, where is the executable now |
2021-01-02 12:50:37 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
2021-01-02 12:50:53 +0100 | plutoniix | (~q@ppp-223-24-93-108.revip6.asianet.co.th) (Quit: Leaving) |
2021-01-02 12:52:03 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Client Quit) |
2021-01-02 12:52:28 +0100 | <xerox_> | bartholin: you run it through cabal run |
2021-01-02 12:52:43 +0100 | <xerox_> | and you get to ghci thrugh cabal repl |
2021-01-02 12:53:01 +0100 | <bartholin> | ok |
2021-01-02 12:53:03 +0100 | <bartholin> | thanks |
2021-01-02 12:53:10 +0100 | <xerox_> | the cabal commands set everything up to use the locally built dependencies and binaries |
2021-01-02 12:53:14 +0100 | <xerox_> | np (: |
2021-01-02 12:53:24 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
2021-01-02 12:55:00 +0100 | jchia1 | (~jchia@45.32.62.73) |
2021-01-02 12:56:01 +0100 | jchia1 | (~jchia@45.32.62.73) (Remote host closed the connection) |
2021-01-02 12:56:19 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) (Ping timeout: 260 seconds) |
2021-01-02 12:56:30 +0100 | lambda | (~xiretza@mail.xiretza.xyz) (Quit: WeeChat 3.0) |
2021-01-02 12:56:36 +0100 | jchia | (~jchia@58.32.71.163) (Ping timeout: 256 seconds) |
2021-01-02 12:57:06 +0100 | jchia | (~jchia@58.32.37.71) |
2021-01-02 12:57:35 +0100 | <phaazon> | hm, is there a way with cabal to override a dependency by specifying a git repository, or a path? I’m currently trying to make a change to a dependency and I need to test it |
2021-01-02 12:57:52 +0100 | lambda | (~xiretza@mail.xiretza.xyz) |
2021-01-02 12:58:00 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 12:58:14 +0100 | <phaazon> | maybe in the cabal.project file, which I have never used :D |
2021-01-02 12:58:58 +0100 | <phaazon> | I fear I’ll have to override all the dependencies my dependency uses too, because I’m basically editing a transitive package of my dep :/ |
2021-01-02 13:01:52 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-01-02 13:02:43 +0100 | <xerox_> | phaazon: exactly |
2021-01-02 13:02:57 +0100 | <phaazon> | well actually not a transitive dep |
2021-01-02 13:03:07 +0100 | <phaazon> | my website depends on pandoc, and I have a small fix on it |
2021-01-02 13:03:13 +0100 | <phaazon> | so I should be fine just depending on my git fork |
2021-01-02 13:07:35 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) (Remote host closed the connection) |
2021-01-02 13:07:53 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) |
2021-01-02 13:09:11 +0100 | jedws | (~jedws@121.209.189.201) (Remote host closed the connection) |
2021-01-02 13:09:51 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-02 13:10:32 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 13:12:38 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) (Ping timeout: 264 seconds) |
2021-01-02 13:12:41 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-02 13:14:01 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 13:15:58 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) |
2021-01-02 13:16:01 +0100 | Feuermagier | (~Feuermagi@213.178.26.41) |
2021-01-02 13:17:37 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 13:18:44 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 13:19:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 13:21:32 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 13:23:43 +0100 | jneira | (5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156) |
2021-01-02 13:23:54 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 13:25:09 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 13:26:19 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-02 13:27:17 +0100 | <phaazon> | xerox_: hm, looks like that’s not really the way to go |
2021-01-02 13:27:31 +0100 | <phaazon> | it doesn’t look like cabal is using the git repository, but install it still picks the dep from hackage |
2021-01-02 13:27:35 +0100 | <xerox_> | phaazon: I did that in the past, stuck a line in the project file to use my own git fork |
2021-01-02 13:27:45 +0100 | <xerox_> | I forget the syntax I always have to copy it from somewhere else |
2021-01-02 13:27:59 +0100 | <phaazon> | https://cabal.readthedocs.io/en/3.4/cabal-project.html#specifying-packages-from-remote-version-con… I mean I just did that |
2021-01-02 13:28:09 +0100 | <phaazon> | but maybe there’s something to do to tell cabal to update its cache? |
2021-01-02 13:28:16 +0100 | <phaazon> | I tried removing the already generated .project.local file |
2021-01-02 13:28:20 +0100 | <phaazon> | didn’t change it |
2021-01-02 13:28:56 +0100 | <xerox_> | :( |
2021-01-02 13:30:23 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 13:30:49 +0100 | <xerox_> | yeah that's what I'd done too: https://pastebin.com/raw/bdNakMFb |
2021-01-02 13:30:50 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 13:31:05 +0100 | <xerox_> | so that it finds the packages in that subdir |
2021-01-02 13:32:57 +0100 | <phaazon> | ah, that’s not what I’m doing |
2021-01-02 13:33:00 +0100 | <phaazon> | I’ll try that way, thanks |
2021-01-02 13:33:04 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-01-02 13:33:04 +0100 | <phaazon> | did you change your .cabal file? |
2021-01-02 13:33:53 +0100 | <xerox_> | no |
2021-01-02 13:35:12 +0100 | <phaazon> | I’m still using the hackage version… |
2021-01-02 13:35:21 +0100 | <xerox_> | meep. |
2021-01-02 13:35:38 +0100 | <phaazon> | how did you reconfigure your build? |
2021-01-02 13:35:41 +0100 | <phaazon> | cabal configure --reinstall? |
2021-01-02 13:35:45 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 13:35:49 +0100 | <xerox_> | I forget >_< |
2021-01-02 13:36:05 +0100 | <xerox_> | but I think I just kept on running cabal build after deleting dist-newstyle nothing else |
2021-01-02 13:37:06 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 13:38:17 +0100 | <phaazon> | yep, well, it doesn’t work on my side |
2021-01-02 13:38:47 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-02 13:39:08 +0100 | <__monty__> | Maybe install has different behavior? |
2021-01-02 13:40:18 +0100 | Guest87408 | (~textual@2603-7000-3040-0000-05ee-0552-d472-c8f7.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 13:40:45 +0100 | <phaazon> | how do people do this kind of things most of the time? |
2021-01-02 13:41:03 +0100 | safinaskar | (6dfc5ba3@109-252-91-163.nat.spd-mgts.ru) |
2021-01-02 13:41:17 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-02 13:41:26 +0100 | <phaazon> | in Rust, it’s super simple: you simply add a [patch] / [override] section in your config.toml to override the dependency everywhere in the build tree |
2021-01-02 13:42:45 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 13:42:50 +0100 | <xerox_> | that's what I *thought* this project file thing did |
2021-01-02 13:43:02 +0100 | geekosaur | (ac3a8b8b@172.58.139.139) |
2021-01-02 13:43:03 +0100 | <phaazon> | well it seems it’s made for that |
2021-01-02 13:43:11 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 13:43:17 +0100 | <phaazon> | but clearly it’s either not working properly, or the documentation misses something |
2021-01-02 13:43:37 +0100 | <phaazon> | I tried lots of things: removing the dist-newstyle, cabal install --only-dependencies --reinstall --force-reinstalls |
2021-01-02 13:43:42 +0100 | <phaazon> | lots of other similar command |
2021-01-02 13:43:50 +0100 | <phaazon> | I still build pandoc from hackage and not from my fork |
2021-01-02 13:44:29 +0100 | <xerox_> | do you depend directly on it or is it a dep of a dep |
2021-01-02 13:44:50 +0100 | <phaazon> | direct dep |
2021-01-02 13:45:20 +0100 | <phaazon> | https://github.com/phaazon/phaazon.net/blob/master/phaazon-net.cabal#L36 |
2021-01-02 13:46:10 +0100 | <xerox_> | is it building something in that range or could it be building a dep of a dep that asks for a different one? I'm out of ideas |
2021-01-02 13:46:35 +0100 | <phaazon> | it doesn’t do anything |
2021-01-02 13:46:51 +0100 | <phaazon> | it just rebuild my app without seeing any change about the deps |
2021-01-02 13:47:02 +0100 | tsrt^ | (~hph@ip98-184-89-2.mc.at.cox.net) () |
2021-01-02 13:47:09 +0100 | <phaazon> | I just added the packages: pkg-overrides/pandoc |
2021-01-02 13:47:15 +0100 | <xerox_> | even if you don't have a dist-newstyle and ask it to build? |
2021-01-02 13:47:17 +0100 | <phaazon> | and sym-linked pkg-overrides/pandoc to my ~/dev/pandoc |
2021-01-02 13:47:21 +0100 | <phaazon> | yep |
2021-01-02 13:47:34 +0100 | <phaazon> | it uses the globally installed pandoc, looks like |
2021-01-02 13:47:41 +0100 | <xerox_> | hide it >:) |
2021-01-02 13:48:10 +0100 | <phaazon> | I don’t even know where it is |
2021-01-02 13:48:12 +0100 | vs^ | (vs@ip98-184-89-2.mc.at.cox.net) |
2021-01-02 13:48:39 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 13:48:44 +0100 | <xerox_> | ghc-pkg --help |
2021-01-02 13:49:16 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-01-02 13:49:44 +0100 | <phaazon> | I updated ghc |
2021-01-02 13:49:52 +0100 | <phaazon> | cabal configure --reinstall now shows me lots of things |
2021-01-02 13:50:04 +0100 | <xerox_> | love things! |
2021-01-02 13:50:05 +0100 | <phaazon> | and I see pandoc, but it looks like there’s nothing indicating it’s from my pkg-overrides |
2021-01-02 13:50:10 +0100 | <phaazon> | - pandoc-2.11.3.2 (exe:pandoc) (requires build) |
2021-01-02 13:50:29 +0100 | <sm[m]> | maybe cabal exec -- ghc-pkg list is helpful |
2021-01-02 13:50:35 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-01-02 13:50:37 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 13:51:25 +0100 | <phaazon> | /home/phaazon/.ghcup/ghc/8.8.4/lib/ghc-8.8.4/package.conf.d |
2021-01-02 13:53:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-01-02 13:53:58 +0100 | <safinaskar> | how to do reversible parsing? not necessary in Haskell. i already searched Haskage and found some packages, but none of them guarantee reversible parsing. (I. e. you can easily fool this libraries.) There is project http://augeas.net/ for C language. It actually guarantee reversible parsing unlike hackage libs. But augeas doesn't handle arbitrary |
2021-01-02 13:53:58 +0100 | <safinaskar> | context-free grammars. So, it seems, augeas will be unable to parse, say, Pascal. There is very good project for reversible parsing any language into xml https://www.brics.dk/xsugar.html . but it is in java (i interested in c, c++ and haskell). are there other solutions? |
2021-01-02 13:55:15 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) |
2021-01-02 13:56:36 +0100 | Eelis | (~Eelis@unaffiliated/eelis) () |
2021-01-02 13:56:52 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2021-01-02 13:57:41 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 13:58:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2021-01-02 13:58:07 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 14:00:49 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 14:05:45 +0100 | b4er | (~b4er@91.193.4.138) |
2021-01-02 14:06:25 +0100 | Rey | (uid478328@gateway/web/irccloud.com/x-iriinvqvnkeykojw) |
2021-01-02 14:06:43 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-02 14:08:39 +0100 | jedws | (~jedws@121.209.189.201) |
2021-01-02 14:09:32 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-02 14:09:49 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 264 seconds) |
2021-01-02 14:10:08 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 14:11:33 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2021-01-02 14:11:57 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-01-02 14:12:55 +0100 | <Kronic> | If I have a string is there a method I'm not seeing to convert it to a member of Data.Word ? http://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.Word.html#Word64 ? |
2021-01-02 14:13:16 +0100 | <Clint> | a string of what? |
2021-01-02 14:13:38 +0100 | <Kronic> | A string representation of a word - I guess I can just read it as one right? |
2021-01-02 14:14:05 +0100 | <Clint> | using Read is one way |
2021-01-02 14:14:45 +0100 | <Kronic> | Ah, yes, I should learn to use :i more - I was reading the source and it uses all of those weird macro looking things so it was hard for me to see that |
2021-01-02 14:15:26 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 14:15:27 +0100 | <[exa]> | macro-looking things? |
2021-01-02 14:16:00 +0100 | <Kronic> | data {-# CTYPE "HsWord8" #-} Word8 = W8# Word# |
2021-01-02 14:16:06 +0100 | <Kronic> | For example, not sure how to read that |
2021-01-02 14:18:41 +0100 | <[exa]> | yeah that's compiler-specific annotations and primitive types, not really interesting |
2021-01-02 14:19:12 +0100 | <[exa]> | the {-#....#-} is a special comment used for compiler pragmas, and the types with # are just "special" in some way that I don't remember |
2021-01-02 14:19:24 +0100 | <geekosaur> | unboxed |
2021-01-02 14:19:53 +0100 | <[exa]> | oh thanks |
2021-01-02 14:20:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 14:20:29 +0100 | <[exa]> | Kronic: to your original question, how would you convert a String (which is a list of characters) to Word64 (which is a fixed-size integer)? |
2021-01-02 14:21:12 +0100 | <[exa]> | more precisely, what should it do with a string like "fooooooooo" ? |
2021-01-02 14:22:10 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-02 14:22:20 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-02 14:22:48 +0100 | <Kronic> | I'm using it in a parser, so it's something that will fail some of the time |
2021-01-02 14:22:58 +0100 | <Kronic> | So, no worries on that note. I have what I need now anyway |
2021-01-02 14:23:10 +0100 | <Kronic> | I was just a little lost inside that haskell file, never seen much of the stuff in there before |
2021-01-02 14:23:48 +0100 | <geekosaur> | you don't care about it, it's internal implementation details |
2021-01-02 14:24:13 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 264 seconds) |
2021-01-02 14:24:32 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) (Quit: leaving) |
2021-01-02 14:24:56 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) |
2021-01-02 14:25:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-02 14:25:23 +0100 | <[exa]> | Kronic: ooh you wanted to parse it, I got confused by the "convert" :] |
2021-01-02 14:25:24 +0100 | <Rey> | Huh |
2021-01-02 14:25:34 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) (Quit: Leaving) |
2021-01-02 14:26:33 +0100 | <Kronic> | Yea, I should really be more specific in future, sorry [exa] |
2021-01-02 14:27:59 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Remote host closed the connection) |
2021-01-02 14:28:27 +0100 | ADG1089__ | (~aditya@223.235.213.117) |
2021-01-02 14:28:33 +0100 | Rey | (uid478328@gateway/web/irccloud.com/x-iriinvqvnkeykojw) (Quit: Updating details, brb) |
2021-01-02 14:28:48 +0100 | Goldio | (uid478328@gateway/web/irccloud.com/x-qxzjoosyubzfyxzm) |
2021-01-02 14:30:26 +0100 | kyali | (~kyali@APN-123-252-106-gprs.simobil.net) (Quit: leaving) |
2021-01-02 14:30:28 +0100 | b4er | (~b4er@91.193.4.138) (Remote host closed the connection) |
2021-01-02 14:30:32 +0100 | larsan1 | (~larsan@217.146.82.202) (Remote host closed the connection) |
2021-01-02 14:34:04 +0100 | jedws | (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 14:34:53 +0100 | <itai33[m]> | how does one load extra modules from within `cabal repl`? |
2021-01-02 14:35:06 +0100 | <itai33[m]> | if i try `:l Foo.hs` then it replaces the loaded stuff |
2021-01-02 14:35:46 +0100 | Seran1 | (~Seran@178.162.204.214) |
2021-01-02 14:36:49 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
2021-01-02 14:38:16 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-02 14:38:24 +0100 | Tops2 | (~Tobias@dyndsl-095-033-022-018.ewe-ip-backbone.de) |
2021-01-02 14:39:17 +0100 | b4er | (~b4er@91.193.4.138) |
2021-01-02 14:41:15 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2021-01-02 14:41:26 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 14:43:18 +0100 | b4er | (~b4er@91.193.4.138) (Client Quit) |
2021-01-02 14:43:31 +0100 | b4er | (~b4er@91.193.4.138) |
2021-01-02 14:43:34 +0100 | <Kronic> | I've never used cabal repl but I do use ghci, and in ghci it's :m <module name> |
2021-01-02 14:44:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 14:45:03 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) |
2021-01-02 14:45:08 +0100 | <Uniaika> | itai33[m]: yes, it is indeed unfortuante. Do you wish to "load" them, or merely import them? |
2021-01-02 14:45:15 +0100 | <Uniaika> | *unfortunate |
2021-01-02 14:45:28 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 14:46:24 +0100 | <itai33[m]> | Uniaika: I'm not sure what the difference is. My specific usecase is that i want to manually run some of the tests in a library to understand them better, so i need to do `cabal repl` and then also load some of the helper functions defined in `test/Foo.hs` |
2021-01-02 14:47:14 +0100 | <Uniaika> | 'cabal repl' will load (compile+import in your repl) the modules of a Cabal project |
2021-01-02 14:47:27 +0100 | <Uniaika> | might even import them in the current scope |
2021-01-02 14:47:30 +0100 | <itai33[m]> | right but it doesn't load the test modules |
2021-01-02 14:47:52 +0100 | Alleria | (~textual@mskresolve-a.mskcc.org) |
2021-01-02 14:47:54 +0100 | <itai33[m]> | unless i do `cabal repl test` and then it doesn't load the regular modules |
2021-01-02 14:48:16 +0100 | Alleria | Guest84404 |
2021-01-02 14:48:26 +0100 | jmchael | (~jmchael@81.174.205.210) |
2021-01-02 14:49:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 260 seconds) |
2021-01-02 14:49:16 +0100 | ADG1089__ | (~aditya@223.235.213.117) (Quit: Konversation terminated!) |
2021-01-02 14:51:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 14:53:18 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2021-01-02 14:56:06 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 256 seconds) |
2021-01-02 14:58:16 +0100 | <Uniaika> | itai33[m]: Indeed, that's a problem. You can work around that by re-exporting the library modules from your test suite |
2021-01-02 14:58:49 +0100 | <tomsmeding> | itai33[m]: ghci can only load one package at the foreground at a time |
2021-01-02 14:59:14 +0100 | <tomsmeding> | you can't have modules from a library and a test suite, which are two different packages from ghc's perspective, in ghci at the same time |
2021-01-02 14:59:39 +0100 | <tomsmeding> | at least, if that is possible, I would very much like to know how :p |
2021-01-02 14:59:41 +0100 | sunrise | (~sunrise@51.194.80.91) |
2021-01-02 15:02:00 +0100 | <itai33[m]> | Uniaika: when you say re-export, do you mean copy paste them into e.g. `src/` and use the functions from there, or is there a better way to do that? |
2021-01-02 15:03:09 +0100 | <Uniaika> | itai33[m]: have your testsuite depend on your library (which you normally do, if you're testing the lib :P), and then in your testsuite's Main module |
2021-01-02 15:03:13 +0100 | <Uniaika> | import MyLib |
2021-01-02 15:03:21 +0100 | <Uniaika> | and have 'module MyLib' in its export list |
2021-01-02 15:04:17 +0100 | <itai33[m]> | i see |
2021-01-02 15:04:45 +0100 | <itai33[m]> | thanks Uniaika and tomsmeding |
2021-01-02 15:05:00 +0100 | <Uniaika> | thank me when you've fixed your problem :P |
2021-01-02 15:08:36 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-01-02 15:11:04 +0100 | <sm[m]> | g'day all, happy 2021 |
2021-01-02 15:11:26 +0100 | <sm[m]> | has anyone got a quick trick for seeing changes to exports in git commit(s) ? |
2021-01-02 15:12:27 +0100 | <Uniaika> | sm[m]: curse you, I'm trying you regexes as we speak :( |
2021-01-02 15:12:32 +0100 | <Uniaika> | *trying out |
2021-01-02 15:12:34 +0100 | <Uniaika> | grr |
2021-01-02 15:12:36 +0100 | <Uniaika> | bad fingers |
2021-01-02 15:15:43 +0100 | <sm[m]> | thanks Uniaika . git diff master..thebranch | grep :: shows promise |
2021-01-02 15:16:15 +0100 | <sm[m]> | to see api changes, which is really what I mean |
2021-01-02 15:16:44 +0100 | <sm[m]> | I mean, I'd like to be able to see both of these things |
2021-01-02 15:18:07 +0100 | <sm[m]> | hmm, but exports changes would be better. I mostly declare exports and there are lots of changes to internal helpers which I don't care about |
2021-01-02 15:20:39 +0100 | <tomsmeding> | sm[m]: git diff -U10000 | sed '/LANGUAGE/d; /^diff/,/where$/!d' |
2021-01-02 15:20:59 +0100 | <tomsmeding> | hacks abound though |
2021-01-02 15:21:22 +0100 | <tomsmeding> | also assumes that your export list doesn't contain a comment including the word 'where' :D |
2021-01-02 15:22:22 +0100 | <tomsmeding> | also happy 2021! |
2021-01-02 15:22:56 +0100 | <Uniaika> | happy 2021 tomsmeding and sm[m] :) |
2021-01-02 15:24:05 +0100 | jrqc | (~rofl@96.78.87.197) (Read error: Connection reset by peer) |
2021-01-02 15:24:31 +0100 | <juri_> | bah, humbug. :) |
2021-01-02 15:25:47 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) |
2021-01-02 15:26:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-01-02 15:27:55 +0100 | <halbGefressen> | Let's say I have two finite lists xs :: [a] and ys :: [b], each with distinct elements. How would I create a list of all surjective functions a -> b from those two lists? |
2021-01-02 15:28:19 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
2021-01-02 15:29:42 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-01-02 15:33:39 +0100 | <sm[m]> | oh.. and of course, changes in exports list doesn't show changes of type signature. I need both additiona/removals/renames, and type changes |
2021-01-02 15:33:51 +0100 | <sm[m]> | I guess this isn't going to be a quick text job |
2021-01-02 15:34:08 +0100 | frankdmartinez | (~frankdmar@138.199.52.27) |
2021-01-02 15:36:19 +0100 | <__monty__> | halbGefressen: Something like zip the shorter list with all the combinations of 1 to minLength of the other list? |
2021-01-02 15:38:26 +0100 | <halbGefressen> | sounds good, I'll try that |
2021-01-02 15:38:32 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-02 15:39:04 +0100 | <__monty__> | halbGefressen: I do wonder what you need those for though? |
2021-01-02 15:39:47 +0100 | <halbGefressen> | It's a uni homework, bonus exercise. I already have the coin for that sheet, but I need my sweet little 100% flex |
2021-01-02 15:39:58 +0100 | <halbGefressen> | and also I want to know the solution haha |
2021-01-02 15:40:18 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-02 15:40:32 +0100 | <__monty__> | Ah, darn. Should've realised this sounds like homework. |
2021-01-02 15:42:55 +0100 | geekosaur | (ac3a8b8b@172.58.139.139) (Remote host closed the connection) |
2021-01-02 15:43:32 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) |
2021-01-02 15:45:08 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 15:46:17 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) (Quit: halbGefressen) |
2021-01-02 15:47:29 +0100 | ezzieyguywuf | (~Unknown@unaffiliated/ezzieyguywuf) |
2021-01-02 15:49:14 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Ping timeout: 264 seconds) |
2021-01-02 15:49:55 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 268 seconds) |
2021-01-02 15:51:52 +0100 | sparsity | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
2021-01-02 15:52:04 +0100 | <__monty__> | Ah, I made a mistake anyway because surjection isn't symmetric. |
2021-01-02 15:54:05 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 15:54:07 +0100 | <sm[m]> | https://github.com/blitzcode/hackage-diff seems to be what I want, if I can prepare the inputs it wants |
2021-01-02 15:54:59 +0100 | <sm[m]> | doesn't build; drat |
2021-01-02 16:02:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 16:07:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-02 16:07:46 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-02 16:10:44 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2021-01-02 16:13:01 +0100 | jitwit | (~user@bras-base-mtrlpq4381w-grc-34-174-93-238-71.dsl.bell.ca) |
2021-01-02 16:15:11 +0100 | <ezzieyguywuf> | sm[m]: last commit was years ago, you can probably tweak some version bounds to make it work |
2021-01-02 16:15:42 +0100 | <sm[m]> | thanks ezzieyguywuf, I pinged the issue tracker |
2021-01-02 16:16:39 +0100 | <ezzieyguywuf> | good luck! |
2021-01-02 16:17:11 +0100 | <ezzieyguywuf> | with stack too ypu may be able to just use a super old snapshot or whatever |
2021-01-02 16:17:27 +0100 | <sm[m]> | you're right |
2021-01-02 16:17:45 +0100 | <ezzieyguywuf> | i thought it was kind of the point of stack, "if builds now, it ahould always build" |
2021-01-02 16:18:20 +0100 | <__monty__> | If it has proper bounds you can always build it with cabal too. |
2021-01-02 16:18:37 +0100 | <sm[m]> | it is. But you have to be motivated enough (to reinstall an old ghc version and rebuild the world) |
2021-01-02 16:18:53 +0100 | <sm[m]> | and this package might even build with cabal right now, I haven't tried |
2021-01-02 16:19:00 +0100 | <__monty__> | Stack only hides the "getting an old ghc version" part. |
2021-01-02 16:19:03 +0100 | <sm[m]> | I simply reported the bug and moved on |
2021-01-02 16:20:11 +0100 | <sm[m]> | getting an old ghc version is still costly even with stack (takes ages and 2G of disk) |
2021-01-02 16:20:46 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) |
2021-01-02 16:21:05 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 16:21:15 +0100 | <sm[m]> | with luck https://github.com/blitzcode/hackage-diff/issues/13 will reawaken |
2021-01-02 16:21:45 +0100 | <__monty__> | Yes. All I said was cabal builds old packages just as stack does, stack doesn't add any longevity magic. |
2021-01-02 16:21:52 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2021-01-02 16:22:56 +0100 | fendor_ | (~fendor@178.115.129.22.wireless.dyn.drei.com) |
2021-01-02 16:23:05 +0100 | <sm[m]> | not usuall true __monty__. If you set up cabal to mimic stack (using a freeze file or whatever), then perhaps |
2021-01-02 16:23:38 +0100 | <__monty__> | Like I said, if the bounds are setup properyl. |
2021-01-02 16:23:41 +0100 | <__monty__> | *properly |
2021-01-02 16:23:45 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-01-02 16:24:21 +0100 | <sm[m]> | ie, the main "magic" stack adds is a stable install plan that's fixed for all time. Normal cabal bounds only set a range of versions, and cabal-install is free to pick any dep versions within those ranges at any time |
2021-01-02 16:25:27 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Ping timeout: 260 seconds) |
2021-01-02 16:25:32 +0100 | fendor | (~fendor@77.119.129.8.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
2021-01-02 16:25:45 +0100 | <__monty__> | I'm not saying it doesn't. All I meant is that it's not as if old versions are removed from hackage so with proper bounds old things build fine. |
2021-01-02 16:25:50 +0100 | sacereda | (~user@124.red-88-16-15.dynamicip.rima-tde.net) |
2021-01-02 16:26:20 +0100 | pera | (~pera@unaffiliated/pera) |
2021-01-02 16:26:52 +0100 | <yushyin> | afaik you can pin the index state with cabal |
2021-01-02 16:27:04 +0100 | <sm[m]> | __monty__: when you say "proper bounds", if you mean "lock down the ghc version and every package version", then I agree with you |
2021-01-02 16:27:30 +0100 | <yushyin> | and so have the same install-plan every time |
2021-01-02 16:27:33 +0100 | <sm[m]> | (we'll ignore externals like C library versions) |
2021-01-02 16:27:51 +0100 | <__monty__> | I don't mean lock down to single versions like stackage does, no. |
2021-01-02 16:28:03 +0100 | <sm[m]> | then you don't have a reliable build plan |
2021-01-02 16:28:19 +0100 | <sm[m]> | it'll work almost all the time.. until it doesn't |
2021-01-02 16:28:24 +0100 | <__monty__> | Well, you do as soon as you time rolls past your upper bounds. |
2021-01-02 16:28:32 +0100 | <__monty__> | s/you// |
2021-01-02 16:28:34 +0100 | <yushyin> | https://cabal.readthedocs.io/en/3.4/cabal-project.html#cfg-field-index-state |
2021-01-02 16:29:33 +0100 | <__monty__> | Proper bounds means any combination cabal selects that satisfies the constraints works. Good approximations thereof are acceptable. |
2021-01-02 16:29:44 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-01-02 16:35:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 16:35:35 +0100 | sparsity | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
2021-01-02 16:37:12 +0100 | zangi | (~azure@103.154.230.250) (Ping timeout: 256 seconds) |
2021-01-02 16:37:40 +0100 | zangi | (~azure@36.79.200.71) |
2021-01-02 16:37:51 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-tmfywdizfrmonpis) |
2021-01-02 16:39:34 +0100 | pera | (~pera@unaffiliated/pera) (Quit: leaving) |
2021-01-02 16:41:28 +0100 | sacereda | (~user@124.red-88-16-15.dynamicip.rima-tde.net) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-01-02 16:42:10 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:d481:af4c:bf9f:f9c) |
2021-01-02 16:43:23 +0100 | frankdmartinez | (~frankdmar@138.199.52.27) (Quit: frankdmartinez) |
2021-01-02 16:45:52 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 16:46:38 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 16:48:32 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2021-01-02 16:50:06 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-01-02 16:50:17 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) |
2021-01-02 16:51:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 264 seconds) |
2021-01-02 16:51:18 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Ping timeout: 258 seconds) |
2021-01-02 16:51:52 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) |
2021-01-02 16:58:54 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2021-01-02 16:59:03 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) |
2021-01-02 16:59:54 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 17:00:33 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) (Client Quit) |
2021-01-02 17:00:43 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-01-02 17:00:48 +0100 | unlink2 | (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-01-02 17:02:52 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 17:02:55 +0100 | unlink2 | (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) |
2021-01-02 17:06:19 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:8c40::1d01) (Ping timeout: 272 seconds) |
2021-01-02 17:06:42 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 17:08:43 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) |
2021-01-02 17:09:08 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
2021-01-02 17:09:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 17:11:01 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
2021-01-02 17:13:04 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) (Client Quit) |
2021-01-02 17:15:56 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:cde2:1e79:768c:58ea) |
2021-01-02 17:15:56 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-02 17:18:26 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:8c40::4b02) |
2021-01-02 17:18:54 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-02 17:23:31 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Ping timeout: 256 seconds) |
2021-01-02 17:27:04 +0100 | TMA | (tma@twin.jikos.cz) (Ping timeout: 256 seconds) |
2021-01-02 17:28:25 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 264 seconds) |
2021-01-02 17:28:53 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 17:33:25 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 246 seconds) |
2021-01-02 17:33:45 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-02 17:38:47 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-02 17:39:18 +0100 | <shinobi> | Shiranai, monochrom: Thanks for the link to the fp course material. Exactly what I need! |
2021-01-02 17:40:25 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-01-02 17:40:34 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:143:c475:d20e:3db4:7e5b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 17:40:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 17:41:11 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 17:41:34 +0100 | <ij> | Can I have mutable sets within pure code via ST? I'm looking to traverse and store visited elements in a set |
2021-01-02 17:42:30 +0100 | <ij> | Sorry, STM |
2021-01-02 17:43:49 +0100 | <shinobi> | What is the difference between: Num a => a -> a and Num (a -> a) ? |
2021-01-02 17:45:05 +0100 | <tomsmeding> | shinobi: 'Num a => a -> a' is a type that denotes a function from type 'a' to type 'a', with the constraint that 'a' must be numeric |
2021-01-02 17:45:19 +0100 | <ij> | shinobi, Num (a -> a) is a probably a type constraint which requires a -> a to be a numeric value, which it isn't, so that probably indicates a programming error |
2021-01-02 17:45:23 +0100 | <tomsmeding> | 'Num (a -> a)' is a constraint, not a type, specifying that the type 'a -> a' must be numeric |
2021-01-02 17:45:33 +0100 | FreeBirdLjj | (~freebirdl@101.87.175.26) |
2021-01-02 17:45:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-02 17:45:42 +0100 | <tomsmeding> | (unless you're talking about a different Num than is defined in the Prelude) |
2021-01-02 17:46:05 +0100 | <[exa]> | ij: there is no notion of "action happens after another action" in pure code, you need to pull the STM through to get the action ordering |
2021-01-02 17:46:22 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
2021-01-02 17:47:10 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 17:47:43 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Remote host closed the connection) |
2021-01-02 17:47:58 +0100 | <ij> | ah, ok. you can only run it through atomically, which returns an IO |
2021-01-02 17:48:01 +0100 | <[exa]> | shinobi: a constructive example, function (+1) is of type `Num a => a -> a` because it works on all numeric a's, for example it can be Int->Int. The second would require that all 1param functions can act as numbers, e.g. you'd be able to do `f+f` if `f` was of type `Num (a->a) => a->a` |
2021-01-02 17:48:06 +0100 | geekosaur | (ac3a8f5d@172.58.143.93) |
2021-01-02 17:48:14 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 17:48:34 +0100 | <[exa]> | ij: runST ? |
2021-01-02 17:49:05 +0100 | hekkaidekapus{ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-02 17:49:16 +0100 | <bartholin> | how do I save png pictures? (preferably in sdl) |
2021-01-02 17:50:02 +0100 | FreeBirdLjj | (~freebirdl@101.87.175.26) (Ping timeout: 260 seconds) |
2021-01-02 17:51:02 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-01-02 17:51:03 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2021-01-02 17:51:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 264 seconds) |
2021-01-02 17:51:52 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Remote host closed the connection) |
2021-01-02 17:52:04 +0100 | <[exa]> | bartholin: very likely the most painless way will be using JuicyPixels |
2021-01-02 17:52:06 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 17:52:11 +0100 | <bitmapper> | hmm |
2021-01-02 17:53:28 +0100 | Guest84404 | (~textual@mskresolve-a.mskcc.org) (Ping timeout: 256 seconds) |
2021-01-02 17:53:29 +0100 | <[exa]> | (well at least I can't find any SDL_image wrap for haskell... perhaps there may be other ways) |
2021-01-02 17:54:15 +0100 | <shinobi> | [exa] So does Num (a->a) mean (a -> Num)? |
2021-01-02 17:54:37 +0100 | <shinobi> | :t (+3) $ (*100) |
2021-01-02 17:54:38 +0100 | <lambdabot> | (Num a, Num (a -> a)) => a -> a |
2021-01-02 17:54:51 +0100 | <[exa]> | shinobi: no, it means that (a->a) is a thing that behaves like numbers, i.e. has + and * |
2021-01-02 17:55:04 +0100 | <geekosaur> | Num (a -> a) means you've somehow claimed that functions can be numbers |
2021-01-02 17:55:05 +0100 | <[exa]> | shinobi: your example is, after some rewriting: 3+(*100) |
2021-01-02 17:55:48 +0100 | <shinobi> | Yes, I'm just confused by the type |
2021-01-02 17:55:51 +0100 | <[exa]> | shinobi: addition of (*100) to 3 triggers that the function needs to have the "numeric interface" |
2021-01-02 17:56:03 +0100 | <shinobi> | I would have thought it to be Num a->a |
2021-01-02 17:56:16 +0100 | <[exa]> | shinobi: anyway perhaps you meant `(+3) . (*100)` ? |
2021-01-02 17:56:47 +0100 | <shinobi> | [exa] Yes, I thougth that applying a function to another function would compose them |
2021-01-02 17:57:04 +0100 | <[exa]> | one takeaway is that you'll usually get a constraint like `Num (x->y)` when you accidentally try to add functions not numbers :] |
2021-01-02 17:57:04 +0100 | <shinobi> | But + expects a num |
2021-01-02 17:57:30 +0100 | <dminuoso> | What is „num“ |
2021-01-02 17:58:22 +0100 | <dminuoso> | % :t 1 |
2021-01-02 17:58:22 +0100 | <yahb> | dminuoso: Num p => p |
2021-01-02 17:58:30 +0100 | <shinobi> | I think I see it now... The +3 exepcts a number and thus he passed fuction must have the number interface. |
2021-01-02 17:58:48 +0100 | <dminuoso> | shinobi: Roughly the intuition is this: |
2021-01-02 17:58:53 +0100 | <dminuoso> | % :t (+) |
2021-01-02 17:58:53 +0100 | <yahb> | dminuoso: Num a => a -> a -> a |
2021-01-02 17:59:33 +0100 | <shinobi> | So you can't compose by shoving a function as the input to a function even if the return type of the first matches the input type of the second. |
2021-01-02 17:59:40 +0100 | <dminuoso> | For a polymorphic value, like (+), the caller/user/consumer has the obligation to pick a type for every type variable. You can choose anything you want, really. |
2021-01-02 17:59:55 +0100 | <dminuoso> | Under the constraint that your choice has an instance Num |
2021-01-02 18:00:43 +0100 | <dminuoso> | Choosing (Int -> String) for a above is fine by itself, it just causes GHC to check whether an instance Num exists for that choice. |
2021-01-02 18:00:56 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 240 seconds) |
2021-01-02 18:01:20 +0100 | <[exa]> | shinobi: the "+ expects a num" is what a less flexible language would tell you as an error; in Haskell it just expects that functions can be in Num (which will likely fail later...or you just supply the instance for numeric-like functions) |
2021-01-02 18:01:37 +0100 | Goldio | (uid478328@gateway/web/irccloud.com/x-qxzjoosyubzfyxzm) (Quit: Connection closed for inactivity) |
2021-01-02 18:01:42 +0100 | Seran1 | (~Seran@178.162.204.214) (Remote host closed the connection) |
2021-01-02 18:01:46 +0100 | <dminuoso> | Note, the type class/polymorphism mechanism isn’t specialized to numbers. It’s a generic overloading feature. |
2021-01-02 18:02:38 +0100 | solonarv | (~solonarv@astrasbourg-653-1-252-231.w92-161.abo.wanadoo.fr) |
2021-01-02 18:02:42 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2021-01-02 18:02:53 +0100 | <[exa]> | _how_ precisely would you like to compose the functions though? Perhaps you want `(+) <$> (+3) <*> (*100)` ? :] |
2021-01-02 18:03:02 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-01-02 18:04:51 +0100 | <shinobi> | I'm just learning about applicatives and was trying to see if I understand them. The example you give with addition makes sense to me. It was when I changed the + to . that I went sideways |
2021-01-02 18:05:05 +0100 | <shinobi> | [exa] ^ |
2021-01-02 18:06:59 +0100 | <shinobi> | The applicative is (->) r and thought I should be able to compose those functions with (.) <$> (+3) <*> (*100) |
2021-01-02 18:07:03 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2021-01-02 18:08:31 +0100 | <[exa]> | shinobi: that doesn't make much semantic sense though |
2021-01-02 18:08:44 +0100 | <shinobi> | that's what I'm trying to work through |
2021-01-02 18:08:48 +0100 | <[exa]> | what result would you expect if the composed function receives 1 ? |
2021-01-02 18:10:00 +0100 | <shinobi> | Either 400 or 103 depending on order of operations. (Which is what led to this whole rabbit hole) |
2021-01-02 18:10:10 +0100 | <[exa]> | oh okay, you just want a normal . |
2021-01-02 18:10:40 +0100 | <[exa]> | > let f = (+3) . (*100) in f 1 |
2021-01-02 18:10:42 +0100 | <lambdabot> | 103 |
2021-01-02 18:11:03 +0100 | <shinobi> | I'm trying to figure out how Haskell interprets <$> and <*> on (->) r |
2021-01-02 18:11:22 +0100 | <dminuoso> | Look at their respective implementations in the type classes Functor and Applicative |
2021-01-02 18:11:31 +0100 | <dminuoso> | Or better yet, try to derive them yourself |
2021-01-02 18:12:00 +0100 | <[exa]> | the ((->) r) instance is called a reader, basically imagine that everything has an extra same global "environment" parameter which gets supplied last. |
2021-01-02 18:12:02 +0100 | <b4er> | (<$>) is (.) and (<*>) is S |
2021-01-02 18:12:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 18:12:26 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) |
2021-01-02 18:13:08 +0100 | <b4er> | Wait, is it a coincidence: (<*>) is S and pure is K |
2021-01-02 18:13:21 +0100 | <[exa]> | b4er: hardly a coincidence |
2021-01-02 18:13:25 +0100 | <b4er> | So Applicative has S and K which are a complete basis |
2021-01-02 18:13:46 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-01-02 18:14:10 +0100 | <[exa]> | gives a whole new meaning to applicative-style programming right? :D |
2021-01-02 18:14:42 +0100 | <shinobi> | like a vector space basis? |
2021-01-02 18:15:41 +0100 | <b4er> | No like a basis for the λ-calculus |
2021-01-02 18:16:25 +0100 | <ski> | `I' is `ask' |
2021-01-02 18:17:09 +0100 | halbGefressen | (~halbGefre@ipbcc14379.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2021-01-02 18:17:23 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-02 18:17:29 +0100 | madjest47 | (~Android@89-200-3-15.mobile.kpn.net) |
2021-01-02 18:17:42 +0100 | <ski> | and `W' is `join'. what's `(=<<)' ? |
2021-01-02 18:18:11 +0100 | ski | usually calls it "environment", rather than "input"/"reader" |
2021-01-02 18:19:43 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2021-01-02 18:19:54 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 272 seconds) |
2021-01-02 18:19:59 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 18:20:53 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit) |
2021-01-02 18:22:05 +0100 | r4d1x | (~r4d1x@185.163.110.125) |
2021-01-02 18:23:18 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:5d3c:3ea2:9142:e850) |
2021-01-02 18:25:13 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:cde2:1e79:768c:58ea) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 18:27:36 +0100 | madjest47 | (~Android@89-200-3-15.mobile.kpn.net) (Read error: Connection reset by peer) |
2021-01-02 18:29:38 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-02 18:30:07 +0100 | <ij> | I've always wanted to understand what's ski calculus about |
2021-01-02 18:30:16 +0100 | mikail_ | (~mikail@2a02:c7f:bced:2900:73ae:8683:c80c:23b5) |
2021-01-02 18:30:24 +0100 | <tomsmeding> | so if S and K are <*> and pure from ((->) r), then what happens if you interpret a program in the SKI calculus with a different Applicative instance |
2021-01-02 18:31:01 +0100 | <tomsmeding> | ij: point-free programming to the max |
2021-01-02 18:31:46 +0100 | <tomsmeding> | hence lambdabot's tendency to use ((->) r) for point-free tricks :p |
2021-01-02 18:32:09 +0100 | <ij> | should I just read the wikipedia page about it and I'll figure it out? |
2021-01-02 18:32:44 +0100 | <tomsmeding> | I think so, yes |
2021-01-02 18:33:08 +0100 | mikail_ | (~mikail@2a02:c7f:bced:2900:73ae:8683:c80c:23b5) (Client Quit) |
2021-01-02 18:33:41 +0100 | <ski> | not a calculus |
2021-01-02 18:33:47 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:5d3c:3ea2:9142:e850) (Quit: Leaving.) |
2021-01-02 18:33:48 +0100 | nbloomf | (~nbloomf@76.217.43.73) |
2021-01-02 18:33:52 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Remote host closed the connection) |
2021-01-02 18:34:04 +0100 | <ij> | what qualifies as a calculus? |
2021-01-02 18:34:09 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 18:34:09 +0100 | <tomsmeding> | wikipedia calls it a calculus hence it is a calculus |
2021-01-02 18:34:16 +0100 | <ski> | it should have bound variables, imho |
2021-01-02 18:34:21 +0100 | <tomsmeding> | notwithstanding the fact that someone in #haskell is also named that |
2021-01-02 18:34:42 +0100 | <tomsmeding> | ski: combinator calculus? |
2021-01-02 18:34:59 +0100 | <ij> | S looks more like distribute not substitute |
2021-01-02 18:35:01 +0100 | <ski> | (like the integral sign binding the integration variable. or the Leibniz derivative notation rebinding the variable wrt one is differentiating) |
2021-01-02 18:35:03 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-02 18:35:23 +0100 | <ski> | ij,tomsmeding : <http://lambda-the-ultimate.org/node/533#comment-7712> |
2021-01-02 18:35:43 +0100 | <ski> | ij : "substitute into an application" |
2021-01-02 18:35:55 +0100 | <ij> | alright, suppose so |
2021-01-02 18:36:38 +0100 | <ski> | ij : you might have fun reading "To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction" by David C. Keenan in 1996-08-27 - 2014-04-12 at <http://dkeenan.com/Lambda/> ? |
2021-01-02 18:36:58 +0100 | <tomsmeding> | interesting |
2021-01-02 18:37:05 +0100 | <nshepperd> | a calculus is anything which involves moving stones about |
2021-01-02 18:37:16 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 18:38:05 +0100 | <MarcelineVQ> | is an algebra anything that involved moving pretend stones about? |
2021-01-02 18:39:57 +0100 | <ij> | ski, horrible formatting, but the content is interesting |
2021-01-02 18:40:03 +0100 | <nshepperd> | xD |
2021-01-02 18:40:03 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 18:40:36 +0100 | <ij> | (the formatting fits expectations, however) |
2021-01-02 18:40:38 +0100 | <nshepperd> | calculus : stones :: algebra : pictures of stones |
2021-01-02 18:42:56 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Ping timeout: 240 seconds) |
2021-01-02 18:44:40 +0100 | <ski> | ij : that's one of the pages from which i learned lambda-calculus and SKI combinators from |
2021-01-02 18:45:10 +0100 | <ij> | nice |
2021-01-02 18:46:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-02 18:47:53 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 18:48:38 +0100 | <ph88_> | is there some debug function that i can drop into pure code that just stops execution after its been hit x amount of times ? |
2021-01-02 18:49:42 +0100 | <xerox_> | ph88_: the closest I can think of is adding an explicit counter and trace/traceShow/traceShowId it and ^C |
2021-01-02 18:51:46 +0100 | <MarcelineVQ> | or making your own trace and using an ioref to count+die |
2021-01-02 18:51:54 +0100 | <b4er> | :t \f -> (f (<*>)) pure |
2021-01-02 18:51:55 +0100 | <lambdabot> | (Applicative f1, Applicative f2) => ((f1 (a1 -> b) -> f1 a1 -> f1 b) -> (a2 -> f2 a2) -> t) -> t |
2021-01-02 18:52:33 +0100 | rowbee | (~augh@theguntretort.com) (Quit: ZNC - https://znc.in) |
2021-01-02 18:52:44 +0100 | <b4er> | :t let iota f = f (<*>) pure in iota iota |
2021-01-02 18:52:46 +0100 | <lambdabot> | error: |
2021-01-02 18:52:46 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: |
2021-01-02 18:52:46 +0100 | <lambdabot> | f0 ~ (->) (a -> f0 a) |
2021-01-02 18:52:46 +0100 | rowbee | (~augh@theguntretort.com) |
2021-01-02 18:52:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Ping timeout: 264 seconds) |
2021-01-02 18:52:50 +0100 | <b4er> | :( |
2021-01-02 18:53:26 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:ad41:f5e6:8b3a:bfc3) |
2021-01-02 18:54:45 +0100 | p-core | (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) (Ping timeout: 256 seconds) |
2021-01-02 18:54:45 +0100 | <tomsmeding> | MarcelineVQ: have to take care that it doesn't get lifted out, so you'll have to give it a different argument each time, and prevent inlining (where "different" means "ghc can't prove it's the same") |
2021-01-02 18:55:12 +0100 | <tomsmeding> | oh |
2021-01-02 18:55:20 +0100 | <tomsmeding> | let it be semantically id |
2021-01-02 18:55:23 +0100 | <tomsmeding> | thanks brain, that does work |
2021-01-02 18:55:29 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 18:56:17 +0100 | <b4er> | Yeah, I was trying to build "Applicative" from a single combinator like iota can be used to express S and K |
2021-01-02 18:56:20 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 18:56:54 +0100 | <tomsmeding> | will only work for the ((->) r) type, not for most (any?) other Applicative |
2021-01-02 18:57:17 +0100 | <tomsmeding> | my hopeful suggestion 27 minutes ago made no sense I fear |
2021-01-02 18:57:54 +0100 | carthia | (~carthia@gateway/tor-sasl/carthia) |
2021-01-02 18:58:49 +0100 | <b4er> | Wait, how do you get it to work for ((->)r) |
2021-01-02 18:59:01 +0100 | Melanie | (~Melanie@192-0-134-138.cpe.teksavvy.com) |
2021-01-02 18:59:18 +0100 | <b4er> | :t let id = (\f -> f (<*>) const) (\f -> f (<*>) const) in id |
2021-01-02 18:59:20 +0100 | <lambdabot> | error: |
2021-01-02 18:59:20 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: |
2021-01-02 18:59:20 +0100 | <lambdabot> | b0 ~ a1 -> b0 -> a1 |
2021-01-02 19:00:56 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-01-02 19:02:23 +0100 | Alleria | (~textual@2603-7000-3040-0000-5d20-1671-5668-2bd6.res6.spectrum.com) |
2021-01-02 19:02:40 +0100 | <ph88_> | MarcelineVQ, how can i check if that IOref already exists for when i call the function again ? |
2021-01-02 19:02:47 +0100 | Alleria | Guest99171 |
2021-01-02 19:03:51 +0100 | <dsal> | ph88_: What do you mean? You have the IOref or not. There's no unknown state. |
2021-01-02 19:04:06 +0100 | <tomsmeding> | b4er: okay I think that doesn't work due to lack of impredicativity |
2021-01-02 19:04:58 +0100 | <ph88_> | dsal, i wanted a function that stops executions after it has been hit x amount of times. MarcelineVQ suggested using IOref .. so i can create a new IOref on the first time this function gets called, but how do i know its the second time ? |
2021-01-02 19:05:26 +0100 | <dsal> | ph88_: you have to hold the reference in some way. |
2021-01-02 19:06:08 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-02 19:06:13 +0100 | <c_wraith> | Is there a term for a relationship between a grammar and a data type where the data type can be constructed in ways the parser can't ever produce? |
2021-01-02 19:06:33 +0100 | <b4er> | tomsmeding, possible. It'd not be a very useful thing anyway, SK(I) is only fun in the untyped setting |
2021-01-02 19:06:51 +0100 | <b4er> | Or iota and friends for that matter |
2021-01-02 19:07:22 +0100 | <hpc> | c_wraith: the type has invalid states? |
2021-01-02 19:07:37 +0100 | <hpc> | that's the closest terminoligy i know of |
2021-01-02 19:07:58 +0100 | <c_wraith> | hpc: not invalid - they have perfectly adequate meanings. Just not represented in the surface syntax. |
2021-01-02 19:08:56 +0100 | oats | (~hurr@durr/im/a/sheep) (Quit: until later, my friends) |
2021-01-02 19:09:20 +0100 | oats | (~hurr@durr/im/a/sheep) |
2021-01-02 19:09:27 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 19:10:07 +0100 | <hpc> | unrepresented? |
2021-01-02 19:10:33 +0100 | <hpc> | if you consider what's parsed to be a representation of the data |
2021-01-02 19:10:36 +0100 | olligobber | (~olligobbe@unaffiliated/olligobber) (Ping timeout: 240 seconds) |
2021-01-02 19:11:04 +0100 | <MarcelineVQ> | ph88_: https://www.reddit.com/r/haskell/comments/ddse92/using_unsafeperformio_to_count_operations/ |
2021-01-02 19:13:12 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2021-01-02 19:13:14 +0100 | <MarcelineVQ> | the 'counter' there is a common pattern of defining a top level IORef that's accessible at any time in the program, this can often comes up when people want unique id's and the like without needing to thread State and such |
2021-01-02 19:13:54 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-01-02 19:16:01 +0100 | <ph88_> | oki thank you |
2021-01-02 19:17:22 +0100 | <MarcelineVQ> | Allthough I'm not entirely certain it's safe for that exact purpose without knowing exactly what optomizations are happening/prevented, ghc is still mysterious to me :X A the very least you'll want {-# NOINLINE counter #-} and {-# NOINLINE mytrace #-} |
2021-01-02 19:18:00 +0100 | <MarcelineVQ> | Where mytrace is the trace function you're defining |
2021-01-02 19:18:27 +0100 | <MarcelineVQ> | it'd be a good idea to go over these once to see how they've set it up https://hackage.haskell.org/package/base-4.12.0.0/docs/src/Debug.Trace.html |
2021-01-02 19:18:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 19:19:26 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-02 19:19:42 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-02 19:19:52 +0100 | <ph88_> | curious how that is not a baked in functionality |
2021-01-02 19:20:42 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 19:21:28 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
2021-01-02 19:21:40 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 19:22:56 +0100 | <sm[m]> | Using unsafeperformio there means that code will never be thread-safe, right ? |
2021-01-02 19:23:31 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-02 19:23:34 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 19:23:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-02 19:23:44 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-01-02 19:24:59 +0100 | <exarkun> | Failing to use Crypto.Hash.Types from cryptonite in my stack project even though cryptonite is in my dependencies list ... "it is a hidden module in the package ‘cryptonite-0.26’" |
2021-01-02 19:25:04 +0100 | <exarkun> | What's up with "hidden modules"? |
2021-01-02 19:25:21 +0100 | <sm[m]> | I have a similar need today - give up on a search after N recursions (across all branches) |
2021-01-02 19:25:45 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 268 seconds) |
2021-01-02 19:26:12 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) (Remote host closed the connection) |
2021-01-02 19:26:15 +0100 | <sm[m]> | exarkun: you probably need to add it to package.yaml or the .cabal file somewhere |
2021-01-02 19:26:51 +0100 | <exarkun> | It is in my package.yaml dependency list already. It is not a "hidden package" but a "hidden module". |
2021-01-02 19:27:17 +0100 | <exarkun> | I can't find much online about this -- everyone seems freely interchanges "package" and "module" but it seems stack or ghc thinks they're different kinds of things |
2021-01-02 19:27:18 +0100 | <sm[m]> | Oh, sorry |
2021-01-02 19:27:37 +0100 | <sm[m]> | They are, module is a file essentially |
2021-01-02 19:28:49 +0100 | <exarkun> | So ... a package doesn't have to make all of its modules public? Or something? |
2021-01-02 19:29:08 +0100 | <sm[m]> | exarkun: correct. you can see on hackage what's public |
2021-01-02 19:29:10 +0100 | <exarkun> | is this an indirect way of cryptonite saying "Crypto.Hash.Types is not for you" |
2021-01-02 19:29:17 +0100 | <exarkun> | :/ |
2021-01-02 19:29:21 +0100 | <sm[m]> | Yes |
2021-01-02 19:29:36 +0100 | <exarkun> | So I can't implement my own hash algorithm that fits into cryptonite, because HashAlgorithm's internals aren't public |
2021-01-02 19:29:41 +0100 | <exarkun> | now I'm sad |
2021-01-02 19:31:36 +0100 | <exarkun> | Hm. Or cryptonite exposes it somewhere else public, like Crypto.Hash.IO, and I shouldn't have followed the source link and then tried to import it from the module where the source code lives |
2021-01-02 19:31:49 +0100 | renzhi | (~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 260 seconds) |
2021-01-02 19:31:56 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:b1ad:809d:33ad:d747) |
2021-01-02 19:33:39 +0100 | madjestic | (~Android@86-88-72-244.fixed.kpn.net) |
2021-01-02 19:35:13 +0100 | tabemann_ | (~tabemann@2600:1700:7990:24e0:3ba2:fef5:1410:7dbb) (Remote host closed the connection) |
2021-01-02 19:35:27 +0100 | tabemann_ | (~tabemann@2600:1700:7990:24e0:10cb:8914:2144:7a48) |
2021-01-02 19:36:26 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 19:37:39 +0100 | <tomsmeding> | exarkun: Crypto.Hash.Algorithms? |
2021-01-02 19:41:20 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Read error: Connection reset by peer) |
2021-01-02 19:41:23 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2021-01-02 19:41:53 +0100 | superstar64 | (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
2021-01-02 19:41:59 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2021-01-02 19:42:11 +0100 | <superstar64> | is there a version of `Void` that takes a parameter? |
2021-01-02 19:42:37 +0100 | thebnq | (~bnq@herrokitty.com) (Ping timeout: 260 seconds) |
2021-01-02 19:43:29 +0100 | <superstar64> | ahh wait, `Const Void` works |
2021-01-02 19:44:12 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 19:44:40 +0100 | HenryCH | (~henry@5.81.254.84.ftth.as8758.net) |
2021-01-02 19:45:27 +0100 | <exarkun> | tomsmeding: does not export the whole class, as far as I can tell |
2021-01-02 19:46:28 +0100 | <tomsmeding> | hah, you're right |
2021-01-02 19:47:23 +0100 | <Melanie> | superstar64: also, Void1 from generic-lens-core |
2021-01-02 19:47:32 +0100 | elliott_ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-02 19:47:57 +0100 | <Melanie> | but Const Void is probably just as well :D |
2021-01-02 19:50:29 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:ad41:f5e6:8b3a:bfc3) (Quit: Leaving.) |
2021-01-02 19:50:56 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
2021-01-02 19:51:53 +0100 | justsomeguy | (~justsomeg@107-144-102-166.biz.spectrum.com) |
2021-01-02 19:51:53 +0100 | justsomeguy | (~justsomeg@107-144-102-166.biz.spectrum.com) (Changing host) |
2021-01-02 19:51:53 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-01-02 19:52:06 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-01-02 19:52:33 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 256 seconds) |
2021-01-02 19:53:16 +0100 | thebnq | (~bnq@herrokitty.com) |
2021-01-02 19:54:19 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-01-02 19:54:56 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-01-02 19:55:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 19:55:12 +0100 | <justsomeguy> | I'm writing a stack project that uses FlexibleInstances in one of the files, but if I include a language pragma directly in the file and do “stack build” I get an error. I only need this pragma for the one module. Do I need to specify this in package.yaml? What's the right way to do this? |
2021-01-02 19:55:15 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-02 19:55:31 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-pggmrnaelsyxiuyq) |
2021-01-02 19:56:00 +0100 | <sm[m]> | justsomeguy: that normally works fine |
2021-01-02 19:56:06 +0100 | <Uniaika> | justsomeguy: what is the error? |
2021-01-02 19:56:12 +0100 | <Uniaika> | are you using the proper syntax for pragmas? |
2021-01-02 19:56:50 +0100 | <geekosaur> | and is it before the module declaration? |
2021-01-02 19:58:38 +0100 | <justsomeguy> | I'll link to a github repo and a pastebin of the error in a moment. Uploading... |
2021-01-02 19:59:01 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 264 seconds) |
2021-01-02 19:59:31 +0100 | andi- | (~andi-@NixOS/user/andi-) (Quit: WeeChat 2.8) |
2021-01-02 20:00:02 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) |
2021-01-02 20:00:07 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-01-02 20:00:54 +0100 | <exarkun> | Some of HashAlgorithm's methods involve `Ptr (Digest a)` or `Ptr (Context a)` |
2021-01-02 20:01:18 +0100 | <exarkun> | is there any way to work with the pointed-to value from Haskell (rather than a C library and FFI)? |
2021-01-02 20:01:39 +0100 | <exarkun> | I don't see a Storable instance for Digest or Context |
2021-01-02 20:03:25 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 20:03:36 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-02 20:04:14 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-01-02 20:05:00 +0100 | <superstar64> | i remember seeing this trick, of having a lambda calculus without free variables, `data Term x = Variable x | Call (Term x) (Term x) | Lambda (Maybe x)` |
2021-01-02 20:05:03 +0100 | <superstar64> | who came up with this? |
2021-01-02 20:05:08 +0100 | andi- | (~andi-@NixOS/user/andi-) |
2021-01-02 20:05:40 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 20:05:40 +0100 | <dolio> | Nicolaas Govert de Bruijn. |
2021-01-02 20:05:43 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds) |
2021-01-02 20:05:48 +0100 | <justsomeguy> | sm[m], Uniaika: You can find the error in error.txt. I was surprised that it wouldn't build. |
2021-01-02 20:06:20 +0100 | <justsomeguy> | The file under consideration is src/Lib.hs, and I think the syntax is correct. |
2021-01-02 20:06:35 +0100 | <exarkun> | seems like all of the hashes in cryptonite are implemented via FFI |
2021-01-02 20:07:03 +0100 | <exarkun> | so maybe a haskell-implemented hash is still not possible |
2021-01-02 20:07:10 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2021-01-02 20:07:29 +0100 | <Uniaika> | justsomeguy: ping me when the repo is up! |
2021-01-02 20:07:48 +0100 | <justsomeguy> | Uniaika: Here it is https://github.com/kingparra/logicgoats |
2021-01-02 20:08:23 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-01-02 20:08:28 +0100 | <sm[m]> | you didn't hear geekosaur's tip |
2021-01-02 20:08:56 +0100 | <justsomeguy> | Ah, you're right. Thanks for pointing that out. I'll try that now. |
2021-01-02 20:09:19 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:71b8:bbed:4abf:19c2) (Remote host closed the connection) |
2021-01-02 20:09:31 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 246 seconds) |
2021-01-02 20:09:45 +0100 | ph88_ | (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) |
2021-01-02 20:12:40 +0100 | <tomsmeding> | superstar64: how does the data type you gave not have free variables? |
2021-01-02 20:12:51 +0100 | tomsmeding | is stupid |
2021-01-02 20:13:00 +0100 | <tomsmeding> | that's an interesting encoding of De Bruijn indices |
2021-01-02 20:13:03 +0100 | <justsomeguy> | Hmm... It still doesn't build. I get the same error “Illegal instance declaration for ‘TooMany (Int, String)’ ... Use FlexibleInstances if you want to disable this.” |
2021-01-02 20:13:04 +0100 | <superstar64> | if `a` is `Void`, then you can't construct variables |
2021-01-02 20:13:26 +0100 | <superstar64> | but inside lambdas you can construct, `Maybe Void` |
2021-01-02 20:13:36 +0100 | <tomsmeding> | yes I see, quite neat |
2021-01-02 20:13:43 +0100 | <tomsmeding> | but yes, De Bruijn indices |
2021-01-02 20:14:06 +0100 | <superstar64> | yea, i saw it on one of edward kmett's videos |
2021-01-02 20:14:18 +0100 | <superstar64> | not sure where he got it from |
2021-01-02 20:14:41 +0100 | <tomsmeding> | they are faaaaairly well known in certain areas of computer science |
2021-01-02 20:14:56 +0100 | <MrMuffles[m]> | How is Maybe defined? Are some and none terms? |
2021-01-02 20:15:00 +0100 | <tomsmeding> | it makes alpha-equivalence trivial :) |
2021-01-02 20:15:13 +0100 | <tomsmeding> | MrMuffles[m]: data Maybe a = Nothing | Just a |
2021-01-02 20:15:44 +0100 | <tomsmeding> | MrMuffles[m]: https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Maybe.html |
2021-01-02 20:15:59 +0100 | <MrMuffles[m]> | But in terms of the lambda calculus, what is nothing? |
2021-01-02 20:16:20 +0100 | geekosaur | (ac3a8f5d@172.58.143.93) (Ping timeout: 245 seconds) |
2021-01-02 20:16:31 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2021-01-02 20:16:46 +0100 | <tomsmeding> | these are De Bruijn indices (https://en.wikipedia.org/wiki/De_Bruijn_index), where 1 is Nothing, 2 is Just Nothing, 3 is Just (Just Nothing), etc |
2021-01-02 20:17:02 +0100 | <tomsmeding> | these are of type Maybe Void, Maybe (Maybe Void), Maybe (Maybe (Maybe Void)), etc |
2021-01-02 20:17:10 +0100 | <tomsmeding> | where a closed expression is of type Term Void |
2021-01-02 20:17:43 +0100 | <tomsmeding> | assuming you're talking about superstar64's Term thing |
2021-01-02 20:18:11 +0100 | rsoeldner_ | (~rsoeldner@2a02:8108:973f:eb38:5b7:e16e:247:b5fe) |
2021-01-02 20:19:01 +0100 | <tomsmeding> | the syntax under "Formal definition" on the wiki page even has the constructors in the same order as Term :) |
2021-01-02 20:19:20 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-jmrkejpitddinbuk) |
2021-01-02 20:19:25 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 264 seconds) |
2021-01-02 20:21:00 +0100 | <MrMuffles[m]> | Oh ok I think I see, so the Maybe is just the haskell way to encode de Bruijn indices. Need to understand them better |
2021-01-02 20:22:06 +0100 | <rsoeldner_> | Someone using eglot with hls ? |
2021-01-02 20:22:52 +0100 | <gentauro> | 20:13 < tomsmeding> that's an interesting encoding of De Bruijn indices |
2021-01-02 20:22:56 +0100 | <gentauro> | what code? |
2021-01-02 20:23:09 +0100 | <tomsmeding> | gentauro: https://ircbrowse.tomsmeding.com/browse/haskell?id=231924×tamp=1609614300#t1609614300 |
2021-01-02 20:23:30 +0100 | <tomsmeding> | though that should be Lambda (Term (Maybe x)) |
2021-01-02 20:24:12 +0100 | <b4er> | Wait, what's with the Maybe in that type? |
2021-01-02 20:25:06 +0100 | <tomsmeding> | it's irregular recursion :) |
2021-01-02 20:25:41 +0100 | <b4er> | If you use `Maybe (... Maybe Void)..)` should it not be a GADT? |
2021-01-02 20:25:51 +0100 | <gentauro> | tomsmeding: why the `maybe` in `Lambda`? |
2021-01-02 20:25:57 +0100 | <tomsmeding> | well this works and is not a GADT |
2021-01-02 20:26:01 +0100 | <b4er> | I don't see how App works in this case |
2021-01-02 20:26:06 +0100 | <tomsmeding> | gentauro: read Lambda (Term (Maybe x)), not Lambda (Maybe x) |
2021-01-02 20:26:14 +0100 | <tomsmeding> | b4er: App? |
2021-01-02 20:26:24 +0100 | <b4er> | s/App/Call |
2021-01-02 20:26:45 +0100 | <gentauro> | 20:07 < exarkun> so maybe a haskell-implemented hash is still not possible |
2021-01-02 20:26:52 +0100 | <gentauro> | exarkun: it is, but it's slower that the FFI |
2021-01-02 20:27:02 +0100 | <gentauro> | if you want to write a paper, you might go for the `pure` version |
2021-01-02 20:27:13 +0100 | <tomsmeding> | '\f. \x. f x' would be written Lambda (Lambda (Call (Variable (Just Nothing)) (Variable Nothing))) |
2021-01-02 20:27:16 +0100 | <gentauro> | but if you need to `hash` million of strings, you might want to use the FFI |
2021-01-02 20:27:39 +0100 | <tomsmeding> | if you understand de bruijn indices, that should enlighten :) |
2021-01-02 20:27:48 +0100 | <gentauro> | 20:26 < tomsmeding> gentauro: read Lambda (Term (Maybe x)), not Lambda (Maybe x) |
2021-01-02 20:27:51 +0100 | <gentauro> | got it |
2021-01-02 20:28:05 +0100 | <b4er> | Ok, I'm not exactly sure what I was thinking, yeah |
2021-01-02 20:29:35 +0100 | Goldio | (uid478328@gateway/web/irccloud.com/x-nzbyntkcrovquvlb) |
2021-01-02 20:29:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-02 20:30:11 +0100 | geekosaur | (ac3a8f5d@172.58.143.93) |
2021-01-02 20:30:40 +0100 | <superstar64> | i also remember it being possible to define a monad instance for term, but i can't remember what it does |
2021-01-02 20:30:42 +0100 | <tomsmeding> | this models the untyped lambda calculus; if you want the typed lambda calculus, then you'll have to use a GADT with some kind of type-level list for the environment |
2021-01-02 20:31:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-02 20:31:44 +0100 | kam1 | (~kam1@24.231.108.143) |
2021-01-02 20:33:39 +0100 | <b4er> | superstar64, substitution which is capture-avoiding iirc |
2021-01-02 20:33:58 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 265 seconds) |
2021-01-02 20:34:52 +0100 | <b4er> | This talk reminds me... I should still be reading *de Bruijn notation as a nested datatype* from y'day |
2021-01-02 20:34:53 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2021-01-02 20:35:03 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-02 20:35:08 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2021-01-02 20:35:21 +0100 | <boxscape> | which do you suppose is the more common abbreviation for a lambda abstraction, Abs or Lam? |
2021-01-02 20:35:35 +0100 | <b4er> | Abs |
2021-01-02 20:35:39 +0100 | <merijn> | b4er: Pedantic side-note: The proper capitalisation without a first name is De Bruijn :p |
2021-01-02 20:35:47 +0100 | <boxscape> | okay |
2021-01-02 20:36:41 +0100 | <b4er> | merijn, are you sure? I have the paper open and the title is that way :S |
2021-01-02 20:36:59 +0100 | <b4er> | boxscape, it might depend on the demographic though. |
2021-01-02 20:37:05 +0100 | <boxscape> | that makes sense |
2021-01-02 20:37:14 +0100 | <merijn> | b4er: I'm on a quixotic quest to correct every computer scientist that keeps citing it as "de Bruijn" :p |
2021-01-02 20:37:29 +0100 | <tomsmeding> | b4er: author of the paper is probably not Dutch |
2021-01-02 20:37:36 +0100 | <gentauro> | merijn: is that some "Spanish heritage"? |
2021-01-02 20:37:38 +0100 | <tomsmeding> | or perhaps they are, even Dutch people get this wrong :p |
2021-01-02 20:37:42 +0100 | <gentauro> | the "De …" part? |
2021-01-02 20:37:47 +0100 | <gentauro> | like "De la Vega"? |
2021-01-02 20:37:50 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-mualtkqzycyradrx) |
2021-01-02 20:37:54 +0100 | <__monty__> | Dutch capitalization rules for names are weird. |
2021-01-02 20:37:57 +0100 | <tomsmeding> | I think it's French, but then both come from Latin :p |
2021-01-02 20:37:58 +0100 | <merijn> | b4er: That's because in a "full" name like "N. de Bruijn" on papers it's lowercase, but in Dutch orthography first letters of names are always capitalised :p |
2021-01-02 20:38:10 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-01-02 20:38:21 +0100 | rowbee | (~augh@theguntretort.com) (Remote host closed the connection) |
2021-01-02 20:38:29 +0100 | <merijn> | __monty__: They're perfectly consistent! It's not our fault you weird Flemish guys get confused! :p |
2021-01-02 20:38:43 +0100 | <gentauro> | iirc my history lessons from school/highschool both Belgium and The Netherlands were under Spain for a long period right? |
2021-01-02 20:38:49 +0100 | <gentauro> | so maybe something stook :) |
2021-01-02 20:38:55 +0100 | <b4er> | merijn, do you have a Wikipedia account because there you'll need to change quite a few articles |
2021-01-02 20:38:56 +0100 | <merijn> | gentauro: "de" is just "the" in Dutch :p |
2021-01-02 20:39:02 +0100 | <gentauro> | merijn: xD |
2021-01-02 20:39:20 +0100 | <merijn> | b4er: Oh, I know. Almost every non-Dutch computer scientist in programmaning languages gets it wrong :p |
2021-01-02 20:39:23 +0100 | <b4er> | The whole list of "De Bruijn" people are all spelled "Xyz de Bruijn" |
2021-01-02 20:39:26 +0100 | <boxscape> | so it's like "Nick the Brown" but "The Brown" without Nick? |
2021-01-02 20:39:55 +0100 | <merijn> | boxscape: Pretty much |
2021-01-02 20:39:58 +0100 | <boxscape> | I see |
2021-01-02 20:40:10 +0100 | <exarkun> | gentauro: Let's say I'm prototyping something and I don't want to write any C yet |
2021-01-02 20:40:41 +0100 | <merijn> | boxscape: In Flanders they tend to capitalise it always, so "Nick The Brown", in Dutch it's lowercase but the "first letter of names are capitalised" rule trumps that |
2021-01-02 20:40:44 +0100 | <__monty__> | gentauro: While true, we never spoke Spanish, as opposed to French which was the fancy rich people language. In Flemish the "de" is only lowercase if it's part of a noble family name. |
2021-01-02 20:40:51 +0100 | <boxscape> | okay |
2021-01-02 20:40:51 +0100 | <gentauro> | exarkun: which hashes are you aiming at? |
2021-01-02 20:41:22 +0100 | <gentauro> | iirc most modern processors have some instructions that normally FFI libs just call |
2021-01-02 20:41:23 +0100 | <exarkun> | gentauro: SHA256d |
2021-01-02 20:41:30 +0100 | <gentauro> | it's pretty diffucult to beat that … |
2021-01-02 20:41:33 +0100 | <merijn> | boxscape: Incidentally you can see the Dutch early immigrants to the US from names like "van der Bilt" turning into "Vanderbilt" |
2021-01-02 20:41:58 +0100 | <gentauro> | exarkun: and trust me, I tried ;) http://blog.stermon.com/articles/2018/08/10/haskell-safe-sha1-only-depending-on-prelude.html |
2021-01-02 20:42:00 +0100 | <boxscape> | hm ok |
2021-01-02 20:42:12 +0100 | gentauro | it's almost trivial to got from SHA-1 to SHA-2 ;) |
2021-01-02 20:42:20 +0100 | <merijn> | This was your annual scheduled class on Dutch naming ;) |
2021-01-02 20:42:42 +0100 | <boxscape> | I already look forward to 2022-01-02 |
2021-01-02 20:42:43 +0100 | <b4er> | The Wikipedia article on De Bruijn indices is not even consistent :S |
2021-01-02 20:42:53 +0100 | <merijn> | exarkun: cryptonite has implementations of basically every hash you know and a whole bunch you don't ;) |
2021-01-02 20:43:00 +0100 | <gentauro> | exarkun: remember to use these test cases with your implementation -> https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/secure-hashing |
2021-01-02 20:43:05 +0100 | <exarkun> | merijn: I didn't see sha256d |
2021-01-02 20:43:06 +0100 | <tomsmeding> | b4er: lol true |
2021-01-02 20:43:15 +0100 | <merijn> | exarkun: I'm pretty sure that's in there |
2021-01-02 20:43:37 +0100 | <b4er> | Consistently get it wrong (x)or right, not both that's even worse imo |
2021-01-02 20:43:44 +0100 | <merijn> | exarkun: https://hackage.haskell.org/package/cryptonite-0.27/docs/Crypto-Hash-Algorithms.html#t:SHA256 |
2021-01-02 20:43:47 +0100 | <exarkun> | merijn: if you have a link that would be really helpful, thanks |
2021-01-02 20:43:49 +0100 | <__monty__> | gentauro: Nitpick, base and the prelude aren't equivalent. |
2021-01-02 20:44:00 +0100 | <gentauro> | exarkun: isn't `sha256d` just `sha256 . sha256`? |
2021-01-02 20:44:09 +0100 | <exarkun> | merijn: That's SHA256. I was planning to use that for SHA256d, for sure. |
2021-01-02 20:44:23 +0100 | <gentauro> | __monty__: good point ;) |
2021-01-02 20:44:25 +0100 | <exarkun> | gentauro: It isn't "just" that but it's awfully cloes, sure |
2021-01-02 20:44:28 +0100 | <exarkun> | close |
2021-01-02 20:44:51 +0100 | <exarkun> | gentauro: `hash xs :: Digest SHA256d` would be a very convenient way to spell it |
2021-01-02 20:44:58 +0100 | <merijn> | exarkun: ah, I missed that the d would be part of the name |
2021-01-02 20:45:14 +0100 | <exarkun> | gentauro: instead of breaking the pattern and needing two codepaths to support "any other hash" and "sha256d". |
2021-01-02 20:45:47 +0100 | <merijn> | exarkun: If you have an existing C FFI it should be fairly trivial to implement your own bindings that work with that API |
2021-01-02 20:45:49 +0100 | <exarkun> | Also half the point is just to help me learn more stuff about haskell. Getting as far as I did so far, I used `forall` for the first time, which was a useful end in itself. |
2021-01-02 20:45:56 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-01-02 20:45:56 +0100 | <exarkun> | merijn: I don't |
2021-01-02 20:46:10 +0100 | <exarkun> | merijn: but I have cryptonite's sha256 |
2021-01-02 20:46:41 +0100 | <exarkun> | But I don't see how to implement hashInternalFinalize from Haskell |
2021-01-02 20:46:58 +0100 | <exarkun> | because I can't take the (Digest SHA256) out of the (Ptr (Digest SHA256) |
2021-01-02 20:47:00 +0100 | <exarkun> | ) |
2021-01-02 20:47:05 +0100 | <merijn> | Sure you can |
2021-01-02 20:47:13 +0100 | <merijn> | Well, maybe |
2021-01-02 20:47:17 +0100 | <merijn> | is Digest Storable? |
2021-01-02 20:47:24 +0100 | <exarkun> | ghc tells me no. |
2021-01-02 20:47:36 +0100 | <exarkun> | I naively tried peek and poke already |
2021-01-02 20:47:38 +0100 | <merijn> | hmm, it's not |
2021-01-02 20:48:47 +0100 | <tomsmeding> | ByteArrayAccess seems to allow reading the thing with arbitrary type punning? |
2021-01-02 20:48:59 +0100 | <merijn> | tomsmeding: You need a Digest for that |
2021-01-02 20:49:04 +0100 | <merijn> | Not a Ptr to a Digest |
2021-01-02 20:49:18 +0100 | <tomsmeding> | that's the third time I fuck up today |
2021-01-02 20:49:34 +0100 | <exarkun> | tomsmeding: Only third? What is it, 1am there? |
2021-01-02 20:49:40 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2021-01-02 20:49:42 +0100 | <exarkun> | otherwise I'm envious |
2021-01-02 20:49:50 +0100 | <tomsmeding> | 20:49, I'm Dutch ;) |
2021-01-02 20:50:03 +0100 | <tomsmeding> | but with "third time" I meant in this channel |
2021-01-02 20:52:06 +0100 | Hamid | (907a6cf6@907a6cf6.drm.metu.edu.tr) |
2021-01-02 20:52:17 +0100 | <Hamid> | Hello |
2021-01-02 20:52:30 +0100 | Hamid | Guest91844 |
2021-01-02 20:52:33 +0100 | <boxscape> | hi |
2021-01-02 20:52:57 +0100 | <Guest91844> | Can you recommend me a nice and friendly IDE for haskell? |
2021-01-02 20:53:02 +0100 | p-core | (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) |
2021-01-02 20:54:03 +0100 | <boxscape> | as far as I know the most friendly setup is VSCode + Haskell Language server, but I haven't tried it myself https://medium.com/@dogwith1eye/setting-up-haskell-in-vs-code-with-stack-and-the-ide-engine-81d49e… |
2021-01-02 20:54:06 +0100 | Guest91844 | (907a6cf6@907a6cf6.drm.metu.edu.tr) (Remote host closed the connection) |
2021-01-02 20:54:18 +0100 | <tomsmeding> | heh |
2021-01-02 20:57:28 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 246 seconds) |
2021-01-02 20:59:07 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Read error: Connection reset by peer) |
2021-01-02 20:59:40 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-01-02 21:00:59 +0100 | rowbee | (~augh@theguntretort.com) |
2021-01-02 21:01:27 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Read error: Connection reset by peer) |
2021-01-02 21:01:46 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2021-01-02 21:02:21 +0100 | <merijn> | Personally I just recommend "whatever text editor you currently prefer" |
2021-01-02 21:03:44 +0100 | <dsal> | That's also my preference. |
2021-01-02 21:03:51 +0100 | knupfer | (~Thunderbi@200116b824cbdc00c813c0fffe26bde0.dip.versatel-1u1.de) |
2021-01-02 21:04:17 +0100 | <Rembane> | Same here |
2021-01-02 21:04:25 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) (Ping timeout: 265 seconds) |
2021-01-02 21:04:26 +0100 | <tomsmeding> | unless you want a "nice and friendly IDE" |
2021-01-02 21:04:33 +0100 | knupfer | (~Thunderbi@200116b824cbdc00c813c0fffe26bde0.dip.versatel-1u1.de) (Client Quit) |
2021-01-02 21:04:40 +0100 | Varis | (~Tadas@unaffiliated/varis) (Ping timeout: 256 seconds) |
2021-01-02 21:04:45 +0100 | knupfer | (~Thunderbi@200116b824cbdc0061816201305a90f6.dip.versatel-1u1.de) |
2021-01-02 21:04:46 +0100 | <aplainzetakind> | ghcid is a thing, so it may need mentioning. |
2021-01-02 21:04:49 +0100 | <tomsmeding> | or is your point that you can't get that anyway currently :p |
2021-01-02 21:04:58 +0100 | <tomsmeding> | aplainzetakind: that _is_ true |
2021-01-02 21:05:21 +0100 | <merijn> | tomsmeding: My point is that there is no "easy" way to get an IDE, even VSCode is kind of a hassle (judging by the number of questions) |
2021-01-02 21:05:45 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2021-01-02 21:05:54 +0100 | <tomsmeding> | (in case any ghcide/hls/... people are reading: the software is amazing, but newcomers from Java expect something different) |
2021-01-02 21:05:58 +0100 | <merijn> | So *if* you already have an established editor preference, I'd recommend just sticking with that (and maybe trying to get ghcide/hls working with your current editors LSP support) |
2021-01-02 21:06:12 +0100 | <tomsmeding> | fair |
2021-01-02 21:06:18 +0100 | vs^ | (vs@ip98-184-89-2.mc.at.cox.net) () |
2021-01-02 21:06:35 +0100 | <merijn> | If you don't have a preference, sure maybe try VSCode or something |
2021-01-02 21:06:59 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 21:08:06 +0100 | <b4er> | If you don't have a favourite editor let me suggest `ed`, while it doesn't do syntax highlighting it is super convenient |
2021-01-02 21:09:11 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2021-01-02 21:09:38 +0100 | <Melanie> | I use VSCode and the precompiled HLS binaries, it works fine on most OSes but older ones you may need to compile the lanserv yourself |
2021-01-02 21:10:07 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-02 21:10:07 +0100 | <b4er> | On a more serious note, I'd make sure that you have at least `hlint` some way or another integrated in your editor. Its suggestions are quite useful |
2021-01-02 21:13:53 +0100 | Franciman | (~francesco@host-95-250-152-231.retail.telecomitalia.it) |
2021-01-02 21:13:54 +0100 | <ph88_> | hey guys i used this command: stack build --executable-profiling and then stack exec -- myprogram +RTS -xc ... but i get an error that i didnt build with prof flag .. how can i fix this situation ? |
2021-01-02 21:14:03 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2021-01-02 21:15:02 +0100 | <tomsmeding> | stack run --profile myprogram -- +RTS -xc |
2021-01-02 21:15:20 +0100 | <tomsmeding> | I think |
2021-01-02 21:15:50 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-02 21:15:53 +0100 | <shinobi> | I think I see where my problem is for understanding applicative ((->) r). I can perform [(+100)] <*> [200] and get a result of [300], as expected. However, (+3) <*> (5) yields an error. I don't understand why. |
2021-01-02 21:15:59 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) |
2021-01-02 21:16:12 +0100 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) |
2021-01-02 21:16:34 +0100 | <tomsmeding> | shinobi: what are the types of (+3) and of 5? What is, then, type type of <*>? |
2021-01-02 21:16:34 +0100 | <boxscape> | % :t (<*>) |
2021-01-02 21:16:34 +0100 | <yahb> | boxscape: Applicative f => f (a -> b) -> f a -> f b |
2021-01-02 21:16:46 +0100 | <tomsmeding> | does that match what boxscape just got out of yahb? :) |
2021-01-02 21:16:52 +0100 | pragma- | (~chaos@unaffiliated/pragmatic-chaos) ("Bye!") |
2021-01-02 21:18:13 +0100 | <b4er> | :t (<*>) @[] |
2021-01-02 21:18:15 +0100 | <lambdabot> | error: |
2021-01-02 21:18:15 +0100 | <lambdabot> | Pattern syntax in expression context: (<*>)@[] |
2021-01-02 21:18:15 +0100 | <lambdabot> | Did you mean to enable TypeApplications? |
2021-01-02 21:18:23 +0100 | <b4er> | :t (<*>) @((->) _) |
2021-01-02 21:18:24 +0100 | <lambdabot> | error: parse error on input ‘->’ |
2021-01-02 21:18:27 +0100 | <boxscape> | you'll need yahb for TypeApplications |
2021-01-02 21:18:30 +0100 | <tomsmeding> | % :t (<*>) @[] |
2021-01-02 21:18:31 +0100 | <yahb> | tomsmeding: [a -> b] -> [a] -> [b] |
2021-01-02 21:18:40 +0100 | <merijn> | b4er: Use `asAppliedTo` :p |
2021-01-02 21:18:47 +0100 | <b4er> | Why does lambdabot not have TypeApplications :S |
2021-01-02 21:18:53 +0100 | <merijn> | :t (<*>) `asAppliedTo` [] |
2021-01-02 21:18:54 +0100 | <lambdabot> | [a -> b] -> [a] -> [b] |
2021-01-02 21:19:50 +0100 | <boxscape> | shinobi can you see what a, b, and f are in <*>'s type signature for [(+100)] <*> [200]? |
2021-01-02 21:20:47 +0100 | <shinobi> | :t (+3) |
2021-01-02 21:20:49 +0100 | <lambdabot> | Num a => a -> a |
2021-01-02 21:20:56 +0100 | <shinobi> | that is what I expect |
2021-01-02 21:21:03 +0100 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-02 21:21:04 +0100 | <shinobi> | :t (5) |
2021-01-02 21:21:06 +0100 | <lambdabot> | Num p => p |
2021-01-02 21:21:29 +0100 | <shinobi> | I was hoping this would be a function |
2021-01-02 21:21:36 +0100 | <tomsmeding> | => does not indicate a function |
2021-01-02 21:21:37 +0100 | <boxscape> | a function from what to what? |
2021-01-02 21:21:50 +0100 | <tomsmeding> | it indicates that the thing on the left of the => is a constraint on the type to the right of the => |
2021-01-02 21:22:06 +0100 | p3n | (~p3n@217.198.124.246) |
2021-01-02 21:22:06 +0100 | <shinobi> | \_ -> 5 |
2021-01-02 21:22:24 +0100 | <shinobi> | I just want the constant function 5 |
2021-01-02 21:22:24 +0100 | <tomsmeding> | 'Num p => p' means "the type 'p', for all 'p' that have an instance of Num" |
2021-01-02 21:22:30 +0100 | <tomsmeding> | :t const 5 |
2021-01-02 21:22:31 +0100 | <lambdabot> | Num a => b -> a |
2021-01-02 21:22:35 +0100 | <merijn> | shinobi: Why would it be a function? |
2021-01-02 21:22:42 +0100 | <dminuoso> | A function is actually one interpretation that matches what GHC does internally. Num p => p could be thought of “taking a dictionary of Num p” |
2021-01-02 21:22:53 +0100 | <merijn> | dminuoso: That is...almost certainly not helpful :p |
2021-01-02 21:23:01 +0100 | dminuoso | shrugs |
2021-01-02 21:23:03 +0100 | <tomsmeding> | it is, but that doesn't really help when trying to understand Applicative ((->) r) :p |
2021-01-02 21:23:12 +0100 | merijn | smells "everything is a function"-fallacy :) |
2021-01-02 21:23:41 +0100 | <tomsmeding> | makes one think, what would a "reader monad" over a particular constraint even mean |
2021-01-02 21:23:45 +0100 | <shinobi> | I thought putting the 5 in () would make it \_ -> 5 |
2021-01-02 21:23:49 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-02 21:24:06 +0100 | <dminuoso> | tomsmeding: You could make that happen with ‘constraints’ easily :) |
2021-01-02 21:24:12 +0100 | <tomsmeding> | shinobi: that's an effect specific to operators: https://wiki.haskell.org/Section_of_an_infix_operator |
2021-01-02 21:24:28 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-02 21:24:31 +0100 | <boxscape> | though for operators it doesn't produce a constant function |
2021-01-02 21:24:51 +0100 | <boxscape> | (+5) == \x -> x + 5 |
2021-01-02 21:25:06 +0100 | <shinobi> | :t (\_ -> 5) |
2021-01-02 21:25:08 +0100 | <lambdabot> | Num p1 => p2 -> p1 |
2021-01-02 21:25:21 +0100 | <shinobi> | this seems like it could work with the above |
2021-01-02 21:25:23 +0100 | <dminuoso> | tomsmeding: arguably, that’d be just a different way to encode tag less final, no? |
2021-01-02 21:25:41 +0100 | <tomsmeding> | possibly, I'm afraid I have no idea :) |
2021-01-02 21:26:01 +0100 | <boxscape> | shinobi "the above" being? |
2021-01-02 21:26:52 +0100 | <shinobi> | A side question: Do the letters ghci chooses for types have any meaning? E.g. is a -> a different from p2 -> p1? |
2021-01-02 21:27:02 +0100 | <boxscape> | tomsmeding since (I'm pretty sure) there's an equivalence between `c => t` and `Dict c -> t`, I suppose you should be able to think of it as a reader monad over Dict c |
2021-01-02 21:27:24 +0100 | <tomsmeding> | boxscape: from briefly looking at the 'constraints' haddocks, yes that makes sense |
2021-01-02 21:27:25 +0100 | <hpc> | they're just variable names |
2021-01-02 21:27:33 +0100 | <merijn> | shinobi: 'a -> a' is different from 'p2 -> p1', but not from 'p1 -> p1' |
2021-01-02 21:27:34 +0100 | <shinobi> | (+3) <*> (\_ -> 5) doesn't work either |
2021-01-02 21:27:43 +0100 | <shinobi> | what do the letters mean? |
2021-01-02 21:28:02 +0100 | <merijn> | shinobi: Letters have no meaning besides "same variable names correspond to same type" |
2021-01-02 21:28:07 +0100 | <monochrom> | They mean nothing. Arbitrary choice. |
2021-01-02 21:28:13 +0100 | <b4er> | You might wanna expand (<*>)'s definition to see what you're actually doing |
2021-01-02 21:28:26 +0100 | <shinobi> | b4er: how do I do that |
2021-01-02 21:28:28 +0100 | <hpc> | shinobi: there are some conventions, but it's like how a generic function in math is called 'f' |
2021-01-02 21:28:30 +0100 | <merijn> | shinobi: It *tries* to use letters based on the variable names in source code (or derived from them) but it's ultimately arbitrary |
2021-01-02 21:29:04 +0100 | <carter> | sooo, when are teh Reverse and backwards Applicatives different? |
2021-01-02 21:29:15 +0100 | <b4er> | You go to hackage, look up Applicative, find the instance you're working with and click the #-sign for source, |
2021-01-02 21:29:18 +0100 | <monochrom> | "a" means arbitrary |
2021-01-02 21:29:27 +0100 | <monochrom> | "b" means arbitary |
2021-01-02 21:29:31 +0100 | <hpc> | well, you click "source" for source |
2021-01-02 21:29:37 +0100 | <hpc> | "#" is a permalink |
2021-01-02 21:29:39 +0100 | <carter> | (trying to figure out which one is correct for my needs) |
2021-01-02 21:30:11 +0100 | <boxscape> | shinobi also try to look at the type of <*> and see what you would expect f, a, and b to be in that case, maybe that let's you see why it doesn't work |
2021-01-02 21:30:22 +0100 | <b4er> | shinobi, here you go: https://hackage.haskell.org/package/base-4.14.1.0/docs/src/GHC.Base.html#line-973 |
2021-01-02 21:31:39 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-02 21:32:01 +0100 | <carter> | ohhh traverse f (Reverse t) = |
2021-01-02 21:32:01 +0100 | <carter> | fmap Reverse . forwards $ traverse (Backwards . f) t |
2021-01-02 21:32:11 +0100 | <carter> | Reverse uses Backwards for its traverse |
2021-01-02 21:32:17 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
2021-01-02 21:32:33 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 21:36:38 +0100 | b4er | (~b4er@91.193.4.138) (Quit: bye!) |
2021-01-02 21:36:47 +0100 | ces | (~ces@fsf/member/ces) |
2021-01-02 21:36:55 +0100 | b4er | (~b4er@91.193.4.138) |
2021-01-02 21:37:25 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit) |
2021-01-02 21:37:29 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-02 21:37:42 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Client Quit) |
2021-01-02 21:37:45 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 21:38:48 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) |
2021-01-02 21:38:59 +0100 | <shinobi> | (<*>) f g x = f x (g x) It looks like x and (g x) is being applied to f. Am I reading this correctly? |
2021-01-02 21:39:04 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) (Remote host closed the connection) |
2021-01-02 21:39:16 +0100 | <b4er> | Yep. |
2021-01-02 21:39:22 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) |
2021-01-02 21:39:30 +0100 | <c_wraith> | Though usually we say functions are applied to arguments, rather than vice versa |
2021-01-02 21:39:34 +0100 | <shinobi> | What if f only has 1 parameter |
2021-01-02 21:39:39 +0100 | <c_wraith> | then it's a type error |
2021-01-02 21:40:17 +0100 | <c_wraith> | :t negate |
2021-01-02 21:40:19 +0100 | <lambdabot> | Num a => a -> a |
2021-01-02 21:40:26 +0100 | <c_wraith> | Oh, too polymorphic. blah. |
2021-01-02 21:40:41 +0100 | <c_wraith> | :t show <*> (+1) |
2021-01-02 21:40:43 +0100 | <lambdabot> | error: |
2021-01-02 21:40:43 +0100 | <lambdabot> | • Couldn't match type ‘[Char]’ with ‘a -> b’ |
2021-01-02 21:40:43 +0100 | <lambdabot> | Expected type: a -> a -> b |
2021-01-02 21:40:48 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) (Client Quit) |
2021-01-02 21:40:49 +0100 | <c_wraith> | see? type error |
2021-01-02 21:41:05 +0100 | <monochrom> | f x (g x) = (f x) (g x), too |
2021-01-02 21:41:27 +0100 | ces | (~ces@fsf/member/ces) (Client Quit) |
2021-01-02 21:41:50 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit) |
2021-01-02 21:43:57 +0100 | <shinobi> | monochrom: fair enough but what is the operation between (f x) (g x)? |
2021-01-02 21:44:11 +0100 | <monochrom> | function application |
2021-01-02 21:44:21 +0100 | <monochrom> | It's function applications all the way down. |
2021-01-02 21:44:23 +0100 | <ph88_> | thanks tomsmeding |
2021-01-02 21:45:30 +0100 | tp47 | (1f0a80ba@31-10-128-186.cgn.dynamic.upc.ch) |
2021-01-02 21:48:35 +0100 | HenryCH | (~henry@5.81.254.84.ftth.as8758.net) () |
2021-01-02 21:48:47 +0100 | Aloui | (~Username@13.84.157.132) |
2021-01-02 21:49:03 +0100 | Aloui | (~Username@13.84.157.132) (Read error: Connection reset by peer) |
2021-01-02 21:49:24 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-02 21:49:56 +0100 | superstar64 | (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Remote host closed the connection) |
2021-01-02 21:49:57 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 21:51:52 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) (Remote host closed the connection) |
2021-01-02 21:52:12 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-01-02 21:57:16 +0100 | <shinobi> | Let me go back a bit. ((->) r) is an applicative. <*> has the type of: Applicative f => f (a -> b) -> f a -> f b. So I would expect ((->) r1) to have a value of a function of type (a -> b) and ((->) r2) to have a value of a. Am I correct so far? |
2021-01-02 21:57:46 +0100 | recon_- | (~quassel@208.87.96.9) (Quit: No Ping reply in 180 seconds.) |
2021-01-02 21:58:53 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-01-02 21:59:02 +0100 | recon_- | (~quassel@2602:febc:0:b6::6ca2) |
2021-01-02 21:59:52 +0100 | <dminuoso> | This reads quite confused. |
2021-01-02 22:00:20 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-01-02 22:00:34 +0100 | <shinobi> | That's me right now |
2021-01-02 22:00:43 +0100 | <boxscape> | I'm not quite sure what it means for ((->) r1) to have a value - The important takeaway is that for the ((->) r) instance, f is ((->) r), which means the type of (<*>) is (r -> (a -> b)) -> (r -> a) -> (r -> b) |
2021-01-02 22:00:57 +0100 | <b4er> | Where do you get r1 and r2 from? |
2021-01-02 22:01:31 +0100 | <boxscape> | (I just substituted f with (r ->), which would be the same as ((->) r) if it were valid syntax) |
2021-01-02 22:01:39 +0100 | <b4er> | Once you use (<*>) for ((->)r) r is fix, you can use r, r1 etc. but they must be equivalent |
2021-01-02 22:01:48 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 22:01:48 +0100 | <dminuoso> | shinobi: In the type of <*> we have two arguments f (a -> b) and f a. If we set f ~ ((->) Int), then the type of (<*>) becomes (Int -> a -> b) -> Int a -> Int b |
2021-01-02 22:01:57 +0100 | <dminuoso> | Does this make sense? |
2021-01-02 22:02:06 +0100 | <dminuoso> | Oh |
2021-01-02 22:02:07 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
2021-01-02 22:02:27 +0100 | <dminuoso> | shinobi: In the type of <*> we have two arguments f (a -> b) and f a. If we set f ~ ((->) Int), then the type of (<*>) becomes (Int -> a -> b) -> (Int -> a) -> Int -> b |
2021-01-02 22:02:37 +0100 | <dminuoso> | Sorry! Typing on this iPad is slightly different. :) |
2021-01-02 22:03:20 +0100 | chang | (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit) |
2021-01-02 22:03:44 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) (Remote host closed the connection) |
2021-01-02 22:03:58 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) |
2021-01-02 22:04:02 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 22:04:12 +0100 | <shinobi> | yes, that makes sense |
2021-01-02 22:04:35 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 22:05:04 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-01-02 22:05:22 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) (Remote host closed the connection) |
2021-01-02 22:05:41 +0100 | <shinobi> | That's just the type though. |
2021-01-02 22:05:54 +0100 | Deide | (~Deide@217.155.19.23) |
2021-01-02 22:06:18 +0100 | <shinobi> | for <*> It will apply x to f and apply x to g? Then compose? |
2021-01-02 22:06:44 +0100 | <b4er> | s/compose/apply |
2021-01-02 22:08:00 +0100 | <dminuoso> | shinobi: What this ends up doing depends on the instance. Assuming we even have an `instance Applicative ((->) r)` (which we do), then GHC will just use the implementation of (<*>) of that instance definition |
2021-01-02 22:08:18 +0100 | vfaronov | (~Srain@broadband-95-84-210-78.ip.moscow.rt.ru) |
2021-01-02 22:08:53 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:5db7:7326:4789:d9fc) (Remote host closed the connection) |
2021-01-02 22:08:56 +0100 | <b4er> | Maybe this exmple helps: (mult <*> succ) 2 ≡ mult 2 (succ 2) ≡ mult 2 3 ≡ 6 |
2021-01-02 22:08:57 +0100 | <b4er> | ? |
2021-01-02 22:10:15 +0100 | <shinobi> | let me digest a moment |
2021-01-02 22:10:34 +0100 | <shinobi> | It makes sense at the surface... still digesting |
2021-01-02 22:12:27 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-01-02 22:13:15 +0100 | <shinobi> | so mult needs 2 parameters to begin with. succ only needs one. Applying the two will partially apply the mult fuction and generate a value for the second. Then it will apply the two. ?? |
2021-01-02 22:14:25 +0100 | <dminuoso> | shinobi: Given the above type signature, try to implement a function of type ‘fun :: (Int -> a -> b) -> (Int -> a) -> Int -> b` |
2021-01-02 22:15:00 +0100 | <dminuoso> | Stare at the type signature, write a function taking as many arguments, and implement it some sensible way. When done, lets look at your implementation |
2021-01-02 22:15:16 +0100 | <dminuoso> | (Yes I intentionally do not state what this would do, just let the types guide you) |
2021-01-02 22:15:21 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2021-01-02 22:16:08 +0100 | <b4er> | Does it need to terminate ;P |
2021-01-02 22:16:38 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-02 22:19:11 +0100 | <MrMuffles[m]> | Is there an algorithm to find free variables of a lambda expression? |
2021-01-02 22:19:13 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2021-01-02 22:20:42 +0100 | <dminuoso> | MrMuffles[m]: Are you writing your own binding solution, or do you use something like unbound? |
2021-01-02 22:20:43 +0100 | <monochrom> | Could you find all variables? Could you find all bound variables? Could you handle name clashes and shadowing? Then you just subtract. |
2021-01-02 22:22:38 +0100 | <MrMuffles[m]> | dminuoso would a binding solution just be the inverse of identifying free variable? I'm doing this in clojure, tbh, and not sure yet what tools I have |
2021-01-02 22:23:25 +0100 | <dminuoso> | MrMuffles[m]: I don’t know the entirety of your problem you are dealing with. |
2021-01-02 22:23:33 +0100 | Forlorn | (~Forlorn@unaffiliated/forlorn) (Quit: leaving) |
2021-01-02 22:23:37 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:8c40::4b02) (Ping timeout: 272 seconds) |
2021-01-02 22:24:16 +0100 | kam1 | (~kam1@24.231.108.143) (Ping timeout: 246 seconds) |
2021-01-02 22:25:15 +0100 | Forlorn | (~Forlorn@unaffiliated/forlorn) |
2021-01-02 22:25:45 +0100 | <MrMuffles[m]> | Basically I'm curious if I can take a clojure expression (list) and generate the input parameters (free variables) for a macro for that expression |
2021-01-02 22:26:37 +0100 | son0p | (~son0p@181.136.122.143) (Ping timeout: 264 seconds) |
2021-01-02 22:27:29 +0100 | worc3131 | (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Remote host closed the connection) |
2021-01-02 22:28:03 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-02 22:31:29 +0100 | dfeuer | (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
2021-01-02 22:32:30 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2021-01-02 22:33:05 +0100 | ech | (~user@gateway/tor-sasl/ech) |
2021-01-02 22:34:27 +0100 | knupfer | (~Thunderbi@200116b824cbdc0061816201305a90f6.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
2021-01-02 22:34:37 +0100 | rsoeldner_ | (~rsoeldner@2a02:8108:973f:eb38:5b7:e16e:247:b5fe) (Remote host closed the connection) |
2021-01-02 22:34:54 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) (Remote host closed the connection) |
2021-01-02 22:36:02 +0100 | <MrMuffles[m]> | > Could you find all variables? Could you find all bound variables? Could you handle name clashes and shadowing? Then you just subtract. |
2021-01-02 22:36:03 +0100 | <MrMuffles[m]> | Well I guess that's pretty much it :P |
2021-01-02 22:36:05 +0100 | <lambdabot> | <hint>:1:135: error: |
2021-01-02 22:36:05 +0100 | <lambdabot> | <hint>:1:135: error: |
2021-01-02 22:36:05 +0100 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2021-01-02 22:36:12 +0100 | knupfer | (~Thunderbi@87.123.206.117) |
2021-01-02 22:36:17 +0100 | <b4er> | Uhm, that comment from diminuoso made me think a bit.. Is there only one instance of `a -> a` (ie. `id`)? |
2021-01-02 22:36:24 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 22:36:51 +0100 | <boxscape> | there's only one non-bottom function of that type, yes |
2021-01-02 22:36:56 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-01-02 22:37:03 +0100 | <Rembane> | b4er: Can you name a second one? :) |
2021-01-02 22:37:05 +0100 | <b4er> | That's what I meant, yeah |
2021-01-02 22:37:37 +0100 | <b4er> | No, but I can prove that a non-terminating function `a -> unit` is equal to `id` but I cannot do the same with `a -> a` (in Isabelle/HOL) |
2021-01-02 22:37:56 +0100 | <b4er> | That's what is tripping me up.. |
2021-01-02 22:38:02 +0100 | <Rembane> | b4er: But `a -> unit` is not `a -> a`. |
2021-01-02 22:38:23 +0100 | <Rembane> | b4er: How do you prove it btw? |
2021-01-02 22:38:35 +0100 | Goldio | (uid478328@gateway/web/irccloud.com/x-nzbyntkcrovquvlb) (Quit: Connection closed for inactivity) |
2021-01-02 22:38:36 +0100 | <boxscape> | don't you need function extensionality to prove that? |
2021-01-02 22:38:37 +0100 | <b4er> | Ah, sorry. Same with `unit -> unit` really |
2021-01-02 22:38:49 +0100 | <b4er> | Isabelle/HOL has functional extensionality yeah |
2021-01-02 22:38:54 +0100 | <boxscape> | hm, okay |
2021-01-02 22:39:27 +0100 | <Rembane> | Got it. |
2021-01-02 22:39:45 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Ping timeout: 240 seconds) |
2021-01-02 22:40:05 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) |
2021-01-02 22:40:07 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-02 22:40:14 +0100 | <gentauro> | I have never heard of this language before now. If anybody have heard about it, how much is "marketing/BS"? https://www.ponylang.io/discover/#what-makes-pony-different |
2021-01-02 22:40:15 +0100 | <Rembane> | `unit -> unit` is a concrete instance of `a -> a` though. |
2021-01-02 22:41:14 +0100 | <Rembane> | gentauro: Pony is cool, there's a podcast about someone using it for really high performance stuff: https://corecursive.com/055-unproven-with-sean-allen/ |
2021-01-02 22:41:39 +0100 | <shinobi> | dminuoso: fun :: (Int -> a -> b) -> (Int -> a) -> Int -> b \n |
2021-01-02 22:41:39 +0100 | <shinobi> | fun f g x = f x (g x) |
2021-01-02 22:42:57 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-01-02 22:42:58 +0100 | knupfer1 | (~Thunderbi@200116b824cbdc0041d19ba065e80d02.dip.versatel-1u1.de) |
2021-01-02 22:42:59 +0100 | knupfer | (~Thunderbi@87.123.206.117) (Read error: Connection reset by peer) |
2021-01-02 22:42:59 +0100 | knupfer1 | knupfer |
2021-01-02 22:43:09 +0100 | knupfer | (~Thunderbi@200116b824cbdc0041d19ba065e80d02.dip.versatel-1u1.de) (Client Quit) |
2021-01-02 22:43:19 +0100 | knupfer | (~Thunderbi@200116b824cbdc009ded78f9657295f0.dip.versatel-1u1.de) |
2021-01-02 22:43:33 +0100 | <b4er> | If someone want to have a good laugh about a "language" that is probably solely marketing BS: https://blog.usejournal.com/monoids-to-groupoids-492c35105113?gi=17adacd5d88e |
2021-01-02 22:44:17 +0100 | <dminuoso> | shinobi: There you go. Would you believe, that this implementation works for any other type than Int? I.e. that its independent of the choice whether you replace Int with say Bool? |
2021-01-02 22:46:43 +0100 | <gentauro> | b4er: is it somekind of "Aprils Fool"? |
2021-01-02 22:47:23 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-02 22:47:42 +0100 | <shinobi> | I see where you're going. Isn't <*> supposed to return another applicative though? |
2021-01-02 22:48:04 +0100 | <gentauro> | b4er: the `multix.ai` makes me think that the hole blogpost + slides is made by some AI … |
2021-01-02 22:48:33 +0100 | <dminuoso> | shinobi: I suggest losing the notion of “a Applicative” as something on the value level perhaps |
2021-01-02 22:48:42 +0100 | <dminuoso> | If you look at the type signature again, you will see: |
2021-01-02 22:48:45 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
2021-01-02 22:49:01 +0100 | <gentauro> | b4er: def generated by AI: https://multix.sfo2.cdn.digitaloceanspaces.com/Category%20Theory%20TallCat.pdf (nobody would ever write this BS) |
2021-01-02 22:49:05 +0100 | <dminuoso> | (Int -> a -> b) -> (Int -> a) -> Int -> b |
2021-01-02 22:49:14 +0100 | <dminuoso> | If I add optional parens you get |
2021-01-02 22:49:22 +0100 | <dminuoso> | (Int -> a -> b) -> (Int -> a) -> (Int -> b) |
2021-01-02 22:49:52 +0100 | <dminuoso> | Do you see how you have two input things that each depend on an Int, and you produce something that itself depends on an Int? |
2021-01-02 22:49:58 +0100 | <shinobi> | ok. so can you walk me through one example? |
2021-01-02 22:50:07 +0100 | <shinobi> | yes |
2021-01-02 22:50:15 +0100 | <shinobi> | I think... haha |
2021-01-02 22:50:46 +0100 | geekosaur | (ac3a8f5d@172.58.143.93) (Remote host closed the connection) |
2021-01-02 22:51:37 +0100 | <shinobi> | (+) <$> (+3) <*> (*100) $ 5 |
2021-01-02 22:51:49 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-01-02 22:51:52 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-02 22:51:56 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-02 22:53:04 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) (Remote host closed the connection) |
2021-01-02 22:53:20 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) |
2021-01-02 22:53:37 +0100 | usr25 | (~usr25@unaffiliated/usr25) ("Leaving") |
2021-01-02 22:53:47 +0100 | <b4er> | gentauro, this video suggests otherwise: youtube.com/watch?v=hU8lG-R67Qg |
2021-01-02 22:54:12 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-02 22:55:21 +0100 | <Uniaika> | holy crap |
2021-01-02 22:55:43 +0100 | <Uniaika> | I just saw someone send "=#" as an emoji on an IRC server |
2021-01-02 22:55:58 +0100 | <gentauro> | =# |
2021-01-02 22:55:58 +0100 | <Uniaika> | and my first reflex was "Hmm, I know this operator from somewhere…" |
2021-01-02 22:56:12 +0100 | <gentauro> | Uniaika: what is it? |
2021-01-02 22:56:12 +0100 | <Uniaika> | What have y'all done to me?!?! |
2021-01-02 22:56:39 +0100 | <kritzefitz> | When I call a C function via FFI and the C code calls a Haskell function, is the inner Haskell function executed in a new thread as per myThreadId? |
2021-01-02 22:56:48 +0100 | <Uniaika> | no bloody idea, gentauro |
2021-01-02 22:57:16 +0100 | <gentauro> | b4er: I have tried to watch/listen to the video. I think I loose IQ for every word I hear … I better stop :( |
2021-01-02 22:57:19 +0100 | <merijn> | kritzefitz: unspecified |
2021-01-02 22:57:24 +0100 | <boxscape> | I'd say it's a person with two mouths and two bandaids placed over those mouths at a right angle |
2021-01-02 22:57:52 +0100 | <merijn> | kritzefitz: I'd strongly recommend changing your code so that that question becomes irrelevant ;) |
2021-01-02 22:58:59 +0100 | tp47 | (1f0a80ba@31-10-128-186.cgn.dynamic.upc.ch) (Remote host closed the connection) |
2021-01-02 22:59:46 +0100 | <gentauro> | b4er: merijn: now I know how to pronounce De Bruijn :P https://youtu.be/hU8lG-R67Qg?t=1804 (30:04) |
2021-01-02 22:59:59 +0100 | <gentauro> | b4er: this is `too much`, I'm going blind and deaf xD |
2021-01-02 23:00:19 +0100 | <kritzefitz> | merijn, that seems to be the case. |
2021-01-02 23:00:28 +0100 | <gentauro> | «@nythrox Yep this is applied category theory - if you are looking for the pure stuff you are better with the maths versions» The Catbox |
2021-01-02 23:00:45 +0100 | <merijn> | gentauro: That is...rather off :p |
2021-01-02 23:00:58 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-02 23:01:00 +0100 | <b4er> | Ahahahahaha, nice how we got a spelling and pronunciation class today |
2021-01-02 23:01:52 +0100 | <merijn> | gentauro: This (minus microphone noise) is the right way: https://forvo.com/word/nicolaas_govert_de_bruijn/ :) |
2021-01-02 23:01:54 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-02 23:01:58 +0100 | <kritzefitz> | Can I assume that two pieces of code (running on different or the same thread) run on the same OS thread if they run on the same capability as per threadCapability? |
2021-01-02 23:02:23 +0100 | <kritzefitz> | (assuming both run on bounded threads) |
2021-01-02 23:02:30 +0100 | <merijn> | kritzefitz: Maybe, although I'm not sure what's guaranteed |
2021-01-02 23:02:47 +0100 | <merijn> | kritzefitz: tbh, you're in "eh, better look at the RTS source code" territory here :p |
2021-01-02 23:03:15 +0100 | <gentauro> | merijn: I would expect more "throat" when hitting the "j" |
2021-01-02 23:03:42 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) |
2021-01-02 23:03:46 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) (Client Quit) |
2021-01-02 23:03:50 +0100 | <gentauro> | I remember from when I went to Amsterdam, that the Dutch language has some "Danish sound word" |
2021-01-02 23:04:05 +0100 | <gentauro> | so when we took the tram, I was turning around cos I though danes were talking |
2021-01-02 23:04:15 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
2021-01-02 23:04:19 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-01-02 23:04:23 +0100 | <boxscape> | merijn is that also how to pronounce the ij in your name |
2021-01-02 23:04:32 +0100 | <boxscape> | oh waitr |
2021-01-02 23:04:35 +0100 | <boxscape> | that doesn't make sense |
2021-01-02 23:04:38 +0100 | <merijn> | gentauro: Well, it's an archaic spelling, in modern Dutch it'd be spelled "bruin" rather than "bruijn" and it's pronounced just like the former now (now being, as "recent" as 1900s, possibly late 1800s) |
2021-01-02 23:04:39 +0100 | <boxscape> | it's not meruijn |
2021-01-02 23:04:47 +0100 | <merijn> | boxscape: See above ;) |
2021-01-02 23:04:53 +0100 | <boxscape> | oh |
2021-01-02 23:04:57 +0100 | <boxscape> | thanks |
2021-01-02 23:05:08 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:ccd9:595d:1bc6:b87f) |
2021-01-02 23:08:04 +0100 | <shinobi> | fmapping (+) over (+3) seems strange to me. Is this just building up an expression tree? |
2021-01-02 23:08:33 +0100 | <boxscape> | % :t fmap (+) (+3) |
2021-01-02 23:08:34 +0100 | <yahb> | boxscape: Num a => a -> a -> a |
2021-01-02 23:10:52 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:81fd:2b8d:9354:7a4f) |
2021-01-02 23:11:15 +0100 | <Vulfe> | which instance of fmap is this using |
2021-01-02 23:11:20 +0100 | <Vulfe> | or rather, which Functor instance |
2021-01-02 23:11:31 +0100 | <koz_> | Vulfe: ((->) a) |
2021-01-02 23:11:35 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-01-02 23:11:36 +0100 | <shinobi> | ((->) r) |
2021-01-02 23:11:42 +0100 | <Vulfe> | oh okay, sure |
2021-01-02 23:12:57 +0100 | <boxscape> | shinobi I' |
2021-01-02 23:12:59 +0100 | <boxscape> | whoops |
2021-01-02 23:14:25 +0100 | <boxscape> | shinobi it's not quite clear to me what you mean by building up an expression tree, but here I personally also find looking at the type signature quite helpful |
2021-01-02 23:14:26 +0100 | <boxscape> | % :t fmap @((->) Int) |
2021-01-02 23:14:26 +0100 | <yahb> | boxscape: (a -> b) -> (Int -> a) -> Int -> b |
2021-01-02 23:14:31 +0100 | <boxscape> | b in this case is (a -> a) |
2021-01-02 23:14:40 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
2021-01-02 23:14:46 +0100 | <boxscape> | so then it's (a -> (a -> a)) -> (Int -> a) -> Int -> (a -> a) |
2021-01-02 23:16:00 +0100 | <boxscape> | the implementation would be |
2021-01-02 23:16:15 +0100 | <boxscape> | fmap f g x y = f (g x) y |
2021-01-02 23:16:21 +0100 | <boxscape> | I think? |
2021-01-02 23:16:57 +0100 | <boxscape> | yes |
2021-01-02 23:17:20 +0100 | <kritzefitz> | merijn, thanks. I guess I'll have to think about this a bit more. |
2021-01-02 23:17:26 +0100 | v_m_v | (~vm_v@2a02:aa12:3200:6480:14d3:e041:99da:4fe5) (Remote host closed the connection) |
2021-01-02 23:18:49 +0100 | Foritus | (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-01-02 23:19:51 +0100 | <Vulfe> | it's a bit clearer to me if I write this as (pure (+)) <*> ... for whatever reason |
2021-01-02 23:19:59 +0100 | <shinobi> | Yes, I agree. I may have not been stating is precisely. Since the above is left associative, the above would yield fmap (+) (+3) and I was trying to figure out what that means. Now I see it would be Num a => a -> a -> a . It would need an a to fully apply (+3) and need another a to fully apply (+) |
2021-01-02 23:20:05 +0100 | Foritus | (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
2021-01-02 23:20:40 +0100 | <boxscape> | right |
2021-01-02 23:25:58 +0100 | christo | (~chris@81.96.113.213) |
2021-01-02 23:30:16 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-01-02 23:36:43 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2021-01-02 23:37:23 +0100 | azure | (~azure@36.79.200.71) |
2021-01-02 23:37:47 +0100 | azure | Guest63263 |
2021-01-02 23:38:01 +0100 | knupfer | (~Thunderbi@200116b824cbdc009ded78f9657295f0.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-01-02 23:40:16 +0100 | zangi | (~azure@36.79.200.71) (Ping timeout: 256 seconds) |
2021-01-02 23:42:50 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2021-01-02 23:45:40 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-01-02 23:46:01 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-02 23:47:02 +0100 | christo | (~chris@81.96.113.213) |
2021-01-02 23:47:26 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-02 23:50:19 +0100 | <dminuoso> | shinobi: One way to think of fmap is that it maps functions to functions. |
2021-01-02 23:50:50 +0100 | <dminuoso> | For instance, it can be used to map functions working on Int to functions |
2021-01-02 23:50:59 +0100 | <dminuoso> | Uh, Sorry, |
2021-01-02 23:51:01 +0100 | yorick | (~yorick@oftn/oswg-member/yorick) (Quit: reboot) |
2021-01-02 23:51:07 +0100 | <dminuoso> | For instance, it can be used to map functions working on Int to functions working on lists of Int. |
2021-01-02 23:51:33 +0100 | fendor_ | (~fendor@178.115.129.22.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-01-02 23:52:45 +0100 | dhil | (~dhil@78.156.97.38) |
2021-01-02 23:53:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-02 23:54:02 +0100 | yorick | (~yorick@oftn/oswg-member/yorick) |
2021-01-02 23:55:17 +0100 | hiroaki | (~hiroaki@2a02:908:4b18:8c40::4b02) |