2020-11-13 00:00:58 +0100 | alp | (~alp@2a01:e0a:58b:4920:a000:aac2:57e0:fe16) (Remote host closed the connection) |
2020-11-13 00:01:16 +0100 | alp | (~alp@2a01:e0a:58b:4920:3450:37c2:436b:8f86) |
2020-11-13 00:01:36 +0100 | <Axman6> | Hmm, at ANU we used to have a system which would play student's final assignments off against each other (I can't remember the game now), and I believe we had limits on execution time and memory usage |
2020-11-13 00:03:08 +0100 | <Axman6> | jackdk: do you know anything about the thing I'm talking about? Or was it after/before your time? |
2020-11-13 00:04:18 +0100 | <fendor> | the issue is, students can use the server for developing their solutions... |
2020-11-13 00:04:30 +0100 | <fendor> | so I think I want to limit the memory of every ghci invocation on that server |
2020-11-13 00:04:51 +0100 | <fendor> | I guess the limits of the user system should do that automagically? |
2020-11-13 00:05:04 +0100 | <fendor> | iirc, you can configure the memory limit on a per user basis? |
2020-11-13 00:05:27 +0100 | <Axman6> | I believe so, but I have no idea how |
2020-11-13 00:05:38 +0100 | <jackdk> | Axman6: the versions I was working on were less sophisticated. The runner used System.timeout, the NFData class, and an IORef to enforce time limits on the program runtime |
2020-11-13 00:05:52 +0100 | <fendor> | well, time to ask the sys admin. not my job after all |
2020-11-13 00:06:00 +0100 | <jackdk> | sure this isn't an OS-level problem? I remember everyone crashing the student server the night before a concurrent systems assignment was due |
2020-11-13 00:06:10 +0100 | <jackdk> | then they put in process limits |
2020-11-13 00:06:19 +0100 | <jackdk> | fendor: yeah, I think that's a good idea |
2020-11-13 00:07:05 +0100 | <jackdk> | https://github.com/ndmitchell/spaceleak might have some haskell-side ideas for fiddling with this |
2020-11-13 00:07:19 +0100 | <fendor> | yeah, I agree, it should be solved on the os level. I just though, maybe there are some low haning fruit. But additionally, I just saw some students somehow installed hls on the server and use it for a remote vscode session. |
2020-11-13 00:07:47 +0100 | <fendor> | I am not worrying about space leaks in particular, students write bad code, that is to be expected, but the server should not give them all the memory |
2020-11-13 00:09:02 +0100 | <jackdk> | Yes, but space leaks -> eating memory, and the technique for catching them sooner is to bound the stack size that the rts is allowed to use. Perhaps that part is applicable to how students invoke GHCi |
2020-11-13 00:09:03 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-11-13 00:09:54 +0100 | <fendor> | maybe. Let's see whether we can limit the overall memory |
2020-11-13 00:12:23 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
2020-11-13 00:13:28 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-13 00:15:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 00:15:58 +0100 | hugh | (~hugh@79-66-200-43.dynamic.dsl.as9105.com) |
2020-11-13 00:16:14 +0100 | hugh | aldessa |
2020-11-13 00:16:46 +0100 | <aldessa> | hey, where can i get recursion puzzles? i thought it would be nice to have some puzzles for recursion schemes |
2020-11-13 00:17:20 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2020-11-13 00:17:27 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2020-11-13 00:22:06 +0100 | jokester_ | (~mono@unaffiliated/jokester) |
2020-11-13 00:22:24 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: leaving) |
2020-11-13 00:23:47 +0100 | HiRE_ | (~HiRE@2602:ffc5:20::1:512e) |
2020-11-13 00:23:53 +0100 | jokester | (~mono@unaffiliated/jokester) (Ping timeout: 260 seconds) |
2020-11-13 00:24:27 +0100 | borne | (~fritjof@200116b86423eb004fbf5cd6c83663b1.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-13 00:24:27 +0100 | DeadComaGrayce[m | (commagra1@gateway/shell/matrix.org/x-mqetgfqfsaaixhog) (Ping timeout: 260 seconds) |
2020-11-13 00:24:27 +0100 | psydruid | (psydruidma@gateway/shell/matrix.org/x-wvuhyqhqelgtcrbj) (Ping timeout: 260 seconds) |
2020-11-13 00:24:28 +0100 | aizen_s | (sid462968@gateway/web/irccloud.com/x-stnqhzxwtvurinhz) (Ping timeout: 260 seconds) |
2020-11-13 00:24:28 +0100 | HiRE | (~HiRE@2602:ffc5:20::1:512e) (Ping timeout: 260 seconds) |
2020-11-13 00:24:28 +0100 | grol | (~quassel@2620:11e:1000:2:250:56ff:fea4:7) (Ping timeout: 260 seconds) |
2020-11-13 00:24:48 +0100 | borne | (~fritjof@200116b86423eb004fbf5cd6c83663b1.dip.versatel-1u1.de) |
2020-11-13 00:24:55 +0100 | DeadComaGrayce[m | (commagra1@gateway/shell/matrix.org/x-ybppbwirrexxdalc) |
2020-11-13 00:25:44 +0100 | grol | (~quassel@2620:11e:1000:2:250:56ff:fea4:7) |
2020-11-13 00:26:30 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2020-11-13 00:26:57 +0100 | psydruid | (psydruidma@gateway/shell/matrix.org/x-dxoeoaxpehfltoxm) |
2020-11-13 00:27:42 +0100 | aizen_s | (sid462968@gateway/web/irccloud.com/x-rpdggkhwylxxzxar) |
2020-11-13 00:28:34 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2020-11-13 00:30:24 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Read error: Connection reset by peer) |
2020-11-13 00:30:49 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Ping timeout: 264 seconds) |
2020-11-13 00:32:17 +0100 | borne | (~fritjof@200116b86423eb004fbf5cd6c83663b1.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-13 00:34:52 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-11-13 00:37:12 +0100 | aldessa | (~hugh@79-66-200-43.dynamic.dsl.as9105.com) (Read error: Connection reset by peer) |
2020-11-13 00:37:41 +0100 | borne | (~fritjof@200116b86423eb004fbf5cd6c83663b1.dip.versatel-1u1.de) |
2020-11-13 00:37:54 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer) |
2020-11-13 00:38:36 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-13 00:40:36 +0100 | Ariakenom | (~Ariakenom@h-82-196-111-82.NA.cust.bahnhof.se) (Quit: Leaving) |
2020-11-13 00:40:48 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 00:43:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-113-241.w86-198.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2020-11-13 00:43:31 +0100 | alp | (~alp@2a01:e0a:58b:4920:3450:37c2:436b:8f86) (Ping timeout: 272 seconds) |
2020-11-13 00:45:47 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 00:48:28 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 00:49:26 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 00:49:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 00:49:58 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection) |
2020-11-13 00:50:11 +0100 | <hekkaidekapus> | fendor: When we have needs like yours this side, we handle it at the OS level by putting setting limits for every user. |
2020-11-13 00:50:43 +0100 | <hekkaidekapus> | Ony a systemd-capable Linux, this will do: |
2020-11-13 00:50:45 +0100 | jedws | (~jedws@101.184.175.183) (Client Quit) |
2020-11-13 00:51:14 +0100 | <hekkaidekapus> | systemd-run --user --scope -p 'MemoryHigh=XXXG' -p 'CPUQuota=YYY%' $argv |
2020-11-13 00:52:35 +0100 | <hekkaidekapus> | Usually, ghc and ghci are symlinks to the previous command where `$argv = ghc(i)`. |
2020-11-13 00:53:34 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2020-11-13 00:54:06 +0100 | <Axman6> | to figure out cpu%, see Erlang (the person, not the language's) work on sharing resources :P |
2020-11-13 00:54:12 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-2-77.w83-200.abo.wanadoo.fr) |
2020-11-13 00:54:20 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 00:54:29 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-11-13 00:54:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 00:55:17 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 256 seconds) |
2020-11-13 00:56:38 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
2020-11-13 00:56:44 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-13 00:59:57 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2020-11-13 01:00:01 +0100 | AstroDroid | (~AstroDroi@84.39.117.57) () |
2020-11-13 01:07:52 +0100 | machinedgod | (~machinedg@207.253.244.210) (Quit: Reconnecting) |
2020-11-13 01:08:16 +0100 | machinedgod | (~machinedg@207.253.244.210) |
2020-11-13 01:10:07 +0100 | crdrost | (~crdrost@2601:646:8280:85f0:6046:db55:79c6:4622) |
2020-11-13 01:11:55 +0100 | star_cloud | (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2020-11-13 01:11:55 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-11-13 01:12:13 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
2020-11-13 01:13:21 +0100 | star_cloud | (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) |
2020-11-13 01:13:31 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) |
2020-11-13 01:16:02 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2020-11-13 01:17:02 +0100 | argent0 | (~argent0@168.227.98.81) (Quit: leaving) |
2020-11-13 01:17:35 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-13 01:18:28 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-2-77.w83-200.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2020-11-13 01:19:22 +0100 | christo | (~chris@81.96.113.213) |
2020-11-13 01:20:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 01:21:11 +0100 | veverak | (~squirrel@ip-89-102-98-161.net.upcbroadband.cz) (Quit: WeeChat 2.3) |
2020-11-13 01:21:45 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2020-11-13 01:24:13 +0100 | sim590 | (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 264 seconds) |
2020-11-13 01:24:58 +0100 | taio | (~enrik@p200300ceaf3ada00997810ade8eb1ff9.dip0.t-ipconnect.de) |
2020-11-13 01:25:31 +0100 | squirrel1 | (~squirrel@ip-89-102-98-161.net.upcbroadband.cz) |
2020-11-13 01:25:45 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-107-7.w86-212.abo.wanadoo.fr) |
2020-11-13 01:26:42 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 272 seconds) |
2020-11-13 01:27:54 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 01:28:54 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-13 01:29:10 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-13 01:30:18 +0100 | squirrel1 | veverak |
2020-11-13 01:31:03 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-13 01:32:30 +0100 | <taio> | Hello; I have a question about the understanding of instances: Since instances are automatically (implicitly) loaded from modules, it is not possible to manually determine which instance is to be used. consequently "orphaned" instances lead to conflicts. But why didn't a rule be introduced that local instances within a module are preferred over global ones? If the functions are called in another module, the local |
2020-11-13 01:32:32 +0100 | <taio> | instances are always used for these functions. |
2020-11-13 01:32:42 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-13 01:33:49 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-11-13 01:33:52 +0100 | <Axman6> | there is only allowed to be one instance of a class for a type |
2020-11-13 01:34:07 +0100 | <Axman6> | and that mean globally |
2020-11-13 01:34:26 +0100 | <Axman6> | s* |
2020-11-13 01:37:28 +0100 | jespada_ | (~jespada@90.254.245.49) |
2020-11-13 01:38:09 +0100 | <taio> | I know ... but I asked whether it would be unproblematic to introduce local instances that would be preferred for all functions of the respective module. |
2020-11-13 01:38:21 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
2020-11-13 01:38:56 +0100 | <monochrom> | Your mechanism allows two code paths to see and use two different instances for the same type and the same class. |
2020-11-13 01:39:20 +0100 | <monochrom> | Any mechanism that achieves that will have to answer the following question: |
2020-11-13 01:40:23 +0100 | <monochrom> | On one code path I use one Ord instance of Int to build a binary search tree containing Ints. Clearly, this binary search tree makes sense only under the comparator I used when it's built. |
2020-11-13 01:41:12 +0100 | <monochrom> | I now pass this binary search tree to the other code path. It uses, nay, assumes, a different comparator. Now it tries to use this other incompatible comparator to try to do BST lookup. |
2020-11-13 01:41:23 +0100 | <monochrom> | WHAT THE HELL IS WITH THAT? |
2020-11-13 01:44:02 +0100 | <monochrom> | https://open.kattis.com/problems/outofsorts |
2020-11-13 01:44:03 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-13 01:44:57 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-13 01:45:14 +0100 | coot | (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
2020-11-13 01:46:21 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-13 01:47:17 +0100 | hekkaidekapus_ | hekkaidekapus |
2020-11-13 01:47:51 +0100 | <taio> | this situation would only occur if I used the functions from that module where local instances are defined. If I don't want these alternative implementations, then I won't use the functions. |
2020-11-13 01:48:12 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-13 01:49:10 +0100 | <monochrom> | I'm passing one data structure from one module to another. What function? |
2020-11-13 01:49:43 +0100 | <monochrom> | The recipient module is using its own function to try to make sense of this binary tree. |
2020-11-13 01:49:52 +0100 | <monochrom> | And that's exactly the wrong thing to do. |
2020-11-13 01:51:47 +0100 | <monochrom> | Alternatively, tell me how your mechanism forbids me from doing what I said I planned to do. |
2020-11-13 01:52:49 +0100 | hcchien | (~hcchien@217.146.82.202) |
2020-11-13 01:54:09 +0100 | <SrPx> | What is a good / efficient structure to represent bitstring? I.e., equivalent of: `data Bits = Empty | Bit0 Bits | Bit1 Bits` ? With fast pattern-matching, concatenation and equality? |
2020-11-13 01:54:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-13 01:54:58 +0100 | <SrPx> | And appending of a bit* |
2020-11-13 01:55:38 +0100 | <taio> | the instance would be selected indirectly via the functions: |
2020-11-13 01:55:40 +0100 | <taio> | Module M1 has its own instance for Ord T, which overshadows the global instance Ord T ONLY for functions of this module. the module M1 has the sorting function s. |
2020-11-13 01:55:53 +0100 | <taio> | Everywhere outside of this module where I call s from M1, the local instance Ord T is used. That is predictable and known. I don't understand what's problematic about that. |
2020-11-13 01:56:22 +0100 | <hpc> | SrPx: store it in ByteString and build your operations on that |
2020-11-13 01:56:43 +0100 | <SrPx> | but isn't ByteString slow for concatenation and appending? |
2020-11-13 01:57:10 +0100 | <SrPx> | says cons is O(n) on docs https://hackage.haskell.org/package/bytestring-0.11.0.0/docs/Data-ByteString.html |
2020-11-13 01:57:27 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 01:57:35 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 01:58:11 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 01:58:12 +0100 | <monochrom> | The BST insert function is in M1. Which comparator does it use? The BST lookup function is outside M1. Which comparator does it use? |
2020-11-13 01:58:16 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Ping timeout: 258 seconds) |
2020-11-13 01:59:51 +0100 | <taio> | ok i think i understand what you mean now. In my module M1 I could use a function of another module, which expects this global instance Ord T in order to work as expected. |
2020-11-13 02:00:45 +0100 | <monochrom> | You could. But people won't. |
2020-11-13 02:01:40 +0100 | <monochrom> | If I s/Ord/Monad/ to create another example, you will have a hard time convincing people to "don't do that". |
2020-11-13 02:02:53 +0100 | <monochrom> | If M1 has its own instance Monad (State s), and outside M1 there is another, you really can't convince people to "don't write '>>=' both inside M1 and outside; or if you do, don't let the two pieces of code ever see each other". |
2020-11-13 02:03:18 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2020-11-13 02:04:14 +0100 | <monochrom> | People will really be writing code like M1.a1 Outside.>>= some_f, where M1.a1 is defined with M1.>>= |
2020-11-13 02:04:24 +0100 | <monochrom> | Hilarity shall ensue. |
2020-11-13 02:05:37 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 02:09:18 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-13 02:13:22 +0100 | <taio> | hmmm ok; |
2020-11-13 02:13:23 +0100 | <taio> | another idea: |
2020-11-13 02:13:25 +0100 | <taio> | A mechanism is introduced to take over an existing type class - possibly under a new name - in another module so that the methods are in a different namespace. |
2020-11-13 02:13:26 +0100 | <taio> | The advantage would be that all existing instances are also taken over, but can be overwritten by new instances according to the existing rules. |
2020-11-13 02:13:28 +0100 | <taio> | The selection would be made via the namespace. |
2020-11-13 02:15:43 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
2020-11-13 02:18:03 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2020-11-13 02:20:10 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) |
2020-11-13 02:20:12 +0100 | borne | (~fritjof@200116b86423eb004fbf5cd6c83663b1.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-13 02:20:28 +0100 | <unclechu> | hey, can someone remind me what `|` means here? `type Demote k = (r :: Type) | r -> k` |
2020-11-13 02:21:04 +0100 | <taio> | for example like this: adopt Ord as My Ord |
2020-11-13 02:21:06 +0100 | <taio> | instance My Ord ... where ... |
2020-11-13 02:23:08 +0100 | TxGuy | (~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) |
2020-11-13 02:24:28 +0100 | TxGuy | (~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) (Client Quit) |
2020-11-13 02:25:46 +0100 | <monochrom> | https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html |
2020-11-13 02:26:49 +0100 | devalot | (~ident@mail.pmade.com) (Quit: ZNC - http://znc.in) |
2020-11-13 02:27:08 +0100 | <monochrom> | (highest density of puns in a title ever, heehee) |
2020-11-13 02:27:25 +0100 | <dsal> | unclechu: It's just a sum type like Bool |
2020-11-13 02:27:27 +0100 | <dsal> | @src Bool |
2020-11-13 02:27:27 +0100 | <lambdabot> | data Bool = False | True deriving (Eq, Ord) |
2020-11-13 02:28:38 +0100 | dsal | suddenly very distracted by that deriving list |
2020-11-13 02:28:45 +0100 | <dsal> | I'm glad I don't have to write base |
2020-11-13 02:29:02 +0100 | Lord_of_Life | (~Lord@46.217.223.48) |
2020-11-13 02:30:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 02:30:28 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 02:30:35 +0100 | <solonarv> | dsal: no, that is not a sum type (cc: unclechu ) |
2020-11-13 02:30:49 +0100 | Lord_of_Life_ | (~Lord@46.217.216.229) (Ping timeout: 264 seconds) |
2020-11-13 02:31:12 +0100 | <solonarv> | that's an injectivity annotation (InjectiveTypeFamilies), which uses similar syntax to FunctionalDependencies |
2020-11-13 02:31:31 +0100 | <dsal> | I just noticed `type` there. Been writing wrong language all day. |
2020-11-13 02:31:35 +0100 | <monochrom> | fancy |
2020-11-13 02:32:22 +0100 | <dsal> | Sorry for spreading my confusion. |
2020-11-13 02:32:23 +0100 | <solonarv> | both (r :: Type) and r -> k would be illegal syntax in that position of a data declaration |
2020-11-13 02:32:28 +0100 | <monochrom> | Yeah I suffer a bit of language mix-up too. After having written a fair amount of Racket, I wrote in C "(for i=0" |
2020-11-13 02:32:35 +0100 | <monochrom> | and "(if i==0" |
2020-11-13 02:33:32 +0100 | <dsal> | solonarv: Yeah, I'm at my least smart of the day. |
2020-11-13 02:33:40 +0100 | <dsal> | I was writing go all day. |
2020-11-13 02:34:07 +0100 | <solonarv> | same tbh, I've been up for 20 hours now and had a bunch of various brain-using things to do all day |
2020-11-13 02:34:17 +0100 | <monochrom> | Further in the past, when I was writing both Java and Haskell, I wrote "public class Ord where" |
2020-11-13 02:34:45 +0100 | <monochrom> | Aw, up for 20 hours, that kills, you need sleep. |
2020-11-13 02:34:52 +0100 | <unclechu> | solonarv: thanks |
2020-11-13 02:34:58 +0100 | dsal | is having a sleep deprivation conversation in another chat |
2020-11-13 02:35:04 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Ping timeout: 258 seconds) |
2020-11-13 02:35:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 02:35:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 02:35:45 +0100 | <taio> | ok thanks for answering... |
2020-11-13 02:35:51 +0100 | <monochrom> | Actually a short nap helps tremendously. |
2020-11-13 02:36:45 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds) |
2020-11-13 02:37:55 +0100 | <monochrom> | My experience leads me to hypothesize that if you are working hard and sleep-deprived like this, if you are OK with taking short naps, your body switches to the uber-sleep mode, giving you the much fabled superpower of uber-sleep. |
2020-11-13 02:38:00 +0100 | <hekkaidekapus> | Another sleepless here: taio, fancy a paper? |
2020-11-13 02:40:16 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 02:40:17 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-11-13 02:41:14 +0100 | <taio> | hm I'm not an academic. it's just an idea of mine. and I wonder if that would be possible or unproblematic. |
2020-11-13 02:42:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) |
2020-11-13 02:42:44 +0100 | <hekkaidekapus> | taio: “Type classes in Haskell” by C.V. Hall, K. Hammomd, S.L.P. Jones and P.L. Wadler <http://web.mit.edu/ghc/old.ghc/programatica/tools.old/semantics/Overloading/Related/p109-hall.pdf> |
2020-11-13 02:44:07 +0100 | <hekkaidekapus> | You can skip the gnary parts and you will still get the gist of why you wanted to do was fundamentally problematic. |
2020-11-13 02:44:08 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2020-11-13 02:45:32 +0100 | <hekkaidekapus> | Caveat: That paper covers what is now known as ‘Haskell 98’. Since 1998, there have been many additions to instance resolution mechanics. |
2020-11-13 02:46:35 +0100 | jathan | (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
2020-11-13 02:46:36 +0100 | <hekkaidekapus> | *S.L. Peyton Jones |
2020-11-13 02:46:43 +0100 | <taio> | well Idris has "named implementations" and it seems to work, to have proven itself. |
2020-11-13 02:46:47 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) (Client Quit) |
2020-11-13 02:46:57 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 258 seconds) |
2020-11-13 02:47:13 +0100 | <hekkaidekapus> | Idris is a whole other beast. |
2020-11-13 02:48:24 +0100 | <unclechu> | i have a GADT `Stdout ∷ α `OneOf` '[ 'Play, 'Render ] ⇒ Backend α` (where `OneOf` is a type family which constrain an element to be in a list). |
2020-11-13 02:48:26 +0100 | <unclechu> | i want to define a type-class which would convert type-level values to runtime values so i defined it like this: `class ToVal (α ∷ τ) where toVal ∷ Proxy (α ∷ τ) → τ` |
2020-11-13 02:48:27 +0100 | <unclechu> | but this `instance ToVal ('Stdout ∷ Backend 'Play) where toVal Proxy = Stdout` fails with `it has an unpromotable context ‘OneOf α '[ 'Play, 'Render]’` |
2020-11-13 02:48:34 +0100 | <unclechu> | can i do something about it? |
2020-11-13 02:49:15 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) |
2020-11-13 02:50:02 +0100 | kish` | (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
2020-11-13 02:51:02 +0100 | neightchan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-13 02:52:27 +0100 | <unclechu> | i cannot define any type with that constrainer constructor: `type Test = '[ 'Stdout ] :: [Backend 'Play]` fails with “unpromotable context” |
2020-11-13 02:52:40 +0100 | blankhart | (~blankhart@pool-100-35-219-3.nwrknj.fios.verizon.net) |
2020-11-13 02:53:01 +0100 | nahcetan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 02:53:58 +0100 | <unclechu> | constrained* |
2020-11-13 02:55:15 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) (Ping timeout: 260 seconds) |
2020-11-13 02:56:37 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-11-13 02:56:52 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-13 02:59:36 +0100 | taio | (~enrik@p200300ceaf3ada00997810ade8eb1ff9.dip0.t-ipconnect.de) (Quit: Konversation terminated!) |
2020-11-13 03:00:11 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 03:00:11 +0100 | Collateral | (~Collatera@4e69b241.skybroadband.com) (Ping timeout: 246 seconds) |
2020-11-13 03:00:26 +0100 | Hijiri | (~Hijiri@104.236.61.10) (Ping timeout: 272 seconds) |
2020-11-13 03:06:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 03:07:19 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2020-11-13 03:07:40 +0100 | <blankhart> | let is treated as a core language construct rather than as sugar for a lambda and application in some presentations like write you a haskell. is let generalization the reason for this? are there others? |
2020-11-13 03:09:26 +0100 | <monochrom> | That and recursion. |
2020-11-13 03:09:51 +0100 | <dolio> | What does it mean to be a 'core language construct'? The dynamic semantics in Haskell are given in terms of other things, but the type checking is different. |
2020-11-13 03:10:05 +0100 | <dolio> | In the Haskell report, I mean. |
2020-11-13 03:10:51 +0100 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) (Remote host closed the connection) |
2020-11-13 03:10:51 +0100 | <blankhart> | fair, i was just referring to type checking |
2020-11-13 03:12:15 +0100 | devalot | (~ident@mail.pmade.com) |
2020-11-13 03:12:22 +0100 | sim590 | (~sim590@modemcable090.207-203-24.mc.videotron.ca) |
2020-11-13 03:13:55 +0100 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) |
2020-11-13 03:14:12 +0100 | <blankhart> | monochrom, is the recursion point that you need to separate out let in order to have proper binding groups? i am not quite there yet in studying this so the question may be premature |
2020-11-13 03:14:34 +0100 | <blankhart> | but that is what i took you to mean |
2020-11-13 03:14:54 +0100 | <blankhart> | oh nevermind i think i see |
2020-11-13 03:15:21 +0100 | <blankhart> | you can't have a recursive (anonymous) lambda |
2020-11-13 03:15:50 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) |
2020-11-13 03:15:52 +0100 | <monochrom> | :) |
2020-11-13 03:15:55 +0100 | <unclechu> | correct me if my assumption if i’m wrong: using GADTs with constraints on type-level is currently impossible in haskell? |
2020-11-13 03:16:02 +0100 | <unclechu> | is my assumption is wrong* |
2020-11-13 03:16:19 +0100 | <unclechu> | if my assumption*.. you get it |
2020-11-13 03:19:17 +0100 | g-belmonte | (~g-belmont@2804:14c:8786:9312:3638:eaf5:dc36:146d) |
2020-11-13 03:19:25 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 264 seconds) |
2020-11-13 03:21:42 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2020-11-13 03:22:31 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 03:24:39 +0100 | <bqv> | unclechu: per my simple understanding, yes |
2020-11-13 03:25:13 +0100 | <unclechu> | bqv: okay, thanks |
2020-11-13 03:25:50 +0100 | <unclechu> | bqv: is there any chance you know whether it is supported in idris for instance? |
2020-11-13 03:26:08 +0100 | <bqv> | No clue :p |
2020-11-13 03:29:32 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 03:32:36 +0100 | xsperry | (~as@unaffiliated/xsperry) (Ping timeout: 256 seconds) |
2020-11-13 03:34:18 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
2020-11-13 03:36:02 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds) |
2020-11-13 03:36:10 +0100 | lucasb | (uid333435@gateway/web/irccloud.com/x-lsuvezrsvbepowff) (Quit: Connection closed for inactivity) |
2020-11-13 03:36:23 +0100 | Unhammerd | (~Unhammer@gateway/tor-sasl/unhammer) |
2020-11-13 03:38:23 +0100 | Unhammer | (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
2020-11-13 03:41:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 03:45:28 +0100 | <unclechu> | to overcome this i added additional *promotable* type `data SBackend = SStdout | ...etc` |
2020-11-13 03:46:05 +0100 | <unclechu> | and added a type class `class SBackendVal (α ∷ Operation) (β ∷ SBackend) where sBackendVal ∷ Proxy β → Backend α` |
2020-11-13 03:46:49 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 03:47:07 +0100 | xff0x | (~fox@2001:1a81:53be:a900:e888:cf37:a0ae:58b2) (Ping timeout: 260 seconds) |
2020-11-13 03:49:01 +0100 | xff0x | (~fox@2001:1a81:53f2:4b00:a4e6:ede5:b1af:2468) |
2020-11-13 03:49:49 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 258 seconds) |
2020-11-13 03:50:50 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 03:51:08 +0100 | <MarcelineVQ> | "<unclechu> bqv: is there any chance you know whether it is supported in idris for instance?" constraints on the actual "data ..." line or constraints on the data constructors that follow it? Could be more fruitful to say what/why you're wanting to do instead of whether it's possible |
2020-11-13 03:51:49 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 264 seconds) |
2020-11-13 03:52:21 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-13 03:52:59 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-13 03:59:27 +0100 | <MarcelineVQ> | That being said though yes you can use gadts with constraints at the type level in idris |
2020-11-13 03:59:55 +0100 | Audentity | (~Audentity@4e69b241.skybroadband.com) |
2020-11-13 04:00:01 +0100 | hcchien | (~hcchien@217.146.82.202) () |
2020-11-13 04:00:03 +0100 | <MarcelineVQ> | Do you need that class or would a type family do the job you're after? |
2020-11-13 04:02:28 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
2020-11-13 04:05:05 +0100 | <unclechu> | MarcelineVQ: less boilerplate for instance. more flexibility. in my case i had to add an another type which mostly just duplicates original type |
2020-11-13 04:05:27 +0100 | g-belmonte | (~g-belmont@2804:14c:8786:9312:3638:eaf5:dc36:146d) (Quit: Leaving) |
2020-11-13 04:06:15 +0100 | <unclechu> | MarcelineVQ: type families do not exist in runtime. i was writing a type class in order to be able to make a runtime value from type-level value. |
2020-11-13 04:06:34 +0100 | <unclechu> | just to shift it from type-level to runtime level in other words |
2020-11-13 04:07:02 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 04:07:07 +0100 | clog | (~nef@bespin.org) (Ping timeout: 260 seconds) |
2020-11-13 04:07:23 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-11-13 04:08:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 04:10:35 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2020-11-13 04:11:47 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 04:13:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 04:17:23 +0100 | aarvar | (~foewfoiew@50.35.43.33) |
2020-11-13 04:26:14 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 258 seconds) |
2020-11-13 04:26:51 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-13 04:27:48 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 04:28:23 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-13 04:31:58 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Ping timeout: 246 seconds) |
2020-11-13 04:35:50 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 04:38:09 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 04:38:51 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) (Ping timeout: 260 seconds) |
2020-11-13 04:43:25 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-11-13 04:43:35 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) |
2020-11-13 04:47:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 04:49:22 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 272 seconds) |
2020-11-13 04:50:08 +0100 | machinedgod | (~machinedg@207.253.244.210) (Ping timeout: 260 seconds) |
2020-11-13 04:50:18 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-13 04:55:39 +0100 | Guest87092 | (~variable@139.28.218.148) |
2020-11-13 04:57:59 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-13 04:58:01 +0100 | lagothrix | Guest77095 |
2020-11-13 04:58:01 +0100 | Guest77095 | (~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services))) |
2020-11-13 04:58:07 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-11-13 04:58:13 +0100 | theDon | (~td@muedsl-82-207-238-200.citykom.de) (Ping timeout: 246 seconds) |
2020-11-13 05:00:09 +0100 | haasn | (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2020-11-13 05:00:13 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2020-11-13 05:00:16 +0100 | theDon | (~td@muedsl-82-207-238-116.citykom.de) |
2020-11-13 05:00:21 +0100 | Rudd0 | (~Rudd0@185.189.115.98) |
2020-11-13 05:01:36 +0100 | haasn | (~nand@mpv/developer/haasn) |
2020-11-13 05:01:43 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-11-13 05:01:57 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-ezpbwntcbzeneljs) (Quit: Connection closed for inactivity) |
2020-11-13 05:08:06 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
2020-11-13 05:08:35 +0100 | crdrost | (~crdrost@2601:646:8280:85f0:6046:db55:79c6:4622) (Quit: This computer has gone to sleep) |
2020-11-13 05:08:41 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2020-11-13 05:08:43 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-13 05:08:58 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Quit: Leaving) |
2020-11-13 05:09:21 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 05:09:41 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 05:11:37 +0100 | texasmynsted | (~texasmyns@212.102.45.118) (Read error: Connection reset by peer) |
2020-11-13 05:13:47 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds) |
2020-11-13 05:15:49 +0100 | darjeeling_ | (~darjeelin@122.245.210.116) (Ping timeout: 264 seconds) |
2020-11-13 05:16:14 +0100 | darjeeling_ | (~darjeelin@122.245.210.116) |
2020-11-13 05:18:48 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:d89f:d10e:927a:2962) |
2020-11-13 05:21:06 +0100 | jakob_ | (~textual@p200300f49f16220035a786c99145f1b1.dip0.t-ipconnect.de) |
2020-11-13 05:22:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2020-11-13 05:24:28 +0100 | texasmynsted_ | (~texasmyns@99.96.221.112) (Ping timeout: 246 seconds) |
2020-11-13 05:26:42 +0100 | verement | (~anonymous@cpe-76-167-229-223.san.res.rr.com) (Quit: verement) |
2020-11-13 05:27:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2020-11-13 05:27:48 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 05:27:51 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-11-13 05:32:27 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) (Ping timeout: 260 seconds) |
2020-11-13 05:33:20 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-13 05:33:27 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2020-11-13 05:34:11 +0100 | elliott_ | (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-13 05:34:27 +0100 | acidjnk_new | (~acidjnk@p200300d0c718f66175ef21b7256ec1f4.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-13 05:34:46 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 05:35:39 +0100 | verement | (~anonymous@cpe-76-167-229-223.san.res.rr.com) |
2020-11-13 05:35:48 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 05:35:57 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
2020-11-13 05:38:50 +0100 | nados | (~dan@69-165-210-185.cable.teksavvy.com) (Quit: Leaving) |
2020-11-13 05:39:06 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 05:39:43 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2020-11-13 05:42:02 +0100 | <jakob_> | Hey people, beginner question here: I want to look for a specific constructor in a list and i'm not sure whats the elegant way to do it. Here is what i came up with https://pastebin.com/e5QX1wpr Is there a nicer way to achieve what i want? |
2020-11-13 05:42:32 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 05:43:28 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 05:43:30 +0100 | <bqv> | looks about as good as you'll get, to me |
2020-11-13 05:45:20 +0100 | jedws | (~jedws@101.184.175.183) (Client Quit) |
2020-11-13 05:45:55 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 05:47:36 +0100 | <jakob_> | actually the type MyNum has a lot of constructors (in my non example code its MyValue) and i want a check for every constructor. That would mean writing a lot these isMy... functions |
2020-11-13 05:48:58 +0100 | <bqv> | well in that case, why not make a newtyped Eq instance which only compares the constructor |
2020-11-13 05:50:15 +0100 | <bqv> | then you can do e.g. any (\x -> TypeOf x == MyRationalType) |
2020-11-13 05:50:26 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 05:50:52 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 256 seconds) |
2020-11-13 05:54:16 +0100 | <jakob_> | ah, that sounds like a neat idea. I'll try it |
2020-11-13 05:54:45 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2020-11-13 05:55:27 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 260 seconds) |
2020-11-13 05:55:52 +0100 | <dsal> | > [Left 1, Left 2, Left 3, Right 4, Left 5] ^? folded . _Right -- jakob_ non-beginner answer for LOL |
2020-11-13 05:55:54 +0100 | <lambdabot> | Just 4 |
2020-11-13 05:56:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 05:56:57 +0100 | <bqv> | lenses solve everything |
2020-11-13 05:57:27 +0100 | <dsal> | The cause of, and solution to... |
2020-11-13 06:01:06 +0100 | <dsal> | `myDouble :: MyNum -> Just Double` is probably more useful, though. |
2020-11-13 06:01:15 +0100 | <dsal> | er, Maybe |
2020-11-13 06:01:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-13 06:02:39 +0100 | clog | (~nef@bespin.org) |
2020-11-13 06:04:47 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds) |
2020-11-13 06:07:18 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 06:07:57 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 06:07:57 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.240.220) |
2020-11-13 06:10:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-11-13 06:11:01 +0100 | <jakob_> | bqv this is not what you suggested i suppose? https://pastebin.com/m5gh6TrS |
2020-11-13 06:11:31 +0100 | <bqv> | ah, not quite |
2020-11-13 06:11:49 +0100 | <jakob_> | i thought so ;) |
2020-11-13 06:12:23 +0100 | <jakob_> | do you have a hint what you would go for |
2020-11-13 06:12:23 +0100 | motte | (~weechat@unaffiliated/motte) (Ping timeout: 260 seconds) |
2020-11-13 06:12:37 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
2020-11-13 06:13:10 +0100 | <dsal> | bqv's suggestion involved making a newtype called TypeOf |
2020-11-13 06:13:49 +0100 | <bqv> | jakob_: think i overthought that one, pastebin.com/z4SvV5wr |
2020-11-13 06:15:02 +0100 | <dsal> | I still think the is* model is probably not great. |
2020-11-13 06:15:43 +0100 | <bqv> | hard to tell, without more info |
2020-11-13 06:16:38 +0100 | <jakob_> | dsal yes, the maybe version might be helpful indeed. I'll try it after i got this one working |
2020-11-13 06:16:50 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 06:17:24 +0100 | <dsal> | e.g.: |
2020-11-13 06:17:26 +0100 | <bqv> | it's probably simpler codewise, thanks to makePrisms |
2020-11-13 06:17:43 +0100 | <dsal> | > myInteger (MyDouble 3) |
2020-11-13 06:17:45 +0100 | <lambdabot> | Nothing |
2020-11-13 06:17:50 +0100 | <dsal> | > myInteger (MyInteger 3) |
2020-11-13 06:17:52 +0100 | <lambdabot> | Just 3 |
2020-11-13 06:17:55 +0100 | <dsal> | :t myInteger |
2020-11-13 06:17:56 +0100 | <lambdabot> | MyNum -> Maybe Integer |
2020-11-13 06:18:02 +0100 | <dsal> | :t isJust . myInteger |
2020-11-13 06:18:03 +0100 | <lambdabot> | MyNum -> Bool |
2020-11-13 06:18:15 +0100 | uhrenmacher | (~uhrenmach@p4fc078af.dip0.t-ipconnect.de) |
2020-11-13 06:18:24 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 06:18:50 +0100 | <bqv> | i just suggested the more direct route because it's a lot less boilerplate |
2020-11-13 06:18:55 +0100 | uhrenmacher | (~uhrenmach@p4fc078af.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-11-13 06:20:07 +0100 | <dsal> | Sure, it's a shorter path to the stated goal. I just don't like the goal. :) |
2020-11-13 06:20:27 +0100 | <bqv> | simple questions get simple answers :p |
2020-11-13 06:20:41 +0100 | <dsal> | Yeah, I'm trying to remember how to write a prism by hand. |
2020-11-13 06:20:49 +0100 | <bqv> | :t prism |
2020-11-13 06:20:51 +0100 | <lambdabot> | (Choice p, Applicative f) => (b -> t) -> (s -> Either t a) -> p a (f b) -> p s (f t) |
2020-11-13 06:20:52 +0100 | <bqv> | :t prism' |
2020-11-13 06:20:53 +0100 | <lambdabot> | (Choice p, Applicative f) => (b -> s) -> (s -> Maybe a) -> p a (f b) -> p s (f s) |
2020-11-13 06:23:45 +0100 | <jakob_> | bvq https://pastebin.com/d30J3Usw thanks for the hint. |
2020-11-13 06:25:05 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
2020-11-13 06:25:25 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2020-11-13 06:26:39 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@66.115.189.209) |
2020-11-13 06:30:07 +0100 | <koz_> | :t confusing |
2020-11-13 06:30:09 +0100 | <lambdabot> | Applicative f => LensLike (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda f) (Data.Functor.Yoneda.Yoneda f)) s t a b -> LensLike f s t a b |
2020-11-13 06:30:35 +0100 | <Axman6> | :t confusing traverse |
2020-11-13 06:30:36 +0100 | <lambdabot> | (Applicative f, Traversable t) => LensLike f (t a) (t b) a b |
2020-11-13 06:30:36 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:d89f:d10e:927a:2962) (Read error: Connection reset by peer) |
2020-11-13 06:31:07 +0100 | day_ | (~Unknown@unaffiliated/day) |
2020-11-13 06:33:01 +0100 | <bqv> | confusing is confusing |
2020-11-13 06:33:37 +0100 | <bqv> | aiui it's effect isn't visible at type-level so it's weird |
2020-11-13 06:34:11 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.240.220) (Ping timeout: 265 seconds) |
2020-11-13 06:34:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 06:34:40 +0100 | day | (~Unknown@unaffiliated/day) (Ping timeout: 265 seconds) |
2020-11-13 06:34:40 +0100 | day_ | day |
2020-11-13 06:35:00 +0100 | <Axman6> | it's secret make go faster juice |
2020-11-13 06:35:19 +0100 | <bqv> | :D |
2020-11-13 06:38:35 +0100 | <koz_> | :t confusing fmap |
2020-11-13 06:38:37 +0100 | <lambdabot> | Applicative f => LensLike f (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda f) (Data.Functor.Yoneda.Yoneda f) a) (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda f) (Data. |
2020-11-13 06:38:37 +0100 | <lambdabot> | Functor.Yoneda.Yoneda f) b) a b |
2020-11-13 06:42:30 +0100 | <bqv> | :t lens . has . confusing . elements |
2020-11-13 06:42:31 +0100 | <lambdabot> | error: |
2020-11-13 06:42:31 +0100 | <lambdabot> | • Couldn't match type ‘Gen a’ |
2020-11-13 06:42:31 +0100 | <lambdabot> | with ‘(a0 |
2020-11-13 06:42:37 +0100 | <bqv> | darn |
2020-11-13 06:42:42 +0100 | <bqv> | that worked on a repl |
2020-11-13 06:43:21 +0100 | <bqv> | :: (Traversable t1, Functor f) => (Int -> Bool) -> (t1 a -> b -> t2) -> (Bool -> f b) -> t1 a -> f t2 |
2020-11-13 06:44:24 +0100 | AbhayAysola | (312587e9@49.37.135.233) |
2020-11-13 06:45:12 +0100 | <koz_> | What package(s) did those identifiers come from? |
2020-11-13 06:45:16 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.240.220) |
2020-11-13 06:45:21 +0100 | <koz_> | I think lambdabot might have something else for one or more of them. |
2020-11-13 06:45:30 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 06:45:33 +0100 | <koz_> | :t is |
2020-11-13 06:45:34 +0100 | <lambdabot> | error: |
2020-11-13 06:45:34 +0100 | <lambdabot> | • Variable not in scope: is |
2020-11-13 06:45:34 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2020-11-13 06:45:37 +0100 | <koz_> | :( |
2020-11-13 06:45:39 +0100 | <bqv> | they'll all be from lens, for me |
2020-11-13 06:45:42 +0100 | <Axman6> | % :t lens . has . confusing . elements |
2020-11-13 06:45:42 +0100 | <yahb> | Axman6: ; <interactive>:1:26: error:; * Variable not in scope: elements :: a -> LensLike (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda (Const Control.Monad.RWS.Any)) (Data.Functor.Yoneda.Yoneda (Const Control.Monad.RWS.Any))) s s a0 a0; * Perhaps you meant one of these: `Q.elements' (imported from Test.QuickCheck), `Lens.elements' (imported from Control.Lens), `element' (imported from |
2020-11-13 06:45:45 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2020-11-13 06:46:00 +0100 | hackage | trade-journal 0.0.2 - https://hackage.haskell.org/package/trade-journal-0.0.2 (JohnWiegley) |
2020-11-13 06:46:24 +0100 | <koz_> | A better question: what does 'lens . has . confusing . elements' do? |
2020-11-13 06:46:44 +0100 | <bqv> | that's above my pay grade |
2020-11-13 06:46:56 +0100 | AbhayAysola | (312587e9@49.37.135.233) (Remote host closed the connection) |
2020-11-13 06:47:17 +0100 | <dsal> | has confuses me without needing confusing |
2020-11-13 06:47:50 +0100 | <koz_> | :t has |
2020-11-13 06:47:51 +0100 | <lambdabot> | Getting Any s a -> s -> Bool |
2020-11-13 06:48:05 +0100 | <koz_> | Isn't that just like, generalized member? |
2020-11-13 06:48:22 +0100 | <koz_> | (also, 'Getting Any' makes me giggle) |
2020-11-13 06:48:40 +0100 | <bqv> | it's true if the prism matches |
2020-11-13 06:48:42 +0100 | <bqv> | that's all i know |
2020-11-13 06:49:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2020-11-13 06:50:11 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-jujlikfcmwauxivg) (Quit: Connection closed for inactivity) |
2020-11-13 06:50:52 +0100 | jathan | (~jathan@69.61.93.38) |
2020-11-13 06:57:58 +0100 | monochrom | (trebla@216.138.220.146) |
2020-11-13 07:00:02 +0100 | Guest87092 | (~variable@139.28.218.148) () |
2020-11-13 07:02:14 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@66.115.189.209) (Quit: Leaving) |
2020-11-13 07:06:51 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-odsmdwwzesbrmhor) |
2020-11-13 07:09:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2020-11-13 07:12:07 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds) |
2020-11-13 07:12:19 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-13 07:14:28 +0100 | <dminuoso> | jakob_: Do you want to extract all values matching that constructor? |
2020-11-13 07:14:45 +0100 | <dminuoso> | Or just determine whether any value in the list was constructed with the given constructor? |
2020-11-13 07:16:38 +0100 | <jakob_> | dminuoso i don't care about the values, just about the constructors |
2020-11-13 07:17:26 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-13 07:17:45 +0100 | <bqv> | if you wanna get real spicy, you could probably use Typeable to get the constructor name |
2020-11-13 07:18:07 +0100 | <dminuoso> | % anyLeft xs = any [x | Left x <- xs ] |
2020-11-13 07:18:08 +0100 | <yahb> | dminuoso: ; <interactive>:88:18: error:; * Couldn't match expected type `a1 -> Bool' with actual type `[a]'; * In the first argument of `any', namely `[x | Left x <- xs]'; In the expression: any [x | Left x <- xs]; In an equation for `anyLeft': anyLeft xs = any [x | Left x <- xs]; * Relevant bindings include; xs :: [Either a b] (bound at <interactive>:88:9); anyLeft :: [Eithe |
2020-11-13 07:18:28 +0100 | <dminuoso> | oh |
2020-11-13 07:18:39 +0100 | <dminuoso> | % anyLeft xs = not (null [x | Left x <- xs ]) |
2020-11-13 07:18:39 +0100 | <yahb> | dminuoso: |
2020-11-13 07:19:40 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2020-11-13 07:19:51 +0100 | <dminuoso> | % anyLeft' = has (folded . _Left) |
2020-11-13 07:19:52 +0100 | <yahb> | dminuoso: |
2020-11-13 07:20:47 +0100 | <bqv> | % anyLeft [Left 1, Right 2] |
2020-11-13 07:20:47 +0100 | <yahb> | bqv: True |
2020-11-13 07:20:50 +0100 | <bqv> | neat |
2020-11-13 07:20:58 +0100 | <bqv> | list comprehensions are magic |
2020-11-13 07:21:21 +0100 | <dminuoso> | They're really just a bit more mathy looking interface for Monad. |
2020-11-13 07:21:28 +0100 | <dminuoso> | (And some MonadPlus) |
2020-11-13 07:21:59 +0100 | <bqv> | yeah, i've used list in do form |
2020-11-13 07:22:07 +0100 | <bqv> | but i didn't realise you could guard in a comprehension |
2020-11-13 07:22:14 +0100 | reallymemorable | (~quassel@2601:180:8300:8fd0:c5df:6e57:bcff:c1bb) (Ping timeout: 264 seconds) |
2020-11-13 07:22:54 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 07:23:06 +0100 | <jakob_> | dminuoso nice! List comprehensions for the win :) |
2020-11-13 07:23:10 +0100 | <jakob_> | thx |
2020-11-13 07:24:01 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds) |
2020-11-13 07:26:56 +0100 | echoreply | (~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1) |
2020-11-13 07:27:23 +0100 | echoreply | (~echoreply@unaffiliated/echoreply) |
2020-11-13 07:27:50 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 256 seconds) |
2020-11-13 07:28:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 07:30:37 +0100 | Jonkimi727406120 | (~Jonkimi@119.123.240.220) (Ping timeout: 258 seconds) |
2020-11-13 07:31:46 +0100 | <dsal> | I almost never use comprehensions for some reason. |
2020-11-13 07:32:20 +0100 | <bqv> | i used a do list yesterday |
2020-11-13 07:32:31 +0100 | <bqv> | because feels nicer than comprehension form |
2020-11-13 07:32:39 +0100 | <bqv> | and i needed a guard |
2020-11-13 07:32:57 +0100 | <dsal> | Haskell and emacs both seem to have this thing in common where there are so many things I can't even remember what all the things are. Not so much that I don't know how to use them, but that I forget they exist. |
2020-11-13 07:33:13 +0100 | <dsal> | Yeah, do + guard is pretty awesome for lists. |
2020-11-13 07:33:21 +0100 | ggole | (~ggole@2001:8003:8119:7200:cd0:562c:261b:241d) |
2020-11-13 07:33:26 +0100 | <jakob_> | about list comprehensions: i thought they were implemented in terms of map and concat? Nothing to to with monads |
2020-11-13 07:33:56 +0100 | <bqv> | if that were the case, what dminuoso did would be impossible, i think |
2020-11-13 07:35:31 +0100 | mmohammadi9812 | (~mmohammad@80.210.53.226) (Quit: Quit) |
2020-11-13 07:35:39 +0100 | <jakob_> | https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-420003.11 |
2020-11-13 07:35:59 +0100 | <dsal> | haskell tutorials often confuse what a thing is with what you can do with the thing. |
2020-11-13 07:36:11 +0100 | <bqv> | dsal: i find azure cloud also has that feature. unfortunately it comes in the "everything is constantly broken in an obscure way, and what isn't broken is only working due to the most unsightly of hacks" edition |
2020-11-13 07:36:41 +0100 | <dsal> | I can't even read the "new features we've added to AWS" emails anymore. |
2020-11-13 07:37:25 +0100 | <dsal> | Does lambdabot have an undo for list comprehensions? |
2020-11-13 07:37:43 +0100 | <dsal> | @miscomprehend [x | x <- [1..], odd ] |
2020-11-13 07:37:43 +0100 | <lambdabot> | Unknown command, try @list |
2020-11-13 07:39:19 +0100 | <dsal> | @undo do { Just x <- xs; pure x } |
2020-11-13 07:39:19 +0100 | <lambdabot> | xs >>= \ a -> case a of { Just x -> pure x; _ -> fail ""} |
2020-11-13 07:39:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 07:40:20 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-11-13 07:40:30 +0100 | <dsal> | > let xs = [Left 1, Right 2, Left 3, Right 4] in do { Right x <- xs; pure x } |
2020-11-13 07:40:32 +0100 | <lambdabot> | [2,4] |
2020-11-13 07:40:41 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 07:40:50 +0100 | <dsal> | > let xs = [Left 1, Right 2, Left 3, Right 4] in [ x | Left x <- xs ] |
2020-11-13 07:40:52 +0100 | <lambdabot> | [1,3] |
2020-11-13 07:41:13 +0100 | feliocrat | (~feliocrat@95.70.185.239) |
2020-11-13 07:43:22 +0100 | <dsal> | I used this mechanism of guarding yesterday, and still don't ever think about it. |
2020-11-13 07:43:30 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-kihpfdwzdbjfjvbb) (Quit: Connection closed for inactivity) |
2020-11-13 07:44:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-13 07:45:27 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 07:49:53 +0100 | <suzu_> | thats pretty cool |
2020-11-13 07:50:18 +0100 | <bqv> | "miscomprehend" lmao |
2020-11-13 07:53:01 +0100 | <koz_> | uncomprehend, surely? |
2020-11-13 07:53:08 +0100 | <koz_> | Which would be like... 'misunderstand'? |
2020-11-13 07:54:36 +0100 | asheshambasta | (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) |
2020-11-13 07:55:46 +0100 | coot | (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 256 seconds) |
2020-11-13 07:56:36 +0100 | aki_ | (~aki_@139.28.218.148) |
2020-11-13 07:57:49 +0100 | <dsal> | It was the nearest word I could find at the time. |
2020-11-13 07:58:54 +0100 | <dsal> | I can't find that thing I thought I did yesterday. It's the one where you use are in a monad and you want a maybe monad real quick that's also a guard, so you `Just x <- pure (some maybe monad stuff)` |
2020-11-13 07:59:45 +0100 | <dsal> | @undo do { Just x <- pure someMaybeMonadStuff; do x } -- I guess that's the same, but it feels different. |
2020-11-13 07:59:45 +0100 | <lambdabot> | pure someMaybeMonadStuff >>= \ a -> case a of { Just x -> x; _ -> fail ""} |
2020-11-13 08:00:20 +0100 | <dsal> | Also, I just said `do x` when I meant `pure x` |
2020-11-13 08:00:23 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2020-11-13 08:00:47 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-13 08:01:08 +0100 | <dsal> | @undo do { Just x <- pure maybeGetMeSomeAction; x } |
2020-11-13 08:01:08 +0100 | <lambdabot> | pure maybeGetMeSomeAction >>= \ a -> case a of { Just x -> x; _ -> fail ""} |
2020-11-13 08:01:47 +0100 | <dsal> | If I'm ever seen in public again, that's gonna be on my shirt. |
2020-11-13 08:02:35 +0100 | <bqv> | ha |
2020-11-13 08:03:43 +0100 | <dsal> | This is another case of undo killing magic, though. |
2020-11-13 08:04:57 +0100 | <bqv> | @pf \a -> case a of { Just x -> x; _ -> fail "" } |
2020-11-13 08:04:57 +0100 | <lambdabot> | Maybe you meant: pl bf |
2020-11-13 08:05:06 +0100 | <bqv> | @pl \a -> case a of { Just x -> x; _ -> fail "" } |
2020-11-13 08:05:06 +0100 | <lambdabot> | (line 1, column 17): |
2020-11-13 08:05:06 +0100 | <lambdabot> | unexpected '{' |
2020-11-13 08:05:06 +0100 | <lambdabot> | expecting variable, "(", operator or end of input |
2020-11-13 08:05:24 +0100 | <bqv> | i get it, because pointless. oh you. |
2020-11-13 08:05:44 +0100 | <bqv> | @pl \a -> case a of Just x -> x; _ -> fail ""; |
2020-11-13 08:05:44 +0100 | <lambdabot> | (line 1, column 26): |
2020-11-13 08:05:44 +0100 | <lambdabot> | unexpected '>' |
2020-11-13 08:05:44 +0100 | <lambdabot> | expecting operator |
2020-11-13 08:05:48 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 08:05:59 +0100 | <dsal> | That's weird. It doesn't seem to like case. |
2020-11-13 08:06:19 +0100 | <bqv> | indeed |
2020-11-13 08:06:56 +0100 | <dsal> | :t fromMaybe (fail "") |
2020-11-13 08:06:57 +0100 | <lambdabot> | MonadFail m => Maybe (m a) -> m a |
2020-11-13 08:07:37 +0100 | <bqv> | nice |
2020-11-13 08:15:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 08:15:24 +0100 | xerox_ | (~xerox@unaffiliated/xerox) |
2020-11-13 08:17:00 +0100 | alx741 | (~alx741@186.178.110.202) (Ping timeout: 258 seconds) |
2020-11-13 08:17:56 +0100 | zoran119 | (~zoran119@124-169-22-52.dyn.iinet.net.au) |
2020-11-13 08:19:19 +0100 | <bqv> | dsal: is AWS any less blackbox-y than azure? |
2020-11-13 08:19:56 +0100 | <bqv> | tbh even if it is it's still a cloud and at this point i think i just hate clouds |
2020-11-13 08:20:02 +0100 | bqv | young man shouts at cloud |
2020-11-13 08:22:19 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
2020-11-13 08:26:52 +0100 | <dsal> | Haha. I don't know azure at all. I know a little AWS and some of Google cloud from the inside. I use aws some. |
2020-11-13 08:29:40 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-13 08:29:58 +0100 | alx741 | (~alx741@186.178.110.152) |
2020-11-13 08:31:08 +0100 | borne | (~fritjof@200116b86489f5004fbf5cd6c83663b1.dip.versatel-1u1.de) |
2020-11-13 08:31:34 +0100 | jedws | (~jedws@101.184.175.183) (Quit: Textual IRC Client: www.textualapp.com) |
2020-11-13 08:35:46 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-13 08:38:01 +0100 | blankhart | (~blankhart@pool-100-35-219-3.nwrknj.fios.verizon.net) (Ping timeout: 246 seconds) |
2020-11-13 08:41:00 +0100 | jakob_ | (~textual@p200300f49f16220035a786c99145f1b1.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
2020-11-13 08:42:12 +0100 | z0 | (~z0@188.251.69.121) |
2020-11-13 08:43:25 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2020-11-13 08:43:57 +0100 | <z0> | hi. when using ghcid with the -l flag, is it possible to get coloured hlint output? |
2020-11-13 08:46:10 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) |
2020-11-13 08:46:52 +0100 | jakob_ | (~textual@p200300f49f162200e1f79f04dc8b19b7.dip0.t-ipconnect.de) |
2020-11-13 08:47:02 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
2020-11-13 08:47:12 +0100 | vilpan | (~0@212.117.1.172) |
2020-11-13 08:47:28 +0100 | Sanchayan | (~Sanchayan@2401:4900:3309:dec3:efb6:6366:cb4:cbe4) |
2020-11-13 08:48:27 +0100 | <dminuoso> | jakob_: map and concat are the Monad interface of list. |
2020-11-13 08:48:35 +0100 | <dminuoso> | map is just fmap, and concat is join |
2020-11-13 08:48:49 +0100 | <dminuoso> | and equivalently concatMap (the combination of those two) is just (=<<)/(>>=) |
2020-11-13 08:49:30 +0100 | <dminuoso> | dsal: also, you can just undo list comprehensions |
2020-11-13 08:49:41 +0100 | <dminuoso> | @undo [x | Just x <- xs] |
2020-11-13 08:49:41 +0100 | <lambdabot> | concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) xs |
2020-11-13 08:53:14 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-11-13 08:55:31 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-13 08:58:35 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-13 08:59:46 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 08:59:48 +0100 | knupfer | (~Thunderbi@200116b8249e5f00a4b9fafffef91ebc.dip.versatel-1u1.de) |
2020-11-13 09:00:39 +0100 | knupfer | (~Thunderbi@200116b8249e5f00a4b9fafffef91ebc.dip.versatel-1u1.de) (Remote host closed the connection) |
2020-11-13 09:00:47 +0100 | knupfer | (~Thunderbi@200116b8249e5f0024181441028bf74f.dip.versatel-1u1.de) |
2020-11-13 09:06:32 +0100 | borne | (~fritjof@200116b86489f5004fbf5cd6c83663b1.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-13 09:09:07 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-13 09:11:26 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 258 seconds) |
2020-11-13 09:12:09 +0100 | alp | (~alp@2a01:e0a:58b:4920:3450:37c2:436b:8f86) |
2020-11-13 09:12:20 +0100 | borne | (~fritjof@200116b86489f5004fbf5cd6c83663b1.dip.versatel-1u1.de) |
2020-11-13 09:18:13 +0100 | Lord_of_Life | (~Lord@46.217.223.48) (Changing host) |
2020-11-13 09:18:13 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-11-13 09:19:22 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 09:19:54 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 09:19:56 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) |
2020-11-13 09:24:55 +0100 | hiroaki | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2020-11-13 09:25:53 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2020-11-13 09:29:49 +0100 | thebnq | (~bnq@herrokitty.com) (Ping timeout: 256 seconds) |
2020-11-13 09:29:56 +0100 | thebnq | (~bnq@herrokitty.com) |
2020-11-13 09:30:51 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 09:34:23 +0100 | <bqv> | Do any of you have tricks to make cloud-like dev a ...better experience? Is it just suffering from horizon to horizon, or is there hope somewhere? |
2020-11-13 09:34:54 +0100 | mojtaba__ | (~bquest_12@5.200.109.144) (Quit: Leaving) |
2020-11-13 09:35:01 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 09:35:06 +0100 | <dminuoso> | From experience, and Im saying this as a company that is building out their own data center, cloud rarely offers reasonable advantages. |
2020-11-13 09:35:38 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) (Ping timeout: 272 seconds) |
2020-11-13 09:35:42 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 09:36:13 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 09:36:29 +0100 | <dminuoso> | You have unpredictable costs, and a cost scaling that favors the cloud provider not you (cloud is only cheaper if you need to scale *down* not *up) |
2020-11-13 09:36:39 +0100 | <dminuoso> | You have semantics that dont fit into traditional tooling |
2020-11-13 09:37:22 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-mfqotttnhsysdcxs) (Quit: Connection closed for inactivity) |
2020-11-13 09:37:54 +0100 | <dminuoso> | But really, the cost part is amazing. You first get tricked into thinking "this is cheaper because the cost scales with usage", just to realize this works in both directions later on... |
2020-11-13 09:38:04 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 09:38:09 +0100 | <dminuoso> | (And it turns out, bare metal is just cheaper if you need to scale up) |
2020-11-13 09:38:51 +0100 | <bqv> | Excellent |
2020-11-13 09:39:03 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) |
2020-11-13 09:39:34 +0100 | <bqv> | Saved so I can parrot that to my coworkers someday… |
2020-11-13 09:40:16 +0100 | <dminuoso> | Another thing is, most problems don't have a high variability in terms of performance needs |
2020-11-13 09:40:46 +0100 | <dminuoso> | You usually have a narrow corridor in which you fluctuate. For most problems you dont need to randomly scale between "10 users today, 20 million tomorrow |
2020-11-13 09:41:09 +0100 | jedws | (~jedws@101.184.175.183) (Client Quit) |
2020-11-13 09:41:36 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-13 09:41:44 +0100 | <dminuoso> | Also, cloud providers heavily force you into a vendor lockin |
2020-11-13 09:42:06 +0100 | Audentity | (~Audentity@4e69b241.skybroadband.com) (Ping timeout: 258 seconds) |
2020-11-13 09:42:16 +0100 | Audentity_ | (~Audentity@4e69b241.skybroadband.com) |
2020-11-13 09:42:45 +0100 | <dminuoso> | You want their elastic computing resources? You better also use their elastic storage solution. And their elastic backup solutions. Oh and any analystics only works with their tools now |
2020-11-13 09:42:56 +0100 | <dminuoso> | You want to build and deploy? You're forced onto their tooling too |
2020-11-13 09:43:33 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-13 09:43:40 +0100 | <dminuoso> | And that doesn't even begin to discuss the data privacy needs. |
2020-11-13 09:44:30 +0100 | hackage | lentil 1.4.1.0 - frugal issue tracker https://hackage.haskell.org/package/lentil-1.4.1.0 (fffaaa) |
2020-11-13 09:44:47 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit) |
2020-11-13 09:44:56 +0100 | <dminuoso> | Fun fact, most of Amazons profits actually comes from AWS, not Marketplace. |
2020-11-13 09:45:02 +0100 | <dminuoso> | They are *that* darn profitable. |
2020-11-13 09:45:05 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) (Ping timeout: 240 seconds) |
2020-11-13 09:45:58 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) |
2020-11-13 09:46:31 +0100 | <merijn> | dminuoso: Well, it also depends on how much fancy stuff you buy into |
2020-11-13 09:46:39 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-13 09:47:03 +0100 | <merijn> | My brother just got hired at a new place after doing AWS for a long time and his first reaction was "wow...you guys are wasting a lot of money on AWS..." |
2020-11-13 09:47:10 +0100 | jakov | (~jakov@95.168.120.30) |
2020-11-13 09:47:21 +0100 | <merijn> | People just don't wanna think about performance engineering |
2020-11-13 09:47:38 +0100 | <dminuoso> | merijn: Sure, AWS can be done cheaply with great care. But amazon counts on you not doing that. |
2020-11-13 09:47:53 +0100 | <dminuoso> | And if you're lazy, bare metal is just cheaper. |
2020-11-13 09:47:58 +0100 | <merijn> | I'm gonna go out and estimate that a solid 80-90% of all workloads can *easily* be handled by a single (beefy) machine |
2020-11-13 09:48:03 +0100 | <dminuoso> | Indeed. |
2020-11-13 09:48:09 +0100 | <dminuoso> | That is the silver bullet. |
2020-11-13 09:48:19 +0100 | <merijn> | "ooh, no, we've got big data" |
2020-11-13 09:48:34 +0100 | <merijn> | Fucking BS...there's like maybe 3 companies that have big data |
2020-11-13 09:48:49 +0100 | <dminuoso> | merijn: Much of the "cloud or kubernetes" problem space addresses problems virtually noone has. |
2020-11-13 09:48:59 +0100 | <merijn> | The rest just have incompetent software engineers and/or are too cheap to bother |
2020-11-13 09:49:01 +0100 | <dminuoso> | Like, kubernetes is an incredibly amazing thing |
2020-11-13 09:49:13 +0100 | <dminuoso> | If your problem is "how do I manage hundreds of services deployed to tens of thousands of nodes" |
2020-11-13 09:49:20 +0100 | <dminuoso> | Problems everybody has in their day jobs, right? |
2020-11-13 09:49:21 +0100 | <merijn> | dminuoso: oh, lemme look up a quote I saw recently |
2020-11-13 09:49:22 +0100 | <dminuoso> | ;) |
2020-11-13 09:49:51 +0100 | kuribas | (~user@ptr-25vy0iaeei1zsuhust9.18120a2.ip6.access.telenet.be) |
2020-11-13 09:49:56 +0100 | <merijn> | dminuoso: https://twitter.com/rothgar/status/1317524239218397185 |
2020-11-13 09:50:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2020-11-13 09:50:20 +0100 | <dminuoso> | Haha that's a good one |
2020-11-13 09:50:59 +0100 | <dminuoso> | Its the same with "high availability" |
2020-11-13 09:51:01 +0100 | <merijn> | All the latest hype "ecosystems" are just pointless for most people |
2020-11-13 09:51:15 +0100 | <dminuoso> | A well maintained single node has better high availability than piss-poor "Im gonna slap HAProxy ontop of this" |
2020-11-13 09:51:30 +0100 | <merijn> | dminuoso: It's like people adopting Hadoop |
2020-11-13 09:51:50 +0100 | jakov | (~jakov@95.168.120.30) (Quit: leaving) |
2020-11-13 09:51:55 +0100 | <merijn> | Spoiler: 80% of hadoop solutions I've seen/encountered are *slower* than a single node solution |
2020-11-13 09:52:31 +0100 | <dminuoso> | (not to mention that high availability is a too broad term, what does that even mean? automatic failover? do we need active/active? active/passive? Or maybe we have differences wrt to writing/reading? Or maybe we want load sharing instead? |
2020-11-13 09:52:56 +0100 | <kuribas> | merijn: brilliant |
2020-11-13 09:52:58 +0100 | <dminuoso> | Trying to get the automatic failover right tends to introduce a lot of moving parts |
2020-11-13 09:53:19 +0100 | <dminuoso> | like, if you add haproxy, you again have a single point of failure, and it must detect non-operatoinality |
2020-11-13 09:53:39 +0100 | <kuribas> | merijn: wasn't there a company that rewrote all their scala code using hadoop in pure haskell running on a single machine, and found that everything was faster? |
2020-11-13 09:54:11 +0100 | <dminuoso> | merijn: here we strive for a particular model of load sharing and automatic failover |
2020-11-13 09:54:51 +0100 | <merijn> | dminuoso: Good failover requires robust software, but nobody has that :p |
2020-11-13 09:55:07 +0100 | <merijn> | kuribas: I wouldn't be surprised |
2020-11-13 09:55:09 +0100 | <dminuoso> | if service A needs to talk to service B, we just replicate service B a few times. A then maintains a pool of possible B targets, and implements load sharing by randomizing which B target to talk to |
2020-11-13 09:55:21 +0100 | <kuribas> | merijn: ah, it was this one: https://tech.channable.com/posts/2019-10-04-why-we-decided-to-go-for-the-big-rewrite.html |
2020-11-13 09:55:22 +0100 | <dminuoso> | If B emits failures, we mark them as temporarily dead and remove them from the pool for a while |
2020-11-13 09:55:37 +0100 | <dminuoso> | so the high availability comes from *engineering* |
2020-11-13 09:55:42 +0100 | <kuribas> | merijn: ah, spark, not hadoop |
2020-11-13 09:55:44 +0100 | <dminuoso> | not "add random software ontop of it" |
2020-11-13 09:55:58 +0100 | <merijn> | During my internship we were asked to benchmark Apache Spark (runs on Hadoop) and GraphX (runs on Spark) and found *negative* scaling |
2020-11-13 09:56:06 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ea5faf5572fb93fcc2.ipv6.abo.wanadoo.fr) |
2020-11-13 09:56:09 +0100 | <merijn> | i.e. it got slower the more nodes you added to the cluster |
2020-11-13 09:56:25 +0100 | <dminuoso> | merijn: The usual cost of implementing the above, about 50 lines of haskell. Reliable failover with some good load sharing! |
2020-11-13 09:56:30 +0100 | <merijn> | kuribas: Spark runs on hadoop :p |
2020-11-13 09:56:43 +0100 | <dminuoso> | Only requirements: stateless services! |
2020-11-13 09:58:52 +0100 | <kuribas> | I wonder how many problems cannot be solved on a single instance. |
2020-11-13 09:58:58 +0100 | <kuribas> | or at least subdivided easily |
2020-11-13 09:59:07 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 10:00:01 +0100 | aki_ | (~aki_@139.28.218.148) () |
2020-11-13 10:00:16 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-11-13 10:00:25 +0100 | <merijn> | kuribas: One of my favourite graph processing papers was just a bunch of guys going: So we bought a machine with 1 TB RAM and filled it with TBs of high speed SSDs and our graph processing framework outperforms clusters of 100s of servers |
2020-11-13 10:00:32 +0100 | <dminuoso> | kuribas: DNS servers! |
2020-11-13 10:00:53 +0100 | <dminuoso> | If you operate an authoritative name server, it is required to have at least two of them. |
2020-11-13 10:01:28 +0100 | <merijn> | dminuoso: I mean, back in the early 2000s there were people hobbying on MUDs that supported hot copy-over, but major companies in 2020 can't manage to update stuff without downtime >.> |
2020-11-13 10:01:30 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 10:02:28 +0100 | jsmolic | (~jakov@95.168.121.30) |
2020-11-13 10:02:41 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 10:02:50 +0100 | jsmolic | (~jakov@95.168.121.30) (Client Quit) |
2020-11-13 10:03:05 +0100 | <kuribas> | merijn: I have been lectured many time how great our lisp platform is, in that you can hot-patch everything in real-time. But when the system goes down, it takes two hours to restart. |
2020-11-13 10:03:11 +0100 | <kuribas> | which happened a few times already |
2020-11-13 10:03:13 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2020-11-13 10:03:39 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-11-13 10:03:44 +0100 | <merijn> | Wow... |
2020-11-13 10:03:56 +0100 | <merijn> | 20+ Haskell openings in EU |
2020-11-13 10:04:22 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) |
2020-11-13 10:04:26 +0100 | Sanchayan | (~Sanchayan@2401:4900:3309:dec3:efb6:6366:cb4:cbe4) (Quit: leaving) |
2020-11-13 10:04:34 +0100 | <kuribas> | maybe I should apply there... |
2020-11-13 10:04:41 +0100 | <kuribas> | I wonder if they allow 4/5 |
2020-11-13 10:05:00 +0100 | <dminuoso> | merijn: facebook has hot code replacement with haskell :P |
2020-11-13 10:05:21 +0100 | <dminuoso> | but in general, updating a live system is complicated |
2020-11-13 10:05:50 +0100 | <dminuoso> | Especially if there's multiple parts, because you cant generally execute an update atomically |
2020-11-13 10:06:01 +0100 | <merijn> | kuribas: THat's what negotiation is for ;) |
2020-11-13 10:06:16 +0100 | <dminuoso> | What does 4/5 mean? |
2020-11-13 10:06:23 +0100 | <kuribas> | dminuoso: 4 day workweek |
2020-11-13 10:06:25 +0100 | <merijn> | dminuoso: I assume 32 hour work week |
2020-11-13 10:06:30 +0100 | <kuribas> | yes |
2020-11-13 10:06:39 +0100 | <dminuoso> | ah |
2020-11-13 10:07:01 +0100 | <merijn> | Looks like they're mostly in Scandinavia so, that's probably negotiable |
2020-11-13 10:07:13 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
2020-11-13 10:08:50 +0100 | <dminuoso> | merijn: Oh and regarding our earlier discussion with "single node", my current project involves a "servant api + postgres" server. |
2020-11-13 10:09:20 +0100 | <dminuoso> | Since all but one systems only need read-only, we've decided to duplicate the servant+postgres onto every sever that needs to talk to my API |
2020-11-13 10:09:36 +0100 | <dminuoso> | So there's one master servant+postgres, and everything else receives postgres streaming replicatoin |
2020-11-13 10:10:39 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-11-13 10:10:41 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-13 10:10:56 +0100 | <dminuoso> | so if any node fails, everyone else can still talk to their local API running on a local database |
2020-11-13 10:11:19 +0100 | <dminuoso> | that way, we remove the network dependency from the service, and have higher resilience of any single node failing |
2020-11-13 10:11:52 +0100 | <dminuoso> | (this service is a mission critical piece in our infrastructure, we just cant take the chance of a singular node going down at the wrong time( |
2020-11-13 10:12:27 +0100 | jsmolic | (~jakov@95.168.121.30) |
2020-11-13 10:12:44 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) |
2020-11-13 10:13:03 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-11-13 10:13:22 +0100 | <kuribas> | dminuoso: that's why most of our code is written with lists instead of structs, because structs cannot be updated easily. |
2020-11-13 10:13:35 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-13 10:13:41 +0100 | Franciman | (~francesco@host-82-56-223-169.retail.telecomitalia.it) |
2020-11-13 10:13:55 +0100 | <kuribas> | dminuoso: but it decreases readability, because (car foo) isn't clear on what car means. |
2020-11-13 10:14:45 +0100 | <kuribas> | I feel it's a lot of effort to solve a problem that is not a problem (hot reloading). |
2020-11-13 10:15:12 +0100 | <kuribas> | with a stateless service we could just restart the app in seconds. |
2020-11-13 10:16:50 +0100 | theoneyouknow | (~quassel@95.168.121.30) |
2020-11-13 10:16:56 +0100 | atbd | (~atbd@68.166.138.88.rev.sfr.net) (Quit: leaving) |
2020-11-13 10:17:02 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) |
2020-11-13 10:17:23 +0100 | jakalx | (~jakalx@base.jakalx.net) (Ping timeout: 260 seconds) |
2020-11-13 10:18:11 +0100 | z0 | (~z0@188.251.69.121) (Quit: leaving) |
2020-11-13 10:18:41 +0100 | invaser1 | (~Thunderbi@46-133-153-250.mobile.vf-ua.net) |
2020-11-13 10:21:47 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds) |
2020-11-13 10:21:47 +0100 | invaser1 | invaser |
2020-11-13 10:29:44 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) (Quit: This computer has gone to sleep) |
2020-11-13 10:31:10 +0100 | jneira | (5127ac76@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.118) (Ping timeout: 258 seconds) |
2020-11-13 10:31:15 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
2020-11-13 10:34:18 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:d89f:d10e:927a:2962) |
2020-11-13 10:34:28 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 10:37:16 +0100 | akegalj | (~akegalj@93-138-135-85.adsl.net.t-com.hr) |
2020-11-13 10:37:32 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
2020-11-13 10:37:55 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-13 10:39:21 +0100 | <tomsmeding> | kuribas: no wonder you're longing to program in haskell |
2020-11-13 10:39:31 +0100 | <kuribas> | tomsmeding: yeah :) |
2020-11-13 10:42:22 +0100 | cow-orker | (~foobar@pogostick.net) (Remote host closed the connection) |
2020-11-13 10:47:25 +0100 | <benschza> | Are there any Arrows or Yampa gurus online today? :) Solved the purely Haskell related type issue I had yesterday with all of your help, but have another query somebody with Yampa experience could probably advise on. |
2020-11-13 10:49:33 +0100 | ubert | (~Thunderbi@p200300ecdf1e535be6b318fffe838f33.dip0.t-ipconnect.de) |
2020-11-13 10:50:04 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2020-11-13 10:53:34 +0100 | invaser1 | (~Thunderbi@31.148.23.125) |
2020-11-13 10:54:36 +0100 | jespada_ | (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
2020-11-13 10:56:08 +0100 | coot | (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
2020-11-13 10:57:05 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-13 10:57:19 +0100 | invaser | (~Thunderbi@46-133-153-250.mobile.vf-ua.net) (Ping timeout: 246 seconds) |
2020-11-13 10:57:19 +0100 | invaser1 | invaser |
2020-11-13 11:00:35 +0100 | akegalj | (~akegalj@93-138-135-85.adsl.net.t-com.hr) (Quit: leaving) |
2020-11-13 11:00:42 +0100 | knupfer | (~Thunderbi@200116b8249e5f0024181441028bf74f.dip.versatel-1u1.de) (Remote host closed the connection) |
2020-11-13 11:00:51 +0100 | knupfer | (~Thunderbi@200116b8249e5f0010c5e6f6682b8ccf.dip.versatel-1u1.de) |
2020-11-13 11:00:57 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection) |
2020-11-13 11:02:01 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Ping timeout: 264 seconds) |
2020-11-13 11:03:02 +0100 | xff0x | (~fox@2001:1a81:53f2:4b00:a4e6:ede5:b1af:2468) (Ping timeout: 264 seconds) |
2020-11-13 11:03:39 +0100 | xff0x | (~fox@2001:1a81:53f2:4b00:f0ff:5175:9775:725d) |
2020-11-13 11:05:55 +0100 | <dminuoso> | Why cant I have recursive imports |
2020-11-13 11:05:57 +0100 | <dminuoso> | *sigh* |
2020-11-13 11:06:39 +0100 | <dminuoso> | *circular |
2020-11-13 11:06:57 +0100 | <merijn> | dminuoso: I know, right |
2020-11-13 11:07:09 +0100 | <merijn> | dminuoso: Take time off work to fix it in GHC! :> |
2020-11-13 11:07:42 +0100 | <dminuoso> | merijn: Oh I had a large discussion with Ryan and some other about it a while ago. Let me summarize the feasibility for you: |
2020-11-13 11:07:44 +0100 | <dminuoso> | Yeah uh.. no. |
2020-11-13 11:08:23 +0100 | <dminuoso> | That's one of the things C/C++ at least got right. |
2020-11-13 11:08:30 +0100 | <dminuoso> | Or semi right, anyhow. |
2020-11-13 11:08:52 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-13 11:09:25 +0100 | <merijn> | What? Not having modules or imports at all? :p |
2020-11-13 11:09:32 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-13 11:10:17 +0100 | <dminuoso> | Well, separating declaration and definition lets you set up circular things easily |
2020-11-13 11:10:41 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) (Ping timeout: 256 seconds) |
2020-11-13 11:11:04 +0100 | <dminuoso> | (the problems are essentially deferred to the linker) |
2020-11-13 11:12:03 +0100 | <dminuoso> | and our linkers *can* handle circular linking |
2020-11-13 11:12:12 +0100 | <dminuoso> | (say via --start-group) |
2020-11-13 11:12:41 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2020-11-13 11:15:27 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) |
2020-11-13 11:16:52 +0100 | Ferdirand | (~max@2001:4c78:2012:5000::2) (Ping timeout: 260 seconds) |
2020-11-13 11:17:02 +0100 | Ferdirand | (~max@2001:4c78:2012:5000::2) |
2020-11-13 11:23:54 +0100 | dustinm | (~dustinm@static.38.6.217.95.clients.your-server.de) (Quit: Leaving) |
2020-11-13 11:24:10 +0100 | dustinm | (~dustinm@static.38.6.217.95.clients.your-server.de) |
2020-11-13 11:28:12 +0100 | Suigintou | (~Suigintou@84.39.117.57) |
2020-11-13 11:31:17 +0100 | ech | (~user@gateway/tor-sasl/ech) |
2020-11-13 11:34:47 +0100 | jsmolic | (~jakov@95.168.121.30) () |
2020-11-13 11:35:36 +0100 | theoneyouknow | (~quassel@95.168.121.30) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-13 11:36:16 +0100 | Sanchayan | (~Sanchayan@2401:4900:3309:dec3:efb6:6366:cb4:cbe4) |
2020-11-13 11:37:25 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) |
2020-11-13 11:42:16 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) () |
2020-11-13 11:45:49 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) (Quit: WeeChat 2.9) |
2020-11-13 11:48:20 +0100 | gproto023 | gproto23 |
2020-11-13 11:51:45 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-13 11:52:56 +0100 | cow-orker | (~foobar@pogostick.net) |
2020-11-13 11:54:18 +0100 | theoneyouknow | (~quassel@95.168.121.30) |
2020-11-13 11:54:24 +0100 | theoneyouknow | (~quassel@95.168.121.30) (Client Quit) |
2020-11-13 11:54:40 +0100 | jsmolic | (~quassel@95.168.121.30) |
2020-11-13 11:57:32 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-13 11:57:37 +0100 | <royal_screwup21> | hello |
2020-11-13 11:57:59 +0100 | acidjnk_new | (~acidjnk@p200300d0c718f669e4bb3e68b1aef453.dip0.t-ipconnect.de) |
2020-11-13 11:58:00 +0100 | <royal_screwup21> | I'm trying to understand what snippet does and how to run the runFSM functions: https://ideone.com/iHDBvv |
2020-11-13 11:58:08 +0100 | <royal_screwup21> | could someone give me a quick example? |
2020-11-13 11:58:37 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:d89f:d10e:927a:2962) (Ping timeout: 260 seconds) |
2020-11-13 12:00:03 +0100 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) |
2020-11-13 12:03:32 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 12:08:35 +0100 | <ski> | call it on an `FSM state input output', and a list of successive `input's ? |
2020-11-13 12:08:39 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds) |
2020-11-13 12:10:28 +0100 | <royal_screwup21> | ski ah hmm...could you give me a bare bones example of something I could copy-paste into ghci? :) I'm not really sure I understand what's going on in that snippet (i'm a complete beginner) |
2020-11-13 12:10:52 +0100 | christo | (~chris@81.96.113.213) |
2020-11-13 12:11:43 +0100 | <ski> | start by defining an example FSM |
2020-11-13 12:12:32 +0100 | <ski> | exampleFSM :: FSM Int Char Char |
2020-11-13 12:12:43 +0100 | <ski> | exampleFSM = FSM start trans accept out |
2020-11-13 12:12:46 +0100 | <ski> | where |
2020-11-13 12:12:54 +0100 | <ski> | start = ... |
2020-11-13 12:13:00 +0100 | rprije | (~rprije@124.148.131.132) (Ping timeout: 265 seconds) |
2020-11-13 12:13:10 +0100 | <ski> | trans state input = ..state..input.. |
2020-11-13 12:13:18 +0100 | <ski> | accept = [...] |
2020-11-13 12:13:30 +0100 | <royal_screwup21> | ski thanks, I will try that out :) |
2020-11-13 12:13:31 +0100 | <ski> | out = ... |
2020-11-13 12:14:04 +0100 | <ski> | (seems `runFSM' doesn't use the `out' part .. so you could probably set it to `undefined', so far) |
2020-11-13 12:15:15 +0100 | <ski> | you could use other types (e.g. user-defined) for the state type, and the input and output symbol/token types, if you wanted to |
2020-11-13 12:15:27 +0100 | <ski> | e.g. you could define |
2020-11-13 12:16:04 +0100 | <ski> | data ExampleState = S0 | S1 | S2 | S3 | S4 deriving (Eq,Show) |
2020-11-13 12:16:15 +0100 | <ski> | and then use `ExampleState' in place of `Int' |
2020-11-13 12:16:36 +0100 | <royal_screwup21> | ahh I see, for now I'd prefer using the built in types to keep things simple :) |
2020-11-13 12:16:42 +0100 | ski | nods |
2020-11-13 12:17:36 +0100 | <vilpan> | merijn: you mentioned 20+ Haskell openings in EU. Is there a dedicated site/aggregator? |
2020-11-13 12:18:19 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-odsmdwwzesbrmhor) (Quit: Connection closed for inactivity) |
2020-11-13 12:18:28 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2020-11-13 12:19:15 +0100 | <royal_screwup21> | ski I've got this so far https://ideone.com/pH4Czq do I have to define my custom arbitrary function for trans? |
2020-11-13 12:19:23 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 12:20:00 +0100 | <ski> | yes |
2020-11-13 12:20:24 +0100 | <royal_screwup21> | hmm |
2020-11-13 12:21:08 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) |
2020-11-13 12:22:12 +0100 | alp | (~alp@2a01:e0a:58b:4920:3450:37c2:436b:8f86) (Ping timeout: 260 seconds) |
2020-11-13 12:22:16 +0100 | <ski> | `trans' needs to be able to handle the state `0', and any states that can be reached from that state (by using `trans') |
2020-11-13 12:22:57 +0100 | <Uniaika> | (“fuck the state” – trans people) |
2020-11-13 12:23:09 +0100 | <royal_screwup21> | ski I just did trans state input = state + 1 |
2020-11-13 12:24:17 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 12:25:11 +0100 | <ski> | hm, in that case you don't really have *finite* number of states, do you ? |
2020-11-13 12:25:25 +0100 | <ski> | @quote is.no.state |
2020-11-13 12:25:25 +0100 | <lambdabot> | MonadState says: Do not try to change the state; that's impossible. Instead only try to realize the truth: There is no state. |
2020-11-13 12:28:04 +0100 | <ski> | royal_screwup21 : you could cap the state at some number, like `9' e.g. |
2020-11-13 12:28:28 +0100 | <ski> | > iterate (\n -> min 9 (n + 1)) 0 |
2020-11-13 12:28:31 +0100 | <lambdabot> | [0,1,2,3,4,5,6,7,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9... |
2020-11-13 12:31:39 +0100 | <royal_screwup21> | ski I've found an example like so https://ideone.com/UKDuIo all I want to do is run it against the runFSM function, just to get a feel fro what's happening |
2020-11-13 12:32:42 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-13 12:33:37 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ea5faf5572fb93fcc2.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2020-11-13 12:34:49 +0100 | <ski> | royal_screwup21> runFSM isEven [Zero,Zero,One,Zero,One] |
2020-11-13 12:35:02 +0100 | acidjnk_new | (~acidjnk@p200300d0c718f669e4bb3e68b1aef453.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-13 12:35:14 +0100 | <ski> | (btw, i would write `Moore (const ())') |
2020-11-13 12:35:38 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-13 12:37:45 +0100 | <royal_screwup21> | ski thanks a lot for the pointers :) |
2020-11-13 12:38:02 +0100 | <royal_screwup21> | I don't quite understand what's going on in this line: `out = Moore $ const ()` |
2020-11-13 12:39:44 +0100 | <ski> | replace it by : |
2020-11-13 12:39:50 +0100 | <ski> | out = Moore (const ()) |
2020-11-13 12:39:52 +0100 | <ski> | or |
2020-11-13 12:40:03 +0100 | <ski> | out = Moore (\_ -> ()) |
2020-11-13 12:40:06 +0100 | <ski> | or |
2020-11-13 12:40:10 +0100 | <ski> | out = Moore moore |
2020-11-13 12:40:10 +0100 | Sanchayan | (~Sanchayan@2401:4900:3309:dec3:efb6:6366:cb4:cbe4) (Quit: leaving) |
2020-11-13 12:40:13 +0100 | <ski> | where |
2020-11-13 12:40:19 +0100 | <ski> | moore _ = () |
2020-11-13 12:40:39 +0100 | <ski> | royal_screwup21 : do any of those three versions make it clearer ? |
2020-11-13 12:40:59 +0100 | revprez_anzio | (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal) |
2020-11-13 12:41:03 +0100 | <royal_screwup21> | so it's a function that takes something and returns...()? |
2020-11-13 12:41:14 +0100 | <royal_screwup21> | what is the ()? Is it null in haskell? |
2020-11-13 12:41:31 +0100 | <royal_screwup21> | (hard to google :( ) |
2020-11-13 12:41:32 +0100 | <ski> | oh, well, i suppose you'd have to put the `moore _ = ()' part after the `where' above where you define `trans' |
2020-11-13 12:41:44 +0100 | <ski> | there is no "null" in Haskell |
2020-11-13 12:41:59 +0100 | <ski> | `()' is the empty tuple, the zero-tuple |
2020-11-13 12:42:17 +0100 | <ski> | just like `(x,y)' is the two-tuple, the pair, containing `x' and `y' as components |
2020-11-13 12:42:21 +0100 | <royal_screwup21> | ah ok |
2020-11-13 12:42:42 +0100 | <ski> | an `n'-tuple has `n' components. a pair, a two-tuple has two components, a zero-tuple has zero components |
2020-11-13 12:43:30 +0100 | <royal_screwup21> | yup gotcha, thanks :) |
2020-11-13 12:43:45 +0100 | <royal_screwup21> | I don't really get that definiton though: |
2020-11-13 12:43:46 +0100 | <royal_screwup21> | data OutFunc state input output |
2020-11-13 12:43:47 +0100 | <royal_screwup21> | = Moore (state -> output) |
2020-11-13 12:43:47 +0100 | <royal_screwup21> | | Mealy (state -> input -> output) |
2020-11-13 12:44:02 +0100 | <royal_screwup21> | like, how am I meant to instantiate it and then apply it? |
2020-11-13 12:44:16 +0100 | <ski> | (if you have done any linear algebra with matrices and vectors, you could compare the zero-tuple to an "empty" vector with no coefficients in it, being a vector in ⌜ℝ⁰⌝, a zero-dimensional vector space) |
2020-11-13 12:44:58 +0100 | <royal_screwup21> | so I know I can do something like `thing = Moore (\x -> x)` |
2020-11-13 12:45:14 +0100 | <royal_screwup21> | but now how do I actually run it against an input? |
2020-11-13 12:46:28 +0100 | <ski> | the type `()' corresponds more or less to the type `void' in C,C++,Java,C#. also to empty `struct' type (`struct {}', no components), in C,C++,C# (or rather, extensions that allow it). it has a single value (also written `()', in Haskell) |
2020-11-13 12:47:03 +0100 | <ski> | you'd typically use `()' as an output (or part of an output), when you don't have any interesting information to put there |
2020-11-13 12:47:07 +0100 | martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 12:47:18 +0100 | <royal_screwup21> | yup all that makes sense, it's just an empty tuple |
2020-11-13 12:47:18 +0100 | martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) () |
2020-11-13 12:47:59 +0100 | <ski> | `thing = Moore (\x -> x)' would not work, if you have `isEven :: FSM EvenState Binary ()' |
2020-11-13 12:48:27 +0100 | <royal_screwup21> | ski I just created an arbitrary function, not related to isEeven |
2020-11-13 12:48:43 +0100 | <royal_screwup21> | I just want to understand how to run `thing` some input |
2020-11-13 12:48:52 +0100 | <ski> | because then your `state' type is `EvenState' and your `output' type is `()', and your moore function should have type `state -> output', that is `EvenState -> ()', but `\x -> x' does not have this type |
2020-11-13 12:49:26 +0100 | <ski> | <royal_screwup21> but now how do I actually run it against an input? |
2020-11-13 12:49:32 +0100 | <ski> | i already answered this : |
2020-11-13 12:49:33 +0100 | <ski> | <ski> royal_screwup21> runFSM isEven [Zero,Zero,One,Zero,One] |
2020-11-13 12:50:21 +0100 | <royal_screwup21> | but that's the runFSM function. I want to run `thing` which of type `thing :: OutFunc output input output` |
2020-11-13 12:51:40 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) (Ping timeout: 619 seconds) |
2020-11-13 12:52:29 +0100 | <ski> | oh |
2020-11-13 12:53:05 +0100 | <ski> | well, it could be a `Mealy' transition function |
2020-11-13 12:53:33 +0100 | <ski> | so, i think you'd have to provide both a state and an input |
2020-11-13 12:53:50 +0100 | <ski> | er, s/transition/output/ |
2020-11-13 12:54:01 +0100 | carlomagno | (~cararell@148.87.23.6) |
2020-11-13 12:54:07 +0100 | <ski> | you could try to define |
2020-11-13 12:54:08 +0100 | alp | (~alp@2a01:e0a:58b:4920:ed84:e1ea:bd3d:3a34) |
2020-11-13 12:54:22 +0100 | <ski> | output :: OutFunc state input output -> state -> input -> output |
2020-11-13 12:54:42 +0100 | roconnor | (~roconnor@host-184-164-7-99.dyn.295.ca) |
2020-11-13 12:54:52 +0100 | <royal_screwup21> | hmm so I've done this on ghci: thing = Moore (\x -> x). My understand is that I've defined a function (wrapped in a variant) that takes an x and returns back an x |
2020-11-13 12:54:55 +0100 | <ski> | and then you could call `output thing E0 Zero', e.g. |
2020-11-13 12:55:07 +0100 | <royal_screwup21> | basically, how do I run that function? |
2020-11-13 12:55:12 +0100 | ubert | (~Thunderbi@p200300ecdf1e535be6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-13 12:55:33 +0100 | <ski> | you need to pattern-match, to extract the function from the variant alternative, from the data constructor |
2020-11-13 12:55:41 +0100 | <royal_screwup21> | ahh ok |
2020-11-13 12:55:57 +0100 | <ski> | but in general, it could be either a `Moore' or a `Mealy', and you should most probably cover both cases |
2020-11-13 12:55:57 +0100 | <royal_screwup21> | that makes sense, thanks! |
2020-11-13 12:56:12 +0100 | <ski> | and defining a function like `output' may help with this |
2020-11-13 12:56:16 +0100 | <royal_screwup21> | I'm not really sure what the point is of having it in the fsm... |
2020-11-13 12:56:24 +0100 | carlomagno1 | (~cararell@148.87.23.13) (Ping timeout: 272 seconds) |
2020-11-13 12:56:32 +0100 | <royal_screwup21> | the runFSM function doesn't seem to use it |
2020-11-13 12:56:46 +0100 | <royal_screwup21> | is it just there to confuse the beginner? |
2020-11-13 12:57:10 +0100 | <ski> | well, according to the definitions at <https://en.wikipedia.org/wiki/Mealy_machine> and <https://en.wikipedia.org/wiki/Moore_machine>, those two kinds of finite state machines both contain output functions, not just transition functions |
2020-11-13 12:57:27 +0100 | Suigintou | (~Suigintou@84.39.117.57) (Remote host closed the connection) |
2020-11-13 12:57:36 +0100 | <ski> | i dunno why `runFSM' is as it is |
2020-11-13 12:57:40 +0100 | <ski> | one could have imagined |
2020-11-13 12:58:22 +0100 | <ski> | runFSM :: Eq state => FSM state input output -> [input] -> ([output],state,Bool) |
2020-11-13 12:58:43 +0100 | <royal_screwup21> | that makes a lot more sense yup |
2020-11-13 12:58:59 +0100 | <dminuoso> | What does the Bool track? |
2020-11-13 12:59:18 +0100 | <ski> | so that it doesn't only give you the resulting `state' (with a `Bool'ean for telling whether it's an accepting state) after feeding in the list of `input's, but so that you'd also get a corresponding list of `output's |
2020-11-13 12:59:31 +0100 | <ski> | dminuoso : whether the resulting state is an accepting state |
2020-11-13 13:00:03 +0100 | <dminuoso> | Ah |
2020-11-13 13:04:38 +0100 | dennisb | (~dennisb@89-160-106-195.cust.bredband2.com) |
2020-11-13 13:06:04 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus) |
2020-11-13 13:07:59 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-13 13:10:47 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 260 seconds) |
2020-11-13 13:11:06 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-13 13:12:57 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-13 13:13:12 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-13 13:13:39 +0100 | invaser | (~Thunderbi@31.148.23.125) (Quit: invaser) |
2020-11-13 13:14:09 +0100 | <royal_screwup21> | I'm looking at a dataype like so: `data BinState = S0 | S1 | S2 deriving (Enum, Eq, Show)` |
2020-11-13 13:14:29 +0100 | <royal_screwup21> | is the name completely random, or is there logic to it? binary implies 2 but there's 3 variants |
2020-11-13 13:16:56 +0100 | jakob_ | (~textual@p200300f49f162200e1f79f04dc8b19b7.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
2020-11-13 13:17:02 +0100 | <dminuoso> | royal_screwup21: Bin could also stand for bin. |
2020-11-13 13:17:11 +0100 | <dminuoso> | Or its an abbreviation |
2020-11-13 13:17:17 +0100 | <royal_screwup21> | bin as in bin-packing? |
2020-11-13 13:17:21 +0100 | <Uniaika> | royal_screwup21: what's the context? |
2020-11-13 13:17:44 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) |
2020-11-13 13:17:49 +0100 | <dminuoso> | royal_screwup21: bin as in bucket |
2020-11-13 13:17:54 +0100 | <dminuoso> | trash bin |
2020-11-13 13:18:32 +0100 | <ski> | what's the corresponding FSM ? |
2020-11-13 13:20:13 +0100 | <bqv> | is it ocaml that has that curious semantic of needing to pass () to a member function to call it |
2020-11-13 13:20:15 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
2020-11-13 13:20:25 +0100 | <royal_screwup21> | the correspoding fsm is this: https://ideone.com/fb90Ir |
2020-11-13 13:20:44 +0100 | <ski> | bqv : not that i recall |
2020-11-13 13:20:58 +0100 | <bqv> | what language am i thinking of then... |
2020-11-13 13:21:36 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-11-13 13:21:36 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) |
2020-11-13 13:22:29 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) |
2020-11-13 13:24:52 +0100 | kish` | (~oracle@unaffiliated/oracle) |
2020-11-13 13:24:58 +0100 | <ski> | bqv : hm, maybe F# ? |
2020-11-13 13:25:09 +0100 | <bqv> | oh |
2020-11-13 13:25:11 +0100 | <bqv> | yes |
2020-11-13 13:25:13 +0100 | <bqv> | that's the one |
2020-11-13 13:25:57 +0100 | <bqv> | i suppose that's just a "feature" of working under the CLR |
2020-11-13 13:26:44 +0100 | <kuribas> | that's true for any language with side effects |
2020-11-13 13:26:52 +0100 | <ski> | kuribas : no |
2020-11-13 13:26:59 +0100 | <dminuoso> | https://github.com/cdepillabout/pretty-simple/blob/master/Setup.hs |
2020-11-13 13:27:15 +0100 | <dminuoso> | Gaah! For that bit of code, this is dragging Cabal into the setup for dependencies.. |
2020-11-13 13:27:22 +0100 | <kuribas> | how would you otherwise know when to exectute the side-effects? For example "f ()" vs "f" |
2020-11-13 13:27:47 +0100 | <ski> | see e.g. <https://caml.inria.fr/pub/docs/manual-ocaml/objectexamples.html>. the body of a parameterless method is not evaluated until it is called |
2020-11-13 13:28:25 +0100 | <ski> | a method call is a different construct than an ordinary function call |
2020-11-13 13:29:47 +0100 | <ski> | royal_screwup21 : hm, ok. doesn't really seem to be related to binary something, apart from accepting bits as inputs |
2020-11-13 13:30:12 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 260 seconds) |
2020-11-13 13:31:11 +0100 | <bqv> | ocaml is a fascinating language. why isn't it more used? |
2020-11-13 13:31:37 +0100 | bqv | . o O ( same reason haskell isn't ) |
2020-11-13 13:32:19 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) |
2020-11-13 13:32:21 +0100 | <ski> | OCaml has one of the more interesting object type, and class, system |
2020-11-13 13:32:52 +0100 | Deide | (~Deide@217.155.19.23) |
2020-11-13 13:33:05 +0100 | <ski> | it can handle "binary methods" and "cloning methods", that is a method which accepts, or returns, a method of the same type as the object on which it's invoked on |
2020-11-13 13:33:49 +0100 | <ski> | when these are used, the object type that results from a subclass need not be a subtype of the type that results from the corresponding superclass |
2020-11-13 13:33:57 +0100 | jchia_ | (~jchia@45.32.62.73) |
2020-11-13 13:35:37 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-11-13 13:35:58 +0100 | ambiso9 | (~ambiso@209.182.239.205) (Quit: Ping timeout (120 seconds)) |
2020-11-13 13:35:59 +0100 | <bqv> | it is used less widely than even haskell, though |
2020-11-13 13:36:08 +0100 | <bqv> | are there shortcomings? |
2020-11-13 13:36:14 +0100 | <bqv> | or is it just nerd tax |
2020-11-13 13:36:17 +0100 | ambiso9 | (~ambiso@209.182.239.205) |
2020-11-13 13:36:41 +0100 | <Uniaika> | tooling |
2020-11-13 13:36:52 +0100 | <ski> | (so if class `C' has a method `m' of type `Self -> bool', then an object instantiated from this class will have `C -> bool' as type of this method. then, if `D' is a subclass of `C', then the type of the method `m' for an object instantiated from this class will be `D -> bool') |
2020-11-13 13:38:01 +0100 | ashbreeze | (~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 264 seconds) |
2020-11-13 13:38:35 +0100 | <bqv> | Uniaika: howso? |
2020-11-13 13:39:39 +0100 | jchia_ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 13:40:17 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-13 13:40:30 +0100 | jchia_ | (~jchia@45.32.62.73) |
2020-11-13 13:40:54 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-13 13:41:54 +0100 | jchia_ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 13:42:16 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-13 13:42:51 +0100 | jchia_ | (~jchia@45.32.62.73) |
2020-11-13 13:44:34 +0100 | jchia_ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 13:45:28 +0100 | jchia_ | (~jchia@58.32.37.146) |
2020-11-13 13:46:35 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) |
2020-11-13 13:46:40 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
2020-11-13 13:49:46 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds) |
2020-11-13 13:50:10 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2020-11-13 13:54:12 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-11-13 13:54:46 +0100 | <ggole> | The OO parts of OCaml are neat, but they don't see much use in practice |
2020-11-13 13:59:58 +0100 | <kuribas> | how does it compare to F# ? |
2020-11-13 14:00:10 +0100 | <kuribas> | in F# it's useful because .NET uses OO |
2020-11-13 14:00:54 +0100 | <carbolymer> | I have a dozen of executables in my stack project, can I tell stack to *not* build them and not copy them, during stack build --test ? installing of executables takes longer than execution of tests.... |
2020-11-13 14:05:12 +0100 | <maerwald> | use `stack test`? |
2020-11-13 14:05:24 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 14:05:26 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) |
2020-11-13 14:06:42 +0100 | nbloomf | (~nbloomf@76.217.43.73) |
2020-11-13 14:07:15 +0100 | <ggole> | They're pretty different, not that I've ever seriously used F#. |
2020-11-13 14:08:06 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) |
2020-11-13 14:08:19 +0100 | <carbolymer> | maerwald, stack test is the same as stack build --test |
2020-11-13 14:08:33 +0100 | <maerwald> | that's a bummer |
2020-11-13 14:09:26 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) |
2020-11-13 14:10:18 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-13 14:11:00 +0100 | jakalx | (~jakalx@base.jakalx.net) (Ping timeout: 260 seconds) |
2020-11-13 14:11:41 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 14:13:25 +0100 | jchia1 | (~jchia@58.32.71.83) (Ping timeout: 264 seconds) |
2020-11-13 14:14:40 +0100 | jchia | (~jchia@45.32.62.73) |
2020-11-13 14:15:12 +0100 | <bqv> | ggole: i don't think anyone has |
2020-11-13 14:15:12 +0100 | christo | (~chris@81.96.113.213) |
2020-11-13 14:15:51 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ea5faf5572fb93fcc2.ipv6.abo.wanadoo.fr) |
2020-11-13 14:16:51 +0100 | jchia | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 14:17:37 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 264 seconds) |
2020-11-13 14:17:53 +0100 | jchia | (~jchia@45.32.62.73) |
2020-11-13 14:18:07 +0100 | <carbolymer> | even `stack build --test project:test:project-lib` builds and copies executables god knows why |
2020-11-13 14:18:34 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Quit: Lost terminal) |
2020-11-13 14:18:47 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-13 14:18:53 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-13 14:19:54 +0100 | jchia | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 14:20:11 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 14:20:20 +0100 | jchia | (~jchia@45.32.62.73) |
2020-11-13 14:21:21 +0100 | jchia | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 14:22:11 +0100 | jchia | (~jchia@45.32.62.73) |
2020-11-13 14:23:12 +0100 | jchia | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 14:23:48 +0100 | jchia | (~jchia@45.32.62.73) |
2020-11-13 14:24:45 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds) |
2020-11-13 14:25:37 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ea5faf5572fb93fcc2.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2020-11-13 14:26:19 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) |
2020-11-13 14:27:30 +0100 | neiluj | (~jco@43.245.204.77.rev.sfr.net) |
2020-11-13 14:27:30 +0100 | neiluj | (~jco@43.245.204.77.rev.sfr.net) (Changing host) |
2020-11-13 14:27:30 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2020-11-13 14:29:16 +0100 | jchia | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-13 14:29:25 +0100 | <royal_screwup21> | what's the time complexity of adding an element to the a list, like `x: my_list`? |
2020-11-13 14:29:47 +0100 | jchia | (~jchia@58.32.36.109) |
2020-11-13 14:29:58 +0100 | <royal_screwup21> | for context, I am wondering what's the complexity of `before` and `after` functions here https://ideone.com/jqgyfk |
2020-11-13 14:29:58 +0100 | <bqv> | cons is O(1) |
2020-11-13 14:30:20 +0100 | <bqv> | anything else needs a scan |
2020-11-13 14:32:36 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 14:32:52 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-13 14:33:10 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) |
2020-11-13 14:35:23 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) (Client Quit) |
2020-11-13 14:35:32 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
2020-11-13 14:36:03 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 14:37:50 +0100 | <royal_screwup21> | hmm |
2020-11-13 14:37:52 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) |
2020-11-13 14:38:45 +0100 | <royal_screwup21> | I'm looking at an impl of ziplist, which I'm told has parallels to a doubly linked list. I understand lists in haskell, and I know what doubly linked lists are, but I fail to see what the impl has to do with a dll |
2020-11-13 14:38:49 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) |
2020-11-13 14:38:50 +0100 | Whome | (0c986a83@12.152.106.131) |
2020-11-13 14:38:53 +0100 | <royal_screwup21> | https://ideone.com/baFQja |
2020-11-13 14:39:27 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-13 14:40:47 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 14:41:26 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2020-11-13 14:42:58 +0100 | <lyxia> | you can move both forward and backwards in constant time |
2020-11-13 14:45:37 +0100 | <royal_screwup21> | if I have a list [1,2,3] and I want to append 4 to it - how can I do this? |
2020-11-13 14:45:44 +0100 | <royal_screwup21> | I want the output to be [1,2,3,4] |
2020-11-13 14:45:52 +0100 | DavidEichmann | (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 256 seconds) |
2020-11-13 14:46:11 +0100 | <xerox_> | @hoogle [a] -> [a] -> [a] |
2020-11-13 14:46:12 +0100 | <lambdabot> | Prelude (++) :: [a] -> [a] -> [a] |
2020-11-13 14:46:12 +0100 | <lambdabot> | Data.List (++) :: [a] -> [a] -> [a] |
2020-11-13 14:46:12 +0100 | <lambdabot> | GHC.Base (++) :: [a] -> [a] -> [a] |
2020-11-13 14:46:31 +0100 | hackage | phonetic-languages-examples 0.5.0.0 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.5.0.0 (OleksandrZhabenko) |
2020-11-13 14:46:39 +0100 | <royal_screwup21> | hmm is there a O(1) way to do it |
2020-11-13 14:47:02 +0100 | DavidEichmann | (~david@62.110.198.146.dyn.plus.net) |
2020-11-13 14:47:08 +0100 | <xerox_> | unfortunately, in general no |
2020-11-13 14:48:53 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
2020-11-13 14:48:54 +0100 | hiroaki | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
2020-11-13 14:49:24 +0100 | <dminuoso> | royal_screwup21: btw, thats better called a zipper than a ziplist |
2020-11-13 14:49:41 +0100 | jchia__ | (~jchia@58.32.37.146) (Quit: Leaving.) |
2020-11-13 14:49:42 +0100 | <royal_screwup21> | dminuoso why do you say that? |
2020-11-13 14:49:44 +0100 | <dminuoso> | We have a newtype ZipList which provides an alternate Alternative instance for [], but it's unrelated to your thing |
2020-11-13 14:50:01 +0100 | <dminuoso> | (or zipper list, list zipper, those are fine names) |
2020-11-13 14:50:37 +0100 | <dminuoso> | (The general idea is usually called zippers and extends well to trees as well as lists) |
2020-11-13 14:50:54 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:4085:c5d6:bbdf:5f4e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 14:50:57 +0100 | <dminuoso> | in case of lists the implementation is just trivial and obvious |
2020-11-13 14:51:58 +0100 | Beetstra1 | (~Beetstra@178.162.212.214) |
2020-11-13 14:54:56 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds) |
2020-11-13 14:55:20 +0100 | fendor_ | (~fendor@178.165.131.115.wireless.dyn.drei.com) |
2020-11-13 14:55:58 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-13 14:57:29 +0100 | luke | (~luke@bitnomial/staff/luke) |
2020-11-13 14:57:58 +0100 | fendor | (~fendor@178.165.129.175.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2020-11-13 14:59:23 +0100 | Qui_Sum1 | (~Qui_Sum@178.162.212.214) |
2020-11-13 14:59:59 +0100 | <ski> | royal_screwup21 : i would not make that `Show' instance for `ZipElem' |
2020-11-13 15:00:43 +0100 | <royal_screwup21> | ski why not? |
2020-11-13 15:01:33 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-11-13 15:03:20 +0100 | <ski> | because it doesn't output valid Haskell expressions of type `ZipElem a'. because it doesn't handle precedence correctly. because that `show' can't be pre-inverse of a `read', because `read' is supposed to ignore extra wrapping brackets |
2020-11-13 15:03:48 +0100 | <ski> | `Show' is not intended for pretty-printing |
2020-11-13 15:04:42 +0100 | luke | (~luke@bitnomial/staff/luke) (Quit: sleep) |
2020-11-13 15:04:45 +0100 | machinedgod | (~machinedg@207.253.244.210) |
2020-11-13 15:04:52 +0100 | <ski> | > read "(((False)))" :: Bool |
2020-11-13 15:04:54 +0100 | <lambdabot> | False |
2020-11-13 15:05:37 +0100 | st8less | (~st8less@2603:a060:11fd:0:48e3:54d2:40b:a73f) |
2020-11-13 15:05:49 +0100 | <ski> | if you define |
2020-11-13 15:06:07 +0100 | <ski> | toZipList :: [a] -> a -> [a] -> ZipList a |
2020-11-13 15:06:29 +0100 | <ski> | toZipList ls x rs = ZL (reverse ls) x rs |
2020-11-13 15:06:44 +0100 | <ski> | then you could do |
2020-11-13 15:06:53 +0100 | <ski> | instance Show a => Show (ZipList a) |
2020-11-13 15:06:55 +0100 | <ski> | where |
2020-11-13 15:07:16 +0100 | <ski> | showsPrec p (ZL ls x rs) = showsPrec (p > 10) |
2020-11-13 15:07:34 +0100 | <ski> | $ showString "toZipList " |
2020-11-13 15:07:48 +0100 | <ski> | . showsPrec 11 (reverse ls) |
2020-11-13 15:07:53 +0100 | <ski> | . showsChar ' ' |
2020-11-13 15:07:59 +0100 | <ski> | . showsPrec 11 x |
2020-11-13 15:08:00 +0100 | <ski> | . showsChar ' ' |
2020-11-13 15:08:05 +0100 | <ski> | . showsPrec 11 rs |
2020-11-13 15:08:56 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-13 15:09:44 +0100 | <ski> | and then `show (insertBefore 0 (insertAfter 1 (insertBefore 2 (newZipList 3))))' would evaluate to `"toZipList [2] 0 [1,3]"' |
2020-11-13 15:10:26 +0100 | <royal_screwup21> | ski hmm yeah you're right |
2020-11-13 15:10:36 +0100 | <royal_screwup21> | it seems really weird |
2020-11-13 15:10:41 +0100 | <royal_screwup21> | the currrent impl |
2020-11-13 15:11:50 +0100 | <ski> | that `Show' instance would generate mostly readable output, getting relatively close to what your pretty-printing intended, while still generating a valid Haskell expression |
2020-11-13 15:12:17 +0100 | <royal_screwup21> | ski I'm not sure I understand what's wrong with wrt to precedence |
2020-11-13 15:12:26 +0100 | <ski> | of course, you can do your own pretty-printing as well (or instead), if you like. but please don't put that pretty-printing into `Show' |
2020-11-13 15:12:45 +0100 | <royal_screwup21> | so if the ziplist is [1, 2] 3 [5]. Then when I run "before", I should get "1" |
2020-11-13 15:12:58 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 15:14:52 +0100 | <royal_screwup21> | that is, will it turn into [2] 1 [3,5] |
2020-11-13 15:15:25 +0100 | <ski> | `Show' instances are intended to work together with each other. if you declare an instance for a type, then it will automatically be combined with other existing instances, like for `Maybe',`[]',`Ratio',&c. whenever the user asks to show an input of a type combining your data type with these other types .. you have to consider how such interactions can look like. if you deviate from generating Haskell |
2020-11-13 15:15:32 +0100 | <ski> | expressions in `Show', then you will get weird mixes of Haskell and non-Haskell syntax, as a result of such combinations |
2020-11-13 15:15:42 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 265 seconds) |
2020-11-13 15:16:02 +0100 | <ski> | royal_screwup21 : "so if the ziplist is [1, 2] 3 [5]" -- what do you mean by this ? do you mean `ZL [1,2] 3 [5]', or do you mean `ZL [2,1] 3 [5]' ? |
2020-11-13 15:16:24 +0100 | <ski> | (it's not at all clear which you intended) |
2020-11-13 15:16:29 +0100 | <royal_screwup21> | the former |
2020-11-13 15:17:17 +0100 | <ski> | so, yes, `before (toZipList [2,1] 3 [5])' will return `toZipList [2] 1 [3,5]' |
2020-11-13 15:17:38 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-pozlvwyabhwikscl) (Quit: Connection closed for inactivity) |
2020-11-13 15:17:45 +0100 | <ski> | iow, `before (ZL [1,2] 3 5)' will return `ZL [2] 1 [3,5]' -- this is the same thing |
2020-11-13 15:20:19 +0100 | <royal_screwup21> | ski the core idea behind this impl is that preprending an element to a list is inexpensive, whereas append is expensive -- am i thinking correctly? |
2020-11-13 15:21:41 +0100 | blankhart | (~blankhart@pool-100-35-219-3.nwrknj.fios.verizon.net) |
2020-11-13 15:23:05 +0100 | Qui_Sum1 | (~Qui_Sum@178.162.212.214) () |
2020-11-13 15:25:01 +0100 | <ski> | royal_screwup21 : yes, that's correct |
2020-11-13 15:25:06 +0100 | <royal_screwup21> | ok cool :) |
2020-11-13 15:25:15 +0100 | <royal_screwup21> | thanks for much for all your help - much appreciated |
2020-11-13 15:25:55 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-13 15:26:52 +0100 | <ski> | "I'm not sure I understand what's wrong with wrt to precedence" -- hmm, not the best example, but consider `NotFocus (-3) % Focus 2', of type `Ratio (ZipElem Int)'. if you `show' this, you would presumably get `" -3 % (2)"', where that negation isn't protected by brackets, while precedence indicates that it ought to be |
2020-11-13 15:27:26 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) |
2020-11-13 15:27:59 +0100 | <ski> | i'm sure you can construct better (that is, worse) examples, but i was trying to think of one that's in the base library |
2020-11-13 15:28:52 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds) |
2020-11-13 15:29:06 +0100 | <merijn> | ski: eh...did you use ZipList for a list zipper? That seems needlessly confusing, given the existing ZipList... |
2020-11-13 15:29:07 +0100 | bitmagie | (~Thunderbi@200116b8068f010041b23aab865e3023.dip.versatel-1u1.de) (Client Quit) |
2020-11-13 15:29:18 +0100 | <ski> | the point is that `Show' is supposed to protect parts (like your `x' in `NotFocus x' and `Focus x') with wrapping brackets, if required to force the intended reading, due to precedence of operators |
2020-11-13 15:29:37 +0100 | <geekosaur> | merijn, royal_screwup21 did and was already told about the collision |
2020-11-13 15:29:41 +0100 | <merijn> | ah |
2020-11-13 15:29:49 +0100 | <ski> | merijn : "<dminuoso> royal_screwup21: btw, thats better called a zipper than a ziplist","<dminuoso> We have a newtype ZipList which provides an alternate Alternative instance for [], but it's unrelated to your thing" |
2020-11-13 15:31:43 +0100 | <ski> | royal_screwup21 : usually, except in very simple cases, when you're writing a `Show' instance manually, you should define `showsPrec', not `show' |
2020-11-13 15:33:17 +0100 | <ski> | you can define `show' if each possible value is "atomic", never requires wrapping brackets. e.g. `data Bool = False | True' has only "constant data constructors", none of them are parameterized, they don't take arguments, don't have components |
2020-11-13 15:36:04 +0100 | <ski> | royal_screwup21 : oh, and sorry. `showsChar' above should be `showChar' |
2020-11-13 15:36:28 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-13 15:36:31 +0100 | <royal_screwup21> | :) |
2020-11-13 15:38:18 +0100 | <ski> | sometimes it makes sense to not expose the implementation (in your case the `ZL' data constructor) in the `Show' instance. but then, imho, one ought to output an expression in terms of the exported operations, the public API, of the module (assuming the data type itself is exported) |
2020-11-13 15:38:32 +0100 | darjeeling_ | (~darjeelin@122.245.210.116) (Ping timeout: 260 seconds) |
2020-11-13 15:38:52 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) |
2020-11-13 15:38:58 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-11-13 15:39:07 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) |
2020-11-13 15:39:11 +0100 | <ski> | @let tabulate :: Ix i => (i,i) -> (i -> e) -> Array i e; tabulate ix f = listArray ix [f i | i <- range ix] |
2020-11-13 15:39:12 +0100 | <lambdabot> | Defined. |
2020-11-13 15:39:40 +0100 | <ski> | > tabulate (0,7) (\i -> i^2 + 1) |
2020-11-13 15:39:41 +0100 | <lambdabot> | error: |
2020-11-13 15:39:41 +0100 | <lambdabot> | Ambiguous occurrence ‘tabulate’ |
2020-11-13 15:39:41 +0100 | <lambdabot> | It could refer to |
2020-11-13 15:39:46 +0100 | <ski> | > L.tabulate (0,7) (\i -> i^2 + 1) |
2020-11-13 15:39:48 +0100 | <lambdabot> | array (0,7) [(0,1),(1,2),(2,5),(3,10),(4,17),(5,26),(6,37),(7,50)] |
2020-11-13 15:40:51 +0100 | <ski> | that's an example. `Array' is an abstract data type, so its `Show' instance displays an array value in terms of the `array' operation for constructing them (note that i called `listArray', now `array', above. `listArray' is another operation for constructing them) |
2020-11-13 15:40:55 +0100 | <ski> | @type array |
2020-11-13 15:40:57 +0100 | <lambdabot> | Ix i => (i, i) -> [(i, e)] -> Array i e |
2020-11-13 15:40:59 +0100 | <ski> | @type listArray |
2020-11-13 15:41:00 +0100 | <lambdabot> | Ix i => (i, i) -> [e] -> Array i e |
2020-11-13 15:42:02 +0100 | <ski> | (`listArray' assumes the elements come in a standard order. `array' doesn't assume that, you can list index-element pairs in any order) |
2020-11-13 15:42:13 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-13 15:45:19 +0100 | neiluj | (~jco@43.245.204.77.rev.sfr.net) |
2020-11-13 15:47:05 +0100 | jakob_ | (~textual@p200300f49f16220038ce51646f783e30.dip0.t-ipconnect.de) |
2020-11-13 15:47:53 +0100 | jakalx | (~jakalx@base.jakalx.net) ("Disconnected: closed") |
2020-11-13 15:49:40 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2020-11-13 15:50:08 +0100 | Amras | (~Amras@unaffiliated/amras0000) |
2020-11-13 15:51:05 +0100 | darjeeling_ | (~darjeelin@122.245.208.31) |
2020-11-13 15:51:24 +0100 | christo | (~chris@81.96.113.213) |
2020-11-13 15:51:56 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-11-13 15:52:06 +0100 | manjaro-user | (~manjaro-u@109.77.71.163) |
2020-11-13 15:53:47 +0100 | motte | (~weechat@unaffiliated/motte) |
2020-11-13 15:54:22 +0100 | jakalx | (~jakalx@base.jakalx.net) (Ping timeout: 256 seconds) |
2020-11-13 15:54:36 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 15:56:29 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) |
2020-11-13 15:57:13 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 264 seconds) |
2020-11-13 16:00:42 +0100 | <motte> | hi, how can i find all possible combinations of a nested list? the result should contain only one element from a given index |
2020-11-13 16:00:54 +0100 | lucasb | (uid333435@gateway/web/irccloud.com/x-oypdzthrgbpglsbk) |
2020-11-13 16:01:09 +0100 | <motte> | e.g. [[1,2], [4,5]] should turn into [[1,2], [1,5], [2,4], [2,5]] |
2020-11-13 16:01:54 +0100 | <merijn> | > traverse sequence [[1,2], [4,5]] |
2020-11-13 16:01:56 +0100 | <lambdabot> | error: |
2020-11-13 16:01:56 +0100 | <lambdabot> | • Ambiguous type variables ‘f0’, |
2020-11-13 16:01:56 +0100 | <lambdabot> | ‘a0’ arising from a use of ‘show_M31303913069... |
2020-11-13 16:01:59 +0100 | <merijn> | aww |
2020-11-13 16:02:26 +0100 | xff0x | (~fox@2001:1a81:53f2:4b00:f0ff:5175:9775:725d) (Ping timeout: 264 seconds) |
2020-11-13 16:03:52 +0100 | <xerox_> | > sequence [[1,2],[4,5]] |
2020-11-13 16:03:54 +0100 | <lambdabot> | [[1,4],[1,5],[2,4],[2,5]] |
2020-11-13 16:04:05 +0100 | <merijn> | rats, it *is* just sequence? |
2020-11-13 16:04:18 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 16:04:35 +0100 | <motte> | oh i messed it up, the result should be [[1,4], [1,5], [2,4], [2,5]] |
2020-11-13 16:04:40 +0100 | <xerox_> | ding! |
2020-11-13 16:05:24 +0100 | <merijn> | xerox_: I thought that first, but thought the type didn't match >.> |
2020-11-13 16:06:25 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
2020-11-13 16:07:24 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) () |
2020-11-13 16:07:33 +0100 | conal | (~conal@66.115.157.159) |
2020-11-13 16:08:28 +0100 | <motte> | huh it really is sequence |
2020-11-13 16:08:56 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-vehblmdtqrevxqug) |
2020-11-13 16:09:13 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-11-13 16:09:22 +0100 | <bqv> | well what d'you know, it really is just sequence |
2020-11-13 16:09:27 +0100 | mtothem | (~mtothem@h-213-180.A392.priv.bahnhof.se) |
2020-11-13 16:09:29 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2020-11-13 16:09:44 +0100 | jsmolic | (~quassel@95.168.121.30) ("https://quassel-irc.org - Chat comfortably. Anywhere.") |
2020-11-13 16:09:54 +0100 | bifunc2 | (bifunc2@gateway/vpn/protonvpn/bifunc2) |
2020-11-13 16:10:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 16:11:02 +0100 | <bifunc2> | What's a good way to find a bytestring b between two bytestrings b1, b2? (b1 < b < b2) |
2020-11-13 16:11:14 +0100 | <bifunc2> | is there any library for this? |
2020-11-13 16:11:21 +0100 | <bifunc2> | (of course, Nothing, if none exists) |
2020-11-13 16:11:55 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-13 16:13:12 +0100 | <Uniaika> | bifunc2: like, a substring? |
2020-11-13 16:13:15 +0100 | alp | (~alp@2a01:e0a:58b:4920:ed84:e1ea:bd3d:3a34) (Ping timeout: 272 seconds) |
2020-11-13 16:13:33 +0100 | <ski> | find common prefix, then take middle point of next two bytes (assuming the first one has at least one more) ? |
2020-11-13 16:13:47 +0100 | borne | (~fritjof@200116b86489f5004fbf5cd6c83663b1.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-13 16:13:53 +0100 | <hekkaidekapus> | > traverse permutations [[1, 2], [4, 5]] -- motte: <== Not what you asked about but may come handy. |
2020-11-13 16:13:55 +0100 | <lambdabot> | [[[1,2],[4,5]],[[1,2],[5,4]],[[2,1],[4,5]],[[2,1],[5,4]]] |
2020-11-13 16:14:23 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-13 16:14:25 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-13 16:14:27 +0100 | xff0x | (~fox@2001:1a81:53f2:4b00:f0ff:5175:9775:725d) |
2020-11-13 16:17:02 +0100 | jakob_ | (~textual@p200300f49f16220038ce51646f783e30.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
2020-11-13 16:18:07 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-13 16:18:12 +0100 | <motte> | hekkaidekapus: haha that's exactly what i was currently working on |
2020-11-13 16:18:39 +0100 | <hekkaidekapus> | oh, sorry for the spoiler! |
2020-11-13 16:19:26 +0100 | <motte> | hekkaidekapus: it's good, thanks |
2020-11-13 16:19:49 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2020-11-13 16:20:10 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-13 16:20:32 +0100 | revprez_anzio | (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
2020-11-13 16:20:41 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-11-13 16:22:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 16:26:55 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-13 16:27:01 +0100 | <motte> | so now i'm trying to run length $ traverse permutations on [[a]], where the length of the outer list is 9 and the length of the inner list is 4 and this very quickly takes away all of my ram |
2020-11-13 16:27:50 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) (Remote host closed the connection) |
2020-11-13 16:28:05 +0100 | <pjb> | motte: permutations is exponential… |
2020-11-13 16:28:44 +0100 | <motte> | pjb: yes, i realize that, but couldn't haskell discard the already calculated part of the list? |
2020-11-13 16:28:48 +0100 | texasmyn_ | (~texasmyns@185.229.59.75) |
2020-11-13 16:29:31 +0100 | texasmyn_ | texasmynsted_ |
2020-11-13 16:29:52 +0100 | <pjb> | I don't know what prevents it to do that. |
2020-11-13 16:30:03 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 16:30:20 +0100 | texasmynsted | (~texasmyns@99.96.221.112) (Killed (cherryh.freenode.net (Nickname regained by services))) |
2020-11-13 16:30:20 +0100 | texasmynsted_ | texasmynsted |
2020-11-13 16:30:37 +0100 | texasmynsted_ | (~texasmyns@99.96.221.112) |
2020-11-13 16:31:25 +0100 | <pjb> | motte: but you can compute it directly as the factorial of the length of the original lists. |
2020-11-13 16:31:37 +0100 | reallymemorable | (~quassel@2601:180:8300:8fd0:c5df:6e57:bcff:c1bb) |
2020-11-13 16:31:56 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-13 16:32:11 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) |
2020-11-13 16:32:52 +0100 | <merijn> | motte: Where are you running that? i.e. in ghci? |
2020-11-13 16:33:10 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-13 16:33:35 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-13 16:34:01 +0100 | <bifunc2> | ski thank you this is the key |
2020-11-13 16:34:34 +0100 | <motte> | merijn: yes, ghci |
2020-11-13 16:34:34 +0100 | comerijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 16:35:31 +0100 | <motte> | merijn: seems to be the same when i compile it |
2020-11-13 16:36:21 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-11-13 16:36:37 +0100 | <motte> | although i'm very surprised to see that it uses all of my 8 threads..? |
2020-11-13 16:36:45 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds) |
2020-11-13 16:36:54 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 16:37:19 +0100 | nbloomf | (~nbloomf@76.217.43.73) |
2020-11-13 16:37:19 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-11-13 16:37:25 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Client Quit) |
2020-11-13 16:37:29 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 16:37:39 +0100 | <comerijn> | Did you compile with -O2? |
2020-11-13 16:37:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-13 16:39:20 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds) |
2020-11-13 16:39:59 +0100 | <motte> | comerijn: yes |
2020-11-13 16:40:29 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Ping timeout: 272 seconds) |
2020-11-13 16:40:56 +0100 | <comerijn> | Ok, then no clue without seeing code :) |
2020-11-13 16:40:58 +0100 | knupfer | (~Thunderbi@200116b8249e5f0010c5e6f6682b8ccf.dip.versatel-1u1.de) (Quit: knupfer) |
2020-11-13 16:41:32 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-13 16:41:37 +0100 | veverak | (~squirrel@ip-89-102-98-161.net.upcbroadband.cz) (Quit: WeeChat 2.3) |
2020-11-13 16:41:37 +0100 | neiluj | (~jco@43.245.204.77.rev.sfr.net) (Ping timeout: 256 seconds) |
2020-11-13 16:41:44 +0100 | wtw | (~wtw@unaffiliated/wtw) |
2020-11-13 16:42:03 +0100 | ech | (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds) |
2020-11-13 16:42:42 +0100 | <hekkaidekapus> | motte, comerijn: with `print $ length $ traverse permutations [[(1 :: Int) .. 4], [5 .. 13]]` |
2020-11-13 16:42:56 +0100 | <hekkaidekapus> | I get: |
2020-11-13 16:42:59 +0100 | <hekkaidekapus> | 8709120 |
2020-11-13 16:43:09 +0100 | <hekkaidekapus> | 0.81user 0.04system 0:00.86elapsed 99%CPU (0avgtext+0avgdata 155892maxresident)k |
2020-11-13 16:43:24 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2020-11-13 16:43:31 +0100 | Whome | (0c986a83@12.152.106.131) () |
2020-11-13 16:45:08 +0100 | <dsal> | dminuoso: re: big data: http://dustin.sallings.org/2014/02/04/bigdata.html |
2020-11-13 16:45:45 +0100 | bidabong | (uid272474@gateway/web/irccloud.com/x-plghuymdrvvlqwlm) |
2020-11-13 16:49:53 +0100 | baidobz | (2d56c95b@45.86.201.91) |
2020-11-13 16:50:42 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Quit: leaving) |
2020-11-13 16:52:42 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 16:54:09 +0100 | texasmyn_ | (~texasmyns@185.229.59.3) |
2020-11-13 16:54:10 +0100 | ech | (~user@gateway/tor-sasl/ech) |
2020-11-13 16:55:09 +0100 | texasmy__ | (~texasmyns@2600:6c40:700:5fb3:e17e:7475:52b9:a754) |
2020-11-13 16:55:54 +0100 | fendor__ | (~fendor@178.115.130.14.wireless.dyn.drei.com) |
2020-11-13 16:56:23 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-13 16:56:26 +0100 | texasmy__ | texasmynsted__ |
2020-11-13 16:56:29 +0100 | squirrel1 | (~squirrel@ip-89-102-98-161.net.upcbroadband.cz) |
2020-11-13 16:56:49 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-13 16:56:58 +0100 | texasmynsted | (~texasmyns@185.229.59.75) (Killed (moon.freenode.net (Nickname regained by services))) |
2020-11-13 16:56:58 +0100 | texasmynsted__ | texasmynsted |
2020-11-13 16:57:01 +0100 | squirrel1 | veverak |
2020-11-13 16:57:16 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds) |
2020-11-13 16:58:41 +0100 | liaar0402 | (258f376a@37.143.55.106) |
2020-11-13 16:58:58 +0100 | texasmyn_ | (~texasmyns@185.229.59.3) (Ping timeout: 272 seconds) |
2020-11-13 16:58:58 +0100 | fendor_ | (~fendor@178.165.131.115.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2020-11-13 16:59:17 +0100 | liaar0402 | (258f376a@37.143.55.106) (Remote host closed the connection) |
2020-11-13 16:59:43 +0100 | <baidobz> | Hi everybody, I'm trying to run an IO action, that returns Either, for each element in a list and would like to stop evaluation as soon as one is Left. I tried using fmap and sequence but the later actions are still evaluated and the calculation does not short-circuit. Is the issue that bind in IO is strict? |
2020-11-13 17:00:08 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-dkapzzdvbagqfebh) |
2020-11-13 17:04:52 +0100 | <tomsmeding> | baidobz: can you share the relevant piece of code? It may indeed be that your issue is that bind in IO is strict |
2020-11-13 17:05:28 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 17:07:05 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Ping timeout: 240 seconds) |
2020-11-13 17:07:11 +0100 | bifunc2 | (bifunc2@gateway/vpn/protonvpn/bifunc2) (Quit: -) |
2020-11-13 17:08:53 +0100 | <ski> | baidobz : fwiw, in general, instead of `sequence (fmap f xs)', you can do `mapM f xs'. but from what you're saying, it sounds like you want to use `ExceptT'. but let's see the code ? |
2020-11-13 17:09:39 +0100 | <tomsmeding> | I suspect that the relevant code looks like 'sequence <$> mapM action list' |
2020-11-13 17:09:42 +0100 | <mtothem> | How can i import a local haskell module to my xmonad.hs? |
2020-11-13 17:09:48 +0100 | <ski> | (something like `runExceptT (mapM (ExceptT . f) xs)') |
2020-11-13 17:09:59 +0100 | Ariakenom | (~Ariakenom@h-82-196-111-82.NA.cust.bahnhof.se) |
2020-11-13 17:10:07 +0100 | <ski> | mtothem : `import MyModule' ? |
2020-11-13 17:10:15 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2020-11-13 17:10:57 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Ping timeout: 244 seconds) |
2020-11-13 17:11:07 +0100 | <ski> | tomsmeding : hm, sounds likely |
2020-11-13 17:11:51 +0100 | <mtothem> | I've been trying to do that. but it doesn't work for some reason. it does in other projects. so maybe xmonad does something differently i'm thinking |
2020-11-13 17:12:02 +0100 | <ski> | what is the other file named ? |
2020-11-13 17:12:19 +0100 | <mtothem> | `colorscheme.hs` ski |
2020-11-13 17:12:36 +0100 | <ski> | try naming it `ColorScheme.hs', and do `import ColorScheme' ? |
2020-11-13 17:12:41 +0100 | Sanchayan | (~Sanchayan@171.61.102.109) |
2020-11-13 17:13:04 +0100 | <tomsmeding> | (the initial letter of a module name must be a capital letter, the "S" doesn't matter) |
2020-11-13 17:13:27 +0100 | Sanchayan | (~Sanchayan@171.61.102.109) (Read error: Connection reset by peer) |
2020-11-13 17:13:30 +0100 | <mtothem> | `Could not find module ColorScheme` |
2020-11-13 17:13:31 +0100 | <ski> | (unless it's the main module of an executable) |
2020-11-13 17:13:49 +0100 | <tomsmeding> | (or you're using a case-insensitive file system, like is the default on macOS) |
2020-11-13 17:13:51 +0100 | <ski> | you renamed the file ? |
2020-11-13 17:13:54 +0100 | <ski> | yea |
2020-11-13 17:14:09 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-13 17:14:38 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-11-13 17:16:26 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
2020-11-13 17:17:11 +0100 | <baidobz> | tomsmeding: ski: This is what I'm playing around with now: https://pastebin.com/A2MhUdC8 |
2020-11-13 17:18:06 +0100 | <tomsmeding> | baidobz: yes try ski's suggestion with ExceptT |
2020-11-13 17:18:07 +0100 | <baidobz> | Basically I would like to short-circuit the processing of the list elements in IO upon any error |
2020-11-13 17:18:29 +0100 | ski | low fours tomsmeding |
2020-11-13 17:18:29 +0100 | <tomsmeding> | (import Control.Monad.Except from the 'mtl' package) |
2020-11-13 17:18:56 +0100 | <ski> | baidobz : but first replace `sequence (map f xs)' by `mapM f xs' |
2020-11-13 17:19:16 +0100 | <tomsmeding> | (not necessary, it means the same, but it's neater) |
2020-11-13 17:19:20 +0100 | <baidobz> | Great I'll try that, thank you |
2020-11-13 17:21:02 +0100 | <ski> | baidobz : you could change the signature to `runFoo :: Text -> ExceptT MyErr IO Text', if you like to |
2020-11-13 17:21:52 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2020-11-13 17:22:12 +0100 | <ski> | (if it's likely that you'd want to call `runFoo' in a context where you'd want to continue doing some possibly-aborting execution (assuming the `runFoo' invocation didn't abort), then i'd do that) |
2020-11-13 17:22:59 +0100 | <baidobz> | Indeed that worked! How come it does not work with a plain map and sequence? Where does the short-circuiting logic come from? |
2020-11-13 17:23:04 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-13 17:23:39 +0100 | <tomsmeding> | ExceptT explicitly stops executing remaining monadic actions if a Left occurs |
2020-11-13 17:23:43 +0100 | <baidobz> | The bind of MonadError? |
2020-11-13 17:24:04 +0100 | <tomsmeding> | normally, the mapM (or in your original version, the 'sequence') would first evaluate all monadic actions, and only when those are complete return the resulting list |
2020-11-13 17:24:05 +0100 | <tomsmeding> | yup |
2020-11-13 17:24:06 +0100 | zaquest | (~notzaques@5.128.210.178) |
2020-11-13 17:24:10 +0100 | zaquest | (~notzaques@5.128.210.178) (Read error: Connection reset by peer) |
2020-11-13 17:24:30 +0100 | <ski> | it comes from using the `ExceptT' version of `sequence'/`mapM', which ultimately comes from the `Applicative' / `Monad' instance for `ExceptT' being short-circuiting |
2020-11-13 17:25:15 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 17:26:30 +0100 | <ski> | (`traverse' (or `sequenceA') is a version of `mapM' (or `sequence') which only requires `Applicative', not `Monad'. back when `sequence'/`mapM' was defined, `Applicative' didn't exist yet, so now you have both those, and `sequenceA'/`traverse') |
2020-11-13 17:27:15 +0100 | <ski> | baidobz : `MonadError' doesn't come to play here |
2020-11-13 17:27:46 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 17:28:45 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) |
2020-11-13 17:29:43 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 17:30:38 +0100 | kav | (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Ping timeout: 264 seconds) |
2020-11-13 17:30:40 +0100 | zaquest | (~notzaques@5.128.210.178) |
2020-11-13 17:31:01 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 17:31:26 +0100 | <baidobz> | Super interesting. I'm looking at the Haddock and mtl's sources to try and find the relevant definition in the code now |
2020-11-13 17:32:05 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds) |
2020-11-13 17:32:18 +0100 | <tomsmeding> | https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.Except.html#… |
2020-11-13 17:32:25 +0100 | <baidobz> | I guess it's in transformers |
2020-11-13 17:32:37 +0100 | <baidobz> | Yes! Thanks :) |
2020-11-13 17:33:20 +0100 | <tomsmeding> | it's refreshing how readable basic definitions like these are, the short-circuiting is actually evident in the definition of >>= (which is only 5 lines) |
2020-11-13 17:33:36 +0100 | <tomsmeding> | contrast with e.g. C++ standard libraries... |
2020-11-13 17:34:10 +0100 | <baidobz> | Indeed it's very simple and clear |
2020-11-13 17:34:48 +0100 | <baidobz> | I used to do lots of template meta-programming in C++ and I don't miss it |
2020-11-13 17:35:01 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-11-13 17:35:17 +0100 | conal | (~conal@66.115.157.159) (Quit: Computer has gone to sleep.) |
2020-11-13 17:35:49 +0100 | <baidobz> | Thanks a lot for your quick help! |
2020-11-13 17:36:12 +0100 | Martinsos_ | (~Martinsos@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 17:36:55 +0100 | <baidobz> | Can I also ask: is there a situation (different Monad?) where my naive approach with sequence would work out similarly due to laziness or does sequence/mapM always evaluate all monadic actions? |
2020-11-13 17:37:28 +0100 | <comerijn> | baidobz: The ordering of effects is independent of laziness |
2020-11-13 17:37:34 +0100 | <ski> | it always executes all the actions (performing all the effects) |
2020-11-13 17:37:59 +0100 | <comerijn> | baidobz: The Monad/Applicative instance of, say, IO are always in sequential order |
2020-11-13 17:38:01 +0100 | <ski> | but yes, non-strictness is a separate thing |
2020-11-13 17:38:48 +0100 | <solonarv> | well, no. sequence [System.Exit.exit, putStrLn "hello"] will not output hello to the terminal, for a counterexample |
2020-11-13 17:38:49 +0100 | Martinsos_ | (~Martinsos@cpe-188-129-116-164.dynamic.amis.hr) (Client Quit) |
2020-11-13 17:38:59 +0100 | <comerijn> | baidobz: So yes, sequence and mapM guarantee that all the actions are done by the time the sequence/mapM is done |
2020-11-13 17:39:03 +0100 | <comerijn> | solonarv: >.> |
2020-11-13 17:39:15 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) ("ERC (IRC client for Emacs 27.1)") |
2020-11-13 17:39:21 +0100 | <comerijn> | solonarv: That's not a contradiction, anyway |
2020-11-13 17:39:31 +0100 | hackage | polysemy-methodology-composite 0.1.0.0 - Functions for using polysemy-methodology with composite. https://hackage.haskell.org/package/polysemy-methodology-composite-0.1.0.0 (locallycompact) |
2020-11-13 17:39:47 +0100 | <comerijn> | solonarv: exit happens in sequential order with the rest :p |
2020-11-13 17:39:49 +0100 | <solonarv> | depending on which Monad instance is being used, the later ones may or may not be exexucted, or evaluated |
2020-11-13 17:40:03 +0100 | <solonarv> | (however the *order* does not depend on which instance is in play) |
2020-11-13 17:40:29 +0100 | <ski> | oh, good example. i suppose one should say that each action is executed, provided all the previous ones terminated normally |
2020-11-13 17:40:44 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:b423:9089:de01:217e) |
2020-11-13 17:41:01 +0100 | hackage | polysemy-methodology-composite 0.1.1.0 - Functions for using polysemy-methodology with composite. https://hackage.haskell.org/package/polysemy-methodology-composite-0.1.1.0 (locallycompact) |
2020-11-13 17:41:04 +0100 | xerox_ | (~xerox@unaffiliated/xerox) |
2020-11-13 17:41:14 +0100 | <solonarv> | they're executed in order, but an action might say "exit immediately, nothing after me gets executed" or even "everything after me happens twice" or "everything after me happens on another thread" |
2020-11-13 17:41:32 +0100 | <ski> | (obviously when executing `do foo; undefined; bar', `bar' will not be executed, at least in general) |
2020-11-13 17:42:00 +0100 | <ski> | yes, which is exactly what `ExceptT' does (the "nothing after me gets executed" part) |
2020-11-13 17:42:31 +0100 | hackage | polysemy-methodology-composite 0.1.2.0 - Functions for using polysemy-methodology with composite. https://hackage.haskell.org/package/polysemy-methodology-composite-0.1.2.0 (locallycompact) |
2020-11-13 17:42:41 +0100 | <solonarv> | yep; the other two can be accomplished by Cont / ContT, and probably also by a number of other monads |
2020-11-13 17:42:56 +0100 | <ski> | yep (i see how one could accomplish it) |
2020-11-13 17:43:25 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) (Ping timeout: 240 seconds) |
2020-11-13 17:43:28 +0100 | <baidobz> | Great points, that makes sense |
2020-11-13 17:43:31 +0100 | hackage | cabal-file 0.1.1 - Cabal file access https://hackage.haskell.org/package/cabal-file-0.1.1 (JensPetersen) |
2020-11-13 17:45:46 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 17:46:06 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) () |
2020-11-13 17:46:25 +0100 | <motte> | hekkaidekapus: >[[(1 :: Int) .. 4], [5 .. 13]] |
2020-11-13 17:46:29 +0100 | <ski> | in `do n <- [1 .. 9]; d <- [2 .. n-1]; guard (n `mod` d == 0); return (n,d)', for some choice of `n' (namely `1'), everything after `d <- [2 .. n-1]' will be executed zero times (iow, we abort that choice of `n'), and for some other choices of `n', what's after will be executed several times |
2020-11-13 17:47:31 +0100 | <ski> | (and then, similarly, for different choices of `d', what comes after the `guard' invocation may be executed once or not at all) |
2020-11-13 17:47:43 +0100 | <ski> | > do n <- [1 .. 9]; d <- [2 .. n-1]; guard (n `mod` d == 0); return (n,d) |
2020-11-13 17:47:45 +0100 | <lambdabot> | [(4,2),(6,2),(6,3),(8,2),(8,4),(9,3)] |
2020-11-13 17:48:09 +0100 | <motte> | hekkaidekapus: the list i was talking about was more like replicate 9 [1..4] |
2020-11-13 17:48:26 +0100 | <ski> | (it computes composite numbers less than ten, paired with possible proper divisors) |
2020-11-13 17:49:45 +0100 | <motte> | hekkaidekapus: so main = print $ length $ traverse permutations $ replicate 9 [1..4] , which quickly eats all my ram, even with -O2 |
2020-11-13 17:50:09 +0100 | knupfer | (~Thunderbi@200116b8249e5f0024d540c2b38d8e9b.dip.versatel-1u1.de) |
2020-11-13 17:50:32 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-13 17:51:13 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 260 seconds) |
2020-11-13 17:53:38 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-13 17:55:50 +0100 | kav | (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) |
2020-11-13 17:58:11 +0100 | alp | (~alp@2a01:e0a:58b:4920:888e:a635:2469:ca8a) |
2020-11-13 17:58:50 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-13 17:58:55 +0100 | christo | (~chris@81.96.113.213) |
2020-11-13 17:59:16 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-11-13 17:59:42 +0100 | comerijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 17:59:46 +0100 | Martinsos_ | (uid473568@gateway/web/irccloud.com/x-ofadbekegfkzcelc) |
2020-11-13 18:00:42 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 18:02:00 +0100 | hackage | beam-automigrate 0.1.0.0 - DB migration library for beam, targeting Postgres. https://hackage.haskell.org/package/beam-automigrate-0.1.0.0 (abrar) |
2020-11-13 18:03:30 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 258 seconds) |
2020-11-13 18:04:06 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-tcyoqfqkxtjwjlrv) |
2020-11-13 18:07:31 +0100 | LKoen_ | (~LKoen@9.253.88.92.rev.sfr.net) |
2020-11-13 18:07:49 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 18:08:24 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
2020-11-13 18:09:19 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 18:09:26 +0100 | <Martinsos> | join /nickserv |
2020-11-13 18:10:21 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) (Read error: Connection reset by peer) |
2020-11-13 18:10:25 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) (Ping timeout: 264 seconds) |
2020-11-13 18:11:44 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 18:12:37 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) (Quit: ERC (IRC client for Emacs 27.1)) |
2020-11-13 18:12:37 +0100 | Martinsos_ | Martinsos |
2020-11-13 18:13:56 +0100 | Martinso` | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 18:14:05 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds) |
2020-11-13 18:14:40 +0100 | Martinso` | Martinsos` |
2020-11-13 18:14:52 +0100 | conal | (~conal@66.115.157.159) |
2020-11-13 18:14:59 +0100 | Martinsos` | (~user@cpe-188-129-116-164.dynamic.amis.hr) (Client Quit) |
2020-11-13 18:15:39 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-13 18:15:46 +0100 | Martinsos | (uid473568@gateway/web/irccloud.com/x-ofadbekegfkzcelc) () |
2020-11-13 18:16:17 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2020-11-13 18:17:19 +0100 | crdrost | (~crdrost@c-98-207-102-156.hsd1.ca.comcast.net) |
2020-11-13 18:17:48 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 18:20:23 +0100 | conal_ | (~conal@64.71.133.70) |
2020-11-13 18:20:23 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 18:20:23 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
2020-11-13 18:20:58 +0100 | conal | (~conal@66.115.157.159) (Ping timeout: 260 seconds) |
2020-11-13 18:27:31 +0100 | texasmynsted | (~texasmyns@2600:6c40:700:5fb3:e17e:7475:52b9:a754) () |
2020-11-13 18:28:14 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-13 18:28:23 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) ("ERC (IRC client for Emacs 27.1)") |
2020-11-13 18:29:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 18:34:27 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-13 18:35:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-13 18:35:03 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-13 18:35:45 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 18:35:57 +0100 | machined1od | (~machinedg@207.253.244.210) |
2020-11-13 18:36:07 +0100 | machinedgod | (~machinedg@207.253.244.210) (Remote host closed the connection) |
2020-11-13 18:38:12 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
2020-11-13 18:40:10 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-11-13 18:41:30 +0100 | hackage | stack-all 0.1 - CLI tool for building across Stackage major versions https://hackage.haskell.org/package/stack-all-0.1 (JensPetersen) |
2020-11-13 18:44:50 +0100 | jespada | (~jespada@90.254.245.49) (Quit: Leaving) |
2020-11-13 18:51:41 +0100 | jakob_ | (~textual@p57b0eae0.dip0.t-ipconnect.de) |
2020-11-13 18:51:42 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-13 18:52:51 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-13 18:54:44 +0100 | kwantuM | (1f971d5a@31-151-29-90.dynamic.upc.nl) |
2020-11-13 18:55:11 +0100 | <kwantuM> | hey, I was wondering if someone could explain what the (I# x#) syntax means. I was looking at the data.bits source |
2020-11-13 18:55:44 +0100 | <glguy> | kwantuM: in that context # is just another letter |
2020-11-13 18:56:11 +0100 | <glguy> | I# is a constructor and x# is a variable there. |
2020-11-13 18:56:31 +0100 | <glguy> | The convention is that unboxed things have a # in their names |
2020-11-13 18:56:31 +0100 | <kwantuM> | so why is the # used? |
2020-11-13 18:56:38 +0100 | <kwantuM> | oh okay, thanks! |
2020-11-13 18:57:25 +0100 | kwantuM | (1f971d5a@31-151-29-90.dynamic.upc.nl) (Remote host closed the connection) |
2020-11-13 18:59:26 +0100 | raichoo | (~raichoo@dslb-178-001-022-086.178.001.pools.vodafone-ip.de) |
2020-11-13 18:59:49 +0100 | alp | (~alp@2a01:e0a:58b:4920:888e:a635:2469:ca8a) (Ping timeout: 272 seconds) |
2020-11-13 19:00:22 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 19:00:56 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) (Ping timeout: 265 seconds) |
2020-11-13 19:01:34 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
2020-11-13 19:01:51 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Remote host closed the connection) |
2020-11-13 19:01:55 +0100 | <hekkaidekapus> | motte: Yeah, that will blow up quickly. The oneliner we are using is useful for short lists. Perhaps approach your problem from another perspective. Define a list (a set, really) and build up permutations σ₁, σ₂, σ₃… based only on indices. Then work on those σs to pick elements from the set as you like. |
2020-11-13 19:02:19 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-13 19:02:21 +0100 | vilpan | (~0@212.117.1.172) (Quit: Leaving.) |
2020-11-13 19:02:32 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2020-11-13 19:02:43 +0100 | gproto0023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds) |
2020-11-13 19:03:37 +0100 | texasmynsted | (~texasmyns@2600:6c40:700:5fb3:f092:e5c5:68d2:d761) |
2020-11-13 19:06:29 +0100 | APic | (apic@apic.name) (Ping timeout: 268 seconds) |
2020-11-13 19:06:41 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
2020-11-13 19:06:46 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-13 19:06:49 +0100 | w1gz | (~do@159.89.11.133) (Quit: WeeChat 2.8) |
2020-11-13 19:07:22 +0100 | APic | (apic@apic.name) |
2020-11-13 19:08:12 +0100 | texasmynsted | (~texasmyns@2600:6c40:700:5fb3:f092:e5c5:68d2:d761) (Remote host closed the connection) |
2020-11-13 19:08:23 +0100 | bliminse | (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds) |
2020-11-13 19:08:47 +0100 | texasmynsted | (~texasmyns@64.44.55.44) |
2020-11-13 19:09:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 19:13:45 +0100 | TommyC | (~TommyC@unaffiliated/sepulchralbloom) (Ping timeout: 240 seconds) |
2020-11-13 19:13:55 +0100 | xerox_ | (~xerox@unaffiliated/xerox) (Quit: leaving) |
2020-11-13 19:15:12 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) |
2020-11-13 19:18:51 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) (Quit: This computer has gone to sleep) |
2020-11-13 19:22:01 +0100 | hackage | telegram-bot-simple 0.3.4 - Easy to use library for building Telegram bots. https://hackage.haskell.org/package/telegram-bot-simple-0.3.4 (swamp_agr) |
2020-11-13 19:22:24 +0100 | LKoen_ | (~LKoen@9.253.88.92.rev.sfr.net) (Remote host closed the connection) |
2020-11-13 19:22:57 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-13 19:26:18 +0100 | TommyC | (~TommyC@unaffiliated/sepulchralbloom) |
2020-11-13 19:27:45 +0100 | nados | (~dan@69-165-210-185.cable.teksavvy.com) |
2020-11-13 19:35:09 +0100 | jneira | (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) |
2020-11-13 19:35:11 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-11-13 19:35:15 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer) |
2020-11-13 19:36:36 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-13 19:36:51 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2020-11-13 19:37:21 +0100 | rusua | (uid124537@gateway/web/irccloud.com/x-tapvwonhsgfjpqka) |
2020-11-13 19:38:01 +0100 | jakob_ | (~textual@p57b0eae0.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
2020-11-13 19:38:27 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2020-11-13 19:39:05 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 272 seconds) |
2020-11-13 19:39:51 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-13 19:40:55 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-13 19:41:03 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
2020-11-13 19:41:06 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) |
2020-11-13 19:41:39 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2020-11-13 19:43:40 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-13 19:43:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-13 19:44:51 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-13 19:45:15 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) |
2020-11-13 19:45:17 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-13 19:46:00 +0100 | jmcarthur | (~jmcarthur@104.140.53.251) |
2020-11-13 19:46:27 +0100 | jakalx | (~jakalx@base.jakalx.net) (Ping timeout: 260 seconds) |
2020-11-13 19:46:33 +0100 | alp | (~alp@2a01:e0a:58b:4920:d528:e132:73d:7a39) |
2020-11-13 19:48:23 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
2020-11-13 19:49:21 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) |
2020-11-13 19:49:34 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2020-11-13 19:50:14 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2020-11-13 19:51:11 +0100 | chaosmasttter | (~chaosmast@p200300c4a70f620139da516dba2d2a81.dip0.t-ipconnect.de) |
2020-11-13 19:51:34 +0100 | leungbk | (~user@2605:e000:1315:706:6194:c9aa:33f:2f0) |
2020-11-13 19:54:30 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 19:56:19 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
2020-11-13 19:56:36 +0100 | lestrrat | (~lestrrat@217.146.82.202) |
2020-11-13 20:03:22 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2020-11-13 20:03:26 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2020-11-13 20:04:11 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) (Read error: Connection reset by peer) |
2020-11-13 20:04:45 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) |
2020-11-13 20:05:22 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-13 20:06:26 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) |
2020-11-13 20:07:08 +0100 | zincy__ | (~tom@2a00:23c8:970a:3501:9884:7ab1:3658:f1fb) |
2020-11-13 20:10:05 +0100 | jmcarthur | (~jmcarthur@104.140.53.251) (Ping timeout: 240 seconds) |
2020-11-13 20:10:14 +0100 | asheshambasta | (~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 264 seconds) |
2020-11-13 20:10:40 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2020-11-13 20:10:46 +0100 | Rudd0 | (~Rudd0@185.189.115.98) (Ping timeout: 258 seconds) |
2020-11-13 20:10:56 +0100 | zincy_ | (~tom@2a00:23c8:970a:3501:d0cd:312d:55de:c707) (Ping timeout: 246 seconds) |
2020-11-13 20:12:25 +0100 | aarvar | (~foewfoiew@50.35.43.33) (Ping timeout: 246 seconds) |
2020-11-13 20:13:13 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-13 20:13:17 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-rtfvtwxlaflqdsii) |
2020-11-13 20:13:55 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 20:15:02 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) (Quit: This computer has gone to sleep) |
2020-11-13 20:15:59 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) |
2020-11-13 20:16:14 +0100 | MarcelineVQ | (~anja@198.254.202.72) (Ping timeout: 256 seconds) |
2020-11-13 20:16:28 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-13 20:17:21 +0100 | acowley | (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer) |
2020-11-13 20:17:31 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 20:17:55 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2020-11-13 20:17:57 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) (Read error: Connection reset by peer) |
2020-11-13 20:18:42 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-13 20:18:49 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Ping timeout: 264 seconds) |
2020-11-13 20:19:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 20:19:24 +0100 | _ashbreeze_ | (~mark@72-161-252-32.dyn.centurytel.net) |
2020-11-13 20:24:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-13 20:25:32 +0100 | knupfer | (~Thunderbi@200116b8249e5f0024d540c2b38d8e9b.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-13 20:27:03 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
2020-11-13 20:29:05 +0100 | manjaro-user | (~manjaro-u@109.77.71.163) (Ping timeout: 240 seconds) |
2020-11-13 20:29:58 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) (Quit: This computer has gone to sleep) |
2020-11-13 20:30:48 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-11-13 20:30:48 +0100 | star_cloud | (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) (Read error: Connection reset by peer) |
2020-11-13 20:30:55 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) |
2020-11-13 20:31:05 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
2020-11-13 20:31:48 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-13 20:32:09 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) |
2020-11-13 20:32:58 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection) |
2020-11-13 20:32:59 +0100 | star_cloud | (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) |
2020-11-13 20:33:11 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) (Client Quit) |
2020-11-13 20:38:45 +0100 | w1gz | (~do@159.89.11.133) |
2020-11-13 20:40:01 +0100 | <sm[m]> | friends.. could you guess why doing writeIORef in this yesod test suite blocks the test ? https://paste.tomsmeding.com/HfUbmN1S |
2020-11-13 20:41:38 +0100 | bliminse | (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) |
2020-11-13 20:41:39 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) |
2020-11-13 20:41:59 +0100 | <sm[m]> | the test causes this line to run, which presumably reads from the IORef: App {appOpts = opts, appJournal} <- getYesod |
2020-11-13 20:42:50 +0100 | <sm[m]> | or rather, that appJournal IORef does get read from, during the test |
2020-11-13 20:43:26 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) (Quit: WeeChat 2.9) |
2020-11-13 20:43:42 +0100 | <tomsmeding> | add more putStrLn until you find the exact statement that blocks :p |
2020-11-13 20:44:06 +0100 | <sm[m]> | and yes, if I comment out the read it's fine. The write followed by the read soon after causes it to block |
2020-11-13 20:45:49 +0100 | <sm[m]> | probably is this running in threaded mode. Perhaps I need atomicWriteIORef.. |
2020-11-13 20:46:22 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds) |
2020-11-13 20:47:00 +0100 | <sm[m]> | no change. Darn. |
2020-11-13 20:49:43 +0100 | juri_ | (~juri@178.63.35.222) (Ping timeout: 260 seconds) |
2020-11-13 20:52:01 +0100 | <sm[m]> | well, I've read https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-IORef.html carefully but nowhere does it say that IORef operations can block. Is it normal ? |
2020-11-13 20:53:42 +0100 | <sm[m]> | I don't even have to writeIORef - if I newIORef with this value, then try to read, it also hangs. Hmm. |
2020-11-13 20:54:25 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-13 20:55:05 +0100 | <monochrom> | AFAIK writeIORef doesn't block. |
2020-11-13 20:55:25 +0100 | <monochrom> | and even more strongly, it doesn't block other threads either |
2020-11-13 20:56:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 20:56:45 +0100 | blankhart | (~blankhart@pool-100-35-219-3.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-11-13 20:57:06 +0100 | moet | (~moet@mobile-166-170-42-250.mycingular.net) |
2020-11-13 20:57:29 +0100 | <moet> | can i add a `{-# WARNING .. #-}` pragma on a function body in a class instance? |
2020-11-13 20:57:44 +0100 | <moet> | gets a parse error currently, so i guess the answer is no, but i just wanted to confirm |
2020-11-13 20:59:02 +0100 | dragestil | (~quassel@185.137.175.104) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-13 20:59:26 +0100 | <monochrom> | Does the GHC user's guide say something about this? |
2020-11-13 21:00:25 +0100 | <sm[m]> | monochrom: thanks |
2020-11-13 21:00:40 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) |
2020-11-13 21:01:22 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 21:01:40 +0100 | <sm[m]> | I think what I'm writing must have a circular reference or an infinite loop, but darned if I can see it.. |
2020-11-13 21:01:44 +0100 | <moet> | monochrom: it's kind of unclear, but it says "You can attach a warning to a function, class, type, or data constructor, with the following top-level declarations" |
2020-11-13 21:02:14 +0100 | <moet> | and "You can only attach to entities declared at top level in the module being compiled" |
2020-11-13 21:02:41 +0100 | <moet> | which might be construed to mean that it doesn't include a typeclass instance function because that's "declared" elsewhere, in the module where the typeclass is located? |
2020-11-13 21:03:22 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-13 21:04:59 +0100 | conal_ | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 21:06:19 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 21:06:53 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-13 21:07:26 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-13 21:08:53 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) |
2020-11-13 21:09:27 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 21:17:31 +0100 | jneira | (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Ping timeout: 260 seconds) |
2020-11-13 21:17:37 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-11-13 21:21:17 +0100 | rprije | (~rprije@124.148.131.132) |
2020-11-13 21:22:58 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 21:26:04 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-13 21:27:05 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2020-11-13 21:27:28 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) (Remote host closed the connection) |
2020-11-13 21:29:36 +0100 | davr0s | (~davrs@host81-147-72-1.range81-147.btcentralplus.com) |
2020-11-13 21:29:40 +0100 | ggole | (~ggole@2001:8003:8119:7200:cd0:562c:261b:241d) (Quit: Leaving) |
2020-11-13 21:30:25 +0100 | shadowdao | (~user@unaffiliated/shadowdaemon) |
2020-11-13 21:30:35 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) (Quit: avdb) |
2020-11-13 21:30:52 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) |
2020-11-13 21:30:53 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
2020-11-13 21:31:08 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-13 21:31:19 +0100 | davr0s | (~davrs@host81-147-72-1.range81-147.btcentralplus.com) (Remote host closed the connection) |
2020-11-13 21:31:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-13 21:31:29 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2020-11-13 21:33:58 +0100 | leungbk | (~user@2605:e000:1315:706:6194:c9aa:33f:2f0) (Remote host closed the connection) |
2020-11-13 21:34:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-13 21:34:29 +0100 | leungbk` | (~user@cpe-104-33-52-83.socal.res.rr.com) |
2020-11-13 21:38:05 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds) |
2020-11-13 21:39:20 +0100 | anthonyw | (~anthonyw@c-24-10-252-98.hsd1.ut.comcast.net) |
2020-11-13 21:41:51 +0100 | crdrost | (~crdrost@c-98-207-102-156.hsd1.ca.comcast.net) (Quit: This computer has gone to sleep) |
2020-11-13 21:46:35 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…) |
2020-11-13 21:47:03 +0100 | rusua | (uid124537@gateway/web/irccloud.com/x-tapvwonhsgfjpqka) (Quit: Connection closed for inactivity) |
2020-11-13 21:47:10 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) |
2020-11-13 21:47:21 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) (Client Quit) |
2020-11-13 21:47:23 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-11-13 21:47:45 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) |
2020-11-13 21:48:04 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-13 21:48:09 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) (Client Quit) |
2020-11-13 21:48:11 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-13 21:48:15 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-13 21:48:43 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) |
2020-11-13 21:48:48 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 260 seconds) |
2020-11-13 21:48:55 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) (Client Quit) |
2020-11-13 21:49:23 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) |
2020-11-13 21:49:41 +0100 | jakob_ | (~textual@p200300f49f1622007c6473fefbd3b832.dip0.t-ipconnect.de) (Client Quit) |
2020-11-13 21:50:11 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2020-11-13 21:51:00 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) |
2020-11-13 21:52:43 +0100 | anthonyw | (~anthonyw@c-24-10-252-98.hsd1.ut.comcast.net) (Quit: leaving) |
2020-11-13 21:53:07 +0100 | clog | (~nef@bespin.org) (Ping timeout: 258 seconds) |
2020-11-13 21:54:31 +0100 | <dminuoso> | sm[m]: Compile with profiling, flip on `+RTS -xc -RTS` and see where it hangs? |
2020-11-13 21:55:08 +0100 | <dminuoso> | (That is, then send SIGINT to it when it hangs) |
2020-11-13 21:55:49 +0100 | clog | (~nef@bespin.org) |
2020-11-13 21:56:25 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2020-11-13 21:57:43 +0100 | Franciman | (~francesco@host-82-56-223-169.retail.telecomitalia.it) (Quit: Leaving) |
2020-11-13 21:58:57 +0100 | <sm[m]> | dminuoso: good idea, but I think I've found it. My "simple" value-generating action is going wrong when called with unusual programmatic arguments. Not exactly sure why it hangs but I can see it going off the rails |
2020-11-13 22:00:02 +0100 | lestrrat | (~lestrrat@217.146.82.202) () |
2020-11-13 22:00:06 +0100 | <sm[m]> | ie, it was the value and what the code under test does with it, nothing to do with the IORef activity |
2020-11-13 22:00:30 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-13 22:00:31 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 22:00:46 +0100 | crdrost | (~crdrost@c-98-207-102-156.hsd1.ca.comcast.net) |
2020-11-13 22:01:19 +0100 | <sm[m]> | tests breaking stuff already \o/ |
2020-11-13 22:01:25 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 22:02:48 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 22:03:38 +0100 | coot | (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-11-13 22:04:56 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Ping timeout: 244 seconds) |
2020-11-13 22:04:57 +0100 | keep_learning | (~keep_lear@43.231.26.152) (Quit: Leaving) |
2020-11-13 22:05:32 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-13 22:06:51 +0100 | recon_- | (~quassel@2602:febc:0:b6::6ca2) (Quit: No Ping reply in 180 seconds.) |
2020-11-13 22:07:11 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 22:07:18 +0100 | jonatanb_ | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 22:07:40 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-13 22:08:07 +0100 | recon_- | (~quassel@2602:febc:0:b6::6ca2) |
2020-11-13 22:09:11 +0100 | WeChanTonio | (~WeChanTon@186-130-20-31.ftth.glasoperator.nl) |
2020-11-13 22:10:30 +0100 | hackage | hyper-haskell-server 0.2.3.0, hyper-extra 0.2.0.0, hyper 0.2.1.0 (HeinrichApfelmus): https://qbin.io/longer-equal-cbm8 |
2020-11-13 22:10:43 +0100 | avdb | (~avdb@ip-213-49-124-119.dsl.scarlet.be) (Quit: avdb) |
2020-11-13 22:12:11 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2020-11-13 22:13:31 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
2020-11-13 22:14:44 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) |
2020-11-13 22:15:56 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-11-13 22:18:36 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 22:20:19 +0100 | britva | (~britva@2a02:aa13:7240:2980:bc4b:509a:98e6:5bb0) (Quit: This computer has gone to sleep) |
2020-11-13 22:22:37 +0100 | BluePass | (~BluePass@185.163.110.116) |
2020-11-13 22:22:37 +0100 | chrpape` | (~user@2a01:4f9:c010:632d::1) (Read error: Connection reset by peer) |
2020-11-13 22:27:59 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 22:28:19 +0100 | jakob_ | (~textual@p57b0eae0.dip0.t-ipconnect.de) |
2020-11-13 22:30:12 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 272 seconds) |
2020-11-13 22:30:27 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 22:34:31 +0100 | raichoo | (~raichoo@dslb-178-001-022-086.178.001.pools.vodafone-ip.de) (Quit: Lost terminal) |
2020-11-13 22:35:13 +0100 | pavonia | (~user@unaffiliated/siracusa) (Read error: Connection reset by peer) |
2020-11-13 22:39:47 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-13 22:41:23 +0100 | jonatanb_ | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-13 22:42:04 +0100 | WeChan-Tonio | (~WeChanTon@186-130-20-31.ftth.glasoperator.nl) |
2020-11-13 22:42:53 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2020-11-13 22:43:00 +0100 | WeChanTonio | (~WeChanTon@186-130-20-31.ftth.glasoperator.nl) ("Leaving") |
2020-11-13 22:43:01 +0100 | entel | (uid256215@botters/entel) () |
2020-11-13 22:43:20 +0100 | entel | (uid256215@botters/entel) |
2020-11-13 22:44:20 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:b423:9089:de01:217e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-13 22:44:57 +0100 | WeChan-Tonio | (~WeChanTon@186-130-20-31.ftth.glasoperator.nl) () |
2020-11-13 22:53:31 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Quit: thc202) |
2020-11-13 22:53:35 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-rtfvtwxlaflqdsii) (Quit: Connection closed for inactivity) |
2020-11-13 22:56:45 +0100 | machined1od | (~machinedg@207.253.244.210) (Ping timeout: 256 seconds) |
2020-11-13 22:58:57 +0100 | chrpape | (~user@2a01:4f9:c010:632d::1) |
2020-11-13 22:59:19 +0100 | chrpape | (~user@2a01:4f9:c010:632d::1) (Client Quit) |
2020-11-13 23:00:30 +0100 | Rudd0 | (~Rudd0@185.189.115.98) |
2020-11-13 23:01:00 +0100 | chrpape | (~user@2a01:4f9:c010:632d::1) |
2020-11-13 23:02:30 +0100 | st8less | (~st8less@2603:a060:11fd:0:48e3:54d2:40b:a73f) (Quit: WeeChat 2.7.1) |
2020-11-13 23:03:36 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 23:04:02 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 23:07:07 +0100 | kish` | (~oracle@unaffiliated/oracle) (Ping timeout: 260 seconds) |
2020-11-13 23:08:15 +0100 | jonatanb | (~jonatanb@83.24.155.27.ipv4.supernova.orange.pl) |
2020-11-13 23:08:56 +0100 | chaosmasttter | (~chaosmast@p200300c4a70f620139da516dba2d2a81.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-11-13 23:10:23 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
2020-11-13 23:17:23 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-13 23:20:13 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds) |
2020-11-13 23:20:17 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2020-11-13 23:23:27 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2020-11-13 23:27:21 +0100 | dbmikus__ | (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) |
2020-11-13 23:29:02 +0100 | PatrcikGrey | (4d2d3763@77-45-55-99.sta.asta-net.com.pl) |
2020-11-13 23:29:41 +0100 | <PatrcikGrey> | Hello everyone, nice to meet all of you, I tried to google it but failed, so maybe some of you will know the answer: |
2020-11-13 23:30:12 +0100 | <PatrcikGrey> | Do you know any successful uses of haskell in object detection?(especially people detection) |
2020-11-13 23:31:25 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds) |
2020-11-13 23:31:31 +0100 | <PatrcikGrey> | Tried to find some libraries/code/companies but its pretty weak compared to c++, however I would really want to do it in functional way. |
2020-11-13 23:31:43 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-11-13 23:32:30 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-13 23:32:57 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2020-11-13 23:33:14 +0100 | PatrcikGrey | (4d2d3763@77-45-55-99.sta.asta-net.com.pl) () |
2020-11-13 23:33:20 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-13 23:33:22 +0100 | PatrcikGrey | (4d2d3763@77-45-55-99.sta.asta-net.com.pl) |
2020-11-13 23:33:54 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection) |
2020-11-13 23:34:21 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 23:37:40 +0100 | pfurla | (~pfurla@238.15.195.173.client.static.strong-in52.as13926.net) |
2020-11-13 23:38:55 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2020-11-13 23:39:22 +0100 | <texasmynsted> | What is object detection? |
2020-11-13 23:40:00 +0100 | hackage | polysemy-methodology 0.1.7.0 - Domain modelling algebra for polysemy https://hackage.haskell.org/package/polysemy-methodology-0.1.7.0 (locallycompact) |
2020-11-13 23:41:59 +0100 | <texasmynsted> | Maybe just use an object detection lib from C and call that from Haskell? |
2020-11-13 23:42:40 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-13 23:43:07 +0100 | conal | (~conal@64.71.133.70) |
2020-11-13 23:43:27 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-13 23:43:31 +0100 | hackage | polysemy-extra 0.1.5.0 - Extra Input and Output functions for polysemy.. https://hackage.haskell.org/package/polysemy-extra-0.1.5.0 (locallycompact) |
2020-11-13 23:45:12 +0100 | feliocrat | (~feliocrat@95.70.185.239) (Remote host closed the connection) |
2020-11-13 23:45:31 +0100 | hackage | polysemy-extra 0.1.6.0 - Extra Input and Output functions for polysemy.. https://hackage.haskell.org/package/polysemy-extra-0.1.6.0 (locallycompact) |
2020-11-13 23:47:30 +0100 | hackage | polysemy-extra 0.1.6.1 - Extra Input and Output functions for polysemy.. https://hackage.haskell.org/package/polysemy-extra-0.1.6.1 (locallycompact) |
2020-11-13 23:53:06 +0100 | o1lo01ol1o | (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) |
2020-11-13 23:58:05 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 258 seconds) |