2021-10-21 00:01:01 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-21 00:01:56 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
2021-10-21 00:05:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-10-21 00:08:38 +0200 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2021-10-21 00:11:31 +0200 | sedeki | (~textual@user/sedeki) |
2021-10-21 00:20:55 +0200 | urdh | (~urdh@user/urdh) (Quit: Boom!) |
2021-10-21 00:22:43 +0200 | jonatan | (~nate@h85-8-60-194.cust.a3fiber.se) (Ping timeout: 252 seconds) |
2021-10-21 00:22:56 +0200 | jonatan | (~nate@h85-8-60-194.cust.a3fiber.se) |
2021-10-21 00:23:24 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-21 00:23:24 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-21 00:23:24 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-21 00:24:13 +0200 | urdh | (~urdh@user/urdh) |
2021-10-21 00:26:29 +0200 | off^ | (~off@68.101.53.15) (Remote host closed the connection) |
2021-10-21 00:33:40 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
2021-10-21 00:36:31 +0200 | jushur | (~human@user/jushur) |
2021-10-21 00:43:14 +0200 | <zzz> | %s/ or just s/ ? |
2021-10-21 00:43:40 +0200 | <zzz> | i mean, /g ? |
2021-10-21 00:43:53 +0200 | <awpr> | I only see one match |
2021-10-21 00:44:18 +0200 | <zzz> | my bad |
2021-10-21 00:45:00 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
2021-10-21 00:45:15 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-21 00:45:39 +0200 | Skyfire | (~pyon@user/pyon) |
2021-10-21 00:47:14 +0200 | meltedbrain_y2k | (~tekserf@94.73.36.197) () |
2021-10-21 00:49:00 +0200 | <ManofLetters[m]> | John Ericson: hi! could you have a look at https://github.com/simonmar/happy/issues/211? Just in case it's not only my CIs that died... :) |
2021-10-21 00:49:45 +0200 | <ericson2314> | Man of Letters: it's in the readme |
2021-10-21 00:49:53 +0200 | <ericson2314> | you want -bootstrap propably |
2021-10-21 00:50:04 +0200 | <ericson2314> | I suspect I am going to get a lot of these questions :/ |
2021-10-21 00:50:16 +0200 | <ericson2314> | I had mixed feelings about cutting this release |
2021-10-21 00:50:26 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
2021-10-21 00:50:33 +0200 | <ManofLetters[m]> | yeah, because it's not my direct dep; something else depends on it |
2021-10-21 00:50:39 +0200 | <ManofLetters[m]> | can I still mitigate the issue? |
2021-10-21 00:50:41 +0200 | <ericson2314> | deps don't specify flags |
2021-10-21 00:50:45 +0200 | <ericson2314> | cabal projet files do |
2021-10-21 00:50:48 +0200 | <ericson2314> | so yes you can |
2021-10-21 00:51:00 +0200 | <ericson2314> | (probably also stack.yaml, but I do not know details) |
2021-10-21 00:51:23 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-21 00:51:36 +0200 | <ManofLetters[m]> | `git grep happy` in my project turns out nothing |
2021-10-21 00:51:50 +0200 | <ericson2314> | are you using cabal or stack? |
2021-10-21 00:51:53 +0200 | <ManofLetters[m]> | cabal |
2021-10-21 00:52:05 +0200 | <ManofLetters[m]> | tried with 3.4 and with master branch |
2021-10-21 00:52:15 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-21 00:52:16 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 00:52:52 +0200 | <ericson2314> | Man of Letters: see https://github.com/simonmar/happy/issues/211 |
2021-10-21 00:52:56 +0200 | <ericson2314> | you want |
2021-10-21 00:53:12 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb958d78f02b280dc416.dip0.t-ipconnect.de) |
2021-10-21 00:53:18 +0200 | <ericson2314> | package: happy |
2021-10-21 00:53:18 +0200 | <ericson2314> | flags: -bootstrap |
2021-10-21 00:53:24 +0200 | <ericson2314> | I will extend redame |
2021-10-21 00:53:54 +0200 | hiruji` | (~hiruji@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-21 00:54:10 +0200 | <ManofLetters[m]> | ok, I will do that, but I'm afraid you will get many of those :) take care! |
2021-10-21 00:54:24 +0200 | <ericson2314> | Man of Letters: ohhhhh yes I will |
2021-10-21 00:54:40 +0200 | <ericson2314> | maybe I will make issue "put all your new bootstaapping hate here" |
2021-10-21 00:55:28 +0200 | noidedsuper | (~manjaro-u@2601:280:5a81:520::f8be) |
2021-10-21 00:55:42 +0200 | <ericson2314> | Man of Letters: can you let me know if adding that to cabal project file worked? |
2021-10-21 00:55:58 +0200 | <sm> | you probably know it, but FWIW "have alex and happy in PATH" has long been a requirement for building lots of haskell things. including happy I guess |
2021-10-21 00:56:18 +0200 | <ericson2314> | sm: happy hacked up sdist to contain pregenerated files before |
2021-10-21 00:56:36 +0200 | <ericson2314> | also did other hacks in sdist |
2021-10-21 00:56:46 +0200 | <ericson2314> | we got rid of all those and boostrap with parser combinators |
2021-10-21 00:56:53 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb959894c42690fc4f0f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-21 00:57:03 +0200 | <ericson2314> | ....but you gotta actually do the bootstrap if you want attribute grammars |
2021-10-21 00:57:09 +0200 | <sm> | I see. a bit unfortunate for used either way isn't it |
2021-10-21 00:57:15 +0200 | <sm> | users |
2021-10-21 00:57:26 +0200 | <ericson2314> | sm: I opened a cabal issue |
2021-10-21 00:57:36 +0200 | <ericson2314> | it should understand bootstrapping enough to be able to do it right |
2021-10-21 00:57:43 +0200 | <ericson2314> | with `build-tool-depends: happy` |
2021-10-21 00:58:07 +0200 | <ericson2314> | because tool deps are "qualified goals" that allow new flag assigments |
2021-10-21 00:58:23 +0200 | <ericson2314> | but it bails out with a error to pessimistically |
2021-10-21 01:00:39 +0200 | <sm> | I'm happy (!) to know happy is getting some maintenance. If building requires a cabal fix, that problem is going to be with us for a long time (people use older cabals basically forever) |
2021-10-21 01:01:12 +0200 | <ManofLetters[m]> | I tried this... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/60ffef66b3a76616b488f8b2e2e6c7224cad…) |
2021-10-21 01:01:20 +0200 | <ericson2314> | well, we are going to drop support for old GHCs when we do some TH stuff I htink |
2021-10-21 01:01:33 +0200 | <ericson2314> | Man of Letters: is your thing open source |
2021-10-21 01:01:42 +0200 | <ManofLetters[m]> | yes |
2021-10-21 01:02:01 +0200 | <ericson2314> | with the old GHCs maybe old cabals will be less of an issue |
2021-10-21 01:02:10 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 01:02:18 +0200 | <ericson2314> | I can bump the cabal version as a close-enough proxy for cabal-install version I guess |
2021-10-21 01:02:25 +0200 | <ericson2314> | Man of Letters: url? |
2021-10-21 01:02:30 +0200 | <ManofLetters[m]> | and I waited for this moment of fame all my life: https://github.com/LambdaHack/LambdaHack |
2021-10-21 01:02:31 +0200 | <noidedsuper> | Hey, would it be appropriate for me to drop a link to a super-alpha library I've been working on in here? Basic idea is to use Applicative/Divisible to write JSON parsers/serializers that can also generate documentation automatically (and avoid intermediate data structures like maps) |
2021-10-21 01:02:34 +0200 | <ericson2314> | I should just get it working myself to inform readme |
2021-10-21 01:03:56 +0200 | <monochrom> | Yes it's OK to drop a link here. |
2021-10-21 01:04:33 +0200 | <noidedsuper> | https://github.com/AnthonySuper/jordan |
2021-10-21 01:06:14 +0200 | sedeki | (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
2021-10-21 01:07:09 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-21 01:08:48 +0200 | xlei | (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Read error: Connection reset by peer) |
2021-10-21 01:09:46 +0200 | <janus> | noidedsuper: but if you start replacing aeson with something that can also generate documentation, why not make sure the keys in the From and To instance correspond |
2021-10-21 01:10:01 +0200 | <janus> | the instances could be derived from a Schema type |
2021-10-21 01:10:12 +0200 | <dsal> | noidedsuper: your README has an incorrect link to `divisible` |
2021-10-21 01:11:11 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 264 seconds) |
2021-10-21 01:11:41 +0200 | xlei | (znc@pool-68-129-84-118.nycmny.fios.verizon.net) |
2021-10-21 01:11:52 +0200 | <dsal> | I like this part of the hlint config: |
2021-10-21 01:11:52 +0200 | <dsal> | # This is up to personal preference, but 80 is the right answer. |
2021-10-21 01:11:52 +0200 | <dsal> | columns: 120 |
2021-10-21 01:12:15 +0200 | max22- | (~maxime@2a01cb0883359800fe2c7b136063d78c.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-10-21 01:12:23 +0200 | <janus> | lol, people post a new library, first thing to check is to see if they have good taste in hlint o_O :P |
2021-10-21 01:13:13 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
2021-10-21 01:13:23 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-21 01:13:58 +0200 | <dsal> | Haha. Yeah. If I don't like your line length, your code can't be useful. |
2021-10-21 01:15:10 +0200 | <janus> | noidedsuper: if `parseField "name"` and writeField "name"` could be derived from a Field type that also contained the documentation, fields could be reused with their docs in different objects |
2021-10-21 01:15:45 +0200 | <janus> | and when you compile to OpenAPI, the naive compilation would repeat the docs string, but you could ideally compile it to a yaml $ref or something |
2021-10-21 01:16:03 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 01:17:12 +0200 | <janus> | alternatively it could be typeclass based, but people use Ints for so many things. but if you feel strongly about forcing people to make newtypes ... ;) |
2021-10-21 01:20:09 +0200 | <ericson2314> | Man of Letters: per https://github.com/haskell/cabal/issues/3502 I think the situation is fucked |
2021-10-21 01:20:21 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-10-21 01:20:23 +0200 | <ericson2314> | I am going to pull the release |
2021-10-21 01:20:33 +0200 | <ManofLetters[m]> | :< |
2021-10-21 01:21:20 +0200 | <noidedsuper> | Janus: the keys for From and To are different because you could theoretically support different ways to serialize and deserialize a type |
2021-10-21 01:21:38 +0200 | tafa | (~tafa@2a04:52c0:101:85c::1) |
2021-10-21 01:21:39 +0200 | <noidedsuper> | And I actually have such things at work |
2021-10-21 01:21:52 +0200 | <janus> | noidedsuper: but if you want to support different ways , how can it be typeclass based? shouldn't the encoder/decoder just be values then? |
2021-10-21 01:22:18 +0200 | <noidedsuper> | dsal: I keep that comment in there as a cheeky joke since it's the default one. I used to be a hardcore 80 character person myself even so |
2021-10-21 01:22:29 +0200 | <janus> | noidedsuper: but i'd like to point out that the common case it to have only one encoder/decoder! so if that is convenient, it would make sense. |
2021-10-21 01:22:58 +0200 | <dsal> | noidedsuper: yep, right with you |
2021-10-21 01:22:59 +0200 | <janus> | noidedsuper: note how quickcheck for purescript allows both the typeclass and the value-based (hedgehog) approach. you can do the same |
2021-10-21 01:23:49 +0200 | <noidedsuper> | janus: the ToJSON and FromJSON typeclass are supposed to represent "canonical" ways of encoding/decoding, respectively. You can also generate JSONParser/JSONSerializer values and do stuff with them if you want. |
2021-10-21 01:24:22 +0200 | <noidedsuper> | So it kinda already does the "You can use a typeclass but values are also fine" thing, just without you having to type import Jordan.ToJSON (intToJson, doubleToJson) every time you want to serialize an int and a double |
2021-10-21 01:24:24 +0200 | <ericson2314> | Man of Letters: tyr again |
2021-10-21 01:24:27 +0200 | <ericson2314> | do a `cabal update` |
2021-10-21 01:24:29 +0200 | <ericson2314> | and reconfigure |
2021-10-21 01:24:32 +0200 | <ericson2314> | it should use cabal 1.20 |
2021-10-21 01:24:39 +0200 | <ericson2314> | and there should be no issue |
2021-10-21 01:24:54 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2021-10-21 01:25:00 +0200 | <Axman6> | ericson2314: please refrain from using the enter key for punctuation :) |
2021-10-21 01:25:16 +0200 | <ManofLetters[m]> | John Ericson: what do you mean by "reconfigure"? |
2021-10-21 01:25:27 +0200 | <janus> | noidedsuper: ok, good, that is nice. i think the point about a single encoder/decoder being the common case still stands. you can still support the odd cases. |
2021-10-21 01:25:30 +0200 | <ericson2314> | Axman6: sorry |
2021-10-21 01:25:41 +0200 | <ericson2314> | Man of Letters: `cabal configure` |
2021-10-21 01:26:00 +0200 | <ManofLetters[m]> | nope, with new cabals you don't need to do that |
2021-10-21 01:26:06 +0200 | <janus> | similar to how some people will wanna use Generic, but you don't have to |
2021-10-21 01:26:21 +0200 | <ManofLetters[m]> | and you probably mean happy 1.20, right? |
2021-10-21 01:26:26 +0200 | <ericson2314> | yeah |
2021-10-21 01:26:26 +0200 | <Axman6> | pretty sure cabal new-configure exists for a reason... |
2021-10-21 01:26:40 +0200 | <ericson2314> | well you can do that and then check the plan.json |
2021-10-21 01:26:47 +0200 | <ManofLetters[m]> | oh, I see |
2021-10-21 01:26:49 +0200 | <ericson2314> | that is what I did, to make sure the deprecation worked |
2021-10-21 01:26:56 +0200 | <ManofLetters[m]> | yes, for checking it's useful |
2021-10-21 01:27:11 +0200 | <noidedsuper> | If you use the generic representations they do currently generate identical formats, so I think the separation is probably fine? Since like 90% of the time you're just gonna write `deriving anyclass (ToJSON, FromJSON)` anyway |
2021-10-21 01:27:30 +0200 | guydb89 | (~guy@98.198.128.24) (Ping timeout: 260 seconds) |
2021-10-21 01:27:42 +0200 | <ManofLetters[m]> | Axman6: it's actually a leftover and a miunderstanding; on branch master it mostly writes to `cabal.project.local` and let's you check plan, etc. |
2021-10-21 01:27:43 +0200 | <janus> | right but you can't derive docs anyway, so the FromJSON/ToJSON should be derived from the schema, which also has the docs |
2021-10-21 01:27:56 +0200 | <ManofLetters[m]> | but not needed for `cabal build` or anything |
2021-10-21 01:28:08 +0200 | <ManofLetters[m]> | John Ericson: it works, thank you! |
2021-10-21 01:28:15 +0200 | <ManofLetters[m]> | and I'm sorry :) |
2021-10-21 01:28:25 +0200 | <janus> | noidedsuper: just because you have "jsonSerializerFromSchema" doesn't mean you can't enable people to write their own JSONSerializer |
2021-10-21 01:28:53 +0200 | <noidedsuper> | Actually with this library you can derive docs! Since we only use typeclasses that are "inspectable", every `JSONParser` and `JSONSerializer` can be turned into OpenAPI V3 documentation |
2021-10-21 01:29:04 +0200 | guydb89 | (~guy@98.200.9.228) |
2021-10-21 01:29:18 +0200 | <Axman6> | I should learn how to use modern cabal... |
2021-10-21 01:29:20 +0200 | <noidedsuper> | I think some kinda type-level "define a more robust document type and we'll generate a serializer/deserializer for you" thing could be cool but that much type-level programming might hurt me |
2021-10-21 01:29:39 +0200 | frosky | (~froskyarr@59.41.160.207) |
2021-10-21 01:29:47 +0200 | <janus> | noidedsuper: what makes you think it would be a lot of type-level programming? |
2021-10-21 01:29:56 +0200 | frosky | (~froskyarr@59.41.160.207) (Client Quit) |
2021-10-21 01:30:10 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-21 01:30:11 +0200 | <noidedsuper> | I guess you could also do something where the Schema things are just values, yeah |
2021-10-21 01:30:13 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c::3d56) (Quit: Leaving) |
2021-10-21 01:30:35 +0200 | <ManofLetters[m]> | Axman6: easy, `cabal build`, `cabal list-bin exe:you_exe`, that's it |
2021-10-21 01:30:51 +0200 | <janus> | noidedsuper: i know that you can derive docs from the serializer/parser, but that is the problem, why do i have to choose between those? when i write a haskell record with haddocks, the docs covers both construction and deconstruction |
2021-10-21 01:31:09 +0200 | <ManofLetters[m]> | or `$(cabal list-bin exe:your_exe) --your_params` |
2021-10-21 01:31:19 +0200 | <janus> | noidedsuper: i am trying to convince you that the serializer/deserializer should be derived from the schema, since i don't see a schema in your library |
2021-10-21 01:31:30 +0200 | <noidedsuper> | I know you could use an `Iso` to implement mapping over fields in both directions, but I'm not sure how to put `f (a -> b) -> f a -> f b` and `a -> (b, c) -> f b -> f c -> f a` into the same type. |
2021-10-21 01:31:48 +0200 | frosky | (~froskyarr@59.41.160.207) |
2021-10-21 01:31:52 +0200 | <noidedsuper> | janus: it might help if you provided an example of what "a schema" might look like |
2021-10-21 01:32:02 +0200 | <noidedsuper> | Because I'm a bit confused I think |
2021-10-21 01:32:11 +0200 | frosky | FroskyArr |
2021-10-21 01:32:23 +0200 | <ManofLetters[m]> | Axman6: and no more cabal hell: all versions and flags coexist like a happy family and are re-used if possible |
2021-10-21 01:33:05 +0200 | <ManofLetters[m]> | and we totally need volunteers to keep cabal this way and fix lots of technical debt |
2021-10-21 01:33:17 +0200 | <ManofLetters[m]> | e.g., the one that has just bitten `happy` |
2021-10-21 01:33:23 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-21 01:33:59 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb958d78f02b280dc416.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-10-21 01:35:05 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-21 01:35:13 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 258 seconds) |
2021-10-21 01:37:13 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 01:37:31 +0200 | <janus> | noidedsuper: you know how you can define aeson Parsers using applicative style |
2021-10-21 01:37:44 +0200 | <janus> | noidedsuper: here is another example with a database library: https://github.com/flipstone/orville/blob/master/orville-postgresql/sample-project/Example/Schema/… |
2021-10-21 01:37:54 +0200 | <janus> | (disclaimer i work for flipstone) |
2021-10-21 01:38:28 +0200 | <janus> | with aeson it is `Person <$> o .: "name" <*> o .: "age"` |
2021-10-21 01:39:04 +0200 | MQ-17J | (~MQ-17J@8.21.10.23) |
2021-10-21 01:39:07 +0200 | <noidedsuper> | I think where I'm struggling is how to turn that around so you can generate a serializer as well |
2021-10-21 01:40:46 +0200 | <noidedsuper> | IE, if I run `(,) <$> o .: "name" <*> o .: "age"`, the compiler only sees `f (a -> b) <*> (f b)` for the last step. It doesn't know that `(,) <$> o .: "name"` is part of a constructor with two arguments, it just becomes an opaque function - for all I know it could be `(,) . (* 10)` or whatever |
2021-10-21 01:41:38 +0200 | <noidedsuper> | which is why the current library separates them - the serialization version of `Applicative` is `Divisible`, where we *do* know that we're "breaking something into parts" |
2021-10-21 01:41:49 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-10-21 01:43:36 +0200 | burnside_ | (~burnsides@client-8-85.eduroam.oxuni.org.uk) |
2021-10-21 01:43:37 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 01:45:00 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-10-21 01:45:08 +0200 | <janus> | noidedsuper: you can tell each combinator (e.g. like (.:)) the name of the serialized key, and you can tell it how to extract that value from your record (the record field selector) |
2021-10-21 01:45:43 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 01:45:45 +0200 | <noidedsuper> | Hmmm |
2021-10-21 01:45:47 +0200 | <janus> | noidedsuper: so that can be transformed into a function that adds a key to an object |
2021-10-21 01:46:18 +0200 | <janus> | noidedsuper: then, if you compose all these functions, and call it on the empty json object, you have a function that generates a filled json object from a haskell record |
2021-10-21 01:46:34 +0200 | <noidedsuper> | I'll play around with that idea |
2021-10-21 01:47:14 +0200 | <janus> | noidedsuper: i think you may need type-level lists if you want to do sum types, but you can just rule that out to start with |
2021-10-21 01:47:33 +0200 | <janus> | noidedsuper: of course, you can still do sum types if you rely on the user to write some boilerplate... |
2021-10-21 01:48:09 +0200 | frosky_ | (~froskyarr@59.41.160.207) |
2021-10-21 01:49:25 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
2021-10-21 01:49:26 +0200 | <janus> | noidedsuper: aeson doesn't have the "optional" key setter, i believe. but argonaut has it: https://github.com/purescript-contrib/purescript-argonaut/blob/main/examples/Examples/Data/Argonau… |
2021-10-21 01:50:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Ping timeout: 264 seconds) |
2021-10-21 01:50:22 +0200 | <janus> | noidedsuper: you can have the same, then it is possible to leave out a json key if the value is a maybe. you can argue that that makes it harder to infer the schema by looking at the value, but some would argue that you should already know the schema when looking at a value :P |
2021-10-21 01:50:31 +0200 | <noidedsuper> | Yeah |
2021-10-21 01:50:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-21 01:51:04 +0200 | <noidedsuper> | I dunno, I'm not sure I agree that this would be super useful but I'll see if I can do it I guess |
2021-10-21 01:51:19 +0200 | FroskyArr | (~froskyarr@59.41.160.207) (Ping timeout: 258 seconds) |
2021-10-21 01:51:26 +0200 | <janus> | yeah it just saves a few bytes. just wanted to mention it |
2021-10-21 01:53:25 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep) |
2021-10-21 01:56:33 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) (Remote host closed the connection) |
2021-10-21 01:59:34 +0200 | <noidedsuper> | So you can do this but I think it would be sorta easy to write "incorrect" stuff with it, since you'd need to remember that you can't use fmap without also applying the inverse of `f` to the key-extractor function thing |
2021-10-21 02:00:25 +0200 | <noidedsuper> | https://gist.github.com/AnthonySuper/7c8fcab8f31ad3d2ab4911c323294fdf |
2021-10-21 02:03:48 +0200 | <janus> | noidedsuper: what would be an example of incorrect use? |
2021-10-21 02:06:18 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-10-21 02:06:35 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 260 seconds) |
2021-10-21 02:07:04 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 02:09:13 +0200 | <janus> | "the inverse of `f`". the f is the record field selector here? it's inverse would be the record field value, we already have the key name |
2021-10-21 02:10:22 +0200 | <janus> | in my head, BothSides would contain a list of Fields. the serializer and deserializer are derivable from that list. |
2021-10-21 02:11:02 +0200 | <noidedsuper> | https://gist.github.com/AnthonySuper/a51be1414a9f63305fdcc9ec334f6299 |
2021-10-21 02:11:12 +0200 | <noidedsuper> | problem 1 already exists if you screw up and give it the wrong object key I suppose |
2021-10-21 02:11:48 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2021-10-21 02:12:11 +0200 | <janus> | i don't think problem 1 is solvable... if people are worried about things like that, they must use generics and have the key names autoderived, such that they will always correspond |
2021-10-21 02:12:18 +0200 | <noidedsuper> | I dunno, I might be overthinking the scope of the issue here I suppose lol |
2021-10-21 02:14:19 +0200 | <janus> | hmm well i don't think people should be fmapping into the fields. just like you can't fmap into a lens |
2021-10-21 02:14:37 +0200 | <noidedsuper> | fmap is a superclass of applicative though |
2021-10-21 02:14:39 +0200 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-10-21 02:14:49 +0200 | <noidedsuper> | I guess I coudl say "don't use it pls" |
2021-10-21 02:15:24 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-10-21 02:15:39 +0200 | <janus> | you could also just not use applicative, use some other thing. i dunno |
2021-10-21 02:15:55 +0200 | mcglk | (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
2021-10-21 02:16:07 +0200 | <janus> | but one more thing: each combinator could reference a child schema, and there could be schemas provided for common types like strings or datetime |
2021-10-21 02:16:09 +0200 | mcglk_ | (~mcglk@131.191.49.120) |
2021-10-21 02:16:55 +0200 | <janus> | and there could be a "schemaWithDocString :: String -> Schema -> Schema" |
2021-10-21 02:17:44 +0200 | <noidedsuper> | Yeah the docs part is difficult |
2021-10-21 02:17:46 +0200 | <noidedsuper> | actually |
2021-10-21 02:18:03 +0200 | <noidedsuper> | Hmmmm. Maybe it isn't. |
2021-10-21 02:18:08 +0200 | <janus> | such that you can do `personGivenName = schemaWithDocString "The given name of a person, not the family name. Mentioned last in china" stringSchema` |
2021-10-21 02:18:27 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-10-21 02:18:55 +0200 | <janus> | which would have type `Schema String` such that it fits with the "firstName :: String" in the record |
2021-10-21 02:20:14 +0200 | off^ | (~off@wsip-68-227-92-38.mc.at.cox.net) |
2021-10-21 02:24:40 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-10-21 02:25:10 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-10-21 02:30:33 +0200 | frosky_ | (~froskyarr@59.41.160.207) (Quit: Leaving) |
2021-10-21 02:36:59 +0200 | InstX1 | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 264 seconds) |
2021-10-21 02:38:56 +0200 | <janus> | noidedsuper: if we have a sum type `data Foo = A | B` we could have `tag2 :: Schema a -> Schema b -> Key -> String -> String` where the first string is the tag for the first case, and the second string is the tag for the second case. and the Key would be the key used to store the tag in the JSON |
2021-10-21 02:39:48 +0200 | <janus> | ah, it would also need the constructors for the two cases and the "reverse constructor" |
2021-10-21 02:40:14 +0200 | jespada | (~jespada@2803:9800:9842:7a62:5d33:6404:2aef:9813) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-10-21 02:41:43 +0200 | <janus> | the tricky thing is the reverse constructor which must decide which serializer to use. in the case of 2, it could return an "Either a b" |
2021-10-21 02:42:01 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-21 02:42:03 +0200 | <noidedsuper> | That's what `Selectable` gets ya |
2021-10-21 02:42:05 +0200 | <noidedsuper> | which is nice |
2021-10-21 02:42:12 +0200 | <janus> | ah ok |
2021-10-21 02:42:21 +0200 | <janus> | but it would be boiler-platey right? |
2021-10-21 02:43:43 +0200 | <janus> | oops tag2 should of course return "Schema (Either a b)", i forgot that |
2021-10-21 02:44:51 +0200 | <janus> | but the definition of Foo is too boring, it should be "A String | B Int" |
2021-10-21 02:45:40 +0200 | MQ-17J | (~MQ-17J@8.21.10.23) (Ping timeout: 260 seconds) |
2021-10-21 02:47:20 +0200 | <janus> | then the call would be `tag2 stringSchema intSchema "tag" "a" "b" (\case A str -> Left str; B int -> Right int) :: Schema Foo)`... but now i forgot that it would also need A and B passed to it such that it can also construct a Foo... |
2021-10-21 02:48:14 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 02:48:24 +0200 | MQ-17J | (~MQ-17J@8.6.144.186) |
2021-10-21 02:49:18 +0200 | <janus> | i wonder how it looks with selectable with more than two cases |
2021-10-21 02:51:10 +0200 | lbseale_ | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-10-21 02:52:40 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-21 02:53:30 +0200 | pavonia | (~user@user/siracusa) |
2021-10-21 02:58:18 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-10-21 03:00:08 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-21 03:01:26 +0200 | aa | (~douglasco@200.146.85.128.static.gvt.net.br) (Read error: Connection reset by peer) |
2021-10-21 03:01:35 +0200 | aa | (~douglasco@200.146.85.128.static.gvt.net.br) |
2021-10-21 03:01:54 +0200 | <noidedsuper> | It's basically just nesting I think |
2021-10-21 03:02:31 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-10-21 03:06:40 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-21 03:07:11 +0200 | Boarders | (sid425905@id-425905.lymington.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-21 03:07:36 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-21 03:07:54 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 03:07:59 +0200 | sclv | (sid39734@haskell/developer/sclv) (Ping timeout: 258 seconds) |
2021-10-21 03:09:25 +0200 | truckasaurus | (sid457088@helmsley.irccloud.com) (Ping timeout: 252 seconds) |
2021-10-21 03:09:31 +0200 | elvishjerricco | (sid237756@helmsley.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-21 03:09:46 +0200 | gaze___ | (sid387101@helmsley.irccloud.com) (Ping timeout: 268 seconds) |
2021-10-21 03:10:10 +0200 | grfn | (sid449115@helmsley.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-21 03:11:53 +0200 | elvishjerricco | (sid237756@helmsley.irccloud.com) |
2021-10-21 03:11:57 +0200 | truckasaurus | (sid457088@helmsley.irccloud.com) |
2021-10-21 03:11:58 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) |
2021-10-21 03:12:04 +0200 | kupi | (uid212005@hampstead.irccloud.com) |
2021-10-21 03:12:06 +0200 | Boarders | (sid425905@lymington.irccloud.com) |
2021-10-21 03:12:09 +0200 | sclv | (sid39734@haskell/developer/sclv) |
2021-10-21 03:12:59 +0200 | whez | (sid470288@lymington.irccloud.com) (Ping timeout: 264 seconds) |
2021-10-21 03:13:21 +0200 | grfn | (sid449115@id-449115.helmsley.irccloud.com) |
2021-10-21 03:13:24 +0200 | <janus> | noidedsuper: to generalize this in an arity safe maner, the tag values and the constructors (A, B, ...) and their schemata can be combined using a combinator. and then all those combined cases could be combined with a function that extracts the value from each case, in this case "... -> (Foo -> String) -> (Foo -> Int) -> Schema Foo". with applicative style, correspondence between the extracting function |
2021-10-21 03:13:31 +0200 | <janus> | and the combined tag-cases is ensured |
2021-10-21 03:14:17 +0200 | burnside_ | (~burnsides@client-8-85.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-10-21 03:16:09 +0200 | whez | (sid470288@id-470288.lymington.irccloud.com) |
2021-10-21 03:20:48 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) |
2021-10-21 03:23:30 +0200 | emf_ | (~emf@2620:10d:c090:400::5:70ff) |
2021-10-21 03:26:46 +0200 | emf | (~emf@2620:10d:c090:400::5:7558) (Ping timeout: 245 seconds) |
2021-10-21 03:29:34 +0200 | guydb89 | (~guy@98.200.9.228) (Ping timeout: 260 seconds) |
2021-10-21 03:31:14 +0200 | guydb89 | (~guy@98.198.129.114) |
2021-10-21 03:31:28 +0200 | <noidedsuper> | I can play around with it! |
2021-10-21 03:31:45 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds) |
2021-10-21 03:31:53 +0200 | <noidedsuper> | Tomorrow, unfortunately. But thanks for the feedback, Janus! It really helped. |
2021-10-21 03:32:32 +0200 | noidedsuper | (~manjaro-u@2601:280:5a81:520::f8be) (Remote host closed the connection) |
2021-10-21 03:32:55 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-10-21 03:32:57 +0200 | <janus> | good, happy to help, i should mention that i didn't invent any of this, my ideas are taken from libraries such as Orville |
2021-10-21 03:36:21 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-10-21 03:38:47 +0200 | ski | (~ski@remote12.chalmers.se) (Ping timeout: 264 seconds) |
2021-10-21 03:41:53 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-21 03:45:10 +0200 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
2021-10-21 03:45:13 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-10-21 03:46:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 03:47:11 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
2021-10-21 03:48:58 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-21 03:50:18 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
2021-10-21 03:50:29 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-10-21 03:53:22 +0200 | xff0x | (~xff0x@port-92-195-26-90.dynamic.as20676.net) (Ping timeout: 260 seconds) |
2021-10-21 03:53:52 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-10-21 03:55:00 +0200 | sedeki | (~textual@user/sedeki) |
2021-10-21 03:55:10 +0200 | xff0x | (~xff0x@2001:1a81:524c:400:5205:21d5:64e1:92) |
2021-10-21 03:56:32 +0200 | falafel | (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) |
2021-10-21 03:57:57 +0200 | falafel | (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) (Remote host closed the connection) |
2021-10-21 03:58:10 +0200 | falafel | (~falafel@cpe-76-168-195-162.socal.res.rr.com) |
2021-10-21 03:59:41 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-10-21 04:00:50 +0200 | mmhat | (~mmh@55d4469f.access.ecotel.net) (Ping timeout: 260 seconds) |
2021-10-21 04:06:25 +0200 | sedeki | (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
2021-10-21 04:06:31 +0200 | guydb89 | (~guy@98.198.129.114) (Remote host closed the connection) |
2021-10-21 04:12:35 +0200 | MQ-17J | (~MQ-17J@8.6.144.186) (Ping timeout: 260 seconds) |
2021-10-21 04:13:17 +0200 | mmhat | (~mmh@55d45798.access.ecotel.net) |
2021-10-21 04:16:05 +0200 | falafel | (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 260 seconds) |
2021-10-21 04:19:30 +0200 | econo | (uid147250@user/econo) |
2021-10-21 04:21:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-21 04:32:34 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-10-21 04:33:55 +0200 | alx741 | (~alx741@186.178.109.50) (Quit: alx741) |
2021-10-21 04:41:00 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-21 04:41:00 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-21 04:41:00 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-21 04:42:23 +0200 | td_ | (~td@94.134.91.144) (Ping timeout: 264 seconds) |
2021-10-21 04:44:06 +0200 | td_ | (~td@94.134.91.188) |
2021-10-21 04:45:15 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds) |
2021-10-21 04:46:27 +0200 | mmhat | (~mmh@55d45798.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-10-21 04:46:30 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Ping timeout: 258 seconds) |
2021-10-21 04:46:49 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-10-21 04:47:14 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 05:00:02 +0200 | haasn | (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2021-10-21 05:00:33 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 05:01:32 +0200 | haasn | (~nand@haasn.dev) |
2021-10-21 05:03:20 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 260 seconds) |
2021-10-21 05:08:44 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 258 seconds) |
2021-10-21 05:13:10 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
2021-10-21 05:13:41 +0200 | connrs | (~connrs@conners.plus.com) (Read error: Connection reset by peer) |
2021-10-21 05:16:24 +0200 | connrs | (~connrs@conners.plus.com) |
2021-10-21 05:23:47 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 05:24:26 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-10-21 05:27:31 +0200 | jlamothe | (~jlamothe@198.251.61.229) (Ping timeout: 258 seconds) |
2021-10-21 05:28:53 +0200 | benin0 | (~benin@183.82.179.164) |
2021-10-21 05:29:07 +0200 | benin | (~benin@183.82.179.164) (Ping timeout: 252 seconds) |
2021-10-21 05:29:07 +0200 | benin0 | benin |
2021-10-21 05:30:43 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-10-21 05:31:22 +0200 | <jackdk> | I'm trying to use servant-server's UVerb machinery, and am getting a strange type error: `Expected one of: '[WithStatus 200 [StoredResourceData id]], but got: WithStatus 200 [StoredResourceData id]`. I suspect that it's a type family thing: that the open union membership test fails before the type families reduce to being equal - should I be looking for ways to delay/force type family evaluation? |
2021-10-21 05:31:52 +0200 | <jackdk> | `StoredResourceData :: Type -> Type` is an associated type family I've written for a `class Resource id` |
2021-10-21 05:37:26 +0200 | <jackdk> | Here is a minimal example, using servant and servant-server 0.18.3 https://www.irccloud.com/pastebin/Zui39kYI/servant-generic-error.hs |
2021-10-21 05:38:06 +0200 | <jackdk> | The error appears on the call to `respond` |
2021-10-21 05:38:20 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-10-21 05:40:35 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-10-21 05:43:43 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 05:43:46 +0200 | Everything | (~Everythin@37.115.210.35) |
2021-10-21 05:43:59 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-21 05:46:43 +0200 | <jackdk> | https://github.com/haskell-servant/servant/issues/1381 seems to be related but I don't completely follow the discussion. |
2021-10-21 06:05:15 +0200 | Stotteren | (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) |
2021-10-21 06:05:18 +0200 | Gestotterd | (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) |
2021-10-21 06:12:26 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:12:43 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:16:28 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:17:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 06:17:36 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:19:16 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:19:33 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:19:42 +0200 | LiaoTao_ | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-21 06:21:06 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds) |
2021-10-21 06:23:16 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:23:33 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:25:05 +0200 | <hololeap> | extendWith :: Comonad w => (w a -> b) -> w a -> w (a,b) |
2021-10-21 06:25:13 +0200 | <hololeap> | extendWith f w = let a = extract w in (a,) <$> extend f w |
2021-10-21 06:25:18 +0200 | <hololeap> | does this look reasonable? |
2021-10-21 06:26:02 +0200 | <hololeap> | I'm just trying to use extend but keep the previous value around. is there a more idiomatic way to do this? |
2021-10-21 06:26:56 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@128-71-225-36.broadband.corbina.ru) |
2021-10-21 06:29:30 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:29:48 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:32:01 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-10-21 06:33:41 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:33:59 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:36:14 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-21 06:38:00 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:38:10 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 06:38:18 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:39:59 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:40:18 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:40:57 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-21 06:42:26 +0200 | Guest32 | (~Guest32@2603-8000-3f42-d500-c5e7-f6b2-1524-e2a0.res6.spectrum.com) |
2021-10-21 06:44:14 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:44:31 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:45:15 +0200 | Guest32 | (~Guest32@2603-8000-3f42-d500-c5e7-f6b2-1524-e2a0.res6.spectrum.com) (Client Quit) |
2021-10-21 06:48:12 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:48:30 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:49:57 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 06:51:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-21 06:54:26 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:54:26 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-21 06:54:28 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@128-71-225-36.broadband.corbina.ru) (Quit: EXIT) |
2021-10-21 06:54:45 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:56:25 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:56:42 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:58:23 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 06:58:41 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 06:59:57 +0200 | sedeki | (~textual@user/sedeki) |
2021-10-21 07:02:22 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:02:41 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:04:21 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:04:38 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:06:19 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:06:36 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:06:46 +0200 | sedeki | (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
2021-10-21 07:08:26 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:08:44 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:10:25 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:10:42 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:12:23 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:12:40 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:14:21 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:14:39 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:14:47 +0200 | off^ | (~off@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 264 seconds) |
2021-10-21 07:16:27 +0200 | off^ | (~off@wsip-68-227-92-38.mc.at.cox.net) |
2021-10-21 07:16:27 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:16:45 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:16:47 +0200 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-10-21 07:18:27 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:18:45 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:25:02 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:25:20 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:27:52 +0200 | ski | (~ski@remote12.chalmers.se) |
2021-10-21 07:27:55 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:28:12 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-21 07:29:53 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-21 07:33:30 +0200 | michalz | (~michalz@185.246.204.93) |
2021-10-21 07:39:24 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-21 07:41:47 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 264 seconds) |
2021-10-21 07:47:17 +0200 | InstX1 | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2021-10-21 07:52:14 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-10-21 07:53:48 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-10-21 07:54:13 +0200 | jlamothe | (~jlamothe@198.251.61.229) |
2021-10-21 08:03:28 +0200 | <hololeap> | @hoogle Comonad w => (w a -> b) -> w a -> w (a,b) |
2021-10-21 08:03:30 +0200 | <lambdabot> | No results found |
2021-10-21 08:04:29 +0200 | ubert | (~Thunderbi@77.119.208.184.wireless.dyn.drei.com) |
2021-10-21 08:04:40 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-10-21 08:06:01 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-10-21 08:06:21 +0200 | remexre | (~remexre@user/remexre) (Ping timeout: 245 seconds) |
2021-10-21 08:06:41 +0200 | echoreply | (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8) |
2021-10-21 08:06:59 +0200 | joeyh_ | (joeyh@kitenet.net) |
2021-10-21 08:07:08 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Read error: Connection reset by peer) |
2021-10-21 08:07:11 +0200 | echoreply | (~echoreply@45.32.163.16) |
2021-10-21 08:07:19 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-10-21 08:07:36 +0200 | joeyh | (joeyh@kitenet.net) (Ping timeout: 245 seconds) |
2021-10-21 08:07:36 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 245 seconds) |
2021-10-21 08:08:24 +0200 | remexre | (~remexre@user/remexre) |
2021-10-21 08:09:35 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2021-10-21 08:09:59 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-10-21 08:10:15 +0200 | <InstX1> | uouououo |
2021-10-21 08:10:51 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-10-21 08:14:36 +0200 | _xor | (~xor@72.49.199.147) (Read error: Connection reset by peer) |
2021-10-21 08:15:22 +0200 | <hololeap> | me too! |
2021-10-21 08:15:46 +0200 | <ski> | % :type (<<=) . (extract &&&) |
2021-10-21 08:15:46 +0200 | <yahb> | ski: Comonad w => (w a -> c') -> w a -> w (a, c') |
2021-10-21 08:17:03 +0200 | <hololeap> | % :type (extract &&&) |
2021-10-21 08:17:03 +0200 | <yahb> | hololeap: Comonad w => (w c -> c') -> w c -> (c, c') |
2021-10-21 08:17:14 +0200 | <hololeap> | % :type (e&&&) |
2021-10-21 08:17:14 +0200 | <yahb> | hololeap: ; <interactive>:1:2: error: Variable not in scope: e :: a b c |
2021-10-21 08:17:16 +0200 | <hololeap> | % :type (&&&) |
2021-10-21 08:17:16 +0200 | <yahb> | hololeap: Arrow a => a b c -> a b c' -> a b (c, c') |
2021-10-21 08:17:18 +0200 | <ski> | % :type \f -> (=>> \wa -> (extract wa,f wa)) |
2021-10-21 08:17:18 +0200 | <yahb> | ski: Comonad w => (w a -> b) -> w a -> w (a, b) |
2021-10-21 08:18:10 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) |
2021-10-21 08:19:00 +0200 | _xor | (~xor@72.49.199.147) |
2021-10-21 08:19:42 +0200 | _xor | (~xor@72.49.199.147) (Read error: Connection reset by peer) |
2021-10-21 08:20:01 +0200 | _xor | (~xor@72.49.199.147) |
2021-10-21 08:21:31 +0200 | favonia | (~favonia@user/favonia) (Remote host closed the connection) |
2021-10-21 08:21:37 +0200 | <hololeap> | % :type \f w -> extend f (EnvT (extract w) w) |
2021-10-21 08:21:37 +0200 | <yahb> | hololeap: ; <interactive>:1:19: error: Data constructor not in scope: EnvT :: t -> w1 t -> w a |
2021-10-21 08:21:53 +0200 | <hololeap> | % import Control.Comonad.Env |
2021-10-21 08:21:53 +0200 | <yahb> | hololeap: |
2021-10-21 08:21:57 +0200 | <hololeap> | % :type \f w -> extend f (EnvT (extract w) w) |
2021-10-21 08:21:57 +0200 | <yahb> | hololeap: Comonad w => (EnvT a w a -> b) -> w a -> EnvT a w b |
2021-10-21 08:22:58 +0200 | <hololeap> | well my first one is probably easiest to understand :D |
2021-10-21 08:23:19 +0200 | <ski> | what's it supposed to do ? |
2021-10-21 08:23:33 +0200 | <hololeap> | it should be pretty clear from the type signature |
2021-10-21 08:23:43 +0200 | <ski> | % :i EnvT |
2021-10-21 08:23:43 +0200 | <yahb> | ski: type role EnvT representational representational nominal; type EnvT :: * -> (* -> *) -> * -> *; data EnvT e w a = EnvT e (w a); -- Defined in `Control.Comonad.Trans.Env'; instance [safe] (Monoid e, Applicative m) => Applicative (EnvT e m) -- Defined in `Control.Comonad.Trans.Env'; instance [safe] Functor w => Functor (EnvT e w) -- Defined in `Control.Comonad.Trans.Env'; instance [safe] Traversable w |
2021-10-21 08:24:25 +0200 | <hololeap> | EnvT is irrelevant. I just want to use `extend` while keeping the original `a` around |
2021-10-21 08:25:08 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-10-21 08:25:20 +0200 | <hololeap> | it doesn't even have to be it's own function, really... I could just extract `a` before running extend |
2021-10-21 08:28:40 +0200 | mbuf | (~Shakthi@171.61.241.145) |
2021-10-21 08:29:11 +0200 | ubert | (~Thunderbi@77.119.208.184.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
2021-10-21 08:33:53 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) () |
2021-10-21 08:36:49 +0200 | fendor | (~fendor@178.115.78.81.wireless.dyn.drei.com) |
2021-10-21 08:37:37 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-10-21 08:43:03 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-21 08:45:19 +0200 | zaquest | (~notzaques@5.128.210.178) (Ping timeout: 258 seconds) |
2021-10-21 08:46:28 +0200 | timCF_ | (~timCF@m91-129-111-87.cust.tele2.ee) (Ping timeout: 258 seconds) |
2021-10-21 08:46:52 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-10-21 08:47:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 08:48:07 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2041:32a6:242d:4938) |
2021-10-21 08:48:11 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-10-21 08:51:27 +0200 | jonathanx | (~jonathan@178.174.176.109) (Ping timeout: 258 seconds) |
2021-10-21 08:52:01 +0200 | mei | (~mei@user/mei) |
2021-10-21 08:56:19 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-10-21 08:58:41 +0200 | benin1 | (~benin@106.198.91.7) |
2021-10-21 08:59:37 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Quit: WeeChat 3.3) |
2021-10-21 09:00:45 +0200 | benin | (~benin@183.82.179.164) (Ping timeout: 260 seconds) |
2021-10-21 09:00:45 +0200 | benin1 | benin |
2021-10-21 09:00:59 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 264 seconds) |
2021-10-21 09:02:06 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-21 09:04:15 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-10-21 09:04:20 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 09:05:00 +0200 | <Inst> | erm |
2021-10-21 09:05:03 +0200 | <Inst> | could I have some help? |
2021-10-21 09:05:43 +0200 | <Inst> | I already finished my textbook's intro information on typeclasses, but I'm still having difficulty concerning the notation used in :type |
2021-10-21 09:05:50 +0200 | wonko | (~wjc@62.115.229.50) |
2021-10-21 09:06:02 +0200 | <Inst> | type a => a -> b -> a etc... |
2021-10-21 09:06:09 +0200 | <Inst> | this is an existing mathematical notation, right? |
2021-10-21 09:06:25 +0200 | <Inst> | what's the name of it? I'd like to be able to look up the notation individually |
2021-10-21 09:07:09 +0200 | <dibblego> | "Haskell" |
2021-10-21 09:09:13 +0200 | <c_wraith> | Haskell is a lot less based on math than some would have you believe. |
2021-10-21 09:10:13 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-10-21 09:14:01 +0200 | <pavonia> | Inst: What part of that is confusing to you? |
2021-10-21 09:14:27 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-10-21 09:15:08 +0200 | <Inst> | on the left side, you have inputs, on the right side, you have outputs |
2021-10-21 09:15:10 +0200 | <Inst> | that much I understand |
2021-10-21 09:15:27 +0200 | <Inst> | why you have a -> a or a -> b -> a, on the other hand, I don't see the pattern |
2021-10-21 09:15:32 +0200 | mei | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-10-21 09:15:38 +0200 | <dibblego> | -> is right-associative |
2021-10-21 09:15:42 +0200 | <dibblego> | a -> b -> a |
2021-10-21 09:15:45 +0200 | <dibblego> | a -> (b -> a) |
2021-10-21 09:16:07 +0200 | mei | (~mei@user/mei) |
2021-10-21 09:16:16 +0200 | <dibblego> | function application (space) is left-associative |
2021-10-21 09:16:25 +0200 | <dibblego> | > const 7 "abc" |
2021-10-21 09:16:25 +0200 | <xsperry> | a and b are type variables. names can be arbitrary, but there are some common conventions |
2021-10-21 09:16:26 +0200 | <lambdabot> | 7 |
2021-10-21 09:16:30 +0200 | <dibblego> | > (const 7) "abc" |
2021-10-21 09:16:32 +0200 | <lambdabot> | 7 |
2021-10-21 09:16:35 +0200 | <Inst> | i'll probably be fine on my own, reading existing texts |
2021-10-21 09:16:51 +0200 | <xsperry> | :t id |
2021-10-21 09:16:52 +0200 | <lambdabot> | a -> a |
2021-10-21 09:17:04 +0200 | <pavonia> | Inst: x => y is not inputs and outputs, x are type constraints, y is the actual type of the function |
2021-10-21 09:17:10 +0200 | <xsperry> | a in id declaration stands for any type |
2021-10-21 09:17:30 +0200 | <Inst> | for x, y, then? |
2021-10-21 09:18:47 +0200 | <pavonia> | I don't understand the question |
2021-10-21 09:19:34 +0200 | <Inst> | read x => y as "for x, y" then? |
2021-10-21 09:20:10 +0200 | <xsperry> | section left of => constrains types |
2021-10-21 09:20:51 +0200 | <yushyin> | 'type y restricted by the context x' |
2021-10-21 09:21:30 +0200 | <xsperry> | :t (+) |
2021-10-21 09:21:31 +0200 | <lambdabot> | Num a => a -> a -> a |
2021-10-21 09:21:37 +0200 | <Inst> | okay, fine |
2021-10-21 09:21:42 +0200 | <c_wraith> | Haskell types do have an implicit top-level forall on all the type variables in them. |
2021-10-21 09:21:43 +0200 | <xsperry> | type a has to be instance of Num typeclass |
2021-10-21 09:21:55 +0200 | <Inst> | i see, thanks, still not getting it, but i have to leave soon |
2021-10-21 09:21:55 +0200 | <c_wraith> | If that's a thing you're wondering about |
2021-10-21 09:22:49 +0200 | <Inst> | heh |
2021-10-21 09:22:50 +0200 | <Inst> | https://serokell.io/files/5x/5xzv88ej.TopReasons.png |
2021-10-21 09:23:20 +0200 | <ski> | @type sort |
2021-10-21 09:23:21 +0200 | <lambdabot> | Ord a => [a] -> [a] |
2021-10-21 09:24:35 +0200 | <ski> | `sort' is a function taking a list of values of type `a' as input, and produces a list of values of type `a' as output, for all types `a', provided `a' is in the type class `Ord' (`Ord a' can be read as values of type `a' supporting ordering comparision) |
2021-10-21 09:25:12 +0200 | <ski> | @type take |
2021-10-21 09:25:13 +0200 | <lambdabot> | Int -> [a] -> [a] |
2021-10-21 09:26:02 +0200 | <ski> | `take' is a function taking an `Int' as input, and producing another function as output, that in turn takes a list of `a's, producing a list of `a' -- again for all types `a' (no restriction this time) |
2021-10-21 09:29:57 +0200 | chele | (~chele@user/chele) |
2021-10-21 09:30:18 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
2021-10-21 09:36:32 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-10-21 09:40:36 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-10-21 09:49:34 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb878d78f02b280dc416.dip0.t-ipconnect.de) |
2021-10-21 09:52:57 +0200 | oskar_greda | (~oskar_gre@84.65.227.20) |
2021-10-21 09:54:17 +0200 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-10-21 09:57:14 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-10-21 10:00:07 +0200 | ubert | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) |
2021-10-21 10:01:06 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-10-21 10:08:07 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-21 10:08:14 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-10-21 10:10:16 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-10-21 10:11:51 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
2021-10-21 10:16:07 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-10-21 10:16:32 +0200 | LiaoTao_ | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-10-21 10:16:54 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-21 10:17:16 +0200 | benin5 | (~benin@183.82.207.116) |
2021-10-21 10:17:26 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-21 10:17:29 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-21 10:17:54 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-21 10:19:30 +0200 | benin | (~benin@106.198.91.7) (Ping timeout: 260 seconds) |
2021-10-21 10:19:30 +0200 | benin5 | benin |
2021-10-21 10:19:38 +0200 | ub | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) |
2021-10-21 10:20:04 +0200 | synthmeat | (~synthmeat@user/synthmeat) (Ping timeout: 252 seconds) |
2021-10-21 10:21:00 +0200 | tomsmeding | (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-21 10:22:18 +0200 | quintasan | (~quassel@quintasan.pl) (Ping timeout: 258 seconds) |
2021-10-21 10:22:31 +0200 | beaky | (~beaky@2a03:b0c0:0:1010::1e:a001) (Read error: Connection reset by peer) |
2021-10-21 10:26:20 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb87897f933eeab9e85f.dip0.t-ipconnect.de) |
2021-10-21 10:29:19 +0200 | oskar_greda | (~oskar_gre@84.65.227.20) (Quit: Client closed) |
2021-10-21 10:29:58 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb878d78f02b280dc416.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-10-21 10:30:33 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-21 10:30:53 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-21 10:31:51 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) |
2021-10-21 10:35:31 +0200 | rune | (sid21167@ilkley.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-21 10:36:27 +0200 | hubvu | (sid495858@user/hubvu) (Read error: Connection reset by peer) |
2021-10-21 10:36:29 +0200 | kupi | (uid212005@hampstead.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-21 10:36:36 +0200 | hubvu | (sid495858@user/hubvu) |
2021-10-21 10:37:25 +0200 | acidjnk_new3 | (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
2021-10-21 10:38:01 +0200 | teehemkay | (sid14792@lymington.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-21 10:38:13 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-10-21 10:38:41 +0200 | rune | (sid21167@id-21167.ilkley.irccloud.com) |
2021-10-21 10:38:46 +0200 | Adeon | (sid418992@lymington.irccloud.com) (Ping timeout: 252 seconds) |
2021-10-21 10:39:16 +0200 | dermato | (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) (Ping timeout: 252 seconds) |
2021-10-21 10:39:32 +0200 | teehemkay | (sid14792@id-14792.lymington.irccloud.com) |
2021-10-21 10:40:28 +0200 | Adeon | (sid418992@id-418992.lymington.irccloud.com) |
2021-10-21 10:40:35 +0200 | dermato | (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) |
2021-10-21 10:40:42 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb87897f933eeab9e85f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-21 10:42:24 +0200 | kristjansson_ | (sid126207@tinside.irccloud.com) (Ping timeout: 268 seconds) |
2021-10-21 10:42:48 +0200 | kristjansson_ | (sid126207@id-126207.tinside.irccloud.com) |
2021-10-21 10:43:56 +0200 | mcfilib | (sid302703@user/mcfilib) (Ping timeout: 265 seconds) |
2021-10-21 10:45:06 +0200 | sa | (sid1055@tinside.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-21 10:45:59 +0200 | mrianbloom | (sid350277@ilkley.irccloud.com) (Ping timeout: 264 seconds) |
2021-10-21 10:46:08 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:2fb4:6165:4fdd:161d) |
2021-10-21 10:47:07 +0200 | mcfilib | (sid302703@user/mcfilib) |
2021-10-21 10:48:10 +0200 | sa | (sid1055@id-1055.tinside.irccloud.com) |
2021-10-21 10:48:59 +0200 | hook54321 | (sid149355@user/hook54321) (Ping timeout: 264 seconds) |
2021-10-21 10:49:09 +0200 | mrianbloom | (sid350277@id-350277.ilkley.irccloud.com) |
2021-10-21 10:49:28 +0200 | Everything | (~Everythin@37.115.210.35) (Quit: leaving) |
2021-10-21 10:49:51 +0200 | quintasan | (~quassel@quintasan.pl) |
2021-10-21 10:50:32 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-10-21 10:51:22 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 10:51:26 +0200 | hook54321 | (sid149355@user/hook54321) |
2021-10-21 10:52:32 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-21 10:52:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Remote host closed the connection) |
2021-10-21 10:53:31 +0200 | Cajun | (~Cajun@user/cajun) (Quit: Client closed) |
2021-10-21 10:56:15 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-21 10:59:01 +0200 | synthmeat | (~synthmeat@user/synthmeat) |
2021-10-21 10:59:30 +0200 | Matheo_bis | (~matheo@user/matheo-bis/x-4309430) |
2021-10-21 11:04:32 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-10-21 11:06:05 +0200 | beaky | (~beaky@2a03:b0c0:0:1010::1e:a001) |
2021-10-21 11:13:32 +0200 | mvk | (~mvk@2607:fea8:5cc1:300::4b63) |
2021-10-21 11:13:51 +0200 | anoe | (~anoe@delanoe.org) (Quit: Lost terminal) |
2021-10-21 11:18:00 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:2fb4:6165:4fdd:161d) (Quit: Client closed) |
2021-10-21 11:18:26 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:2fb4:6165:4fdd:161d) |
2021-10-21 11:19:05 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-10-21 11:20:53 +0200 | rdz1789 | (~rdz1789@139.47.40.241) |
2021-10-21 11:24:58 +0200 | neurocyte0132889 | (~neurocyte@195.80.52.7) |
2021-10-21 11:24:58 +0200 | neurocyte0132889 | (~neurocyte@195.80.52.7) (Changing host) |
2021-10-21 11:24:58 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-10-21 11:25:45 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-10-21 11:26:46 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-21 11:36:21 +0200 | mvk | (~mvk@2607:fea8:5cc1:300::4b63) (Ping timeout: 245 seconds) |
2021-10-21 11:41:04 +0200 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
2021-10-21 11:43:57 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) |
2021-10-21 11:46:34 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
2021-10-21 11:47:48 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-10-21 11:48:54 +0200 | pavonia | (~user@user/siracusa) (Ping timeout: 260 seconds) |
2021-10-21 11:50:30 +0200 | ubert | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2021-10-21 11:50:30 +0200 | ub | ubert |
2021-10-21 11:51:00 +0200 | Matheo_bis | (~matheo@user/matheo-bis/x-4309430) (Quit: Konversation terminated!) |
2021-10-21 11:53:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 11:55:22 +0200 | pavonia | (~user@user/siracusa) |
2021-10-21 11:56:02 +0200 | pmk | (~user@2a02:587:9414:7d03:fb87:7810:40ab:edc0) |
2021-10-21 11:56:14 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2021-10-21 11:56:42 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-10-21 11:57:59 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Ping timeout: 264 seconds) |
2021-10-21 11:59:51 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-10-21 12:00:09 +0200 | tinwood | (~tinwood@canonical/tinwood) (Remote host closed the connection) |
2021-10-21 12:00:37 +0200 | __monty__ | (~toonn@user/toonn) |
2021-10-21 12:03:09 +0200 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) |
2021-10-21 12:03:09 +0200 | tinwood | (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host) |
2021-10-21 12:03:09 +0200 | tinwood | (~tinwood@canonical/tinwood) |
2021-10-21 12:06:26 +0200 | michalz | (~michalz@185.246.204.93) (Remote host closed the connection) |
2021-10-21 12:07:52 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-10-21 12:09:49 +0200 | michalz | (~michalz@185.246.204.73) |
2021-10-21 12:15:41 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:2fb4:6165:4fdd:161d) (Quit: Client closed) |
2021-10-21 12:18:41 +0200 | Farzad | (~FarzadBek@178.131.30.153) |
2021-10-21 12:22:23 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-10-21 12:22:40 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-21 12:28:44 +0200 | mmhat | (~mmh@55d45798.access.ecotel.net) |
2021-10-21 12:36:00 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 12:36:35 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-10-21 12:41:24 +0200 | ubert1 | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) |
2021-10-21 12:41:26 +0200 | _bo | (~bo@217.18.216.247) |
2021-10-21 12:46:45 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 12:49:07 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 12:49:48 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
2021-10-21 12:50:27 +0200 | gensyst | (gensyst@user/gensyst) |
2021-10-21 12:50:55 +0200 | <gensyst> | I have a strange/noobish question about EDSLs, compiling Haskell code, and executables. |
2021-10-21 12:50:55 +0200 | <gensyst> | Is it considered normal to have an EDSL in Haskell that "users" (e.g. programmers in my company) use to write their domain-specific "programs" (written in the EDSL) and run these programs by running GHC and running the binary executable over and over again? |
2021-10-21 12:51:16 +0200 | <gensyst> | I think this is strange for two reasons: |
2021-10-21 12:51:28 +0200 | <gensyst> | 1) You're running GHC every time for every little change in the domain-specific "program" (e.g. tweaking some parameter), so you're sort of "abusing" Haskell as a scripting language. |
2021-10-21 12:51:29 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-10-21 12:51:45 +0200 | <gensyst> | 2) Isn't the whole point of Haskell to execute GHC once, get one binary executable once, and then run that executable thousands of times instead of... running GHC thousands of times and each of the thousand binary executables only once? |
2021-10-21 12:51:51 +0200 | <gensyst> | Do you see what I mean? Some thoughts on this I'd appreciate a lot! |
2021-10-21 12:53:52 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 12:57:05 +0200 | <lortabac> | gensyst: if I understand correctly, they are using a Haskell library to make programs that they compile with GHC |
2021-10-21 12:57:15 +0200 | <lortabac> | I don't see anything wrong with this |
2021-10-21 12:57:39 +0200 | nsilv | (~NSilv@host-87-15-180-17.retail.telecomitalia.it) |
2021-10-21 12:57:43 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 12:57:57 +0200 | <gensyst> | lortabac, A part of me thinks it's a bit weird to be running "cabal build; cabal exec" all the time... |
2021-10-21 12:58:03 +0200 | <lortabac> | except the requirement to install GHC, cabal etc. |
2021-10-21 12:58:17 +0200 | <lortabac> | if these are non-tech people that's a different story |
2021-10-21 12:58:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-21 12:58:48 +0200 | <lortabac> | in that case maybe you want to find a solution that doesn't require knowledge of Haskell compilation |
2021-10-21 12:59:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 13:00:50 +0200 | alx741 | (~alx741@186.178.109.50) |
2021-10-21 13:01:16 +0200 | <gensyst> | well they're technical enough to plug and play things together with haskell and run cabal. |
2021-10-21 13:01:25 +0200 | <gensyst> | my question was just why this isn't strange lol |
2021-10-21 13:01:48 +0200 | <lortabac> | another question is, do they already have all the cabal machinery? |
2021-10-21 13:01:52 +0200 | <gensyst> | Hmm on the other hand, I am aware of e.g. the turtle library (shell scripting in Haskell), so scripting in Haskell isn't maybe all that weird |
2021-10-21 13:02:42 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 13:02:48 +0200 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-10-21 13:02:55 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 13:04:50 +0200 | <gensyst> | that part's not an issue. they can set up cabal |
2021-10-21 13:04:50 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 13:05:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-21 13:05:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 13:05:45 +0200 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 260 seconds) |
2021-10-21 13:05:54 +0200 | nsilv | (~NSilv@host-87-15-180-17.retail.telecomitalia.it) (Quit: WeeChat 2.7.1) |
2021-10-21 13:08:21 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
2021-10-21 13:09:50 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 13:11:59 +0200 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) |
2021-10-21 13:12:00 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-10-21 13:15:12 +0200 | ggVGc | (~ggVGc@a.lowtech.earth) |
2021-10-21 13:16:02 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-10-21 13:16:49 +0200 | <geekosaur> | gensyst, it may not even require cabal. there's runghc |
2021-10-21 13:17:12 +0200 | <gensyst> | yeah, i use runghc. makes it convenient |
2021-10-21 13:17:18 +0200 | <geekosaur> | especially helpful if you're constantly making small changes and testing, you can skip the compile step. of coyurse it'll be slower since it's interpreted |
2021-10-21 13:17:23 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 13:17:42 +0200 | <gensyst> | oh sorry. i wasn't aware of runghc actually lol. (confused it with ghcup) |
2021-10-21 13:17:44 +0200 | <ggVGc> | wish there was a multi-module version of runghc |
2021-10-21 13:17:50 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-10-21 13:18:01 +0200 | <ggVGc> | but I guess that would become very complicated very fast |
2021-10-21 13:18:17 +0200 | <gensyst> | geekosaur, but is this practice of EDSL & running ghc over and over again considered "natural"? |
2021-10-21 13:18:35 +0200 | off^ | (~off@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds) |
2021-10-21 13:18:38 +0200 | <hughjfchen> | gensyst: i think you can take a look at propellor |
2021-10-21 13:19:03 +0200 | <geekosaur> | "natural" is in the eye of the beholder. if it works for you, that's enough |
2021-10-21 13:19:07 +0200 | <hughjfchen> | it |
2021-10-21 13:19:50 +0200 | <ggVGc> | is propellor like ansible? |
2021-10-21 13:20:05 +0200 | <hughjfchen> | is a config management using haskell lang to write config property |
2021-10-21 13:20:25 +0200 | <ggVGc> | does it serve the same use-cases one would use ansible for?\ |
2021-10-21 13:21:03 +0200 | <ggVGc> | seems like it |
2021-10-21 13:21:22 +0200 | <merijn> | ggVGc: cabal-install supports scripting so you can use it like runghc, but with library dependencies :p |
2021-10-21 13:21:47 +0200 | <merijn> | ggVGc: The documentation of this feature can be called...Spartan, though :p |
2021-10-21 13:21:50 +0200 | <ggVGc> | merijn: realy? I was looking for that a while back, but couldn't find anything |
2021-10-21 13:22:12 +0200 | <merijn> | Has existed for, at least, 2 years |
2021-10-21 13:22:23 +0200 | <merijn> | ggVGc: But I don't think hvr ever got around to writing docs |
2021-10-21 13:23:13 +0200 | <merijn> | ggVGc: https://github.com/haskell/cabal/issues/3843 |
2021-10-21 13:25:36 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 13:26:06 +0200 | <ggVGc> | nice, thanks! Will have to give it a go when I get back to my haskell project, after these two physics exams which I am sure to fail |
2021-10-21 13:27:22 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-21 13:28:54 +0200 | <gensyst> | geekosaur, hmmmmm ok. |
2021-10-21 13:30:04 +0200 | <merijn> | I mean, basically this question boils down to "what do you think of staged compilation?" |
2021-10-21 13:30:27 +0200 | <merijn> | And my opinion would generally be "staged compilation is great, I wish GHC had better support!" |
2021-10-21 13:31:04 +0200 | <merijn> | TH is kinda staged compilation, but with fucky interactions and lack of clear boundaries/separation |
2021-10-21 13:31:10 +0200 | <gensyst> | well, doesn't EDSL sort of *imply* that's the way you're going to do things? |
2021-10-21 13:31:19 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 13:31:47 +0200 | <gensyst> | it implies you're going to be doing stuff at Haskell level (to benefit from type system) instead of reusing final binary executables (or composing such binary executables) |
2021-10-21 13:32:25 +0200 | ubert | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-21 13:32:25 +0200 | ubert1 | ubert |
2021-10-21 13:32:54 +0200 | <gensyst> | the question was basically, is it "ok" to compile all the time. i think you guys are saying there's nothing wrong with it, so i'll just do it i guess :D |
2021-10-21 13:33:27 +0200 | Rembane_ | shakes fist at TH |
2021-10-21 13:34:01 +0200 | <geekosaur> | gensyst, take a look at xmonad. you may be mod-q recompiling quite a bit at first until you decide you're satisfied with the result. (of course you may then not touch it for years…) |
2021-10-21 13:35:58 +0200 | <geekosaur> | (xmonad = window manager EDSL) |
2021-10-21 13:35:58 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 13:36:09 +0200 | <gensyst> | ok that's cool |
2021-10-21 13:36:17 +0200 | <gensyst> | gives me more confidence |
2021-10-21 13:36:24 +0200 | <gensyst> | this is the way :D |
2021-10-21 13:39:20 +0200 | osa1 | (~osa1@178.233.26.94) |
2021-10-21 13:40:26 +0200 | <gensyst> | geekosaur, hmm wow. somehow xmonad will use this new .o file? allowing you to plug and play |
2021-10-21 13:40:42 +0200 | <gensyst> | at run time |
2021-10-21 13:40:48 +0200 | <gensyst> | how... |
2021-10-21 13:41:03 +0200 | <osa1> | Does QuickCheck's shrink (https://hackage.haskell.org/package/QuickCheck-2.10/docs/Test-QuickCheck-Arbitrary.html#v:shrink) do depth-first or breadth-first search? When it finds a shrunk example that fails, does it search further (if so, for how long?), or stop and return the first one it finds? |
2021-10-21 13:42:36 +0200 | <ggVGc> | merijn: maybe I misunderstood. Should this allow me to make import another file in the same directory in a Main.hs file? |
2021-10-21 13:42:43 +0200 | <ggVGc> | -make |
2021-10-21 13:43:10 +0200 | <ggVGc> | merijn: e.g https://gist.github.com/0792e113c9b894f854e4675b221aefc6 and then have a Test/Foo.hs file in the same directory |
2021-10-21 13:43:49 +0200 | <ggVGc> | This is what I get, https://gist.github.com/c595db27571a9ac7da18d92e417b85bd |
2021-10-21 13:44:03 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-21 13:44:36 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Read error: Connection reset by peer) |
2021-10-21 13:44:59 +0200 | neurocyte0132889 | (~neurocyte@195.80.52.7) |
2021-10-21 13:44:59 +0200 | neurocyte0132889 | (~neurocyte@195.80.52.7) (Changing host) |
2021-10-21 13:44:59 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-10-21 13:47:27 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 13:48:52 +0200 | Guest28 | (~Guest28@2601:281:d480:2ce0:28de:914f:fac6:10b7) |
2021-10-21 13:49:17 +0200 | <geekosaur> | xmonad compiles the new config and then does a Unix exec()on it, replacing itself with the new config |
2021-10-21 13:49:34 +0200 | <geekosaur> | there is a way tio do binary plugins in Haskell but it's kinda painful |
2021-10-21 13:49:50 +0200 | <geekosaur> | @hackage plugins |
2021-10-21 13:49:50 +0200 | <lambdabot> | https://hackage.haskell.org/package/plugins |
2021-10-21 13:49:56 +0200 | <gensyst> | ok great! |
2021-10-21 13:50:08 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 13:50:10 +0200 | <gensyst> | thank you all for these tips and tricks! |
2021-10-21 13:50:17 +0200 | <gensyst> | i can carry on now with confidence |
2021-10-21 13:51:00 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 13:52:17 +0200 | <merijn> | ggVGc: Not sure about that. I meant more that you can depend on packages beyond just what's normally pre-installed |
2021-10-21 13:54:05 +0200 | gensyst | (gensyst@user/gensyst) (Quit: Leaving) |
2021-10-21 13:55:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 13:55:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-10-21 13:57:51 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-21 13:59:10 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 13:59:31 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Ping timeout: 252 seconds) |
2021-10-21 14:03:06 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
2021-10-21 14:06:33 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 14:08:03 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2021-10-21 14:09:00 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 14:10:32 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 14:11:08 +0200 | neurocyte0132889 | (~neurocyte@195.80.52.7) |
2021-10-21 14:11:08 +0200 | neurocyte0132889 | (~neurocyte@195.80.52.7) (Changing host) |
2021-10-21 14:11:08 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-10-21 14:19:25 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-10-21 14:22:14 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2021-10-21 14:22:25 +0200 | osa1 | (~osa1@178.233.26.94) () |
2021-10-21 14:26:41 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-10-21 14:28:14 +0200 | jespada | (~jespada@2803:9800:9842:7a62:9560:3718:bb2f:f5ee) |
2021-10-21 14:29:08 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-21 14:31:18 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-10-21 14:31:33 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-21 14:31:53 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-10-21 14:34:08 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-10-21 14:34:09 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 14:34:51 +0200 | MQ-17J | (~MQ-17J@8.21.10.17) |
2021-10-21 14:35:24 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-21 14:37:38 +0200 | favonia | (~favonia@user/favonia) (Remote host closed the connection) |
2021-10-21 14:37:59 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 14:42:49 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-21 14:42:58 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 260 seconds) |
2021-10-21 14:43:41 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-10-21 14:44:15 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 14:47:56 +0200 | Guest28 | (~Guest28@2601:281:d480:2ce0:28de:914f:fac6:10b7) (Quit: Client closed) |
2021-10-21 14:49:48 +0200 | max22- | (~maxime@2a01cb0883359800acc7df5c88e6f73e.ipv6.abo.wanadoo.fr) |
2021-10-21 14:49:58 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2021-10-21 14:50:25 +0200 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3) |
2021-10-21 14:53:37 +0200 | zebrag | (~chris@user/zebrag) |
2021-10-21 14:54:58 +0200 | <ggVGc> | merijn: might still start using this for my lab reports... |
2021-10-21 14:55:37 +0200 | ixosa | (~xaaxor@251.222.198.146.dyn.plus.net) |
2021-10-21 14:55:48 +0200 | <ggVGc> | was contemplating taking my lab notes in haskell to easily have the calculated results from the same source when I write the report, but hesitated because of execution complications. So currently unhappily using python |
2021-10-21 15:01:09 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-21 15:01:45 +0200 | ixosa | (~xaaxor@251.222.198.146.dyn.plus.net) (Ping timeout: 258 seconds) |
2021-10-21 15:02:30 +0200 | iqofi | (~ixosa@217.138.222.92) |
2021-10-21 15:05:34 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-21 15:07:16 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-21 15:08:16 +0200 | floridmarshmallo | (~nate@pool-100-19-29-41.phlapa.fios.verizon.net) |
2021-10-21 15:08:41 +0200 | floridmarshmallo | (~nate@pool-100-19-29-41.phlapa.fios.verizon.net) (Client Quit) |
2021-10-21 15:13:21 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 15:15:09 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-10-21 15:17:59 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-10-21 15:21:29 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-21 15:21:56 +0200 | sagax | (~sagax_nb@user/sagax) |
2021-10-21 15:22:08 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 15:23:26 +0200 | benin | (~benin@183.82.207.116) (Quit: The Lounge - https://thelounge.chat) |
2021-10-21 15:26:50 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-10-21 15:28:40 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 260 seconds) |
2021-10-21 15:29:05 +0200 | floridmarshmallo | (~quickspin@pool-100-19-29-41.phlapa.fios.verizon.net) |
2021-10-21 15:29:28 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
2021-10-21 15:29:34 +0200 | floridmarshmallo | (~quickspin@pool-100-19-29-41.phlapa.fios.verizon.net) (Client Quit) |
2021-10-21 15:30:41 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-21 15:35:05 +0200 | xiongxin | (~quassel@113.116.32.4) |
2021-10-21 15:37:21 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 15:37:36 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-21 15:37:55 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-21 15:38:46 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 265 seconds) |
2021-10-21 15:39:19 +0200 | mniip | (mniip@libera/staff/mniip) (Remote host closed the connection) |
2021-10-21 15:40:11 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 15:41:30 +0200 | michalz | (~michalz@185.246.204.73) (Ping timeout: 260 seconds) |
2021-10-21 15:44:01 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 252 seconds) |
2021-10-21 15:44:12 +0200 | mniip | (~mniip@libera/staff/mniip) |
2021-10-21 15:47:22 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 260 seconds) |
2021-10-21 15:47:37 +0200 | hippoid | (~idris@184.105.6.88) |
2021-10-21 15:48:05 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-21 15:48:05 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-21 15:48:05 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-21 15:48:34 +0200 | <hippoid> | :t \f g x y -> f (g x y) |
2021-10-21 15:48:35 +0200 | <lambdabot> | (t1 -> t2) -> (t3 -> t4 -> t1) -> t3 -> t4 -> t2 |
2021-10-21 15:49:13 +0200 | <hippoid> | I want to create a type alias for that function type |
2021-10-21 15:49:33 +0200 | <hippoid> | (t1 -> t2) -> (t3 -> t4 -> t1) -> t3 -> t4 -> t2 |
2021-10-21 15:50:03 +0200 | <hippoid> | type F = (t1 -> t2) -> (t3 -> t4 -> t1) -> t3 -> t4 -> t2 |
2021-10-21 15:50:13 +0200 | <hippoid> | does not work |
2021-10-21 15:50:26 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 258 seconds) |
2021-10-21 15:51:24 +0200 | <geekosaur> | no, you really need to pass the types as parameters |
2021-10-21 15:51:57 +0200 | <geekosaur> | since otherwise they can't unify with any other type (and how would you specify which type is which?) |
2021-10-21 15:52:24 +0200 | <geekosaur> | type F t1 t2 t3 t4 = ... |
2021-10-21 15:54:23 +0200 | MQ-17J | (~MQ-17J@8.21.10.17) (Ping timeout: 264 seconds) |
2021-10-21 15:55:21 +0200 | <hippoid> | geekosaur: I don't know where to start to answer your question "how would you specify which type is which" |
2021-10-21 15:55:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 15:56:01 +0200 | <merijn> | hippoid: Let's rewind, what do you think the behaviour of that alias would be? |
2021-10-21 15:56:27 +0200 | <pavonia> | Perhaps they actually want type F = forall t1 t2 t3 t4. ... |
2021-10-21 15:56:29 +0200 | <merijn> | geekosaur: I mean, it could be a Rank2 alias, but I find that questionable as well |
2021-10-21 15:56:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 15:56:57 +0200 | <merijn> | pavonia: Yes, I realise that that *might* be the solution. That's why I asked why/what they want it to do |
2021-10-21 15:57:16 +0200 | <merijn> | pavonia: Preemptively handing out rope like Rank2 types is generally...not helpful to beginners :p |
2021-10-21 15:58:01 +0200 | <hippoid> | merijn: to rewind further, I'm trying to do Eta reduction on the function \f g x y -> f (g x y) to get it into point-free style, and I'm using QuickCheck to test my equivalances. I want to pass the function into my property test, and that's why I want an alias for that long function type |
2021-10-21 15:58:15 +0200 | <pavonia> | Fair enough |
2021-10-21 16:00:18 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-21 16:00:21 +0200 | <hippoid> | like this https://paste.tomsmeding.com/jFMbE1G6 |
2021-10-21 16:00:42 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-10-21 16:00:44 +0200 | <lyxia> | For QuickCheck you will have to choose some concrete types for t1 ... t4 anyway |
2021-10-21 16:01:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-10-21 16:01:35 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Ping timeout: 264 seconds) |
2021-10-21 16:03:42 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-21 16:04:38 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2021-10-21 16:06:11 +0200 | <hippoid> | ok, i got it working well enough. thanks! |
2021-10-21 16:08:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 16:09:27 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-21 16:09:45 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-10-21 16:10:48 +0200 | xiongxin | (~quassel@113.116.32.4) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-10-21 16:11:08 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 16:11:40 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) |
2021-10-21 16:13:00 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-21 16:14:10 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
2021-10-21 16:15:20 +0200 | rdz1789 | (~rdz1789@139.47.40.241) (Ping timeout: 260 seconds) |
2021-10-21 16:17:24 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2041:32a6:242d:4938) (Quit: WeeChat 2.8) |
2021-10-21 16:19:35 +0200 | hippoid | (~idris@184.105.6.88) (Quit: leaving) |
2021-10-21 16:20:30 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds) |
2021-10-21 16:20:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-21 16:20:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-21 16:20:41 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-21 16:20:41 +0200 | <AWizzArd> | There are plenty streaming libs for GHC. Pipes. Conduit. Streams. Streamly. To name a few. |
2021-10-21 16:21:59 +0200 | <AWizzArd> | Do they all offer a way to take a set of items out of the stream (i.e. a certain number of bytes, a number of lines, like `take n`) and get ([a], RestOfStream)? |
2021-10-21 16:23:05 +0200 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2021-10-21 16:23:08 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-10-21 16:24:01 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-10-21 16:24:47 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-10-21 16:25:15 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-21 16:26:47 +0200 | acidjnk_new3 | (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-10-21 16:29:17 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-10-21 16:29:19 +0200 | <adamCS> | There's no way I can reorder type parameters via a type synonym or type family such that I can partially apply against the result, right? I want "PipeStream m a = Pipes.Producer a m ()" where I can then use "PipeStream m" or even "PipeStream". But there's no way, right? I have to newtype it? |
2021-10-21 16:29:38 +0200 | <merijn> | adamCS: No, because that is equivalent in power to type level lambda's |
2021-10-21 16:30:07 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-10-21 16:30:09 +0200 | <merijn> | (no, as in, no that isn't possible) |
2021-10-21 16:30:21 +0200 | <adamCS> | merijn: yeah. That's what I thought...without the theoretical bit. Thanks! |
2021-10-21 16:32:30 +0200 | <AWizzArd> | adamCS: Are you currently working with the Pipes streaming library? |
2021-10-21 16:34:28 +0200 | cross_ | cross |
2021-10-21 16:34:34 +0200 | <adamCS> | AWizzArd: Yes, sort of. I'm working on some enhancements to the "Frames" library, which uses Pipes. Part of the work I did is to switch to using streamly where Frames used Pipes. But now I'm trying to merge it all and thus trying to unify (a subset of) the interfaces via a record-of-functions. |
2021-10-21 16:35:32 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:7fe4:4b4a:851b:ca4d) |
2021-10-21 16:35:44 +0200 | <adamCS> | But the different kind signatures of a streamly stream (t :: (Type -> Type) -> Type -> Type) and a Pipes producer (p :: Type -> (Type -> Type) -> Type -> Type)) are proving...annoying. |
2021-10-21 16:36:24 +0200 | <AWizzArd> | adamCS: Interesting. You might be able to help with some insight. If I have a source of lines (i.e. lists) of Text, something such as `Stream [Text]`. Can I then use Pipes to give me 1-n of those [Text], and a stream that contains the rest (if any)? |
2021-10-21 16:36:39 +0200 | <merijn> | AWizzArd: You want pipes-parse |
2021-10-21 16:36:43 +0200 | <merijn> | @hackage pipes-parse |
2021-10-21 16:36:44 +0200 | <lambdabot> | https://hackage.haskell.org/package/pipes-parse |
2021-10-21 16:37:54 +0200 | <AWizzArd> | merijn: I want to implement functionality for reusing parsing streams of lines of Texts. It will eventually be used to validate/parse CSV files, but it could work on any source for lines of columns. |
2021-10-21 16:38:30 +0200 | <AWizzArd> | merijn: but I want to decouple it from a concrete CSV lib and a concrete streaming lib. Instead my type class will offer the functionality against which a user can write an implementation. |
2021-10-21 16:39:07 +0200 | <AWizzArd> | merijn: the purpose is to factor out the part where the lines are counted and good error reporting and parsing takes place, which is repetitive. |
2021-10-21 16:39:34 +0200 | <AWizzArd> | merijn: on top of it I want something comparable to Json-Schema. |
2021-10-21 16:39:46 +0200 | TMA | (tma@twin.jikos.cz) |
2021-10-21 16:41:16 +0200 | <merijn> | AWizzArd: pipes-parse isn't really parsing in the sense you're thinking off |
2021-10-21 16:41:24 +0200 | <AWizzArd> | Doing Abelson&Sussman’s ”Programming by wishful thinking” I would like to get a couple of rows and interate over them. `let ([row], rest) = readFromStream 1 stream` |
2021-10-21 16:41:38 +0200 | <merijn> | pipes itself simply does *not* allow "take N lines and return the remainder" |
2021-10-21 16:41:49 +0200 | <merijn> | You are not allowed to have a remainder with pipes |
2021-10-21 16:41:58 +0200 | <AWizzArd> | merijn: okay, that info already helps |
2021-10-21 16:42:17 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-10-21 16:42:34 +0200 | <merijn> | pipes-parse is basically a StateT with the State being a producer, allowing you to pass a producer (i.e. remaining input) to a future stage when you're done consuming |
2021-10-21 16:43:18 +0200 | <AWizzArd> | merijn: essentially I just would like to work with the type [[Text]], which just may blow up memory if an input csv file is 300 GB in size. So I couldn’t use a csv lib directly but instead plug in any of the streaming libs. |
2021-10-21 16:43:27 +0200 | CiaoSen | (~Jura@p5dcc1a24.dip0.t-ipconnect.de) |
2021-10-21 16:43:52 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 16:44:08 +0200 | <merijn> | As someone who has tried wrapping several streaming libs using a single API: Just don't |
2021-10-21 16:44:19 +0200 | dsrt^ | (~dsrt@wsip-68-227-92-38.mc.at.cox.net) |
2021-10-21 16:44:26 +0200 | <merijn> | It sucks in all sorts of annoying ways |
2021-10-21 16:45:35 +0200 | <AWizzArd> | merijn: I don't want to complect in a concrete implementation. To my users I want to offer something like `getNextLines` (i.e. take on any streaming lib). The user will find an already parsed row or a detailed error report and can decide what to do. |
2021-10-21 16:46:15 +0200 | <AWizzArd> | merijn: when this is done I want to write an implementation for those different streaming libs, so the user will be free to choose any, and the `getNextLines` magic will just do its work. |
2021-10-21 16:47:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 16:48:19 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-10-21 16:50:28 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-21 16:50:30 +0200 | <lyxia> | Is there a proof that ZipList can't be a monad? |
2021-10-21 16:50:35 +0200 | <merijn> | AWizzArd: Probably wanna study how things like the attoparsec wrappers for pipes/conduit are done and adjust your API to play nicely with that |
2021-10-21 16:50:41 +0200 | <merijn> | lyxia: Easy: What's return do? |
2021-10-21 16:51:07 +0200 | <AWizzArd> | merijn: sounds like a starting point. |
2021-10-21 16:52:05 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-10-21 16:52:16 +0200 | <lyxia> | merijn: return = ZipList . repeat |
2021-10-21 16:52:35 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-21 16:53:32 +0200 | <merijn> | lyxia: Ok, so now how's >>= gonna work if I do "return x >>= f" |
2021-10-21 16:53:44 +0200 | <merijn> | Supposedly "return x >>= f" = "f x" |
2021-10-21 16:53:52 +0200 | <merijn> | But now I suddenly have infinite 'x's |
2021-10-21 16:54:23 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-10-21 16:54:28 +0200 | <merijn> | lyxia: Applicative works because <*> sees two ZipLists and ends up truncating to the shorter one |
2021-10-21 16:55:57 +0200 | <lyxia> | Well I can try to take the diagonal of repeat (f x) |
2021-10-21 16:56:08 +0200 | <lyxia> | I know my attempt is gonna fail, but that's no proof that all attempts are going to fail. |
2021-10-21 16:57:25 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:de8d:bf1f:3d7:7a94) |
2021-10-21 17:01:03 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 17:01:56 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-10-21 17:05:54 +0200 | <lyxia> | In fact it will satisfy the identity laws, so if there is an argument to be made it must involve the associativity law. |
2021-10-21 17:07:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-21 17:08:29 +0200 | nefercheprure | (tma@twin.jikos.cz) |
2021-10-21 17:08:29 +0200 | nefercheprure | (tma@twin.jikos.cz) (Client Quit) |
2021-10-21 17:08:51 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-10-21 17:11:32 +0200 | dsrt^ | (~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Remote host closed the connection) |
2021-10-21 17:14:15 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Ping timeout: 260 seconds) |
2021-10-21 17:24:30 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) |
2021-10-21 17:26:35 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) |
2021-10-21 17:27:38 +0200 | <codolio> | lyxia: It takes some work, but the idea is that to be associative, you'd need to figure out the diagonal of a 3-dimensional cube, but the operations can only act on squares. Collapsing squares can eliminate things that would be holes in the diagonal in 3 dimensions. |
2021-10-21 17:30:11 +0200 | rdz1789 | (~rdz1789@139.47.40.241) |
2021-10-21 17:31:47 +0200 | <codolio> | Or maybe it's the opposite in some cases, now that I think of it. |
2021-10-21 17:32:34 +0200 | <lyxia> | the opposite of what? |
2021-10-21 17:32:47 +0200 | <codolio> | There are squares with holes in the diagonal but those holes don't form part of the 3-dimensional diagonal, so you shouldn't artificially truncate. |
2021-10-21 17:34:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 17:35:29 +0200 | brettgilio | (~brettgili@x-node.gq) (Quit: Leaving...) |
2021-10-21 17:35:32 +0200 | <codolio> | Maybe it's just a matter of perspective on how you think the monad might actually work out. |
2021-10-21 17:36:14 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 258 seconds) |
2021-10-21 17:37:55 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:de8d:bf1f:3d7:7a94) (Quit: WeeChat 2.8) |
2021-10-21 17:38:46 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-21 17:39:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-21 17:40:38 +0200 | brettgilio | (~brettgili@x-node.gq) |
2021-10-21 17:42:27 +0200 | LimeGolem | (~LimeGolem@82.40.121.143) |
2021-10-21 17:46:23 +0200 | codolio | dolio |
2021-10-21 17:47:03 +0200 | favonia | (~favonia@user/favonia) |
2021-10-21 17:48:42 +0200 | Farzad | (~FarzadBek@178.131.30.153) (Ping timeout: 260 seconds) |
2021-10-21 17:49:54 +0200 | rdz1789 | (~rdz1789@139.47.40.241) (Remote host closed the connection) |
2021-10-21 17:50:20 +0200 | <LimeGolem> | I have a data type with multiple constructors, some of them recursive (e.g. `data Expr = Lit Int | Add Expr Expr | Mul Expr Expr`). I want to forbid certain patterns (e.g. in `Add a b` I want to forbid `a` from being of the form `Add _ _`, which is always possible if `Add` is modelling something associative). Is there any way to do this which |
2021-10-21 17:50:21 +0200 | <LimeGolem> | doesn't involve boilerplate which is quadratic in the number of constructors? |
2021-10-21 17:52:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 17:52:58 +0200 | <c_wraith> | depending on the use case, you might be able to do that by making it a GADT. (Or maybe not - it depends entirely on what you're doing with them. |
2021-10-21 17:53:09 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-10-21 17:53:40 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-10-21 17:54:51 +0200 | <LimeGolem> | The use case is that I'm building an AST, but I have various equivalences and I want to enforce some kind of normal form at the type level. |
2021-10-21 17:54:53 +0200 | <c_wraith> | Hmm, actually that'd need more than just a GADT. That would need to be mixed with rank-n types |
2021-10-21 17:55:39 +0200 | <LimeGolem> | The best solution I have at the moment uses GADTs and RankNTypes, but also involves a lot of boilerplate. I'm hoping there's a simpler solution which I've missed. |
2021-10-21 17:56:31 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 265 seconds) |
2021-10-21 17:57:01 +0200 | <c_wraith> | I could construct something, but I would probably put it at the edge of being unusable in real code. |
2021-10-21 17:57:49 +0200 | <LimeGolem> | If it doesn't involve an unwieldy amount of boilerplate, I'd definitely be interested in seeing it. |
2021-10-21 17:58:00 +0200 | mmhat | (~mmh@55d45798.access.ecotel.net) (Ping timeout: 260 seconds) |
2021-10-21 17:58:26 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-10-21 17:58:54 +0200 | <monochrom> | I think s/depends on use case/depends on actual restrictions/ |
2021-10-21 17:59:04 +0200 | ishutin | (~ishutin@84-236-97-21.pool.digikabel.hu) (Ping timeout: 265 seconds) |
2021-10-21 17:59:04 +0200 | <c_wraith> | if I wanted to go with an actually-usable approach, I'd probably go with enforcing an interface consisting only of normalizing combinators |
2021-10-21 17:59:44 +0200 | favonia | (~favonia@user/favonia) (Quit: Leaving) |
2021-10-21 18:00:05 +0200 | <LimeGolem> | That is an option. But I'm trying to find a way to enforce the normalisation directly at the type level. |
2021-10-21 18:00:33 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-10-21 18:00:49 +0200 | ishutin | (~ishutin@94-21-131-99.pool.digikabel.hu) |
2021-10-21 18:00:58 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-10-21 18:05:17 +0200 | Guest78 | (~Guest78@178-78-205-86.customers.ownit.se) |
2021-10-21 18:05:28 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-10-21 18:07:05 +0200 | justHaunt | (~justache@user/justache) (Read error: Connection reset by peer) |
2021-10-21 18:07:39 +0200 | <Guest78> | Hi! I'm on p. 29 of Learn You a Haskell for Great Good, and there is this pattern of pattern matching that I can't get to work. It says that to capture the first three variables of a list and then the rest in another variable, you can use the pattern q:p:r:xs. But, ... |
2021-10-21 18:07:59 +0200 | justHaunt | (~justache@user/justache) |
2021-10-21 18:08:16 +0200 | <geekosaur> | you need to parenthesize it (and most patterns) |
2021-10-21 18:08:25 +0200 | <Guest78> | ... when I try I get an infinite type error when trying this line: mytails (q:p:r:x) = [r,p,q,x] |
2021-10-21 18:08:38 +0200 | <Guest78> | If someone has the time to explain, I would be very grateful! |
2021-10-21 18:08:56 +0200 | <geekosaur> | because x has the type [a] whereas q, p, r have type a |
2021-10-21 18:09:19 +0200 | <geekosaur> | you have to recombine them using (:) syntax, not standard list syntax |
2021-10-21 18:09:40 +0200 | <geekosaur> | mytails (q:p:r:x) = (r:p:q:x) |
2021-10-21 18:09:59 +0200 | <Guest78> | So how do I declare that in the declaration line? Here is what I had : mytails :: [a] -> [a] |
2021-10-21 18:10:14 +0200 | <geekosaur> | you don't need to do anything in the declaration line |
2021-10-21 18:10:21 +0200 | <c_wraith> | LimeGolem: https://paste.tomsmeding.com/NGZmMb1Q I would rate the usability of this around 1/10. But technically it does what you asked for. |
2021-10-21 18:10:43 +0200 | <geekosaur> | [a,b,c] is the same as a:b:c:[] |
2021-10-21 18:11:15 +0200 | <Guest78> | I think I get it now -- it is like consing in Lisp, right? Thanks a lot for your help! |
2021-10-21 18:11:20 +0200 | <geekosaur> | yes |
2021-10-21 18:11:34 +0200 | <geekosaur> | the [x,y,z] syntax is augar for the cons-style syntax |
2021-10-21 18:11:39 +0200 | <geekosaur> | *sugar for |
2021-10-21 18:12:02 +0200 | mmhat | (~mmh@55d45d75.access.ecotel.net) |
2021-10-21 18:15:05 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-21 18:15:15 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-21 18:15:26 +0200 | <Guest78> | I think I'm still a bit confused about the parentheses -- the ( is for tuples and [ for lists, but here, I use ( to match and return a list? |
2021-10-21 18:15:44 +0200 | <LimeGolem> | c_wraith: Thanks! I would give that at least a 3/10 :). Is there any way to extend that to include patterns involving multiple terms in a single constructor, e.g. `Add (Add a b) (Add c d)`? |
2021-10-21 18:16:15 +0200 | <geekosaur> | Guest78, inb this case the () is just because of precedence |
2021-10-21 18:16:41 +0200 | <geekosaur> | foo x:y:z is parsed (((foo x):y):z) which is not what you want |
2021-10-21 18:16:58 +0200 | <geekosaur> | (even in patterns, for consistency with expressions) |
2021-10-21 18:17:09 +0200 | <geekosaur> | so you have to say foo (x:y:z) |
2021-10-21 18:17:47 +0200 | <geekosaur> | so the parentheses aren't really part of the syntax, they just make things associate correctly |
2021-10-21 18:18:04 +0200 | <c_wraith> | LimeGolem: probably, but I can't see it right now. and it would probably get far worse to work with |
2021-10-21 18:19:11 +0200 | <Guest78> | Thanks again! I get it now! I should have re-read a few pages before jumping right back into where I was yesterday :). |
2021-10-21 18:20:47 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
2021-10-21 18:20:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 18:23:37 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-10-21 18:24:29 +0200 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
2021-10-21 18:25:14 +0200 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2021-10-21 18:25:56 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-21 18:26:16 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-21 18:26:23 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 18:26:33 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) |
2021-10-21 18:28:47 +0200 | <LimeGolem> | c_wraith: That's what I was afraid of. Is there a name for this sort of technique? Something that I can look up? |
2021-10-21 18:29:12 +0200 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection) |
2021-10-21 18:30:48 +0200 | <c_wraith> | You know, I can't recall ever seeing a name for it. |
2021-10-21 18:31:23 +0200 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2021-10-21 18:31:43 +0200 | <dolio> | lyxia: The closest natural thing I can come up with is this: imagine lists as `Σ n. Fin n -> A`. (<*>) takes the minimum of two ns. Make join use the minimum over all ns. So, if one row is empty, your whole join is empty, even if there's a non-trivial diagonal. Then maybe that operation is associative. |
2021-10-21 18:32:25 +0200 | <dolio> | However, that doesn't actually work for infinite lists. You can't know how big the output should be without seeing the entire input. |
2021-10-21 18:32:30 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-10-21 18:33:29 +0200 | timCF | (~timCF@m91-129-111-87.cust.tele2.ee) |
2021-10-21 18:33:45 +0200 | <LimeGolem> | c_wraith: Oh well, thanks for the help! |
2021-10-21 18:34:38 +0200 | <dolio> | And without infinite lists there is no unit. You could formally adjoin one, but it is not the same type. |
2021-10-21 18:37:28 +0200 | <dolio> | I.E. Maybe ℕ is not the same as the possibly infinite, 'natural numbers,' they have distinct computational topologies. |
2021-10-21 18:45:04 +0200 | Guest78 | (~Guest78@178-78-205-86.customers.ownit.se) (Ping timeout: 256 seconds) |
2021-10-21 18:46:47 +0200 | CiaoSen | (~Jura@p5dcc1a24.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-10-21 18:48:51 +0200 | <dolio> | geekosaur: I think you got that slightly wrong. |
2021-10-21 18:49:11 +0200 | <dolio> | (foo x):(y:z) |
2021-10-21 18:49:19 +0200 | <geekosaur> | probably |
2021-10-21 18:49:27 +0200 | <geekosaur> | right, (:) right-associates, sorry |
2021-10-21 18:49:34 +0200 | <dolio> | I had to think about it a while with that many parens. :þ |
2021-10-21 18:49:42 +0200 | <geekosaur> | but the important part was x misassociating |
2021-10-21 18:50:17 +0200 | <lyxia> | dolio: you can't prove that there is no good join by showing that just one join is bad. And that one is not associative either. |
2021-10-21 18:51:02 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-10-21 18:55:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-21 18:55:27 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 18:57:35 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 18:59:00 +0200 | f-a | (f2a@f2a.jujube.ircnow.org) |
2021-10-21 19:00:17 +0200 | f-a | (f2a@f2a.jujube.ircnow.org) () |
2021-10-21 19:02:05 +0200 | <dolio> | What is a 'good' join? Is it any arbitrary function that is associative and happens to take the diagonal on squares, regardless of how unpredictable it is on non-square cases? Then I haven't seen a universal disproof of those. |
2021-10-21 19:06:27 +0200 | <dolio> | If the goodness criterion includes corresponding to some simply describable operation on diagonals of ragged squares/cubes, then there are counter example cubes for the obvious ones. |
2021-10-21 19:09:57 +0200 | <awpr> | FWIW infinite streams and fixed-size Vecs do have this diagonalization instance |
2021-10-21 19:12:50 +0200 | LimeGolem | (~LimeGolem@82.40.121.143) (Ping timeout: 256 seconds) |
2021-10-21 19:18:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 19:20:56 +0200 | <segfaultfizzbuzz> | i am now interested in what abstract "characteristics" code can have. i am not quite sure what i mean by code here, but i probably mean a function as haskellers describe it, or possibly a function or data type. for example: pure, functional, linear, total, synchronous/asynchronous, ... |
2021-10-21 19:20:57 +0200 | <lyxia> | Yes to "What is a 'good' join? Is it ..." |
2021-10-21 19:21:35 +0200 | <segfaultfizzbuzz> | is there a list of these abstract characteristics somewhere? |
2021-10-21 19:23:45 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-21 19:24:51 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-10-21 19:27:52 +0200 | Guest78 | (~Guest78@178-78-205-86.customers.ownit.se) |
2021-10-21 19:30:17 +0200 | RoxSive | (~RoxSive@95-30-22-55.broadband.corbina.ru) |
2021-10-21 19:30:22 +0200 | <Guest78> | I have another question, if someone has the time. I'm now on p. 36 of Learn You a Haskell... and am practicing with case. I can do fibonacci numbers with pattern match, if-then-else and guards, but with case I get a parse error. Here is my attempt: |
2021-10-21 19:30:42 +0200 | <Guest78> | myfib4 :: (Integral a) => a -> a |
2021-10-21 19:30:42 +0200 | <Guest78> | myfib4 n = case n of < 2 -> n |
2021-10-21 19:30:43 +0200 | <Guest78> | case n of _ -> myfib3 (n - 1) + myfib3 (n - 2) |
2021-10-21 19:31:08 +0200 | <Guest78> | The parse error is on the first case. Emacs marks it at the arrow. |
2021-10-21 19:31:10 +0200 | <geekosaur> | case does pattern matches on structure; you need guards to do numeric comparisons |
2021-10-21 19:31:45 +0200 | <Guest78> | Ok, so I can't use case for this at all? |
2021-10-21 19:31:49 +0200 | <geekosaur> | so you can't do that check directly using case, only with a guard |
2021-10-21 19:32:21 +0200 | <Guest78> | Thanks a lot :). I'll just move on then! |
2021-10-21 19:35:52 +0200 | haasn | (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2021-10-21 19:36:17 +0200 | haasn | (~nand@haasn.dev) |
2021-10-21 19:36:37 +0200 | mbuf | (~Shakthi@171.61.241.145) (Quit: Leaving) |
2021-10-21 19:37:36 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) |
2021-10-21 19:38:37 +0200 | Guest377 | (~Guest37@93-172-116-38.bb.netvision.net.il) |
2021-10-21 19:39:25 +0200 | Guest377 | (~Guest37@93-172-116-38.bb.netvision.net.il) (Client Quit) |
2021-10-21 19:39:41 +0200 | Guest7483 | (~Guest7483@93-172-116-38.bb.netvision.net.il) |
2021-10-21 19:40:13 +0200 | Guest7483 | (~Guest7483@93-172-116-38.bb.netvision.net.il) (Client Quit) |
2021-10-21 19:40:28 +0200 | Guest28 | (~Guest28@93-172-116-38.bb.netvision.net.il) |
2021-10-21 19:46:52 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 19:48:32 +0200 | <Inst> | also, this is interesting |
2021-10-21 19:49:43 +0200 | <Inst> | it turns out HPF1P does the Main / Do in Chapter 3 |
2021-10-21 19:51:54 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-21 19:52:29 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-21 19:53:17 +0200 | RoxSive | (~RoxSive@95-30-22-55.broadband.corbina.ru) (Quit: Leaving) |
2021-10-21 19:57:01 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Ping timeout: 252 seconds) |
2021-10-21 19:59:23 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-21 20:00:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:00:21 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 20:00:30 +0200 | xff0x | (~xff0x@2001:1a81:524c:400:5205:21d5:64e1:92) (Ping timeout: 260 seconds) |
2021-10-21 20:00:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 20:01:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:01:20 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 20:02:01 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 20:02:10 +0200 | k | (~user@152.1.137.158) |
2021-10-21 20:02:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:02:38 +0200 | <k> | Where is the source for the `Ord` class? I can't find it in GHC.Base. |
2021-10-21 20:03:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:03:51 +0200 | <davean> | GHC.Classes perhaps |
2021-10-21 20:03:57 +0200 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/html/libraries/ghc-prim-0.7.0/src/GHC-Classes.html#Ord |
2021-10-21 20:04:02 +0200 | <davean> | The thing you get when you click on "Source" next to Ord in Data.Ord? |
2021-10-21 20:04:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:04:25 +0200 | <geekosaur> | or in Prelude for that matter |
2021-10-21 20:04:37 +0200 | <Hecate> | found it |
2021-10-21 20:04:44 +0200 | <Hecate> | ah yes, thanks geekosaur |
2021-10-21 20:04:52 +0200 | <k> | geekosaur: thanks! |
2021-10-21 20:05:03 +0200 | <Hecate> | davean: I had to click on the source for the Ord Bool implementation in the "Instances" dropdown |
2021-10-21 20:05:05 +0200 | <k> | davean: Couldn't get to the source that way. |
2021-10-21 20:05:06 +0200 | <Hecate> | to get to GHC.Classes |
2021-10-21 20:05:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:05:26 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-10-21 20:06:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:07:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:08:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:09:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:10:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:11:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:12:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:12:48 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-21 20:13:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:14:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:14:29 +0200 | <geekosaur> | come to think of it I did the same thing, but I intended it as a shortcut. if it's not directly documented in either Data.Ord or Prelude, that's a bug imo |
2021-10-21 20:14:49 +0200 | <geekosaur> | shouldn't force preople to go digging for GHC.Classes for basic stuff like Ord and Eq |
2021-10-21 20:15:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:16:02 +0200 | <k> | Does `compare` imply that `Ord` defines a total order? If not, why not? |
2021-10-21 20:16:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:16:16 +0200 | <geekosaur> | Ord is supposed to define a total order |
2021-10-21 20:16:37 +0200 | <geekosaur> | Sadly this gets abused a bit, including by Double |
2021-10-21 20:16:52 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-21 20:17:07 +0200 | <Hecate> | I'm waiting for the CLC to be operational to push for a PartialEq / PartialOrd |
2021-10-21 20:17:20 +0200 | <Hecate> | that Eq/Ord would inherit, and as such become Laws-only typeclasses |
2021-10-21 20:17:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:17:34 +0200 | <k> | Per the docs: 'The Haskell Report defines not laws for 'Ord'. However, '<=' is customarily expected to implement a non-strict partial order ...' |
2021-10-21 20:18:07 +0200 | <k> | *no laws |
2021-10-21 20:18:13 +0200 | <Hecate> | yep |
2021-10-21 20:18:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:18:23 +0200 | <davean> | Thats not what the documentation says: "" |
2021-10-21 20:18:26 +0200 | <davean> | Thats not what the documentation says: "<= is customarily expected to implement a non-strict partial order" |
2021-10-21 20:19:08 +0200 | <davean> | The only total order class I know of in Haskell is in a library |
2021-10-21 20:19:16 +0200 | <davean> | Ironicly, a partial order library |
2021-10-21 20:19:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:20:02 +0200 | <k> | I guess `EQ` is not supposed to mean `equal` or `equivalent`? |
2021-10-21 20:20:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:20:24 +0200 | <k> | But maybe `not comparably greater or less than`? |
2021-10-21 20:21:12 +0200 | xff0x | (~xff0x@2001:1a81:524c:400:5205:21d5:64e1:92) |
2021-10-21 20:21:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:21:30 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 260 seconds) |
2021-10-21 20:22:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:23:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:24:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:24:59 +0200 | iqofi | (~ixosa@217.138.222.92) (Remote host closed the connection) |
2021-10-21 20:25:22 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-21 20:25:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:25:29 +0200 | <k> | Ah, never mind. I don't really know what I'm talking about. |
2021-10-21 20:25:57 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-10-21 20:26:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:26:59 +0200 | <k> | I still don't understand why all of `>`, `>=`, and `<` are defined in terms of `compare`. Or, honestly, why they're methods. Seems like a waste of code. |
2021-10-21 20:27:04 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-10-21 20:27:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:27:38 +0200 | <monochrom> | Standard libraries such as Data.Map and Data.Set already treats Ord as a total order. I think it is too late to defend "but it has no laws". |
2021-10-21 20:27:58 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer) |
2021-10-21 20:27:59 +0200 | econo | (uid147250@user/econo) |
2021-10-21 20:28:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:28:25 +0200 | <janus> | k: how would they be if they were not methods and not defined in terms of `compare`? |
2021-10-21 20:29:04 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-10-21 20:29:15 +0200 | <k> | janus: You could define them in terms of `<=` as constrained functions rather than methods. |
2021-10-21 20:29:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:29:37 +0200 | <monochrom> | "MINIMAL compare | (<=)" allows starting with <= |
2021-10-21 20:30:05 +0200 | <k> | Oh, I'm aware of that, but you still end up defining everything in terms of `compare` when you start with only `<=`. |
2021-10-21 20:30:09 +0200 | <monochrom> | Though, I am surprised that you don't also raise "but (>) is better" |
2021-10-21 20:30:12 +0200 | <janus> | k: but then NaN <= NaN would be unequal NaN > NaN, right? |
2021-10-21 20:30:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:31:10 +0200 | <monochrom> | If you are referring to default implementations... |
2021-10-21 20:31:20 +0200 | <monochrom> | You can always override them for your type. |
2021-10-21 20:31:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:31:34 +0200 | <davean> | k: Making them members allows optimizations for their specific cases |
2021-10-21 20:32:16 +0200 | <monochrom> | Default implementations are meant to "work under maximum mathematical generality" not "efficient". |
2021-10-21 20:32:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:32:29 +0200 | <k> | > (0/0 :: Double) > (0/0 :: Double) |
2021-10-21 20:32:30 +0200 | <monochrom> | Just look at Foldable. |
2021-10-21 20:32:31 +0200 | <lambdabot> | False |
2021-10-21 20:32:59 +0200 | <k> | > (0/0 :: Double) <= (0/0 :: Double) |
2021-10-21 20:33:01 +0200 | <lambdabot> | False |
2021-10-21 20:33:04 +0200 | <monochrom> | Who would code up foldl' in terms of foldr, really. And foldr' in terms of foldl, for the LOL. |
2021-10-21 20:33:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:33:46 +0200 | <k> | And foldr in terms of foldMap, for that matter... |
2021-10-21 20:33:57 +0200 | <k> | Fair enough. |
2021-10-21 20:34:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:35:07 +0200 | <k> | I was just thinking that if there's a default implementation that is basically always as efficient as any hand-crafted implementation, there's no need to make it a method. There was a similar discussion about `Eq` on haskell-cafe. |
2021-10-21 20:35:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:35:36 +0200 | <k> | Although that had the added issue of newtype dictionaries. |
2021-10-21 20:35:40 +0200 | <monochrom> | That's a big "IF". |
2021-10-21 20:36:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:36:23 +0200 | <monochrom> | In practice, that statement is vacuously satisfied by all classes we hav. |
2021-10-21 20:37:25 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:37:27 +0200 | <davean> | Thats basicly non-sensicil |
2021-10-21 20:37:39 +0200 | <davean> | You've derived why they are in the class - because thats false |
2021-10-21 20:37:44 +0200 | <davean> | and almost has to be |
2021-10-21 20:38:09 +0200 | <davean> | I say almost because in SOME specific cases a sufficiently smart SMT solver style compiler COULD optimize |
2021-10-21 20:38:17 +0200 | <davean> | But lets be real - thats horribly unrealistic |
2021-10-21 20:38:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:39:00 +0200 | <Inst> | nice, just got GHCI running in visual studio code |
2021-10-21 20:39:10 +0200 | <Inst> | honestly they should advertise visual studio code for haskell in windows |
2021-10-21 20:39:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:40:14 +0200 | <k> | I'd say there's a big difference between `notElem x` = `not . elem x` and `foldl f z xs = appEndo (getDual (foldMap (Dual . Endo . flip f) xs)) z`. |
2021-10-21 20:40:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:40:54 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 20:41:26 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:41:48 +0200 | <davean> | k: Thats trivially false. |
2021-10-21 20:42:15 +0200 | <k> | davean: OK, please explain. |
2021-10-21 20:42:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:42:29 +0200 | <k> | Sometimes 'trivial' things are hard for me to figure out. |
2021-10-21 20:42:53 +0200 | <davean> | k: consider the infinite cases |
2021-10-21 20:43:25 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:43:55 +0200 | <k> | OK. So elem of an infinite structure can terminate; `notElem` cannot be defined to terminate. |
2021-10-21 20:44:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:45:06 +0200 | <k> | foldl of an infinite right-to-left structure can terminate; foldl of an infinite left-to-right structure cannot terminate. |
2021-10-21 20:45:27 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:46:05 +0200 | <k> | `elem` and `notElem` have the same termination characteristics regardless of the bias of the infinite structure. What is your point? |
2021-10-21 20:46:20 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:47:29 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:48:20 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:49:19 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-10-21 20:49:26 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:49:46 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-21 20:50:20 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:51:22 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-21 20:51:26 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:52:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 20:52:20 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:53:27 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:53:52 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 20:54:19 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 20:54:21 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:54:51 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-21 20:54:51 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 20:55:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 20:55:27 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:56:21 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:57:27 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 20:58:21 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 20:58:58 +0200 | mei | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-10-21 20:58:59 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-10-21 20:59:27 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:00:21 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:01:28 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:02:21 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:03:28 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:04:03 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) |
2021-10-21 21:04:21 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:05:28 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:06:22 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:06:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 21:07:26 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 21:07:28 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:07:34 +0200 | <k> | I wonder what trivial thing I was missing. Happy Friday everyone. |
2021-10-21 21:07:43 +0200 | k | (~user@152.1.137.158) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-10-21 21:08:22 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:08:26 +0200 | Guest78 | (~Guest78@178-78-205-86.customers.ownit.se) (Ping timeout: 256 seconds) |
2021-10-21 21:08:28 +0200 | <koala_man> | is there a class or something I can use to automatically enumerate each value in a data type, e.g. data Foo = Bar | Baz; (something :: [Foo]) == [ Bar, Baz ]? |
2021-10-21 21:08:49 +0200 | <geekosaur> | something in Data.Generic |
2021-10-21 21:09:00 +0200 | <geekosaur> | requires deriving Generic |
2021-10-21 21:09:03 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-21 21:09:09 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-21 21:09:22 +0200 | <awpr> | > `enumFrom minBound :: [Word8]` |
2021-10-21 21:09:23 +0200 | <lambdabot> | <hint>:1:1: error: parse error on input ‘`’ |
2021-10-21 21:09:29 +0200 | <awpr> | > enumFrom minBound :: [Word8] |
2021-10-21 21:09:29 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:09:31 +0200 | <lambdabot> | [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2... |
2021-10-21 21:09:50 +0200 | <awpr> | for simple enums with Enum and Bounded, that should do it |
2021-10-21 21:10:22 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:10:52 +0200 | <monochrom> | data Foo = Bar | Baz deriving (Bounded, Enum) |
2021-10-21 21:11:04 +0200 | CiaoSen | (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-10-21 21:11:13 +0200 | <monochrom> | then you can [minBound .. maxBound] |
2021-10-21 21:11:29 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:11:38 +0200 | <monochrom> | This doesn't work for "larger" examples. |
2021-10-21 21:11:40 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-10-21 21:11:48 +0200 | aegon | (~mike@174.127.249.180) |
2021-10-21 21:11:54 +0200 | <koala_man> | nice, thanks! |
2021-10-21 21:12:20 +0200 | <awpr> | for more complicated types like tuples of enums, sum types with fields, etc. there's https://hackage.haskell.org/package/finite-table-0.1.0.1/docs/Data-Finite.html#v:enumerate |
2021-10-21 21:12:22 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:13:21 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-10-21 21:13:29 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:14:11 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Ping timeout: 264 seconds) |
2021-10-21 21:14:23 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:15:29 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:15:33 +0200 | <awpr> | (note `[minBound..maxBound]` is exactly `enumFromTo minBound maxBound`, and for derived instances for finite enums, those are the same as `[minBound..]` and `enumFrom minBound`) |
2021-10-21 21:16:23 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:16:26 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 21:17:29 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:17:31 +0200 | gomma | (~gomma@c-73-132-243-63.hsd1.md.comcast.net) |
2021-10-21 21:18:14 +0200 | <gomma> | Is conan in here? |
2021-10-21 21:18:23 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:18:32 +0200 | <Franciman> | not now, apparently |
2021-10-21 21:18:57 +0200 | <gomma> | but he is sometimes here? |
2021-10-21 21:19:16 +0200 | <Franciman> | conal^ |
2021-10-21 21:19:18 +0200 | <Franciman> | ? |
2021-10-21 21:19:22 +0200 | <Franciman> | yes usually I see him online |
2021-10-21 21:19:25 +0200 | <gomma> | yes that's probably it! |
2021-10-21 21:19:29 +0200 | <gomma> | thank u |
2021-10-21 21:19:30 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:19:44 +0200 | <gomma> | ok thanks |
2021-10-21 21:20:22 +0200 | <gomma> | he helped me years ago and i wanted to discuss stuff with him since i've grown a lot since then |
2021-10-21 21:20:24 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:20:30 +0200 | <gomma> | but since i have the right name now, i found his publications |
2021-10-21 21:20:34 +0200 | jaitoon | (~Jaitoon@2a02:c7f:a5f:1d00:3901:d03b:2d77:c4b6) |
2021-10-21 21:20:41 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-10-21 21:21:22 +0200 | <gomma> | I think I want to read through those before engaging again |
2021-10-21 21:21:29 +0200 | <gomma> | Thanks so much! Goodbye y'all |
2021-10-21 21:21:30 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:21:35 +0200 | gomma | (~gomma@c-73-132-243-63.hsd1.md.comcast.net) (Client Quit) |
2021-10-21 21:21:43 +0200 | <janus> | goodbye gomma |
2021-10-21 21:22:24 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:23:30 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:24:24 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:25:31 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:25:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-21 21:26:25 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:27:31 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:27:36 +0200 | <aegon> | is there an applicative version of ^. for lens? |
2021-10-21 21:28:25 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:29:31 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:30:20 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Ping timeout: 260 seconds) |
2021-10-21 21:30:25 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:31:31 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:31:42 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-10-21 21:32:25 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:33:32 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:34:26 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:35:32 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:36:26 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:37:32 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:38:26 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:39:33 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:39:33 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-21 21:39:56 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-21 21:40:27 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:41:33 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:42:27 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:43:33 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:44:27 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:45:11 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-10-21 21:45:34 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:45:39 +0200 | <kronicmage> | wdym by applicative? |
2021-10-21 21:45:42 +0200 | <kronicmage> | aegon |
2021-10-21 21:46:28 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:47:34 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:48:28 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:49:34 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:50:28 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:51:14 +0200 | tomsmeding | (~tomsmedin@tomsmeding.com) |
2021-10-21 21:51:35 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:52:27 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:7fe4:4b4a:851b:ca4d) (Quit: Client closed) |
2021-10-21 21:52:29 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:53:36 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:54:29 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:55:36 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:56:30 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:57:37 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 21:58:05 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb87897f933eeab9e85f.dip0.t-ipconnect.de) |
2021-10-21 21:58:30 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 21:59:37 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:00:30 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:01:37 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:02:30 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:02:58 +0200 | <aegon> | kronicmage: i want to apply a lens to a value within a monadic context or functor context |
2021-10-21 22:03:25 +0200 | <aegon> | so instead of doing somethign like val >>= \x -> x ^. lens i'm wondering if anyones made a applicative for m so i can do val ^. lens |
2021-10-21 22:03:34 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-10-21 22:03:37 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:04:06 +0200 | <aegon> | well, binds used wrong there :\ but thats the jist |
2021-10-21 22:04:31 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:04:44 +0200 | <awpr> | I'm not aware of such a thing existing. I would just use `view l <$> val` |
2021-10-21 22:04:58 +0200 | <awpr> | (since the operator form would require a kinda ugly operator section) |
2021-10-21 22:05:06 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 245 seconds) |
2021-10-21 22:05:37 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:05:59 +0200 | <janus> | i want to marry Operator Section <3 |
2021-10-21 22:06:31 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:06:53 +0200 | <awpr> | I do like operator sections in general, but this case I find just looks better with the alphanumeric name (compare `(^. l) <$> val` |
2021-10-21 22:06:56 +0200 | juhp | (~juhp@128.106.188.220) |
2021-10-21 22:07:04 +0200 | <awpr> | ) |
2021-10-21 22:07:06 +0200 | <janus> | is it ugly because it is followed by infix fmap? so `fmap (^. l) val` is ok? :P |
2021-10-21 22:07:37 +0200 | <awpr> | hmm, even with fmap, I'd still probably write `fmap (view l) val` |
2021-10-21 22:07:38 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:07:51 +0200 | <geekosaur> | operator glazeover :þ |
2021-10-21 22:08:13 +0200 | <aegon> | awpr: didn't think of using the non operator version |
2021-10-21 22:08:15 +0200 | <aegon> | :t compare |
2021-10-21 22:08:16 +0200 | <lambdabot> | Ord a => a -> a -> Ordering |
2021-10-21 22:08:18 +0200 | <awpr> | so I guess it's just that I prefer a partial application of a well-known alphanumeric-named function over an operator section |
2021-10-21 22:08:31 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:08:34 +0200 | <awpr> | ("compare" is just prose in that message) |
2021-10-21 22:08:50 +0200 | <aegon> | :) |
2021-10-21 22:09:00 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:7fe4:4b4a:851b:ca4d) |
2021-10-21 22:09:09 +0200 | <aegon> | what about val <&> (^. l) |
2021-10-21 22:09:21 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Remote host closed the connection) |
2021-10-21 22:09:26 +0200 | <janus> | Mrs Perl approves :+1: |
2021-10-21 22:09:26 +0200 | <aegon> | i'm just guessing at that, going to go play around in ghci |
2021-10-21 22:09:38 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:10:02 +0200 | <awpr> | I think I've concluded that I'd always personally choose `view l` over `(^. l)` (when not immediately applied to another argument) |
2021-10-21 22:10:32 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:10:58 +0200 | <janus> | come on, why not just use `flip (<$>) (`(^.)` l)` |
2021-10-21 22:11:14 +0200 | <geekosaur> | have you tried it? |
2021-10-21 22:11:39 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:11:59 +0200 | <janus> | i seems to be having some kind of problem with my diacretics, must reconfigure my keyboard configuration in nix first. i'll report back next week |
2021-10-21 22:12:03 +0200 | <geekosaur> | (`` syntax is limited, you can't nest it that way) |
2021-10-21 22:12:14 +0200 | <aegon> | yeah i think its clearer too, thanks for the tip, i'm still not used to thinking applicatively over monadicly |
2021-10-21 22:12:32 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:12:46 +0200 | <geekosaur> | on the one hand it's probably for the best, on the other imagine being able to `(`(`(...)`)`)` |
2021-10-21 22:13:08 +0200 | <geekosaur> | (then think about how you'd escape the `s) |
2021-10-21 22:13:22 +0200 | <awpr> | needs guillemets |
2021-10-21 22:13:35 +0200 | alx741 | (~alx741@186.178.109.50) (Ping timeout: 264 seconds) |
2021-10-21 22:13:38 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:13:40 +0200 | <awpr> | (since they can be balanced like parentheses) |
2021-10-21 22:14:23 +0200 | ub | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) |
2021-10-21 22:14:32 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:14:47 +0200 | ikex | (ash@user/ikex) (Ping timeout: 264 seconds) |
2021-10-21 22:15:17 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Quit: Leaving) |
2021-10-21 22:15:26 +0200 | ikex | (ash@user/ikex) |
2021-10-21 22:15:39 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:15:50 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 260 seconds) |
2021-10-21 22:16:33 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:17:39 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:18:33 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:18:33 +0200 | <aegon> | oh man with `view l <$> var >>= \case ...` hlint recommends a super hard to read: `var >>= (\case ...) . view Snapshot` |
2021-10-21 22:19:08 +0200 | <aegon> | er view l |
2021-10-21 22:19:25 +0200 | <geekosaur> | hlolint |
2021-10-21 22:19:36 +0200 | <aegon> | oh man with `view l <$> var >>= \case ...` hlint recommends a super hard to read: `var >>= (\case ...) . view l` imo hlint is wrong here, is it optimizing for some sort of perf thing? |
2021-10-21 22:19:39 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:20:30 +0200 | <geekosaur> | imo if it is then it should be shot; fix the compiler instead |
2021-10-21 22:20:33 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:20:58 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.126) |
2021-10-21 22:21:39 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:21:51 +0200 | <awpr> | that's a left-associated fmap if I'm reading it correctly |
2021-10-21 22:22:33 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:22:59 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:887d:efb8:1cec:d51f) (Remote host closed the connection) |
2021-10-21 22:23:01 +0200 | <aegon> | it doesnt suggest any change for `var <&> (^. l) >>= \case ...` wonder whats going on here / what its trying to hint at |
2021-10-21 22:23:07 +0200 | <awpr> | generally things should be right-associated to avoid re-traversing the whole left structure (same sort of reason you don't left-associate string concatenations) |
2021-10-21 22:23:16 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:84fc:7e49:3098:491f) |
2021-10-21 22:23:40 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:23:45 +0200 | <awpr> | maybe it just doesn't know about `<&>`? |
2021-10-21 22:24:01 +0200 | <aegon> | sos view l <$> var is left associative but the . view l is right? i need to churn on that |
2021-10-21 22:24:34 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:24:50 +0200 | <awpr> | well, `(view l <$> var) >>= f` is left-associated, and `var >>= \x -> f (view x)` is right-associate |
2021-10-21 22:24:52 +0200 | <awpr> | d |
2021-10-21 22:25:40 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:26:34 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:26:35 +0200 | <awpr> | if the monad in question is a list, for example, the left version goes through the whole list to apply `view l`, then goes through that whole list to `concatMap` `f`, while the right version goes through the list just once |
2021-10-21 22:27:24 +0200 | alx741 | (~alx741@186.178.108.23) |
2021-10-21 22:27:40 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:28:34 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:28:39 +0200 | <aegon> | interesting, ok, that makes sense, wow thats a possible perf hit thats very hard to keep in mind for me at the moment |
2021-10-21 22:29:13 +0200 | <aegon> | the monad in question here is IO but i'm glad hlint yelled at me |
2021-10-21 22:29:23 +0200 | __monty__ | (~toonn@user/toonn) |
2021-10-21 22:29:41 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:30:24 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-21 22:30:34 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:31:41 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:32:11 +0200 | timCF | (~timCF@m91-129-111-87.cust.tele2.ee) (Ping timeout: 264 seconds) |
2021-10-21 22:32:35 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:33:01 +0200 | timCF | (~timCF@m91-129-111-87.cust.tele2.ee) |
2021-10-21 22:33:23 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:84fc:7e49:3098:491f) (Ping timeout: 264 seconds) |
2021-10-21 22:33:41 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:34:35 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:35:11 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 264 seconds) |
2021-10-21 22:35:41 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:35:48 +0200 | Guest3072 | (~Guest30@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-10-21 22:36:35 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:37:37 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-21 22:37:42 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:38:36 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:38:41 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 258 seconds) |
2021-10-21 22:39:13 +0200 | ub | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) (Quit: ub) |
2021-10-21 22:39:42 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:40:36 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:41:42 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:42:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-21 22:42:36 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:43:43 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:44:36 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:45:43 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:46:16 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-21 22:46:36 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:47:43 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:48:29 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-10-21 22:48:37 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:49:43 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:50:37 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:50:37 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.126) (Read error: Connection reset by peer) |
2021-10-21 22:51:44 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:52:37 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:53:45 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:54:38 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:55:44 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:56:38 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:57:44 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:58:38 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 22:59:44 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 22:59:55 +0200 | Cajun | (~Cajun@user/cajun) |
2021-10-21 23:00:38 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:01:44 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:02:38 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:03:45 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:04:38 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:05:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:06:39 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:07:45 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:08:30 +0200 | fendor | (~fendor@178.115.78.81.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-21 23:08:39 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:08:43 +0200 | <monochrom> | Ah, Bird's Thinking Functionally with Haskell is the one that suffers "right before AMP". |
2021-10-21 23:09:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:10:39 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:10:54 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-21 23:11:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:12:39 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:13:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:14:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-21 23:14:40 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:15:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:16:40 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:17:05 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-10-21 23:17:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:17:50 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-10-21 23:18:40 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:19:46 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:20:40 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:21:47 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:22:12 +0200 | rond_ | (~rond_@2a01:115f:943:5e00:7fe4:4b4a:851b:ca4d) (Quit: Client closed) |
2021-10-21 23:22:25 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-21 23:22:41 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:23:47 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:24:41 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:25:10 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-10-21 23:25:48 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:26:41 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:27:23 +0200 | CiaoSen | (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-10-21 23:27:41 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-10-21 23:27:41 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-10-21 23:27:44 +0200 | allbery_b | geekosaur |
2021-10-21 23:27:48 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:28:42 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:29:48 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:30:42 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:31:40 +0200 | ubert | (~Thunderbi@77.119.198.223.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2021-10-21 23:31:49 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:32:11 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-21 23:32:42 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:33:06 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Ping timeout: 260 seconds) |
2021-10-21 23:33:23 +0200 | Guest3072 | (~Guest30@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
2021-10-21 23:33:48 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:34:42 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:35:49 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:36:43 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:37:16 +0200 | wonko | (~wjc@62.115.229.50) (Ping timeout: 265 seconds) |
2021-10-21 23:37:49 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:38:43 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:39:15 +0200 | Guest54 | (~Guest54@207.151.52.24) |
2021-10-21 23:39:50 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:40:43 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:41:50 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:42:44 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:43:34 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-10-21 23:43:50 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:44:44 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:45:50 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:46:44 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:47:51 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:48:44 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:49:51 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:50:44 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:51:25 +0200 | max22- | (~maxime@2a01cb0883359800acc7df5c88e6f73e.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-10-21 23:51:51 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:52:45 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:53:51 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:54:45 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:55:36 +0200 | Guest54 | (~Guest54@207.151.52.24) (Ping timeout: 256 seconds) |
2021-10-21 23:55:51 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:56:45 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:56:45 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-21 23:57:52 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-21 23:58:34 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-21 23:58:45 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-21 23:59:52 +0200 | Guest372 | (~xxx@47.245.54.240) |