2023-06-14 00:02:30 +0200 | Errdonald_ | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) |
2023-06-14 00:04:40 +0200 | elkcl | (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 255 seconds) |
2023-06-14 00:05:34 +0200 | Errdonald | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) (Ping timeout: 255 seconds) |
2023-06-14 00:05:39 +0200 | elkcl | (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) |
2023-06-14 00:06:42 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-06-14 00:07:14 +0200 | Pickchea | (~private@user/pickchea) |
2023-06-14 00:07:56 +0200 | mncheck | (~mncheck@193.224.205.254) (Ping timeout: 240 seconds) |
2023-06-14 00:10:24 +0200 | acidjnk | (~acidjnk@p200300d6e7072f28fc9054c626dc7d9f.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-06-14 00:12:24 +0200 | foul_owl | (~kerry@71.212.137.212) |
2023-06-14 00:15:26 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-06-14 00:15:49 +0200 | B-J | (~BenziJuni@88-149-64-165.du.xdsl.is) (Ping timeout: 250 seconds) |
2023-06-14 00:16:15 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat) |
2023-06-14 00:17:26 +0200 | Benzi-Junior | (~BenziJuni@88-149-66-136.du.xdsl.is) |
2023-06-14 00:18:21 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:f71f:fbb2:cbdf:4da0) |
2023-06-14 00:18:43 +0200 | mmhat | (~mmh@p200300f1c702b0e8ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8) |
2023-06-14 00:18:48 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
2023-06-14 00:19:00 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-06-14 00:20:24 +0200 | jargon | (~jargon@184.101.75.235) |
2023-06-14 00:20:34 +0200 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2023-06-14 00:24:54 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 00:25:31 +0200 | B-J | (~BenziJuni@dsl-149-64-112.hive.is) |
2023-06-14 00:25:44 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2023-06-14 00:26:36 +0200 | Benzi-Junior | (~BenziJuni@88-149-66-136.du.xdsl.is) (Ping timeout: 255 seconds) |
2023-06-14 00:29:21 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-06-14 00:34:45 +0200 | srk_ | srk |
2023-06-14 00:41:27 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-06-14 00:43:09 +0200 | bilegeek | (~bilegeek@2600:1008:b043:3798:77a9:11b8:240f:486c) (Quit: Leaving) |
2023-06-14 00:49:06 +0200 | arrowhead | (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) |
2023-06-14 00:51:08 +0200 | dcoutts_ | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2023-06-14 00:54:56 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2023-06-14 00:57:20 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-06-14 00:57:41 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-06-14 00:59:36 +0200 | gurkenglas | (~user@dynamic-046-114-182-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-06-14 01:00:18 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-06-14 01:01:47 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 01:09:01 +0200 | acidjnk | (~acidjnk@p200300d6e7072f9254d3382c8032cf2b.dip0.t-ipconnect.de) |
2023-06-14 01:11:56 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-06-14 01:12:41 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-06-14 01:13:31 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-06-14 01:14:45 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds) |
2023-06-14 01:17:37 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-06-14 01:20:57 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 01:22:13 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 01:26:54 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-06-14 01:28:47 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) |
2023-06-14 01:33:02 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-06-14 01:33:55 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 01:35:02 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-06-14 01:36:44 +0200 | <ijqq_> | I am looking at this tutorial and they have a Token class with various fields, and one of them is value which they have of type Object |
2023-06-14 01:36:56 +0200 | <ijqq_> | How can I do something like this in Haskell? |
2023-06-14 01:37:29 +0200 | <Axman6> | I don't understand the question, can you share the tutorial? |
2023-06-14 01:37:33 +0200 | <ijqq_> | Like is it possible to have something like data Token = SimpleToken {kind :: TokenKind, line :: Int} | LiteralToken a {kind :: TokenKind, line :: Int, value :: a}? |
2023-06-14 01:37:35 +0200 | <ijqq_> | Sure |
2023-06-14 01:37:54 +0200 | AmyMalik | Reinhilde |
2023-06-14 01:38:01 +0200 | <ijqq_> | https://craftinginterpreters.com/scanning.html#lexemes-and-tokens |
2023-06-14 01:38:10 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2023-06-14 01:38:19 +0200 | <chromoblob> | ijqq_: at which moment the "a" is determined? |
2023-06-14 01:38:27 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 01:38:38 +0200 | <Axman6> | data Token a = SimpleToken TokenKind Int | LiteralToken TokenKind Int a -- that would work |
2023-06-14 01:38:41 +0200 | <ncf> | move the a from after LiteralToken to after Token and you have valid haskell |
2023-06-14 01:38:58 +0200 | <Axman6> | constructors don't have type parameters, their types do |
2023-06-14 01:40:27 +0200 | sm[i] | (~smi]@plaintextaccounting/sm) |
2023-06-14 01:40:29 +0200 | <ijqq_> | Ahh, thank you |
2023-06-14 01:41:26 +0200 | <ijqq_> | data Token a = SimpleToken {kind :: TokenKind, line :: Int} | LiteralToken {kind :: TokenKind, line :: Int, value :: a} deriving (Show) |
2023-06-14 01:41:33 +0200 | <ijqq_> | This works too |
2023-06-14 01:41:40 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-06-14 01:41:51 +0200 | <ijqq_> | so what is the a in data Token a? |
2023-06-14 01:42:02 +0200 | <ijqq_> | value :: a this means that the type is a |
2023-06-14 01:42:02 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 01:42:05 +0200 | <Axman6> | it's a type parameter |
2023-06-14 01:42:19 +0200 | <Axman6> | it's like data Token<A> in other languages |
2023-06-14 01:42:40 +0200 | <ncf> | same as the x in f x = x + 1 |
2023-06-14 01:42:56 +0200 | <ijqq_> | But you don't have to use it? So simlpetoken is fine |
2023-06-14 01:43:05 +0200 | <Axman6> | data Either a b = Left a | Right b -- means you can have Left "Hello" :: Either String Int, Right 7 :: Either String Int |
2023-06-14 01:43:38 +0200 | <Axman6> | no, you can have type parameters that don't appear in some, or even any, of the constructors (the latter usually called phantom types) |
2023-06-14 01:44:59 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-06-14 01:45:25 +0200 | <ijqq_> | okay cool |
2023-06-14 01:45:49 +0200 | <chromoblob> | ijqq_: you may run into problems if you attempt to use "a" as dynamic type |
2023-06-14 01:46:49 +0200 | <ijqq_> | and is this a good way to represent the tokens? as in, for the java version the author can just use object and then have some fields potentially blank (empty strings). so i thought in haskell i should try to make different tokens types? |
2023-06-14 01:47:20 +0200 | <chromoblob> | whenever "value" is set in a LiteralToken, the "a" in its type is set rigidly and cannot be interchanged with tokens which have different "a" |
2023-06-14 01:47:24 +0200 | <ijqq_> | actually i think i only need StringLiteral and NumericLiteral here so I perhaps can just add those as separate token types and I don't need to make it dynamic |
2023-06-14 01:47:33 +0200 | <ijqq_> | that would be better to do right? |
2023-06-14 01:47:38 +0200 | <ncf> | you could perhaps merge the constructors and have value :: Maybe a |
2023-06-14 01:48:17 +0200 | <ijqq_> | So a token such as LEFT_PARENT will jsut have value as Nothing, and a string can have value as Just "foo"? |
2023-06-14 01:48:33 +0200 | <chromoblob> | ijqq_: what is TokenKind? |
2023-06-14 01:48:39 +0200 | <ijqq_> | PAREN sorry* |
2023-06-14 01:49:10 +0200 | <ijqq_> | http://sprunge.us/8Con2F here is my file |
2023-06-14 01:49:23 +0200 | sm[i] | (~smi]@plaintextaccounting/sm) (Ping timeout: 245 seconds) |
2023-06-14 01:49:24 +0200 | <ijqq_> | i am trying to follow that tutorial but write it in haskell |
2023-06-14 01:49:37 +0200 | <ijqq_> | as you can see i am struggling a bit |
2023-06-14 01:50:15 +0200 | <chromoblob> | so, i think you should refactor your types |
2023-06-14 01:50:36 +0200 | <chromoblob> | note that every token has a line number, and then a kind and other data *depending on kind* |
2023-06-14 01:50:55 +0200 | <chromoblob> | so you should create a type Token: data Token = Token { line :: Int, content :: TokenContent } |
2023-06-14 01:51:18 +0200 | <chromoblob> | then data type TokenContent has exactly one constructor for each token kind |
2023-06-14 01:51:38 +0200 | <chromoblob> | its String constructor should have field of type String |
2023-06-14 01:51:50 +0200 | <chromoblob> | its Number constructor should have field of type Float |
2023-06-14 01:52:05 +0200 | <geekosaur> | Double, surely? |
2023-06-14 01:52:05 +0200 | <chromoblob> | for Identifier, probably field of type String |
2023-06-14 01:52:15 +0200 | <chromoblob> | and other constructors should have no fields |
2023-06-14 01:52:43 +0200 | <Axman6> | This is one of the places where understanding the algebraic part of ADT can be useful, you can evaluate several equivalent implementations and decide which makes more sense for how you want to use it |
2023-06-14 01:54:32 +0200 | <Axman6> | like understanding that Either a a is equivalent to (Bool,a) - which one makes more sense depends on your project |
2023-06-14 01:55:43 +0200 | <chromoblob> | languages for other languages may not work well for Haskell in some cases |
2023-06-14 01:55:48 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2023-06-14 01:55:50 +0200 | <chromoblob> | tutorials for other languages * |
2023-06-14 01:57:42 +0200 | <ijqq_> | sorry chromo, I am a little confused. If I have something like data Token = Token { line :: Int, content :: TokenContent } and the data TokenContent a = StringContent { value :: a } it is asking for another argument to TokenContent |
2023-06-14 01:57:52 +0200 | <ijqq_> | maybe I have misunderstood ? |
2023-06-14 01:58:06 +0200 | <geekosaur> | you have misunderstood |
2023-06-14 01:58:41 +0200 | <geekosaur> | you no longer want or need the a |
2023-06-14 01:58:42 +0200 | mauke_ | (~mauke@user/mauke) |
2023-06-14 01:59:01 +0200 | <chromoblob> | data TokenContent = LEFT_PAREN | ... | IDENTIFIER String | STRING String | NUMBER Float | AND | ... |
2023-06-14 01:59:35 +0200 | <ijqq_> | Ohh I see what you are saying |
2023-06-14 01:59:36 +0200 | <ijqq_> | I get it |
2023-06-14 01:59:44 +0200 | <ijqq_> | thank you guys, you are very helpful |
2023-06-14 01:59:51 +0200 | <chromoblob> | you may also want to group the constructors |
2023-06-14 02:00:25 +0200 | <geekosaur> | and I still think you want Double instead of Float; unless you have a specific reason for reduced precision, you don't want Float |
2023-06-14 02:00:40 +0200 | <chromoblob> | so data TokenContent = SingleChar TokenSingleChar | TwoChars TokenTwoChars | Identifier String | String String | Number Float | Keyword Keyword | EOF |
2023-06-14 02:00:59 +0200 | <chromoblob> | data Keyword = AND | CLASS | ... -- all keywords |
2023-06-14 02:01:13 +0200 | <chromoblob> | data TokenSingleChar = LEFT_PAREN | ... -- all single-char tokens |
2023-06-14 02:01:14 +0200 | Axman6 | wants a tattoo with an anchor, that says "Never (IEEE-754) Float" |
2023-06-14 02:01:14 +0200 | <chromoblob> | and so on |
2023-06-14 02:01:32 +0200 | <Axman6> | Damn, that's the best idea for a tattoo I've ever had |
2023-06-14 02:01:53 +0200 | <geekosaur> | I still want my "human fuzzer" tshirt… |
2023-06-14 02:02:20 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 260 seconds) |
2023-06-14 02:02:21 +0200 | mauke_ | mauke |
2023-06-14 02:05:05 +0200 | <jackdk> | Axman6: make it two crossed anchors and don't mention the IEEE stuff and you'll have a QFPL-tier inside joke |
2023-06-14 02:09:07 +0200 | <ijqq_> | So I am a bit confused, if I do this http://sprunge.us/94YvNH I am able to write Token 3 (StringLiteral "hi") but not Token 3 LEFT_PAREN, how come? And if I change it to be Symbol Symbol as you said chromoblob, then it works fine? |
2023-06-14 02:11:12 +0200 | <jackdk> | Type constructors and data constructors live in separate namespaces. Your snippet defines a data constructor called `Symbol` which takes no arguments, and a *completely unrelated type* called `Symbol` which has a bunch of constructors. |
2023-06-14 02:11:20 +0200 | <jackdk> | Also, are you doing Lox in Haskell? |
2023-06-14 02:11:41 +0200 | <ijqq_> | Ah okay, thank you, I think i just about understood that now |
2023-06-14 02:11:57 +0200 | <ijqq_> | Yes, I want to create my own programming language so I thought to do this |
2023-06-14 02:12:02 +0200 | <ijqq_> | And I wanted to learn haskell too. |
2023-06-14 02:12:13 +0200 | <jackdk> | Yeah, I worked through the C half of the book last month. It was really fun. |
2023-06-14 02:12:29 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-06-14 02:12:31 +0200 | <ijqq_> | Cool! it looks really intersting |
2023-06-14 02:12:40 +0200 | <ijqq_> | can't wait to hopefully get to the later parts after this |
2023-06-14 02:13:17 +0200 | <jackdk> | Punning the type/constructor names like this is a common Haskell idiom (hence the suggestion to write `Symbol Symbol`), but it does trip newbies up a lot. Some introductory material avoids this by sticking `Mk` in front of all the constructor names in its early examples, and defers the punning to later. |
2023-06-14 02:14:21 +0200 | <ijqq_> | ah okay. Yes so far i have been having some confusion between what and where the constructors and types go |
2023-06-14 02:14:33 +0200 | delYsid | (~user@84-115-138-74.cable.dynamic.surfer.at) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50)) |
2023-06-14 02:16:36 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Server closed connection) |
2023-06-14 02:16:49 +0200 | bramhaag | (~bramhaag@134.195.121.39) |
2023-06-14 02:18:46 +0200 | <chromoblob> | ijqq_: Token and TokenContent are separate types. to create a Token, first you create a TokenContent, and then put it into the Token constructor. any constructor of Symbol can strictly go only to places which expect values of type Symbol. so you must first "wrap" the LEFT_PAREN into Symbol, and only then give that to Token constructor |
2023-06-14 02:20:03 +0200 | <chromoblob> | also i think EOF isn't a keyword, it's a marker of end of file |
2023-06-14 02:20:33 +0200 | <chromoblob> | also you might not need it at all |
2023-06-14 02:22:53 +0200 | <chromoblob> | so, to rehash, LEFT_PAREN is of type Symbol, Symbol LEFT_PAREN is of type TokenContent, and Token 3 (Symbol LEFT_PAREN) is of type Token. "Token 3 LEFT_PAREN" is ill-typed since second field must be of type TokenContent, but bare LEFT_PAREN is of type Symbol |
2023-06-14 02:23:42 +0200 | emergence | (thelounge@2607:5300:60:5910:dcad:beff:feef:5bc) (Remote host closed the connection) |
2023-06-14 02:24:15 +0200 | emergence | (thelounge@2607:5300:60:5910:dcad:beff:feef:5bc) |
2023-06-14 02:25:00 +0200 | ijqq | (uid603979@id-603979.helmsley.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 02:25:00 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 240 seconds) |
2023-06-14 02:25:00 +0200 | ijqq_ | ijqq |
2023-06-14 02:25:50 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) |
2023-06-14 02:26:03 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 02:26:14 +0200 | <jackdk> | chromoblob: yeah I think I'd move EOF from Keyword into TokenContent |
2023-06-14 02:26:27 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-06-14 02:26:30 +0200 | talismanick | (~user@2601:204:ef01:8ca0::a680) (Ping timeout: 240 seconds) |
2023-06-14 02:27:04 +0200 | talismanick | (~user@2601:204:ef01:8ca0::a680) |
2023-06-14 02:29:03 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-06-14 02:29:22 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 02:32:04 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-06-14 02:34:39 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-06-14 02:35:19 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-06-14 02:35:19 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-06-14 02:35:19 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-06-14 02:36:05 +0200 | wroathe | (~wroathe@user/wroathe) (Client Quit) |
2023-06-14 02:36:23 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-06-14 02:37:25 +0200 | <arrowhead> | Rembane: hey |
2023-06-14 02:37:40 +0200 | <arrowhead> | Rembane: thank you for your help, I saw the file you made for me, it is being very helpful to me |
2023-06-14 02:37:43 +0200 | <arrowhead> | let me show you |
2023-06-14 02:38:44 +0200 | <arrowhead> | Rembane: https://paste.tomsmeding.com/QSwD10FM -- commented are the mistakes I was making, which you helped me correct with your code that you sent to me after I quit the chat. |
2023-06-14 02:39:18 +0200 | <arrowhead> | I had not understood that the "box" of the "IORef" is "inside the IORef" and needs to be <- or >>=. I thought the IORef itself was the box. |
2023-06-14 02:39:27 +0200 | <arrowhead> | That was my confusion and thank you very much for you help. |
2023-06-14 02:39:39 +0200 | <dibblego> | box metaphors regularly cause confusion |
2023-06-14 02:41:21 +0200 | <arrowhead> | in this context, it is a programming language that is being coded, so I am really using the IORef as a boxed value |
2023-06-14 02:41:43 +0200 | <dibblego> | expect more confusion :) |
2023-06-14 02:42:44 +0200 | <arrowhead> | dibblego: :) |
2023-06-14 02:43:08 +0200 | <arrowhead> | dibblego: I am giving Haskell a good go as an imperative language, porting a toy language I made |
2023-06-14 02:43:43 +0200 | <arrowhead> | I want to get fluent in the IO mutable functions |
2023-06-14 02:43:50 +0200 | <dibblego> | I would not expect IORef to appear in that task |
2023-06-14 02:44:10 +0200 | <arrowhead> | Why not? |
2023-06-14 02:44:46 +0200 | <dibblego> | I have written language compilers in Haskell and I have not used IORef for any of it, nor can I imagine why I would. |
2023-06-14 02:45:28 +0200 | <geekosaur> | compilers, or interpreters? |
2023-06-14 02:45:42 +0200 | <arrowhead> | dibblego: how would you model a syntax such that one word creates a box that then gets filled by a value that comes much, much after that word was processed? |
2023-06-14 02:46:15 +0200 | <dibblego> | both |
2023-06-14 02:46:29 +0200 | <geekosaur> | you're not doing it, you're generating code that will do it at runtime |
2023-06-14 02:46:42 +0200 | <ijqq> | thank you chromo |
2023-06-14 02:47:29 +0200 | <arrowhead> | I think for you to model mutable variables you would need IORef, if not an equivalent such as STRef interpreted by IO |
2023-06-14 02:47:32 +0200 | <ijqq> | yep, the author just said that they have the EOF in there to make the parsing later on easier, i'm not sure if i will end up needing it but i thought to keep it for now |
2023-06-14 02:47:58 +0200 | <arrowhead> | dibblego: are you sure you can model a mutable variable without using IORef? |
2023-06-14 02:48:17 +0200 | <dibblego> | No I am not sure. But where did "mutable variable" come into this? |
2023-06-14 02:49:10 +0200 | <arrowhead> | The programming language I am modeling in Haskell has mutable variables. You said "I have written language compilers in Haskell and I have not used IORef for any of it, nor can I imagine why I would." |
2023-06-14 02:49:31 +0200 | <arrowhead> | Any language that has mutable variables I believe would have forced you to use IORef or equivalent. |
2023-06-14 02:49:54 +0200 | <arrowhead> | So I mentioned it to push back against that assertion that so many languages can be written without IORef. |
2023-06-14 02:50:01 +0200 | <geekosaur> | only if you're interpreting it |
2023-06-14 02:50:03 +0200 | <pyrex> | <geekosaur> compilers, or interpreters? |
2023-06-14 02:50:28 +0200 | <geekosaur> | if you are compiling then you are generating code. the generated code needs to deal with mutable variables; code generation itself does not |
2023-06-14 02:50:36 +0200 | <arrowhead> | Right, interpreters. For compilers, everything can disappear with CPS. |
2023-06-14 02:50:51 +0200 | <arrowhead> | geekosaur: of course. |
2023-06-14 02:51:04 +0200 | <pyrex> | you don't even need CPS! nothing stops you from outputting a mov instruction |
2023-06-14 02:51:21 +0200 | <arrowhead> | CPS is more general and it models everything. It is the universal abstraction. |
2023-06-14 02:51:35 +0200 | <pyrex> | can you show me how to balance my checkbooks with CPS? |
2023-06-14 02:51:58 +0200 | <arrowhead> | If by that you mean "can you show me how to do mutation with CPS" Oleg Kiselyov has shows that. |
2023-06-14 02:52:10 +0200 | <arrowhead> | shwon* |
2023-06-14 02:52:35 +0200 | <pyrex> | no, I'm using a facetious example to assert that CPS doesn't model "everything" because there are tasks that have nothing to do with tracking the state of a variable, resuming a task, or so on |
2023-06-14 02:53:00 +0200 | <pyrex> | i am sure CPS also will not help me figure out the convex hull of a set of points |
2023-06-14 02:53:08 +0200 | <arrowhead> | Hmm, I was referencing its mathematical role. |
2023-06-14 02:53:37 +0200 | <arrowhead> | pyrex: it can give you all instructions by which to do that |
2023-06-14 02:53:42 +0200 | <arrowhead> | that's the point. |
2023-06-14 02:54:36 +0200 | <pyrex> | i am tempted to say "CPS is a pretty neat trick that lets you avoid some problems in figuring out aliveness, makes inlining easier, gets you closer to supporting coroutines, and lets you eliminate the stack (which is useful for concurrent programs)" |
2023-06-14 02:55:02 +0200 | <pyrex> | i think that is useful but everything i described is a concern from the codegen stage of a particular kind of compiler |
2023-06-14 02:55:31 +0200 | <arrowhead> | Right, the fun stage |
2023-06-14 02:55:48 +0200 | <arrowhead> | It also allows you not to collect garbage |
2023-06-14 02:55:51 +0200 | <arrowhead> | it's miraculous |
2023-06-14 02:56:02 +0200 | <pyrex> | it does? that claim is surprising to me |
2023-06-14 02:56:02 +0200 | <arrowhead> | cheap call/cc, costless function calls |
2023-06-14 02:56:11 +0200 | <arrowhead> | pyrex: see Cheney on the MTA |
2023-06-14 02:57:07 +0200 | <arrowhead> | pyrex: just fill up the stack then jump from its top to the bottom while keeping what's alive in a one-go stop-the-world sweep |
2023-06-14 02:57:18 +0200 | <arrowhead> | gets amortized pretty nicely across almost-never-happening |
2023-06-14 02:57:27 +0200 | <chromoblob> | oh no... |
2023-06-14 02:58:31 +0200 | <chromoblob> | ... that IS gc. |
2023-06-14 02:58:32 +0200 | <jackdk> | "The programming language I am modeling in Haskell has mutable variables." <- I would still probably write the interpreter as a function `Instruction -> State -> State` or whatever, because that will be much easier to test than an IORef-based solution |
2023-06-14 02:59:00 +0200 | foul_owl | (~kerry@71.212.137.212) (Quit: WeeChat 2.3) |
2023-06-14 02:59:20 +0200 | <arrowhead> | jackdk: I would love to do it that way! But I don't know how to change a field inside a structure inside an array inside the God structure of the program... without copying a bunch of stuff |
2023-06-14 02:59:51 +0200 | <pyrex> | yeah, after reading the paper i disagree that cheney's design is avoiding gc |
2023-06-14 02:59:52 +0200 | <arrowhead> | If someone could teach me... oh and there's a "inside a hashtable" in the middle of that path along the way |
2023-06-14 03:00:03 +0200 | tessier | (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 255 seconds) |
2023-06-14 03:00:10 +0200 | <arrowhead> | pyrex: okay, it's one GC per full stack |
2023-06-14 03:00:20 +0200 | <arrowhead> | a stack almost never fills so... almost never. |
2023-06-14 03:00:44 +0200 | <pyrex> | i would say it's just mark and sweep, but the state of a function is an object, and because you never reenter a function, you don't have to think about the possibility that your environment was fouled on reentry |
2023-06-14 03:00:47 +0200 | <jackdk> | arrowhead: do you mean "copying" as in "I'm duplicating values everywhere" (which is probably not as bad as you think because of structure sharing" or as in "I'm writing a tonne of boilerplate in these update functions and it's driving me batty?" |
2023-06-14 03:00:50 +0200 | <chromoblob> | arrowhead: you are going to allow your programs eat up up to a whole stack? |
2023-06-14 03:00:56 +0200 | foul_owl | (~kerry@71.212.137.212) |
2023-06-14 03:01:13 +0200 | <pyrex> | you just have to think about the possibility that you ran out of space on, well, entry. |
2023-06-14 03:01:17 +0200 | <arrowhead> | jackdk: I know the former is highly optimized; my problem is the latter. I get all confused. |
2023-06-14 03:01:33 +0200 | <arrowhead> | chromoblob: yes, everyone writing Chicken Scheme does for instance. |
2023-06-14 03:01:42 +0200 | <arrowhead> | chromoblob: it's totally okay. |
2023-06-14 03:02:01 +0200 | tessier | (~treed@ip72-197-145-89.sd.sd.cox.net) |
2023-06-14 03:02:20 +0200 | <arrowhead> | pyrex: that's a very theoretical concern |
2023-06-14 03:02:45 +0200 | <pyrex> | no it's not, it's explicitly required in baker's paper: https://web.archive.org/web/20200223051632/http://home.pipeline.com/~hbaker1/CheneyMTA.html |
2023-06-14 03:02:48 +0200 | <pyrex> | it's a central feature of the scheme. |
2023-06-14 03:03:03 +0200 | <pyrex> | to be clear, i think that's fine, i just also think it's essentially similar to what other ways of implementing GC do. |
2023-06-14 03:03:25 +0200 | <arrowhead> | jackdk: can you help me figure out how to change, say, a list element inside a structure field for a struct (data) I found through a hashtable ? |
2023-06-14 03:04:07 +0200 | <arrowhead> | pyrex: how is it similar when other GCs are sort of "live" and come on and off whereas Cheney waits until the stack is full? |
2023-06-14 03:04:08 +0200 | <chromoblob> | arrowhead: the sawtooth graph doesn't look very efficient to me... |
2023-06-14 03:04:30 +0200 | <pyrex> | i mean, i guess it's different in that the system degrades way worse if you attempt to make it concurrent? |
2023-06-14 03:04:52 +0200 | <arrowhead> | chromoblob: I have coded the exact same full-text search engine in C and Chicken Scheme and the penalty was 10x. Racket is 60 times slower. |
2023-06-14 03:05:07 +0200 | <pyrex> | it's normal for a GC to be triggered by "oops, your program did a thing that couldn't be done in the current GC state -- we'll now run the GC before resuming your program" |
2023-06-14 03:05:26 +0200 | <pyrex> | to be clear, i'm explicitly not saying this is a bad way to implement a GC |
2023-06-14 03:05:28 +0200 | <arrowhead> | pyrex: that is above my paygrade. I am very suspicious of things that need to be solved concurrently. |
2023-06-14 03:05:31 +0200 | <pyrex> | it just strikes me as a pretty ordinary way to implement a GC |
2023-06-14 03:05:32 +0200 | zmt00 | (~zmt00@user/zmt00) |
2023-06-14 03:05:47 +0200 | <arrowhead> | pyrex: then why do you think it's seen as radically different from all others? |
2023-06-14 03:05:56 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
2023-06-14 03:05:56 +0200 | <arrowhead> | pyrex: are you perhaps a contrarian? ;) |
2023-06-14 03:06:21 +0200 | bontaq | (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 255 seconds) |
2023-06-14 03:06:32 +0200 | <pyrex> | i am not sure I grant the claim that it is radically different from all others! |
2023-06-14 03:06:37 +0200 | <pyrex> | i am not sure i am a contrarian either!! |
2023-06-14 03:06:42 +0200 | hays | (rootvegeta@fsf/member/hays) |
2023-06-14 03:06:49 +0200 | <arrowhead> | pyrex: that is very interesting to me, I appreciate your point of view |
2023-06-14 03:06:49 +0200 | <pyrex> | to be clear: I first heard about this scheme because you talked about it |
2023-06-14 03:06:54 +0200 | <arrowhead> | I know very little about these things |
2023-06-14 03:06:59 +0200 | <arrowhead> | still! |
2023-06-14 03:07:02 +0200 | <pyrex> | I then read the paper and concluded "well, this looks cool, I'm not sure this is that weird!" |
2023-06-14 03:07:17 +0200 | <chromoblob> | maybe Chicken Scheme should remember previous size of heap after full GC and have a small "trigger" and do GC when stack pointer exceeds last size plus trigger |
2023-06-14 03:07:19 +0200 | <pyrex> | keep in mind I could be an uncareful reader who fails to realize how weird it actually is!!! |
2023-06-14 03:07:26 +0200 | <arrowhead> | pyrex: chromoblob thought it was weird by asking "are you going to allow your program to fill up the stack" |
2023-06-14 03:07:41 +0200 | <arrowhead> | pyrex: and I could be a terrible explainer |
2023-06-14 03:07:50 +0200 | <pyrex> | oh i think chromoblob's being weird, that's a pretty standard thing for generational GCs, w/ the exception that it's often not the actual C-level stack |
2023-06-14 03:07:56 +0200 | <jackdk> | arrowhead: the high-powered answer is "lens", but that's probably a big detour on your learning journey that's probably not worth taking right now. An idiom I find very helpful (if I'm not lensing, e.g., because I'm writing Elm) is to write `updateFoo :: (Foo -> Foo) -> Bar -> Bar` functions because they compose neatly. |
2023-06-14 03:08:14 +0200 | <arrowhead> | chromoblob: that would be almost the same as another GC algorithms whose name escapes me now... meaning it would be a different thing |
2023-06-14 03:08:18 +0200 | <pyrex> | it is likely chromoblob knows more than me though -- i have implemented toy languages sometimes but i would opine that my toys were pretty bad =( |
2023-06-14 03:09:24 +0200 | <ijqq> | I have a question, now i've updated my data definitions: is the way i previously wrote to tokenise fine http://sprunge.us/oVK7q5 (obivously i have to make many changes to what ive shown, it's just an example), or is it better to use applicative and stuff like that? |
2023-06-14 03:09:35 +0200 | <chromoblob> | to be fair, i don't like most GCs... |
2023-06-14 03:09:50 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) |
2023-06-14 03:10:08 +0200 | <ijqq> | i feel what i wrote is a very direct conversion from java, maybe it's not very "haskelly"? |
2023-06-14 03:10:11 +0200 | johnw_ | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-06-14 03:10:57 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-06-14 03:11:00 +0200 | pyrex_ | (~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c) |
2023-06-14 03:11:05 +0200 | <chromoblob> | anyways, filling up the stack, if stack is of moderate size or larger, is quite disturbing for me |
2023-06-14 03:11:14 +0200 | pyrex_ | (~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c) (Client Quit) |
2023-06-14 03:11:22 +0200 | cheater_ | (~Username@user/cheater) |
2023-06-14 03:11:24 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2023-06-14 03:11:25 +0200 | rubin55 | (sid175221@hampstead.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:11:25 +0200 | Vajb | (~Vajb@2001:999:484:a37d:e618:9886:4843:f5d8) (Ping timeout: 255 seconds) |
2023-06-14 03:11:25 +0200 | tzh_ | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2023-06-14 03:11:35 +0200 | pyrex_ | (~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c) |
2023-06-14 03:11:52 +0200 | Angelz | (Angelz@angelz.oddprotocol.org) (Ping timeout: 255 seconds) |
2023-06-14 03:11:52 +0200 | acro | (~acro@user/acro) (Ping timeout: 255 seconds) |
2023-06-14 03:11:52 +0200 | anpad | (~pandeyan@user/anpad) (Ping timeout: 255 seconds) |
2023-06-14 03:11:52 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:c52d:211a:dc73:3e4a) (Ping timeout: 255 seconds) |
2023-06-14 03:12:06 +0200 | mauke_ | (~mauke@user/mauke) |
2023-06-14 03:12:15 +0200 | talisman` | (~user@2601:204:ef01:8ca0::a680) |
2023-06-14 03:12:19 +0200 | edmundnoble | (sid229620@id-229620.helmsley.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:12:19 +0200 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 255 seconds) |
2023-06-14 03:12:20 +0200 | img_ | (~img@user/img) |
2023-06-14 03:12:22 +0200 | srk_ | (~sorki@user/srk) |
2023-06-14 03:12:28 +0200 | taupiqueur1 | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) |
2023-06-14 03:12:29 +0200 | glguy_ | (~glguy@libera/staff-emeritus/glguy) |
2023-06-14 03:12:31 +0200 | lottaquestions_ | (~nick@2607:fa49:503f:6d00:76c6:8180:36e3:46f2) |
2023-06-14 03:12:36 +0200 | pyrex | (~pyrex@user/pyrex) (Killed (NickServ (GHOST command used by pyrex_!~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c))) |
2023-06-14 03:12:44 +0200 | pyrex_ | (~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c) (Client Quit) |
2023-06-14 03:12:46 +0200 | remsen | (ianremsen@tilde.team) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | dagit | (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | cawfee | (~root@2406:3003:2077:2758::babe) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | PotatoGim | (sid99505@id-99505.lymington.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | raym | (~ray@user/raym) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds) |
2023-06-14 03:12:46 +0200 | bcoppens | (~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 255 seconds) |
2023-06-14 03:12:58 +0200 | jargon_ | (~jargon@184.101.75.235) |
2023-06-14 03:12:59 +0200 | pyrex | (~pyrex@user/pyrex) |
2023-06-14 03:13:07 +0200 | biberu\ | (~biberu@user/biberu) |
2023-06-14 03:13:13 +0200 | phma_ | (~phma@host-67-44-208-30.hnremote.net) |
2023-06-14 03:13:13 +0200 | heartburn | (~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | heath1 | (~heath@user/heath) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | drdo | (~drdo@bl8-153-185.dsl.telepac.pt) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | lottaquestions | (~nick@2607:fa49:503f:6d00:9d95:486a:e095:686c) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | srk | (~sorki@user/srk) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | mikko | (~mikko@user/mikko) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | tom_ | (~tom@2a00:23c8:970c:4801:d59:645f:19cf:5a58) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | Nosrep | (~Nosrep@user/nosrep) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | haritz | (~hrtz@user/haritz) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | img | (~img@user/img) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | sympt | (~sympt@user/sympt) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | piele | (~piele@tbonesteak.creativeserver.net) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 255 seconds) |
2023-06-14 03:13:13 +0200 | kosmikus | (~kosmikus@nullzig.kosmikus.org) (Ping timeout: 255 seconds) |
2023-06-14 03:13:23 +0200 | anpad | (~pandeyan@user/anpad) |
2023-06-14 03:13:29 +0200 | pyrex | pyrex_ |
2023-06-14 03:13:33 +0200 | pyrex_ | pyrex |
2023-06-14 03:13:40 +0200 | hexology | (~hexology@user/hexology) (Ping timeout: 255 seconds) |
2023-06-14 03:13:40 +0200 | arrowhea_ | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 03:13:40 +0200 | ijqq__ | (uid603979@id-603979.helmsley.irccloud.com) |
2023-06-14 03:14:40 +0200 | b0o | (0e4a0bf4c9@2604:bf00:561:2000::1bf) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | theesm | (2cbdf4b38a@2604:bf00:561:2000::11c8) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | JoelMcCracken | (5ea8252fbb@2604:bf00:561:2000::10e3) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | sm2n | (ae95cb1267@user/sm2n) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | JSharp | (sid4580@2a03:5180:f:2::11e4) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | Pent | (sid313808@2a03:5180:f:2::4:c9d0) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | fvr | (ef3e56ca8b@2604:bf00:561:2000::3c4) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | evanrelf | (3addc196af@2604:bf00:561:2000::f0) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | landonf | (landonf@2600:3c03::f03c:91ff:feae:da1e) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | bsima1 | (9d7e39c8ad@2604:bf00:561:2000::dd) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | lukec | (9dfd4d094e@2604:bf00:561:2000::10e) (Ping timeout: 260 seconds) |
2023-06-14 03:14:41 +0200 | filwisher | (2e6936c793@2604:bf00:561:2000::170) (Ping timeout: 260 seconds) |
2023-06-14 03:15:02 +0200 | phma_ | (~phma@host-67-44-208-30.hnremote.net) (Read error: Connection reset by peer) |
2023-06-14 03:15:15 +0200 | jleightcap | (7bc4014b62@user/jleightcap) (Ping timeout: 260 seconds) |
2023-06-14 03:15:15 +0200 | n1essa | (3d621153a5@2604:bf00:561:2000::df7) (Ping timeout: 260 seconds) |
2023-06-14 03:15:16 +0200 | retropikzel | (9d1a4f9f46@2604:bf00:561:2000::ce) (Ping timeout: 260 seconds) |
2023-06-14 03:15:16 +0200 | ymherklotz | (cb2c9cfbdd@2604:bf00:561:2000::29a) (Ping timeout: 260 seconds) |
2023-06-14 03:15:16 +0200 | sus | (1b7af6299f@user/zeromomentum) (Ping timeout: 260 seconds) |
2023-06-14 03:15:16 +0200 | whereiseveryone | (206ba86c98@2604:bf00:561:2000::2e4) (Ping timeout: 260 seconds) |
2023-06-14 03:15:16 +0200 | ggb | (a62ffbaf4f@2604:bf00:561:2000::3ac) (Ping timeout: 260 seconds) |
2023-06-14 03:15:16 +0200 | Yumemi | (~Yumemi@chamoin.net) (Ping timeout: 260 seconds) |
2023-06-14 03:15:50 +0200 | chaitlatte0 | (ea29c0bb16@user/chaitlatte0) (Ping timeout: 260 seconds) |
2023-06-14 03:15:51 +0200 | delyan | (sid523379@2a03:5180:f:4::7:fc73) (Ping timeout: 260 seconds) |
2023-06-14 03:15:51 +0200 | probie | (cc0b34050a@user/probie) (Ping timeout: 260 seconds) |
2023-06-14 03:15:51 +0200 | henrytill | (e0180937c3@2604:bf00:561:2000::e8c) (Ping timeout: 260 seconds) |
2023-06-14 03:15:51 +0200 | shreyasminocha | (51fdc93eda@user/shreyasminocha) (Ping timeout: 260 seconds) |
2023-06-14 03:15:51 +0200 | MonsoonSecrecy | (f78c86e960@2604:bf00:561:2000::f99) (Ping timeout: 260 seconds) |
2023-06-14 03:15:51 +0200 | hexeme | (~hexeme@user/hexeme) (Ping timeout: 260 seconds) |
2023-06-14 03:16:25 +0200 | jkoshy | (99b9359beb@user/jkoshy) (Ping timeout: 260 seconds) |
2023-06-14 03:16:25 +0200 | dtman34 | (~dtman34@2601:447:d000:93c9:f1cc:f7a5:325c:7994) (Ping timeout: 260 seconds) |
2023-06-14 03:16:25 +0200 | jakzale | (6291399afa@user/jakzale) (Ping timeout: 260 seconds) |
2023-06-14 03:16:25 +0200 | samhh_ | (7569f027cf@2604:bf00:561:2000::e4) (Ping timeout: 260 seconds) |
2023-06-14 03:16:25 +0200 | fluffyballoon | (45ce440a48@2604:bf00:561:2000::e2) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | arcadewise | (52968ed80d@2604:bf00:561:2000::3df) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | Ankhers | (a197a332e9@2604:bf00:561:2000::2a2) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | cln_ | (cln@wtf.cx) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | APic | (apic@apic.name) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | megaTherion | (~therion@unix.io) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | xstill_ | (xstill@fimu/xstill) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | Clint | (~Clint@user/clint) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | ames | (~amelia@offtopia/offtopian/amelia) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | adamCS | (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | laman2 | (~laman@rego.ai) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | witcher | (~witcher@wiredspace.de) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | acertain | (sid470584@id-470584.hampstead.irccloud.com) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | farn__ | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | manwithluck | (manwithluc@hoeven.dossingday.ml) (Ping timeout: 260 seconds) |
2023-06-14 03:16:26 +0200 | [_________] | (~oos95GWG@user/oos95GWG) (Ping timeout: 260 seconds) |
2023-06-14 03:17:00 +0200 | tcard_ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | phma | (phma@2001:5b0:2172:dde8:47f2:e98f:fb8c:320e) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | polux | (~polux@51-15-169-172.rev.poneytelecom.eu) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | lilata | (~lilata@137.184.4.49) (Ping timeout: 260 seconds) |
2023-06-14 03:17:01 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 260 seconds) |
2023-06-14 03:17:59 +0200 | dagi82659 | (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) |
2023-06-14 03:17:59 +0200 | AlexNoo_ | (~AlexNoo@178.34.163.88) |
2023-06-14 03:18:00 +0200 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 255 seconds) |
2023-06-14 03:18:00 +0200 | RMSBach | (~guygastin@137.184.131.156) (Ping timeout: 255 seconds) |
2023-06-14 03:18:00 +0200 | jackdk | (sid373013@cssa/jackdk) (Ping timeout: 255 seconds) |
2023-06-14 03:18:00 +0200 | haritzondo | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
2023-06-14 03:18:00 +0200 | ridcully | (~ridcully@p57b52f2c.dip0.t-ipconnect.de) |
2023-06-14 03:18:01 +0200 | b20n | (sid115913@id-115913.uxbridge.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | arrowhead | (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | taupiqueur | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | ridcully_ | (~ridcully@p57b52f2c.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) (Ping timeout: 255 seconds) |
2023-06-14 03:18:01 +0200 | red-snai- | (~snail@static.151.210.203.116.clients.your-server.de) |
2023-06-14 03:18:02 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) |
2023-06-14 03:18:02 +0200 | talismanick | (~user@2601:204:ef01:8ca0::a680) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | acidjnk | (~acidjnk@p200300d6e7072f9254d3382c8032cf2b.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | red-snail1 | (~snail@static.151.210.203.116.clients.your-server.de) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | AlexNoo | (~AlexNoo@178.34.163.88) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | energizer | (~energizer@user/energizer) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | Adran | (~adran@botters/adran) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | tritlo | (sid58727@user/tritlo) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Ping timeout: 255 seconds) |
2023-06-14 03:18:02 +0200 | bcoppens_ | (~bartcopp@vpn2.bartcoppens.be) |
2023-06-14 03:18:02 +0200 | remsen- | (ianremsen@tilde.team) |
2023-06-14 03:18:02 +0200 | kosmikus_ | (~kosmikus@nullzig.kosmikus.org) |
2023-06-14 03:18:02 +0200 | Errdonald__ | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) |
2023-06-14 03:18:02 +0200 | edmundnoble_ | (sid229620@id-229620.helmsley.irccloud.com) |
2023-06-14 03:18:02 +0200 | b20n | (sid115913@id-115913.uxbridge.irccloud.com) |
2023-06-14 03:18:02 +0200 | megaTherion_ | (~therion@unix.io) |
2023-06-14 03:18:02 +0200 | SrPx_ | (sid108780@id-108780.uxbridge.irccloud.com) |
2023-06-14 03:18:02 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) |
2023-06-14 03:18:03 +0200 | cawfee_ | (~root@2406:3003:2077:2758::babe) |
2023-06-14 03:18:13 +0200 | AlexNoo_ | (~AlexNoo@178.34.163.88) (Read error: Connection reset by peer) |
2023-06-14 03:18:13 +0200 | bcoppens_ | (~bartcopp@vpn2.bartcoppens.be) (Read error: Connection reset by peer) |
2023-06-14 03:18:13 +0200 | kosmikus_ | (~kosmikus@nullzig.kosmikus.org) (Read error: Connection reset by peer) |
2023-06-14 03:18:34 +0200 | laman3 | (~laman@rego.ai) |
2023-06-14 03:18:39 +0200 | phma_ | (phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) |
2023-06-14 03:18:41 +0200 | cawfee_ | (~root@2406:3003:2077:2758::babe) (Read error: Connection reset by peer) |
2023-06-14 03:19:14 +0200 | xff0x_ | (~xff0x@ai098135.d.east.v6connect.net) |
2023-06-14 03:19:24 +0200 | bcoppens_ | (~bartcopp@vpn2.bartcoppens.be) |
2023-06-14 03:19:34 +0200 | user2 | (~user@103.206.114.86) |
2023-06-14 03:19:38 +0200 | wroathe_ | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-06-14 03:19:53 +0200 | acidjnk_new | (~acidjnk@p200300d6e7072f9254d3382c8032cf2b.dip0.t-ipconnect.de) |
2023-06-14 03:19:54 +0200 | kosmikus_ | (~kosmikus@nullzig.kosmikus.org) |
2023-06-14 03:19:54 +0200 | dagi75224 | (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) |
2023-06-14 03:20:02 +0200 | m1dnight_ | (~christoph@78-22-4-67.access.telenet.be) |
2023-06-14 03:20:08 +0200 | acro_ | (~acro@user/acro) |
2023-06-14 03:20:11 +0200 | xstill_0 | (xstill@fimu/xstill) |
2023-06-14 03:20:11 +0200 | wroathe | (~wroathe@user/wroathe) (Killed (NickServ (GHOST command used by wroathe_!~wroathe@207-153-38-140.fttp.usinternet.com))) |
2023-06-14 03:20:14 +0200 | Cadey | (~cadey@tailscale/xe) |
2023-06-14 03:20:14 +0200 | tom__ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2023-06-14 03:20:14 +0200 | 080AAA5IJ | (~acidjnk@p200300d6e7072f9254d3382c8032cf2b.dip0.t-ipconnect.de) |
2023-06-14 03:20:15 +0200 | elkcl | (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 240 seconds) |
2023-06-14 03:20:15 +0200 | econo | (uid147250@user/econo) (Ping timeout: 240 seconds) |
2023-06-14 03:20:15 +0200 | wroathe_ | wroathe |
2023-06-14 03:20:18 +0200 | SrPx | (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:20:18 +0200 | Alex_test | (~al_test@178.34.163.88) (Ping timeout: 240 seconds) |
2023-06-14 03:20:18 +0200 | AlexZenon | (~alzenon@178.34.163.88) (Ping timeout: 240 seconds) |
2023-06-14 03:20:19 +0200 | Alex_test | (~al_test@178.34.163.88) |
2023-06-14 03:20:19 +0200 | AlexZenon | (~alzenon@178.34.163.88) |
2023-06-14 03:20:19 +0200 | ddellacosta | (~ddellacos@146.70.165.139) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | rubin55_ | (sid175221@id-175221.hampstead.irccloud.com) |
2023-06-14 03:20:20 +0200 | foul_owl | (~kerry@71.212.137.212) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | piele_ | (~piele@tbonesteak.creativeserver.net) |
2023-06-14 03:20:20 +0200 | B-J | (~BenziJuni@dsl-149-64-112.hive.is) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | jargon | (~jargon@184.101.75.235) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:f71f:fbb2:cbdf:4da0) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | jero98772 | (~jero98772@2800:484:1d7f:5d36::2) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | glider | (~glider@user/glider) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | ijqq | (uid603979@id-603979.helmsley.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | EsoAlgo81 | (~EsoAlgo@129.146.136.145) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | kadobanana | (~mud@user/kadoban) (Ping timeout: 240 seconds) |
2023-06-14 03:20:20 +0200 | taupiqueur1 | 042AAA2VT |
2023-06-14 03:20:20 +0200 | taupiqueur1 | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) |
2023-06-14 03:20:20 +0200 | raym_ | (~ray@115.187.32.4) |
2023-06-14 03:20:20 +0200 | chromobl1b | (~user@37.113.180.121) |
2023-06-14 03:20:20 +0200 | johnw- | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-06-14 03:20:20 +0200 | PotatoGim_ | (sid99505@id-99505.lymington.irccloud.com) |
2023-06-14 03:20:20 +0200 | arrowhea_ | 042AAA284 |
2023-06-14 03:20:20 +0200 | 080AAA7GN | (~christoph@78-22-4-67.access.telenet.be) |
2023-06-14 03:20:20 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) |
2023-06-14 03:20:21 +0200 | bramhaag9 | (~bramhaag@134.195.121.39) |
2023-06-14 03:20:21 +0200 | jinsl- | (~jinsl@2408:8207:2558:8870:211:32ff:fec8:6aea) |
2023-06-14 03:20:21 +0200 | EPic_ | (apic@apic.name) |
2023-06-14 03:20:21 +0200 | acertain_ | (sid470584@id-470584.hampstead.irccloud.com) |
2023-06-14 03:20:21 +0200 | Pent_ | (sid313808@id-313808.lymington.irccloud.com) |
2023-06-14 03:20:21 +0200 | cln | (cln@wtf.cx) |
2023-06-14 03:20:21 +0200 | robobub_ | (uid248673@id-248673.uxbridge.irccloud.com) |
2023-06-14 03:20:21 +0200 | hpc_ | (~juzz@ip98-169-35-163.dc.dc.cox.net) |
2023-06-14 03:20:21 +0200 | 080AAA7GN | (~christoph@78-22-4-67.access.telenet.be) (Write error: Connection reset by peer) |
2023-06-14 03:20:21 +0200 | bramhaag9 | (~bramhaag@134.195.121.39) (Read error: Connection reset by peer) |
2023-06-14 03:20:21 +0200 | bramhaag6 | (~bramhaag@134.195.121.39) |
2023-06-14 03:20:21 +0200 | jackdk_ | (sid373013@id-373013.tinside.irccloud.com) |
2023-06-14 03:20:21 +0200 | chromobl1b | (~user@37.113.180.121) (Read error: Connection reset by peer) |
2023-06-14 03:20:21 +0200 | Errdonald | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) |
2023-06-14 03:20:21 +0200 | chromobl1b | (~user@37.113.180.121) |
2023-06-14 03:20:21 +0200 | johnw- | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Read error: Connection reset by peer) |
2023-06-14 03:20:21 +0200 | taupiqueur1 | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) (Read error: Connection reset by peer) |
2023-06-14 03:20:21 +0200 | robobub_ | (uid248673@id-248673.uxbridge.irccloud.com) (Max SendQ exceeded) |
2023-06-14 03:20:23 +0200 | tessier_ | (~treed@ip72-197-145-89.sd.sd.cox.net) |
2023-06-14 03:20:24 +0200 | taupiqueur2 | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) |
2023-06-14 03:20:25 +0200 | xax__ | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-06-14 03:20:27 +0200 | biberu- | (~biberu@user/biberu) |
2023-06-14 03:20:31 +0200 | raym_ | (~ray@115.187.32.4) (Changing host) |
2023-06-14 03:20:31 +0200 | raym_ | (~ray@user/raym) |
2023-06-14 03:20:31 +0200 | tcard__ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-06-14 03:20:31 +0200 | pyrex_ | (~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c) |
2023-06-14 03:20:31 +0200 | pyrex_ | (~pyrex@2601:645:8700:eeb0:9495:a28f:e14d:d40c) (Client Quit) |
2023-06-14 03:20:32 +0200 | acro_ | acro |
2023-06-14 03:20:32 +0200 | pavonia_ | (~user@ip5f5bd7ad.dynamic.kabel-deutschland.de) |
2023-06-14 03:20:33 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) |
2023-06-14 03:20:33 +0200 | heartburn | (~gass@2a00:d880:3:1::b1e4:b241) |
2023-06-14 03:20:33 +0200 | 042AAA36V | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-06-14 03:20:34 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Ping timeout: 240 seconds) |
2023-06-14 03:20:34 +0200 | pavonia | (~user@user/siracusa) (Ping timeout: 240 seconds) |
2023-06-14 03:20:34 +0200 | pavonia_ | pavonia |
2023-06-14 03:20:35 +0200 | shapr` | (~user@2600:1700:c640:3100:b6fa:cb8d:bd7d:c291) |
2023-06-14 03:20:36 +0200 | tom_ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2023-06-14 03:20:36 +0200 | mei | (~mei@user/mei) (Ping timeout: 240 seconds) |
2023-06-14 03:20:36 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 240 seconds) |
2023-06-14 03:20:36 +0200 | jinsl | (~jinsl@123.120.169.188) (Ping timeout: 240 seconds) |
2023-06-14 03:20:36 +0200 | tritlo_ | (sid58727@id-58727.hampstead.irccloud.com) |
2023-06-14 03:20:36 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-06-14 03:20:36 +0200 | img | (~img@2405:6580:b1c0:2500:96c6:91ff:fea5:bc11) |
2023-06-14 03:20:37 +0200 | img_ | (~img@user/img) (Ping timeout: 240 seconds) |
2023-06-14 03:20:37 +0200 | bramhaag | (~bramhaag@134.195.121.39) (Ping timeout: 240 seconds) |
2023-06-14 03:20:37 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-06-14 03:20:37 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 240 seconds) |
2023-06-14 03:20:37 +0200 | shapr | (~user@2600:1700:c640:3100:b6fa:cb8d:bd7d:c291) (Ping timeout: 240 seconds) |
2023-06-14 03:20:37 +0200 | chromoblob | (~user@37.113.180.121) (Ping timeout: 240 seconds) |
2023-06-14 03:20:38 +0200 | bramhaag6 | bramhaag |
2023-06-14 03:20:38 +0200 | delyan_ | (sid523379@id-523379.hampstead.irccloud.com) |
2023-06-14 03:20:38 +0200 | ijqq__ | (uid603979@id-603979.helmsley.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:20:38 +0200 | 042AAA284 | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | anpad | (~pandeyan@user/anpad) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | biberu\ | (~biberu@user/biberu) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | pyrex | (~pyrex@user/pyrex) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | jargon_ | (~jargon@184.101.75.235) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | lottaquestions_ | (~nick@2607:fa49:503f:6d00:76c6:8180:36e3:46f2) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | 042AAA2VT | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | srk_ | (~sorki@user/srk) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | talisman` | (~user@2601:204:ef01:8ca0::a680) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | mauke_ | (~mauke@user/mauke) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | tzh_ | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | cheater_ | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | johnw_ | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | hays | (rootvegeta@fsf/member/hays) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | tessier | (~treed@ip72-197-145-89.sd.sd.cox.net) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | emergence | (thelounge@2607:5300:60:5910:dcad:beff:feef:5bc) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | Errdonald_ | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | wns | (~user@103.206.114.90) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | bionade24 | (~bionade24@2a03:4000:33:45b::1) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | anderson | (~TheFunOne@user/anderson) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | Xe | (~cadey@tailscale/xe) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | hisa38 | (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 240 seconds) |
2023-06-14 03:20:39 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2023-06-14 03:20:40 +0200 | ggb_ | (a62ffbaf4f@2604:bf00:561:2000::3ac) |
2023-06-14 03:20:40 +0200 | filwisher_ | (2e6936c793@2604:bf00:561:2000::170) |
2023-06-14 03:20:40 +0200 | lukec_ | (9dfd4d094e@2604:bf00:561:2000::10e) |
2023-06-14 03:20:40 +0200 | bsima1_ | (9d7e39c8ad@2604:bf00:561:2000::dd) |
2023-06-14 03:20:40 +0200 | landonf_ | (landonf@mac68k.info) |
2023-06-14 03:20:41 +0200 | AlexNoo_ | (~AlexNoo@178.34.163.88) |
2023-06-14 03:20:42 +0200 | AlexNoo_ | (~AlexNoo@178.34.163.88) (Read error: Connection reset by peer) |
2023-06-14 03:20:43 +0200 | AlexNoo_ | (~AlexNoo@178.34.163.88) |
2023-06-14 03:20:43 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-06-14 03:20:44 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-06-14 03:20:44 +0200 | ijqq___ | (uid603979@id-603979.helmsley.irccloud.com) |
2023-06-14 03:20:45 +0200 | b20n | (sid115913@id-115913.uxbridge.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:20:45 +0200 | red-snai- | (~snail@static.151.210.203.116.clients.your-server.de) (Ping timeout: 255 seconds) |
2023-06-14 03:20:45 +0200 | cawfee_ | (~root@2406:3003:2077:2758::babe) |
2023-06-14 03:20:48 +0200 | elkcl | (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) |
2023-06-14 03:20:52 +0200 | edmundnoble_ | (sid229620@id-229620.helmsley.irccloud.com) (Read error: Connection reset by peer) |
2023-06-14 03:20:52 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) (Read error: Connection reset by peer) |
2023-06-14 03:20:53 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-06-14 03:20:53 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-06-14 03:20:56 +0200 | pavonia_ | (~user@ip5f5bd7ad.dynamic.kabel-deutschland.de) |
2023-06-14 03:20:57 +0200 | megaTherion_ | (~therion@unix.io) (Read error: Connection reset by peer) |
2023-06-14 03:20:57 +0200 | pavonia | (~user@ip5f5bd7ad.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-06-14 03:21:00 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) |
2023-06-14 03:21:00 +0200 | megaTherion | (~therion@unix.io) |
2023-06-14 03:21:01 +0200 | mikko | (~mikko@dsl-trebng22-58c1a8-185.dhcp.inet.fi) |
2023-06-14 03:21:06 +0200 | haritz | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
2023-06-14 03:21:08 +0200 | img | (~img@2405:6580:b1c0:2500:96c6:91ff:fea5:bc11) (Changing host) |
2023-06-14 03:21:08 +0200 | img | (~img@user/img) |
2023-06-14 03:21:09 +0200 | red-snail1 | (~snail@static.151.210.203.116.clients.your-server.de) |
2023-06-14 03:21:10 +0200 | jero98772 | (~jero98772@2800:484:1d7f:5d36::2) |
2023-06-14 03:21:12 +0200 | b20n | (sid115913@id-115913.uxbridge.irccloud.com) |
2023-06-14 03:21:13 +0200 | edmundnoble_ | (sid229620@id-229620.helmsley.irccloud.com) |
2023-06-14 03:21:14 +0200 | jackdk_ | jackdk |
2023-06-14 03:21:15 +0200 | shapr`` | (~user@2600:1700:c640:3100:b6fa:cb8d:bd7d:c291) |
2023-06-14 03:21:19 +0200 | lukec_ | (9dfd4d094e@2604:bf00:561:2000::10e) (Read error: Connection reset by peer) |
2023-06-14 03:21:19 +0200 | filwisher_ | (2e6936c793@2604:bf00:561:2000::170) (Read error: Connection reset by peer) |
2023-06-14 03:21:19 +0200 | bsima1_ | (9d7e39c8ad@2604:bf00:561:2000::dd) (Read error: Connection reset by peer) |
2023-06-14 03:21:19 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-06-14 03:21:27 +0200 | bsima1 | (9d7e39c8ad@2604:bf00:561:2000::dd) |
2023-06-14 03:21:27 +0200 | lukec | (9dfd4d094e@2604:bf00:561:2000::10e) |
2023-06-14 03:21:27 +0200 | filwisher | (2e6936c793@2604:bf00:561:2000::170) |
2023-06-14 03:21:28 +0200 | pavonia_ | pavonia |
2023-06-14 03:21:29 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 240 seconds) |
2023-06-14 03:21:29 +0200 | tritlo_ | (sid58727@id-58727.hampstead.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:21:32 +0200 | jinsl- | (~jinsl@2408:8207:2558:8870:211:32ff:fec8:6aea) (Ping timeout: 240 seconds) |
2023-06-14 03:21:34 +0200 | pavonia | (~user@ip5f5bd7ad.dynamic.kabel-deutschland.de) (Changing host) |
2023-06-14 03:21:34 +0200 | pavonia | (~user@user/siracusa) |
2023-06-14 03:21:35 +0200 | ridcully | (~ridcully@p57b52f2c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2023-06-14 03:21:37 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) (Read error: Connection reset by peer) |
2023-06-14 03:21:38 +0200 | mikko | (~mikko@dsl-trebng22-58c1a8-185.dhcp.inet.fi) (Changing host) |
2023-06-14 03:21:39 +0200 | mikko | (~mikko@user/mikko) |
2023-06-14 03:21:39 +0200 | SrPx_ | (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 03:21:50 +0200 | biberu- | biberu |
2023-06-14 03:21:55 +0200 | jackdk | (sid373013@id-373013.tinside.irccloud.com) (Changing host) |
2023-06-14 03:21:55 +0200 | jackdk | (sid373013@cssa/jackdk) |
2023-06-14 03:21:56 +0200 | rubin55_ | (sid175221@id-175221.hampstead.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:21:57 +0200 | tritlo_ | (sid58727@id-58727.hampstead.irccloud.com) |
2023-06-14 03:21:58 +0200 | ridcully | (~ridcully@p57b52f2c.dip0.t-ipconnect.de) |
2023-06-14 03:22:00 +0200 | <Axman6> | Oh dear... |
2023-06-14 03:22:00 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) |
2023-06-14 03:22:02 +0200 | foul_owl | (~kerry@71.212.137.212) |
2023-06-14 03:22:04 +0200 | img_ | (~img@2405:6580:b1c0:2500:96c6:91ff:fea5:bc11) |
2023-06-14 03:22:06 +0200 | Errdonald__ | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) (Ping timeout: 254 seconds) |
2023-06-14 03:22:06 +0200 | remsen- | (ianremsen@tilde.team) (Ping timeout: 254 seconds) |
2023-06-14 03:22:06 +0200 | haritzondo | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Ping timeout: 254 seconds) |
2023-06-14 03:22:06 +0200 | dagi82659 | (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) (Ping timeout: 254 seconds) |
2023-06-14 03:22:11 +0200 | jinsl | (~jinsl@2408:8207:2558:8870:211:32ff:fec8:6aea) |
2023-06-14 03:22:12 +0200 | EPic_ | (apic@apic.name) (Max SendQ exceeded) |
2023-06-14 03:22:20 +0200 | Alex_test | (~al_test@178.34.163.88) (Ping timeout: 240 seconds) |
2023-06-14 03:22:30 +0200 | img | (~img@user/img) (Ping timeout: 240 seconds) |
2023-06-14 03:22:30 +0200 | rubin55_ | (sid175221@id-175221.hampstead.irccloud.com) |
2023-06-14 03:22:31 +0200 | img_ | (~img@2405:6580:b1c0:2500:96c6:91ff:fea5:bc11) (Changing host) |
2023-06-14 03:22:31 +0200 | img_ | (~img@user/img) |
2023-06-14 03:22:33 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) (Ping timeout: 255 seconds) |
2023-06-14 03:22:44 +0200 | Pent_ | (sid313808@id-313808.lymington.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:22:44 +0200 | acertain_ | (sid470584@id-470584.hampstead.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:22:44 +0200 | AlexZenon | (~alzenon@178.34.163.88) (Ping timeout: 240 seconds) |
2023-06-14 03:22:44 +0200 | 080AAA5IJ | (~acidjnk@p200300d6e7072f9254d3382c8032cf2b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-06-14 03:22:44 +0200 | tom__ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Ping timeout: 240 seconds) |
2023-06-14 03:22:58 +0200 | Clint | (~Clint@thumb.scru.org) |
2023-06-14 03:22:59 +0200 | landonf_ | (landonf@mac68k.info) (Ping timeout: 240 seconds) |
2023-06-14 03:23:00 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 240 seconds) |
2023-06-14 03:23:00 +0200 | 042AAA36V | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 240 seconds) |
2023-06-14 03:23:00 +0200 | heartburn | (~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 240 seconds) |
2023-06-14 03:23:00 +0200 | tcard__ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 240 seconds) |
2023-06-14 03:23:07 +0200 | phma_ | phma |
2023-06-14 03:23:08 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) |
2023-06-14 03:23:08 +0200 | hpc_ | (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 240 seconds) |
2023-06-14 03:23:08 +0200 | cln | (cln@wtf.cx) (Ping timeout: 240 seconds) |
2023-06-14 03:23:08 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) (Ping timeout: 240 seconds) |
2023-06-14 03:23:24 +0200 | Clint | (~Clint@thumb.scru.org) (Changing host) |
2023-06-14 03:23:24 +0200 | Clint | (~Clint@user/clint) |
2023-06-14 03:23:29 +0200 | ggb_ | (a62ffbaf4f@2604:bf00:561:2000::3ac) (Ping timeout: 240 seconds) |
2023-06-14 03:23:30 +0200 | delyan_ | (sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 240 seconds) |
2023-06-14 03:23:30 +0200 | shapr` | (~user@2600:1700:c640:3100:b6fa:cb8d:bd7d:c291) (Ping timeout: 240 seconds) |
2023-06-14 03:23:38 +0200 | piele | (~piele@tbonesteak.creativeserver.net) |
2023-06-14 03:23:46 +0200 | chromobl1b | chromoblob |
2023-06-14 03:23:55 +0200 | remsen | (ianremsen@tilde.team) |
2023-06-14 03:23:56 +0200 | raym_ | (~ray@user/raym) (Ping timeout: 240 seconds) |
2023-06-14 03:24:06 +0200 | JSharp | (sid4580@id-4580.lymington.irccloud.com) |
2023-06-14 03:24:07 +0200 | foul_owl | (~kerry@71.212.137.212) (Client Quit) |
2023-06-14 03:24:10 +0200 | SrPx_ | (sid108780@id-108780.uxbridge.irccloud.com) |
2023-06-14 03:24:27 +0200 | cln | (cln@wtf.cx) |
2023-06-14 03:24:28 +0200 | heartburn | (~gass@2a00:d880:3:1::b1e4:b241) |
2023-06-14 03:24:29 +0200 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) |
2023-06-14 03:24:32 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2023-06-14 03:24:37 +0200 | acertain_ | (sid470584@id-470584.hampstead.irccloud.com) |
2023-06-14 03:24:49 +0200 | haritz | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
2023-06-14 03:24:49 +0200 | haritz | (~hrtz@user/haritz) |
2023-06-14 03:24:51 +0200 | raym | (~ray@115.187.32.4) |
2023-06-14 03:25:07 +0200 | PotatoGim_ | (sid99505@id-99505.lymington.irccloud.com) |
2023-06-14 03:25:21 +0200 | raym | (~ray@115.187.32.4) (Changing host) |
2023-06-14 03:25:21 +0200 | raym | (~ray@user/raym) |
2023-06-14 03:25:44 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-06-14 03:25:52 +0200 | Vajb | (~Vajb@2001:999:484:a37d:e618:9886:4843:f5d8) |
2023-06-14 03:26:17 +0200 | Ankhers | (e99e97ef8e@2604:bf00:561:2000::2a2) |
2023-06-14 03:26:31 +0200 | ymherklotz | (cb2c9cfbdd@2604:bf00:561:2000::29a) |
2023-06-14 03:26:37 +0200 | Alex_test | (~al_test@178.34.163.88) |
2023-06-14 03:26:37 +0200 | AlexZenon | (~alzenon@178.34.163.88) |
2023-06-14 03:27:01 +0200 | falafel | (~falafel@2601:482:8003:cd80:3095:f1cc:14b9:ee5e) |
2023-06-14 03:27:12 +0200 | falafel | (~falafel@2601:482:8003:cd80:3095:f1cc:14b9:ee5e) (Remote host closed the connection) |
2023-06-14 03:27:14 +0200 | Raito_Bezarius | (~Raito@2001:470:ca5e:dee:f482:b4ff:fe18:2d7d) |
2023-06-14 03:27:32 +0200 | bionade24 | (~bionade24@2a03:4000:33:45b::1) |
2023-06-14 03:27:35 +0200 | Raito_Bezarius | (~Raito@2001:470:ca5e:dee:f482:b4ff:fe18:2d7d) (Client Quit) |
2023-06-14 03:27:57 +0200 | landonf | (landonf@mac68k.info) |
2023-06-14 03:28:05 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-06-14 03:28:25 +0200 | witcher | (~witcher@wiredspace.de) |
2023-06-14 03:28:32 +0200 | cyphase | (~cyphase@user/cyphase) |
2023-06-14 03:28:40 +0200 | sus | (1b7af6299f@user/zeromomentum) |
2023-06-14 03:28:46 +0200 | b0o | (0e4a0bf4c9@2604:bf00:561:2000::1bf) |
2023-06-14 03:29:05 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-06-14 03:29:09 +0200 | turlando | (~turlando@user/turlando) |
2023-06-14 03:29:12 +0200 | falafel | (~falafel@2601:482:8003:cd80:3095:f1cc:14b9:ee5e) |
2023-06-14 03:29:12 +0200 | sm2n | (ae95cb1267@user/sm2n) |
2023-06-14 03:29:14 +0200 | jkoshy | (99b9359beb@user/jkoshy) |
2023-06-14 03:29:14 +0200 | cheater_ | (~Username@user/cheater) |
2023-06-14 03:29:14 +0200 | cheater_ | cheater |
2023-06-14 03:29:16 +0200 | arcadewise | (52968ed80d@2604:bf00:561:2000::3df) |
2023-06-14 03:29:18 +0200 | retropikzel | (9d1a4f9f46@2604:bf00:561:2000::ce) |
2023-06-14 03:30:12 +0200 | jleightcap | (7bc4014b62@user/jleightcap) |
2023-06-14 03:30:16 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2023-06-14 03:30:17 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2023-06-14 03:30:17 +0200 | n1essa | (3d621153a5@2604:bf00:561:2000::df7) |
2023-06-14 03:30:19 +0200 | Nosrep | (~Nosrep@user/nosrep) |
2023-06-14 03:30:19 +0200 | chaitlatte0 | (ea29c0bb16@2604:bf00:561:2000::1124) |
2023-06-14 03:30:21 +0200 | srk | (~sorki@user/srk) |
2023-06-14 03:30:30 +0200 | chaitlatte0 | (ea29c0bb16@2604:bf00:561:2000::1124) (Changing host) |
2023-06-14 03:30:30 +0200 | chaitlatte0 | (ea29c0bb16@user/chaitlatte0) |
2023-06-14 03:30:36 +0200 | <ijqq_> | :/ |
2023-06-14 03:30:38 +0200 | Nosrep | (~Nosrep@user/nosrep) (Remote host closed the connection) |
2023-06-14 03:30:50 +0200 | mauke | (~mauke@user/mauke) |
2023-06-14 03:31:00 +0200 | lbseale | (~quassel@user/ep1ctetus) |
2023-06-14 03:31:07 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2023-06-14 03:31:15 +0200 | fluffyballoon | (45ce440a48@2604:bf00:561:2000::e2) |
2023-06-14 03:31:27 +0200 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) |
2023-06-14 03:31:33 +0200 | Nosrep | (~Nosrep@user/nosrep) |
2023-06-14 03:31:46 +0200 | jakzale | (6291399afa@user/jakzale) |
2023-06-14 03:31:52 +0200 | anpad | (~pandeyan@135-180-53-134.fiber.dynamic.sonic.net) |
2023-06-14 03:31:55 +0200 | probie | (cc0b34050a@user/probie) |
2023-06-14 03:31:57 +0200 | anpad | (~pandeyan@135-180-53-134.fiber.dynamic.sonic.net) (Changing host) |
2023-06-14 03:31:57 +0200 | anpad | (~pandeyan@user/anpad) |
2023-06-14 03:32:05 +0200 | henrytill | (e0180937c3@2604:bf00:561:2000::e8c) |
2023-06-14 03:32:05 +0200 | MonsoonSecrecy | (f78c86e960@2604:bf00:561:2000::f99) |
2023-06-14 03:32:09 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-06-14 03:32:09 +0200 | manwithluck | (~manwithlu@2406:da14:5ea:e400:49df:93ba:b95b:7bda) |
2023-06-14 03:32:20 +0200 | JoelMcCracken | (5ea8252fbb@2604:bf00:561:2000::10e3) |
2023-06-14 03:32:23 +0200 | dtman34 | (~dtman34@2601:447:d000:93c9:a04d:f386:6724:b122) |
2023-06-14 03:32:36 +0200 | hexeme | (~hexeme@user/hexeme) |
2023-06-14 03:32:41 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2023-06-14 03:32:45 +0200 | m5zs7k | (aquares@web10.mydevil.net) |
2023-06-14 03:32:53 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-06-14 03:33:04 +0200 | adamCS | (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) |
2023-06-14 03:33:12 +0200 | glider | (~glider@user/glider) |
2023-06-14 03:33:12 +0200 | jlwoodwa | (~jlwoodwa@173.30.18.191) |
2023-06-14 03:33:17 +0200 | energizer | (~energizer@user/energizer) |
2023-06-14 03:33:28 +0200 | Angelz | (Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973) |
2023-06-14 03:33:32 +0200 | <chromoblob> | ijqq_: i'm glad to discuss with you how to write more idiomatic code, but i'm going to sleep now. i'll be around tomorrow |
2023-06-14 03:33:40 +0200 | anderson | (~anderson@user/anderson) |
2023-06-14 03:33:47 +0200 | Yumemi | (~Yumemi@chamoin.net) |
2023-06-14 03:33:51 +0200 | <ijqq_> | Okay cool, me too actually. |
2023-06-14 03:33:59 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) |
2023-06-14 03:34:08 +0200 | shreyasminocha | (51fdc93eda@user/shreyasminocha) |
2023-06-14 03:34:13 +0200 | <ijqq_> | Thank you very much for the help, I'll be on tomorrow too, hopefully see you then |
2023-06-14 03:34:14 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2023-06-14 03:34:26 +0200 | evanrelf | (3addc196af@2604:bf00:561:2000::f0) |
2023-06-14 03:34:33 +0200 | fvr | (ef3e56ca8b@2604:bf00:561:2000::3c4) |
2023-06-14 03:34:59 +0200 | RMSBach | (~guygastin@137.184.131.156) |
2023-06-14 03:35:14 +0200 | APic | (apic@apic.name) |
2023-06-14 03:35:19 +0200 | ggb | (a62ffbaf4f@2604:bf00:561:2000::3ac) |
2023-06-14 03:35:31 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-06-14 03:36:00 +0200 | delyan_ | (sid523379@id-523379.hampstead.irccloud.com) |
2023-06-14 03:36:15 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) |
2023-06-14 03:36:23 +0200 | whereiseveryone | (206ba86c98@2604:bf00:561:2000::2e4) |
2023-06-14 03:36:48 +0200 | Pent_ | (sid313808@id-313808.lymington.irccloud.com) |
2023-06-14 03:36:58 +0200 | heath2 | (~heath@user/heath) |
2023-06-14 03:38:17 +0200 | ddellaco1 | (~ddellacos@146.70.165.139) |
2023-06-14 03:38:24 +0200 | robobub_ | (uid248673@id-248673.uxbridge.irccloud.com) |
2023-06-14 03:39:45 +0200 | samhh_ | (7569f027cf@2604:bf00:561:2000::e4) |
2023-06-14 03:40:58 +0200 | theesm | (2cbdf4b38a@2604:bf00:561:2000::11c8) |
2023-06-14 03:41:49 +0200 | <Axman6> | ijqq_: I don't have any problem with that code |
2023-06-14 03:42:44 +0200 | <ijqq_> | ohh I though you were saying Oh Dear upon seeing it |
2023-06-14 03:46:00 +0200 | jargon | (~jargon@184.101.75.235) |
2023-06-14 03:46:38 +0200 | arrowhea_ | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 03:47:35 +0200 | jlwoodwa | (~jlwoodwa@173.30.18.191) (Quit: Leaving) |
2023-06-14 03:48:29 +0200 | <arrowhea_> | jackdk: but also, why lenses over IORef? Are lenses more functional? What about the claims they are unidiomatic? |
2023-06-14 03:48:36 +0200 | arrowhea_ | arrowhead |
2023-06-14 03:50:06 +0200 | <dibblego> | I once tried to learn to fly an aeroplane, but it was unidiomatic, so I stopped. I can tell it was a good idea to stop because aeroplanes must be unidiomatic. |
2023-06-14 03:52:28 +0200 | <jackdk> | I reject the claims that lens is unidiomatic. I'm advocating an idiom made of functions, and you can pick up full lens later if you're interested. But yes, I'd say they're "more functional" - I very rarely need to write code that touches IORefs, and when I was first getting into Haskell I thought I needed them a lot more than I actually do. |
2023-06-14 03:52:57 +0200 | <Axman6> | ijqq_: no, looks like we had a netsplit so a lot of users were joining and parting |
2023-06-14 03:54:53 +0200 | <Axman6> | so that's what the oh dear was about, your client might hide that that's happened. I think that tokeniser is very easy to follow and pretty easy to check its correctness |
2023-06-14 03:56:49 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 268 seconds) |
2023-06-14 03:57:02 +0200 | <ijqq_> | oh interesting, i didn't know about that. and thank you :) |
2023-06-14 03:57:20 +0200 | <ijqq_> | even has a wikipedia |
2023-06-14 03:57:25 +0200 | phma | (phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) (Read error: Connection reset by peer) |
2023-06-14 03:57:49 +0200 | phma | (phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) |
2023-06-14 03:58:06 +0200 | Adran | (~adran@botters/adran) |
2023-06-14 03:58:11 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-06-14 03:58:33 +0200 | jargon_ | (~jargon@184.101.75.235) |
2023-06-14 03:59:25 +0200 | mauke_ | (~mauke@user/mauke) |
2023-06-14 03:59:34 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Ping timeout: 255 seconds) |
2023-06-14 03:59:34 +0200 | Vajb | (~Vajb@2001:999:484:a37d:e618:9886:4843:f5d8) (Ping timeout: 255 seconds) |
2023-06-14 03:59:48 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-06-14 04:00:01 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 255 seconds) |
2023-06-14 04:00:13 +0200 | euandreh1 | (~Thunderbi@189.6.18.7) |
2023-06-14 04:00:28 +0200 | jargon | (~jargon@184.101.75.235) (Ping timeout: 255 seconds) |
2023-06-14 04:00:28 +0200 | robobub_ | (uid248673@id-248673.uxbridge.irccloud.com) (Ping timeout: 255 seconds) |
2023-06-14 04:00:28 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2023-06-14 04:00:28 +0200 | AlexZenon | (~alzenon@178.34.163.88) (Ping timeout: 255 seconds) |
2023-06-14 04:00:35 +0200 | m5zs7k_ | (aquares@web10.mydevil.net) |
2023-06-14 04:00:38 +0200 | srk- | (~sorki@user/srk) |
2023-06-14 04:00:38 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2023-06-14 04:00:49 +0200 | AlexZenon | (~alzenon@178.34.163.88) |
2023-06-14 04:00:55 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 255 seconds) |
2023-06-14 04:00:55 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 255 seconds) |
2023-06-14 04:00:55 +0200 | mauke_ | mauke |
2023-06-14 04:01:04 +0200 | Vajb | (~Vajb@2001:999:484:a37d:e618:9886:4843:f5d8) |
2023-06-14 04:01:21 +0200 | m5zs7k | (aquares@web10.mydevil.net) (Quit: m5zs7k) |
2023-06-14 04:01:22 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-06-14 04:01:22 +0200 | srk | (~sorki@user/srk) (Ping timeout: 255 seconds) |
2023-06-14 04:01:22 +0200 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 255 seconds) |
2023-06-14 04:01:22 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Ping timeout: 255 seconds) |
2023-06-14 04:01:34 +0200 | foul_owl | (~kerry@71.212.137.212) |
2023-06-14 04:01:48 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2023-06-14 04:01:56 +0200 | Lord_of_Life_ | Lord_of_Life |
2023-06-14 04:01:59 +0200 | phma | (phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) (Read error: Connection reset by peer) |
2023-06-14 04:02:11 +0200 | cyphase | (~cyphase@user/cyphase) |
2023-06-14 04:02:11 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Read error: Connection reset by peer) |
2023-06-14 04:02:23 +0200 | phma | (~phma@host-67-44-208-30.hnremote.net) |
2023-06-14 04:02:30 +0200 | euandreh1 | euandreh |
2023-06-14 04:02:48 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) |
2023-06-14 04:03:03 +0200 | xff0x_ | (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 255 seconds) |
2023-06-14 04:03:24 +0200 | srk- | srk |
2023-06-14 04:03:43 +0200 | mauke_ | (~mauke@user/mauke) |
2023-06-14 04:04:03 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 04:04:11 +0200 | robobub_ | (uid248673@id-248673.uxbridge.irccloud.com) |
2023-06-14 04:05:25 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 255 seconds) |
2023-06-14 04:05:25 +0200 | mauke_ | mauke |
2023-06-14 04:06:12 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 04:07:19 +0200 | <arrowhead> | dibblego: the "so I stopped" part doesn't follow because instead of stopping I used IORef. |
2023-06-14 04:07:27 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-06-14 04:07:49 +0200 | <dibblego> | yeah no worries, I stopped using lens because it is unidiomatic, says so on the internet |
2023-06-14 04:08:41 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2023-06-14 04:08:47 +0200 | <arrowhead> | jackdk: I am curious why lenses are more functional than IORef. After implementing "IORef" in Scheme in terms of delimited continuations (i.e. immutably implemented) I have convinced myself that IORef is isomorphic to proper (i.e. immutable) algebraic effect-based IORef (mutable cells) |
2023-06-14 04:09:15 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-06-14 04:09:15 +0200 | m5zs7k_ | m5zs7k |
2023-06-14 04:09:15 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Read error: Connection reset by peer) |
2023-06-14 04:09:19 +0200 | DDR | (~DDR@2604:3d08:4c7f:8250:4f2c:b738:d82e:1bc4) |
2023-06-14 04:10:21 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 04:10:22 +0200 | <arrowhead> | dibblego: I am not someone to just trust what I read on the internet. See my argument above. If I understand, as I think I do, that IORefs are isomorphic to immutable reference cells implemented on top of delimited continuations (which is equivalent to its monadic STRef implementation) then why say IORefs are less functional? |
2023-06-14 04:10:30 +0200 | mixfix41 | (~sdeny9ee@user/mixfix41) |
2023-06-14 04:11:11 +0200 | <c_wraith> | arrowhead: does your implementation show modifications done by concurrent threads? |
2023-06-14 04:11:27 +0200 | <arrowhead> | dibblego: I am not yet convinced IORefs are "not functional enough" or even "not functional" and I submit that thinking they are less functional might be what is popularly gathered from the internet |
2023-06-14 04:12:13 +0200 | <arrowhead> | c_wraith: I don't worry about concurrency, sorry :/ |
2023-06-14 04:12:26 +0200 | <c_wraith> | arrowhead: then you're ignoring what makes IORef not functional |
2023-06-14 04:12:51 +0200 | <arrowhead> | I might be. What is the part I am missing? |
2023-06-14 04:13:07 +0200 | <c_wraith> | Thread 1 writes a value to an IORef. Thread 2 sees the change. |
2023-06-14 04:14:01 +0200 | <arrowhead> | But for a single-threaded program, where is IORef not functional? |
2023-06-14 04:14:47 +0200 | falafel | (~falafel@2601:482:8003:cd80:3095:f1cc:14b9:ee5e) (Remote host closed the connection) |
2023-06-14 04:14:50 +0200 | <c_wraith> | in interface? If you ignore efficiency, it's roughly equivalent to a State transformer carrying a Map |
2023-06-14 04:15:07 +0200 | <c_wraith> | The efficiency is a big deal, though |
2023-06-14 04:15:31 +0200 | ames | (~amelia@offtopia/offtopian/amelia) |
2023-06-14 04:15:53 +0200 | <arrowhead> | yes, I completely agree, although I am a beginner and you know more than I do, so by agreeing I mean I am happy I was right about that (equivalent to a StateT with a Map inside to model the refs, minus efficiency penalty) |
2023-06-14 04:16:25 +0200 | <c_wraith> | But O(1) updates and concurrent visibility are the main reasons IORefs exist. |
2023-06-14 04:16:35 +0200 | <arrowhead> | right, the efficiency is a big deal, which is why IORefs are recommended over StateT Map, right? But in the end they are isomorphic |
2023-06-14 04:17:01 +0200 | <arrowhead> | c_wraith: thank you I never knew IORef had anything to do with concurrency... I just never think about that. Do people here think a lot about concurrency? |
2023-06-14 04:17:15 +0200 | <arrowhead> | It's almost never been a part of my life in decades of professional programming |
2023-06-14 04:17:24 +0200 | <c_wraith> | Probably. There are too many people here to ascribe anything to all of them :) |
2023-06-14 04:17:24 +0200 | jargon_ | jargon |
2023-06-14 04:17:53 +0200 | <arrowhead> | no worries. |
2023-06-14 04:17:55 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 04:18:26 +0200 | bgamari | (~bgamari@64.223.233.113) (Server closed connection) |
2023-06-14 04:18:39 +0200 | <arrowhead> | I actually almost switched to a StateT Map but then again I thought there's nothing about IORef that isn't exactly like that when done e.g. in OCaml effects |
2023-06-14 04:18:58 +0200 | <c_wraith> | I almost never reach for IORef. If I want concurrency, I'm probably going for STM as my first pass. If I'm in a context where I need O(1) updates without concurrency, ST is my main choice. If I don't need either of those, I stick to pure interfaces as much as possible. |
2023-06-14 04:19:25 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-06-14 04:19:25 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-06-14 04:19:25 +0200 | finn_elija | FinnElija |
2023-06-14 04:19:25 +0200 | <arrowhead> | But isn't STRef totally isomorphic to IORef ? |
2023-06-14 04:19:35 +0200 | <arrowhead> | The difference is one "run" call in main |
2023-06-14 04:19:43 +0200 | bgamari | (~bgamari@64.223.233.113) |
2023-06-14 04:19:54 +0200 | <c_wraith> | ST gives you an externally-pure interface while maintaining O(1) updates internally. |
2023-06-14 04:20:23 +0200 | <c_wraith> | It's only something to reach for when you're going for efficiency improvements |
2023-06-14 04:20:54 +0200 | <arrowhead> | Wait, are you saying if I rewrite a program that was previously written solely using IORefs, now with STRefs, it will improve in efficiency? |
2023-06-14 04:21:16 +0200 | <c_wraith> | No, I'm comparing to a completely pure version, rather than an externally-pure version |
2023-06-14 04:21:49 +0200 | <arrowhead> | understood. In other words STRef is the fastest pure (outside IO) ref |
2023-06-14 04:22:11 +0200 | falafel | (~falafel@c-68-47-242-91.hsd1.tn.comcast.net) |
2023-06-14 04:22:15 +0200 | <c_wraith> | like.. shuffling a list, for instance. It's pretty easy to do with just lists and the random package. But it's faster to throw everything into a vector/array and use ST to keep the internal mutation hidden. |
2023-06-14 04:22:36 +0200 | <arrowhead> | I see that. |
2023-06-14 04:25:48 +0200 | <arrowhead> | I think I will stick with the IORef because in my case I just cannot see a benefit to using STRefs instead |
2023-06-14 04:26:32 +0200 | <arrowhead> | I used to think IORefs were "less functional" but after implementing them on top of algebraic effects and delimited continuations I no longer think so and I now think they are perfectly functional. |
2023-06-14 04:26:54 +0200 | <Daniel[m]123> | just use TVars |
2023-06-14 04:27:18 +0200 | <arrowhead> | Just suffices to look at Oleg Kiselyov's implementation of refs over effects to see it uses no state and still models a perfect IORef. |
2023-06-14 04:27:26 +0200 | <arrowhead> | Daniel[m]123: why? |
2023-06-14 04:27:56 +0200 | <Daniel[m]123> | arrowhead: because if you're writing something non-trivial its gonna be async |
2023-06-14 04:28:33 +0200 | <Daniel[m]123> | actually i just realised this is bullshit because most people who write haskell either a) write something trivial or academic or b) write cli apps where there is no performance concerns |
2023-06-14 04:28:44 +0200 | <Daniel[m]123> | judging from 2022 state of haskell survey |
2023-06-14 04:28:47 +0200 | <Daniel[m]123> | so nvm ignore me |
2023-06-14 04:29:05 +0200 | <arrowhead> | Daniel[m]123: well, monad transformers are quasi-equivalent to algebraic effects which are basically async spread wide, so your objection is moot as it is already satisfied. |
2023-06-14 04:29:24 +0200 | lilpotent_jlemen | (~lilpotent@2001:470:69fc:105::3:6eb6) |
2023-06-14 04:29:27 +0200 | <Daniel[m]123> | monad transformers dont handle async |
2023-06-14 04:29:36 +0200 | <arrowhead> | equivalently they do |
2023-06-14 04:29:36 +0200 | <Daniel[m]123> | it just handles type tetris is a better way |
2023-06-14 04:29:56 +0200 | <Daniel[m]123> | except its still bad so people are trying to see if effects are better |
2023-06-14 04:30:12 +0200 | <Daniel[m]123> | they dont |
2023-06-14 04:30:19 +0200 | <Daniel[m]123> | async means your code is shared across contexts |
2023-06-14 04:30:20 +0200 | <arrowhead> | Daniel[m]123: effects are composable with one tiny tradeoff |
2023-06-14 04:30:48 +0200 | <arrowhead> | Daniel[m]123: read: Monad Transformers and Modular Algebraic Effects: What Binds Them Together |
2023-06-14 04:31:27 +0200 | <arrowhead> | Daniel[m]123: summary: algebraic effects are basically equivalent to monad transformers; the former is basically equivalent to async used to stop-and-go the program between handlers; hence monad transformers are equivalent to async widely used. |
2023-06-14 04:31:41 +0200 | <arrowhead> | where's the guy who said I repeat what I read on the web? :P |
2023-06-14 04:31:55 +0200 | <arrowhead> | I do and then I cite it. |
2023-06-14 04:32:33 +0200 | <Daniel[m]123> | wut? |
2023-06-14 04:32:39 +0200 | <arrowhead> | Daniel[m]123: "async means your code is shared across contexts" -> yes, across delimited continuations specifically. |
2023-06-14 04:32:47 +0200 | <arrowhead> | do you even shift and reset? |
2023-06-14 04:33:08 +0200 | <Daniel[m]123> | in particular, your code may be shared across another process and thread |
2023-06-14 04:33:28 +0200 | <arrowhead> | Look at e.g. how C# implements Algebraic Effects, it's over async. And that is an "academically approved", correct implementation. |
2023-06-14 04:33:28 +0200 | <Daniel[m]123> | but then again |
2023-06-14 04:33:45 +0200 | <Daniel[m]123> | thats just c# being c# |
2023-06-14 04:33:52 +0200 | <arrowhead> | Daniel[m]123: yes, across process and threads, all of which look the same from a CPS point of view (CPS is needed for delimited continuations that are not atop of async) |
2023-06-14 04:33:57 +0200 | <Daniel[m]123> | and mind you thats effects |
2023-06-14 04:33:59 +0200 | <Daniel[m]123> | not MTs |
2023-06-14 04:34:03 +0200 | <arrowhead> | Daniel[m]123: no, as I said, that is an academically approved implementation |
2023-06-14 04:34:12 +0200 | glguy_ | glguy |
2023-06-14 04:34:17 +0200 | <Daniel[m]123> | MTs are different from effects and as i said, MT is bad, doesn't handle async |
2023-06-14 04:34:18 +0200 | <arrowhead> | hence, it'w not C# being C# but C# implementing an implementation straight from a paper |
2023-06-14 04:34:22 +0200 | <Daniel[m]123> | so they want effects |
2023-06-14 04:34:33 +0200 | <arrowhead> | Daniel[m]123: I just cited you a paper thaat argues MT = Eff |
2023-06-14 04:34:43 +0200 | <arrowhead> | they're not differ4ene |
2023-06-14 04:34:43 +0200 | <Daniel[m]123> | i didnt see anything |
2023-06-14 04:34:47 +0200 | <Daniel[m]123> | lmao |
2023-06-14 04:34:48 +0200 | <arrowhead> | you said it, I quoted a paper |
2023-06-14 04:34:54 +0200 | <arrowhead> | read: Monad Transformers and Modular Algebraic Effects: What Binds Them Together |
2023-06-14 04:34:56 +0200 | <Daniel[m]123> | ? |
2023-06-14 04:34:59 +0200 | <Daniel[m]123> | LMAO |
2023-06-14 04:35:00 +0200 | <arrowhead> | see it? |
2023-06-14 04:35:02 +0200 | <Daniel[m]123> | dude |
2023-06-14 04:35:27 +0200 | <Daniel[m]123> | We characterise a class of algebraic effects that is modular, and show how these correspond to a specific class of monad transformers. |
2023-06-14 04:35:35 +0200 | <Daniel[m]123> | aka they have a particular subset |
2023-06-14 04:35:37 +0200 | <arrowhead> | read the conclusion |
2023-06-14 04:35:46 +0200 | <arrowhead> | that's not how you read a paper, |
2023-06-14 04:35:48 +0200 | <Daniel[m]123> | the claim is the same as "haskell is a imperative language" |
2023-06-14 04:35:50 +0200 | <Daniel[m]123> | it is correct |
2023-06-14 04:36:04 +0200 | <arrowhead> | look if you want to ignore Eff = MT go ahead, but they're the same |
2023-06-14 04:36:06 +0200 | phma | (~phma@host-67-44-208-30.hnremote.net) (Read error: Connection reset by peer) |
2023-06-14 04:36:09 +0200 | <arrowhead> | the paper shows it |
2023-06-14 04:36:13 +0200 | <Daniel[m]123> | you can tell that to eff guys |
2023-06-14 04:36:18 +0200 | <Daniel[m]123> | is lexi here |
2023-06-14 04:36:21 +0200 | <arrowhead> | the difference is miniscule and hard to characterize even |
2023-06-14 04:36:29 +0200 | <arrowhead> | almost inexistent in usage |
2023-06-14 04:36:33 +0200 | phma | (~phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) |
2023-06-14 04:36:44 +0200 | <Daniel[m]123> | they showed that they both can model the same thing |
2023-06-14 04:36:51 +0200 | <Daniel[m]123> | but it is different for good reason |
2023-06-14 04:36:57 +0200 | <Daniel[m]123> | we cant say effects when we mean MT |
2023-06-14 04:37:10 +0200 | <arrowhead> | right, and if two things can outwardly do the same thing then by Category they are the same thing |
2023-06-14 04:37:41 +0200 | <Daniel[m]123> | and in particular, the actual implementation is very different |
2023-06-14 04:37:50 +0200 | <arrowhead> | Don't worry, MTs are still strictly more powerful, but if you read the paper I still challenge you to explain the difference. |
2023-06-14 04:38:00 +0200 | <arrowhead> | Daniel[m]123: for sure the implementations are completely different |
2023-06-14 04:38:20 +0200 | <Axman6> | arrowhead: you seem to be jumping a long way ahead with a language you do not yet understrand and trying to fit it into a hole that you have provided, where it solves those problems in a different way |
2023-06-14 04:38:22 +0200 | <arrowhead> | Daniel[m]123: hence the point of knowing they're equivalent, to possibly move forward with more research into one over the other |
2023-06-14 04:38:41 +0200 | <Daniel[m]123> | ??? |
2023-06-14 04:39:00 +0200 | <arrowhead> | Axman6: I don't understand. Are you saying I am trying to shape Haskell into something it is not? |
2023-06-14 04:39:01 +0200 | phma | (~phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) (Read error: Connection reset by peer) |
2023-06-14 04:39:25 +0200 | phma | (phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) |
2023-06-14 04:41:07 +0200 | <arrowhead> | all I was saying is IORef doesn't look taboo to me anymore after I saw Oleg's pure effectful state cell have an API looking exactly like IORef |
2023-06-14 04:43:08 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-06-14 04:43:08 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Read error: Connection reset by peer) |
2023-06-14 04:43:47 +0200 | td_ | (~td@i5387091C.versanet.de) (Ping timeout: 265 seconds) |
2023-06-14 04:44:32 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 04:44:58 +0200 | xff0x_ | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-06-14 04:45:17 +0200 | td_ | (~td@i53870918.versanet.de) |
2023-06-14 04:47:09 +0200 | <arrowhead> | I suppose I should use STRef for the reason that it is the proper type for modeling reference cells whereas IORef is that plus access to the real world, which can be factored out and lifted out. |
2023-06-14 04:47:56 +0200 | shapr`` | shapr |
2023-06-14 04:54:10 +0200 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving) |
2023-06-14 04:54:23 +0200 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2023-06-14 04:56:10 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-06-14 04:59:40 +0200 | hays | (rootvegeta@fsf/member/hays) |
2023-06-14 05:01:46 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Remote host closed the connection) |
2023-06-14 05:04:22 +0200 | killer | (~killer@210-129-13-32.farad.jp-east-2.compute.idcfcloud.net) |
2023-06-14 05:05:02 +0200 | <dibblego> | arrowhead: I am not in the "is or is not functional" discussion. Instead, "is or is not appropriate" |
2023-06-14 05:05:42 +0200 | killer | (~killer@210-129-13-32.farad.jp-east-2.compute.idcfcloud.net) (Remote host closed the connection) |
2023-06-14 05:06:29 +0200 | jero98772 | (~jero98772@2800:484:1d7f:5d36::2) (Remote host closed the connection) |
2023-06-14 05:09:25 +0200 | cheater | (~Username@user/cheater) |
2023-06-14 05:09:35 +0200 | <arrowhead> | dibblego: then I agree with you that STRef is more appropriate than IORef in possibly most cases and also in my case. |
2023-06-14 05:10:55 +0200 | <dibblego> | I do not. |
2023-06-14 05:11:20 +0200 | <probie> | Do many people use STRefs? I don't think I've ever found them particularly helpful - nearly every time I each for ST it's to use it with something like MVector |
2023-06-14 05:12:03 +0200 | <arrowhead> | probie: are you saying you never need a reference cell or that you use something else for a reference cell other than STRef? |
2023-06-14 05:17:29 +0200 | falafel | (~falafel@c-68-47-242-91.hsd1.tn.comcast.net) (Ping timeout: 240 seconds) |
2023-06-14 05:17:59 +0200 | son0p | (~ff@181.136.122.143) |
2023-06-14 05:19:00 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2023-06-14 05:19:11 +0200 | zmt00 | (~zmt00@user/zmt00) |
2023-06-14 05:19:13 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-06-14 05:21:08 +0200 | <probie> | I almost never need a reference cell, and in those few cases I do, it's probably a `TVar`. But most code I write is either the backend for boring web apps (mostly stateless), or games (and simple AIs for them) like reversi or fanorona and therefore not indicative of the whole community of Haskell users |
2023-06-14 05:24:41 +0200 | <arrowhead> | That is so interesting. Mind sharing the libs you use for each? For web I use servant and elm and for frontend for games, SDL and OpenGL, what about you and am I outdated? |
2023-06-14 05:25:40 +0200 | oneeyedalien | (~oneeyedal@125-63-26-34.ip4.superloop.au) |
2023-06-14 05:25:55 +0200 | oneeyedalien | (~oneeyedal@125-63-26-34.ip4.superloop.au) (Remote host closed the connection) |
2023-06-14 05:26:14 +0200 | ai5lk | (~ai5lk@209-188-121-236.taosnet.com) |
2023-06-14 05:27:10 +0200 | ai5lk | shef |
2023-06-14 05:27:45 +0200 | jtbx | (~jtbx@user/jtbx) |
2023-06-14 05:29:00 +0200 | bilegeek | (~bilegeek@2600:1008:b0ad:3907:5a86:a7b0:fb8b:a72e) |
2023-06-14 05:29:43 +0200 | phma_ | (~phma@host-67-44-208-30.hnremote.net) |
2023-06-14 05:29:44 +0200 | shef | (~ai5lk@209-188-121-236.taosnet.com) (Quit: WeeChat 3.8) |
2023-06-14 05:31:27 +0200 | cheater_ | (~Username@user/cheater) |
2023-06-14 05:31:36 +0200 | <Clinton[m]> | Is there anyway to derive an instance of a class that contains an associated data family instance? I suspect the answer is no but I thought I'd check. |
2023-06-14 05:31:48 +0200 | <probie> | Mainly servant, although I often just use WAI's `Application` type directly (running on warp) for simple, single purpose things running on google cloud run. For games, my focus is more on the AI and underlying representation of the game, so I normally don't bother with a GUI |
2023-06-14 05:32:43 +0200 | phma | (phma@2001:5b0:2172:dde8:7d71:8893:2f2:a1ae) (Ping timeout: 255 seconds) |
2023-06-14 05:32:43 +0200 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 255 seconds) |
2023-06-14 05:33:27 +0200 | <arrowhead> | probie: thank you for the informative answer. |
2023-06-14 05:33:33 +0200 | <probie> | For interfacing with a database, I use persistent and esqueleto. I'm not the biggest fan of either of those, but they work |
2023-06-14 05:34:24 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2023-06-14 05:34:27 +0200 | ai5lk | (~ai5lk@209-188-121-236.taosnet.com) |
2023-06-14 05:34:47 +0200 | <arrowhead> | yep I use both of those too, very handy |
2023-06-14 05:35:27 +0200 | cheater__ | (~Username@user/cheater) |
2023-06-14 05:35:27 +0200 | cheater__ | cheater |
2023-06-14 05:36:52 +0200 | ai5lk | (~ai5lk@209-188-121-236.taosnet.com) (Client Quit) |
2023-06-14 05:37:51 +0200 | cyphase | (~cyphase@user/cyphase) |
2023-06-14 05:38:20 +0200 | cheater_ | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-06-14 05:39:27 +0200 | notzmv | (~zmv@user/notzmv) |
2023-06-14 05:39:29 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-06-14 05:39:33 +0200 | cheater_ | (~Username@user/cheater) |
2023-06-14 05:39:34 +0200 | cheater_ | cheater |
2023-06-14 05:43:19 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2023-06-14 05:44:00 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-06-14 05:44:00 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Read error: Connection reset by peer) |
2023-06-14 05:44:26 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2023-06-14 05:44:32 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-06-14 05:52:25 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2023-06-14 05:52:40 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2023-06-14 05:53:39 +0200 | <sm> | I bookmarked a youtube video of dcoutts speaking about cabal recently (ghc contributors workshop ?).. or so I thought. Do you know where it is ? |
2023-06-14 05:57:54 +0200 | oneeyedalien | (~oneeyedal@125-63-26-34.ip4.superloop.au) |
2023-06-14 05:58:04 +0200 | oneeyedalien | (~oneeyedal@125-63-26-34.ip4.superloop.au) (Remote host closed the connection) |
2023-06-14 06:01:41 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-06-14 06:03:16 +0200 | Cadey | Xe |
2023-06-14 06:07:39 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-06-14 06:08:33 +0200 | ijqq___ | (uid603979@id-603979.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2023-06-14 06:08:33 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2023-06-14 06:12:11 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-06-14 06:14:27 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
2023-06-14 06:14:50 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 06:23:44 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2023-06-14 06:27:46 +0200 | <Nosrep> | when i'm looking at profiling output does foobar.\ mean a lambda in foobar |
2023-06-14 06:28:43 +0200 | ddellacosta | (~ddellacos@146.70.171.139) |
2023-06-14 06:29:20 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-06-14 06:30:55 +0200 | pyrex | (~pyrex@user/pyrex) |
2023-06-14 06:31:50 +0200 | ddellaco1 | (~ddellacos@146.70.165.139) (Ping timeout: 260 seconds) |
2023-06-14 06:34:53 +0200 | phma_ | (~phma@host-67-44-208-30.hnremote.net) (Read error: Connection reset by peer) |
2023-06-14 06:35:02 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-06-14 06:35:47 +0200 | phma_ | (phma@2001:5b0:210b:8018:30a:b50:188a:5ef0) |
2023-06-14 06:36:01 +0200 | pyrex | (~pyrex@user/pyrex) (Read error: Connection reset by peer) |
2023-06-14 06:39:16 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2023-06-14 06:40:38 +0200 | <c_wraith> | Nosrep: uh.. that would be an operator named .\ |
2023-06-14 06:42:09 +0200 | <c_wraith> | Nosrep: unless the token in front of it is a capital letter. In which case.. it's a parse error, as \ is syntax, not something that can belong to a module |
2023-06-14 06:44:27 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Quit: use-value) |
2023-06-14 06:45:22 +0200 | jtbx | (~jtbx@user/jtbx) (Quit: Lost terminal) |
2023-06-14 06:47:38 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-06-14 06:48:23 +0200 | jargon | (~jargon@184.101.75.235) (Remote host closed the connection) |
2023-06-14 06:49:13 +0200 | tomku | (~tomku@user/tomku) (Server closed connection) |
2023-06-14 06:49:21 +0200 | tomku | (~tomku@user/tomku) |
2023-06-14 06:56:00 +0200 | trev | (~trev@user/trev) |
2023-06-14 06:59:59 +0200 | <[Leary]> | Nosrep: It does. |
2023-06-14 07:02:33 +0200 | <c_wraith> | [Leary]: with what extensions? |
2023-06-14 07:06:20 +0200 | <[Leary]> | c_wraith: No extensions; this is in a *.prof profiling report. |
2023-06-14 07:06:37 +0200 | <c_wraith> | oh. wow. my reading comprehension sure failed there |
2023-06-14 07:09:29 +0200 | shapr | (~user@2600:1700:c640:3100:b6fa:cb8d:bd7d:c291) (Ping timeout: 240 seconds) |
2023-06-14 07:11:53 +0200 | CAT_S | (apic@brezn3.muc.ccc.de) (Server closed connection) |
2023-06-14 07:12:07 +0200 | CAT_S | (apic@brezn3.muc.ccc.de) |
2023-06-14 07:13:30 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-06-14 07:15:25 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 07:20:09 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-06-14 07:21:27 +0200 | Guest8 | (~Guest8@2001-b400-e28c-968d-c5ee-e300-cdf0-9a78.emome-ip6.hinet.net) |
2023-06-14 07:24:12 +0200 | ddellacosta | (~ddellacos@146.70.171.139) (Ping timeout: 255 seconds) |
2023-06-14 07:24:20 +0200 | chromoblob | (~user@37.113.180.121) (Ping timeout: 240 seconds) |
2023-06-14 07:33:15 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Remote host closed the connection) |
2023-06-14 07:38:41 +0200 | [_________] | (~oos95GWG@user/oos95GWG) |
2023-06-14 07:40:44 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-06-14 07:41:19 +0200 | phma_ | phma |
2023-06-14 07:46:19 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-06-14 07:46:49 +0200 | <Axman6> | probie: agreed, STRef is only really useful if you're trying to take an imperative algorithm and write it imperatively, I almost always only use mutable vectors too |
2023-06-14 07:47:16 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7072f9220dcf85561662d75.dip0.t-ipconnect.de) |
2023-06-14 07:47:36 +0200 | chromoblob | (~user@37.113.180.121) |
2023-06-14 07:51:12 +0200 | acidjnk_new | (~acidjnk@p200300d6e7072f9254d3382c8032cf2b.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-06-14 07:51:29 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-06-14 08:00:31 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-06-14 08:01:29 +0200 | chromoblob | (~user@37.113.180.121) (Ping timeout: 240 seconds) |
2023-06-14 08:11:54 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 255 seconds) |
2023-06-14 08:19:05 +0200 | michalz | (~michalz@185.246.207.205) |
2023-06-14 08:20:31 +0200 | falafel | (~falafel@2601:482:8003:cd80:e548:7d8c:2862:3dd6) |
2023-06-14 08:20:35 +0200 | mei | (~mei@user/mei) |
2023-06-14 08:22:06 +0200 | aweinsto1k | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (Server closed connection) |
2023-06-14 08:22:18 +0200 | aweinstock | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) |
2023-06-14 08:22:43 +0200 | shachaf | (~shachaf@user/shachaf) (Server closed connection) |
2023-06-14 08:22:51 +0200 | shachaf | (~shachaf@user/shachaf) |
2023-06-14 08:23:12 +0200 | user2 | (~user@103.206.114.86) (Quit: WeeChat 3.8) |
2023-06-14 08:32:01 +0200 | Co0kie | (~Jura@145.224.73.17) |
2023-06-14 08:34:18 +0200 | mncheckm | (~mncheck@193.224.205.254) |
2023-06-14 08:34:57 +0200 | phma | (phma@2001:5b0:210b:8018:30a:b50:188a:5ef0) (Read error: Connection reset by peer) |
2023-06-14 08:35:50 +0200 | phma | (phma@2001:5b0:211c:2af8:caba:1622:ca05:4197) |
2023-06-14 08:36:39 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7072f9220dcf85561662d75.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-06-14 08:36:39 +0200 | xff0x_ | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds) |
2023-06-14 08:38:28 +0200 | xff0x_ | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-06-14 08:39:54 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 08:45:29 +0200 | falafel | (~falafel@2601:482:8003:cd80:e548:7d8c:2862:3dd6) (Ping timeout: 240 seconds) |
2023-06-14 08:46:59 +0200 | bilegeek | (~bilegeek@2600:1008:b0ad:3907:5a86:a7b0:fb8b:a72e) (Quit: Leaving) |
2023-06-14 08:53:33 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:adaa:7968:23a1:1d20) |
2023-06-14 09:09:49 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2023-06-14 09:14:39 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7072f92c01bf8b2f3a32a4b.dip0.t-ipconnect.de) |
2023-06-14 09:16:14 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 09:18:49 +0200 | fendor | (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) |
2023-06-14 09:20:33 +0200 | fendor | (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) (Remote host closed the connection) |
2023-06-14 09:21:02 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-06-14 09:22:18 +0200 | fendor | (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) |
2023-06-14 09:25:27 +0200 | cheater | (~Username@user/cheater) |
2023-06-14 09:25:48 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 09:26:24 +0200 | xax__ | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2023-06-14 09:27:02 +0200 | mmhat | (~mmh@p200300f1c702b008ee086bfffe095315.dip0.t-ipconnect.de) |
2023-06-14 09:27:22 +0200 | mmhat | (~mmh@p200300f1c702b008ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-06-14 09:27:22 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Read error: Connection reset by peer) |
2023-06-14 09:29:19 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) |
2023-06-14 09:29:32 +0200 | taupiqueur2 | (~taupiqueu@2a02-842a-8180-4601-0906-7ddd-44ff-a642.rev.sfr.net) (Ping timeout: 240 seconds) |
2023-06-14 09:31:20 +0200 | <arrowhead> | I stand corrected and I appreciate being set on a good course promptly by the feedback here. I am enjoying lenses and in the end they make it easier to "change" deep fields than manual IO unlayering. Thank you #haskell and keep up the awesome. |
2023-06-14 09:32:25 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-06-14 09:33:51 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-06-14 09:35:08 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
2023-06-14 09:35:09 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-06-14 09:36:16 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:f71f:fbb2:cbdf:4da0) |
2023-06-14 09:37:03 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-06-14 09:37:11 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Client Quit) |
2023-06-14 09:37:41 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-06-14 09:41:26 +0200 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 260 seconds) |
2023-06-14 09:41:54 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-06-14 09:42:59 +0200 | taupiqueur2 | (~taupiqueu@2a02-842a-8180-4601-3041-7107-38e4-822b.rev.sfr.net) |
2023-06-14 09:43:44 +0200 | <Hecate> | taupiqueur2: salut 👋 |
2023-06-14 09:50:27 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Read error: Connection reset by peer) |
2023-06-14 09:50:37 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-06-14 09:51:15 +0200 | drdo | (~drdo@bl8-153-185.dsl.telepac.pt) |
2023-06-14 09:51:37 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2023-06-14 09:52:02 +0200 | stallmanator | (~stallmana@user/stallmanator) (Quit: Ping timeout (120 seconds)) |
2023-06-14 09:52:24 +0200 | stallmanator | (~stallmana@user/stallmanator) |
2023-06-14 09:53:01 +0200 | Guest8 | (~Guest8@2001-b400-e28c-968d-c5ee-e300-cdf0-9a78.emome-ip6.hinet.net) (Quit: Client closed) |
2023-06-14 09:55:29 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-06-14 09:55:36 +0200 | gurkenglas | (~user@dynamic-046-114-177-119.46.114.pool.telefonica.de) |
2023-06-14 09:56:59 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-06-14 10:05:01 +0200 | taupiqueur2 | (~taupiqueu@2a02-842a-8180-4601-3041-7107-38e4-822b.rev.sfr.net) (Ping timeout: 240 seconds) |
2023-06-14 10:05:44 +0200 | czy | (~user@host-140-26.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-06-14 10:05:56 +0200 | chomwitt | (~chomwitt@2a02:587:7a0e:cf00:1ac0:4dff:fedb:a3f1) |
2023-06-14 10:07:13 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-06-14 10:11:46 +0200 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 260 seconds) |
2023-06-14 10:14:56 +0200 | dcoutts_ | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-06-14 10:14:56 +0200 | arrowhead | (~arrowhead@2603-7000-9b3f-6934-84fe-c7f9-02f3-6912.res6.spectrum.com) (Read error: Connection reset by peer) |
2023-06-14 10:15:19 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) (Quit: leaving) |
2023-06-14 10:17:39 +0200 | phma | (phma@2001:5b0:211c:2af8:caba:1622:ca05:4197) (Read error: Connection reset by peer) |
2023-06-14 10:18:05 +0200 | phma | (~phma@host-67-44-208-54.hnremote.net) |
2023-06-14 10:18:06 +0200 | bontaq | (~user@ool-45779b84.dyn.optonline.net) |
2023-06-14 10:18:32 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-06-14 10:20:57 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2023-06-14 10:21:26 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-06-14 10:25:35 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 10:25:45 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 260 seconds) |
2023-06-14 10:28:55 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-06-14 10:33:00 +0200 | juri_ | (~juri@79.140.121.143) |
2023-06-14 10:34:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Remote host closed the connection) |
2023-06-14 10:36:46 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f078:b941:1c44:5de9) |
2023-06-14 10:41:23 +0200 | defanor | (~defanor@tart.uberspace.net) (Quit: .) |
2023-06-14 10:41:42 +0200 | defanor | (~defanor@tart.uberspace.net) |
2023-06-14 10:42:37 +0200 | zeenk | (~zeenk@2a02:2f04:a106:3c00::7fe) |
2023-06-14 10:43:46 +0200 | kitzman_ | (~kitzman@user/dekenevs) (Quit: C-x C-c) |
2023-06-14 10:44:09 +0200 | kitzman | (~kitzman@user/dekenevs) |
2023-06-14 10:44:55 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f078:b941:1c44:5de9) (Quit: use-value) |
2023-06-14 10:48:01 +0200 | defanor | (~defanor@tart.uberspace.net) (Quit: .) |
2023-06-14 10:48:45 +0200 | defanor | (~defanor@tart.uberspace.net) |
2023-06-14 10:49:01 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:2cf1:36b7:6ec2:d529) |
2023-06-14 10:49:47 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-06-14 10:55:29 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds) |
2023-06-14 10:56:15 +0200 | accord | (uid568320@id-568320.hampstead.irccloud.com) |
2023-06-14 11:00:00 +0200 | chele | (~chele@user/chele) |
2023-06-14 11:01:18 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-06-14 11:05:57 +0200 | <eugenrh> | What texts do you recommend me for learning the theoretical maths used by or are behind Haskell? Unliked imperative languages that I learnt (like Java), in the case of Haskell, I feel that the Haskell tutorials/guides/books are not enough for learning/understanding the language. There is these mathematical theory that I feel I'm missing, especially when I reading this irc chat that is full of it.. |
2023-06-14 11:05:59 +0200 | <eugenrh> | So, what do you recommend, some nice readings about the theory? |
2023-06-14 11:07:13 +0200 | <merijn> | eugenrh: There's actually lots of different theories bandied about :p |
2023-06-14 11:07:51 +0200 | <eugenrh> | something for beginners/intermediate level.. perhaps |
2023-06-14 11:08:12 +0200 | <merijn> | eugenrh: The lens stuff uses a lot of category theory and associated terminology, although I would say that in terms of ROI for "effort-to-pay off" isn't there for beginners |
2023-06-14 11:08:47 +0200 | <merijn> | eugenrh: It's hard to go wrong with basic type theory, though. For which the standard intro textbook would be "Types and Programming Languages" by Benjamin Pierce |
2023-06-14 11:08:56 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2023-06-14 11:09:30 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2023-06-14 11:09:49 +0200 | <eugenrh> | So, I'm looking for the theory that any haskeller should now.. |
2023-06-14 11:10:20 +0200 | <eugenrh> | merijn: I'll check that thanks. How about category theory? any readings there? |
2023-06-14 11:11:27 +0200 | <merijn> | eugenrh: There's a bunch of books, I've tried like 3 different ones and bounced off of all of them, so not any I'd recommend :p |
2023-06-14 11:11:31 +0200 | <lortabac> | Pierce's book also talks about object-oriented programming, so it's also useful if you know Java and want to understand it from a theoretical perspective |
2023-06-14 11:11:47 +0200 | Lord_of_Life_ | Lord_of_Life |
2023-06-14 11:12:09 +0200 | <merijn> | eugenrh: Also, the Software Foundations book (well, I guess technically series now?) is really good |
2023-06-14 11:13:23 +0200 | <merijn> | It's not so much theory haskell is based on and more "formal methods/reasoning about software", but it's still very good and helps illustrate why purely functional stuff is easier to reason about |
2023-06-14 11:13:33 +0200 | <lortabac> | that said, I am strongly against the idea that you *need* the theory in order to learn Haskell |
2023-06-14 11:14:09 +0200 | <lortabac> | it's good to learn the theory but it's certainly not required |
2023-06-14 11:14:12 +0200 | <merijn> | I don't think you need it to learn haskell, but I do think it never hurts to study :) |
2023-06-14 11:14:29 +0200 | <lortabac> | yes I agree |
2023-06-14 11:14:32 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7072f92c01bf8b2f3a32a4b.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2023-06-14 11:14:55 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-06-14 11:15:11 +0200 | <merijn> | And if you're interested in underlying theory, TaPL is never a bad choice :D |
2023-06-14 11:16:08 +0200 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (Remote host closed the connection) |
2023-06-14 11:17:50 +0200 | <[Leary]> | @where prereqs |
2023-06-14 11:17:50 +0200 | <lambdabot> | http://www.vex.net/~trebla/haskell/prerequisite.xhtml |
2023-06-14 11:18:13 +0200 | <[Leary]> | eugenrh: Try reading the above; there's not much to it. More than advanced maths, you probably just need practice. |
2023-06-14 11:18:29 +0200 | AlexNoo_ | AlexNoo |
2023-06-14 11:19:25 +0200 | <eugenrh> | ok |
2023-06-14 11:20:32 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds) |
2023-06-14 11:22:05 +0200 | bjs | (sid190364@user/bjs) () |
2023-06-14 11:22:24 +0200 | bjs | (sid190364@user/bjs) |
2023-06-14 11:22:47 +0200 | polux | (~polux@51-15-169-172.rev.poneytelecom.eu) |
2023-06-14 11:22:49 +0200 | <eugenrh> | lortabac: well, I would like also to (better) understand some discussion here, that made me think I'm really missing some theory.. |
2023-06-14 11:23:03 +0200 | <tdammers> | there is actually surprisingly little theory that "any haskeller would know". |
2023-06-14 11:23:11 +0200 | <Daniel[m]123> | depends on whether you want to productive or not i guess |
2023-06-14 11:23:43 +0200 | <tdammers> | IME not even that |
2023-06-14 11:23:48 +0200 | <Daniel[m]123> | it's like getting people to explain monads, then they point you to theory, even though mathematicians would tell you technically the theory isnt used in the implementation of monads in haskell |
2023-06-14 11:24:03 +0200 | Nikopol | (nikopol@user/astrorigin) (Server closed connection) |
2023-06-14 11:24:14 +0200 | Nikopol | (nikopol@user/astrorigin) |
2023-06-14 11:25:05 +0200 | <lortabac> | eugenrh: I mean you could have lots of theoretical discussions around Java too |
2023-06-14 11:25:05 +0200 | <tdammers> | monads are actually a great example. understanding category theory monads may lead to a deeper understanding and a broader perspective of Haskell's Monad typeclass, but you absolutely do not need to know any category theory to be productive with Monads in Haskell. |
2023-06-14 11:25:42 +0200 | <lortabac> | it's just that here there are more people who are interested in the theory |
2023-06-14 11:26:06 +0200 | <eugenrh> | yes, a lot more :) |
2023-06-14 11:26:16 +0200 | <tdammers> | also that Haskell's design has more theoretical foundations behind it than, say, Java |
2023-06-14 11:26:37 +0200 | <tdammers> | so knowing the relevant theory *is* important if you want to discuss design decisions in the language itself |
2023-06-14 11:26:53 +0200 | <tdammers> | or, well, at least it is sometimes |
2023-06-14 11:27:55 +0200 | acidjnk | (~acidjnk@p200300d6e7072f92753eec54266ef16c.dip0.t-ipconnect.de) |
2023-06-14 11:28:46 +0200 | <merijn> | eugenrh: The core theory underlying Haskell (i.e. the one used within GHC is: System F_omega, which is a specific (typed) lambda calculus. As such lambda calculus and type theory are the most relevant/closely related to "Haskell the language" |
2023-06-14 11:29:01 +0200 | <merijn> | ) |
2023-06-14 11:29:43 +0200 | <Daniel[m]123> | i guess a large disclaimer is that the theory doesn't actually reflect correctness in programs unless you're dealing with restricted sets of inputs |
2023-06-14 11:29:49 +0200 | <eugenrh> | I do want to learn Haskell very well and stick with it. I worked in Java for about 15 years, but after I read LYAH, I was very very impressed with Haskell and decided to switch languages. |
2023-06-14 11:30:43 +0200 | <merijn> | eugenrh: But as mentioned before diving into that theory is not *necessary* for getting productive in Haskell, and I would (personally) say that it's considerably easier to get into the theory once you get the hang of Haskell a bit |
2023-06-14 11:31:21 +0200 | <eugenrh> | I think I've passed that "a bit" phase.. |
2023-06-14 11:32:31 +0200 | <merijn> | The nice thing about TaPL is that it comes with example implementations of it's type systems/type checkers too (In ocaml, rather than haskell, but even with very basic Haskell knowledge the ocaml should be pretty straightforward to read) |
2023-06-14 11:32:56 +0200 | <eugenrh> | I feel that to learn Haskell, "in the right way", I should need to also learn some math theory behind it. Also, there a lot of mathematical terms everywhere. Not at all around Java... |
2023-06-14 11:33:38 +0200 | ncf | recommends the haskell wikibook, as always |
2023-06-14 11:33:48 +0200 | <merijn> | tbh, I don't think there is a universal right way :p |
2023-06-14 11:33:53 +0200 | <eugenrh> | ncf: yes, reading that now |
2023-06-14 11:34:10 +0200 | <[Leary]> | Lambda calculus is the one thing I'd actually suggest learning early (or before) Haskell. Not as 'theory', but as a foundational language for functional programming. |
2023-06-14 11:34:19 +0200 | <[Leary]> | Haskell is too big. |
2023-06-14 11:34:38 +0200 | <eugenrh> | merijn: trying to avoid a "bad way" :) |
2023-06-14 11:35:21 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 11:35:53 +0200 | <tdammers> | re the "mathematical terms": Haskell borrows a lot of terminology from Math (and particularly set theory, formal logic, and category theory), but the borrowing is often somewhat handwavey, and learning the original concept in a Math context just to use its Haskell namesake is often about as sensible as learning classical Latin to ask for directions in Spanish. |
2023-06-14 11:36:21 +0200 | <eugenrh> | [Leary]: and a nice reading about lamda calculus? I want "nice" as theory is always hard to read... Like "nice" as in LYAH nice.. |
2023-06-14 11:37:52 +0200 | <[Leary]> | eugenrh: I wish I had a good link for this, but I don't; I learned LC through play. |
2023-06-14 11:38:12 +0200 | <eugenrh> | tdammers: ok, I understand that it's not 100% translation into the language.. But, as you said, the termnology is used a lot.. |
2023-06-14 11:38:40 +0200 | <tdammers> | eugenrh: yes, so learn what the terminology means in Haskell. |
2023-06-14 11:39:17 +0200 | juri_ | (~juri@79.140.121.143) (Read error: Connection reset by peer) |
2023-06-14 11:39:30 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Ping timeout: 240 seconds) |
2023-06-14 11:39:44 +0200 | <lortabac> | TAPL explains lambda calculus quite well, you can skip the formal proofs if you are not interested |
2023-06-14 11:39:59 +0200 | <lortabac> | but it's expensive, it might not be worth if you are only going to read one chapter |
2023-06-14 11:40:00 +0200 | <tdammers> | "Functor means you can fmap, where fmap :: (a -> b) -> f a -> f b" is a more helpful explanation than "a functor is a mapping between categories that preserves identity morphisms and composition of morphisms" |
2023-06-14 11:40:41 +0200 | juri_ | (~juri@79.140.121.143) |
2023-06-14 11:40:45 +0200 | <tdammers> | it's kind of the same thing, but it's not super obvious how the CT definition maps to Haskell |
2023-06-14 11:42:12 +0200 | <eugenrh> | ok, I see in the TAPL's table of contents, sections about lamda calculus |
2023-06-14 11:44:37 +0200 | chromoblob | (~user@37.113.180.121) |
2023-06-14 11:45:10 +0200 | kraftwerk28 | (~kraftwerk@178.62.210.83) (Quit: *disconnects*) |
2023-06-14 11:45:41 +0200 | juri__ | (~juri@84-19-175-187.pool.ovpn.com) |
2023-06-14 11:45:59 +0200 | juri_ | (~juri@79.140.121.143) (Ping timeout: 240 seconds) |
2023-06-14 11:46:15 +0200 | kraftwerk28 | (~kraftwerk@178.62.210.83) |
2023-06-14 11:47:07 +0200 | <eugenrh> | yes, it is expensive |
2023-06-14 11:47:45 +0200 | <eugenrh> | maybe I'll just read about it on wikipedia.. |
2023-06-14 11:49:32 +0200 | <[Leary]> | eugenrh: Wikipedia is bad for learning; at least find some lecture notes, e.g., from a quick google search: https://www.cs.cmu.edu/~fp/courses/15814-f21/lectures/01-lambda.pdf (I only skimmed, but it looks reasonable). |
2023-06-14 11:49:56 +0200 | chromoblob | (~user@37.113.180.121) (Ping timeout: 240 seconds) |
2023-06-14 11:50:06 +0200 | <eugenrh> | thank you! |
2023-06-14 11:50:13 +0200 | <[Leary]> | You'll need to follow that up with a lot of exercises, though. |
2023-06-14 12:00:16 +0200 | caubert | (~caubert@user/caubert) (Server closed connection) |
2023-06-14 12:00:34 +0200 | caubert | (~caubert@user/caubert) |
2023-06-14 12:03:39 +0200 | <eugenrh> | [Leary]: I'll do all that course https://www.cs.cmu.edu/~fp/courses/15814-f21/schedule.html. Also, that course recommends as on optional textbook this one: Robert Harper, 'Practical Foundations for Programming Languages', and that has a 578 pages online pdf preview version. But it looks intimidating and not what I need right now.. |
2023-06-14 12:03:43 +0200 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Server closed connection) |
2023-06-14 12:04:03 +0200 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-06-14 12:05:15 +0200 | laxask | (~laxask@cfeld-pcx40162.desy.de) |
2023-06-14 12:05:29 +0200 | fbytez_ | (~uid@2001:bc8:2117:100::) |
2023-06-14 12:05:52 +0200 | lottaquestions | (~nick@2607:fa49:503f:6d00:a5bc:3af4:48cc:9dd6) |
2023-06-14 12:06:06 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-06-14 12:08:09 +0200 | xff0x_ | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds) |
2023-06-14 12:11:44 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-06-14 12:12:26 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-06-14 12:14:44 +0200 | Co0kie | (~Jura@145.224.73.17) (Ping timeout: 265 seconds) |
2023-06-14 12:22:00 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:1181:6da5:7700:e0d3) |
2023-06-14 12:25:42 +0200 | <Profpatsch> | Is there any pattern for writing a (Json Value) parser which is called from multiple contexts, and only a subset needs to be parsed from each context |
2023-06-14 12:26:16 +0200 | <Profpatsch> | e.g. e.g. I want to get the fields users.foo and bar.baz in one context and users.bar and baz.bla in another context |
2023-06-14 12:26:23 +0200 | koolazer | (~koo@user/koolazer) (Server closed connection) |
2023-06-14 12:26:35 +0200 | <Profpatsch> | but the parser should not fail in the first context if users.bar is not set and not fail in the second if users.foo is not set |
2023-06-14 12:26:40 +0200 | koolazer | (~koo@user/koolazer) |
2023-06-14 12:27:30 +0200 | <Profpatsch> | best I can think about is writing very fine-grained parsers and then combining them ad-hoc |
2023-06-14 12:27:48 +0200 | <ncf> | parseFooBaz <|> parseBarBla ? |
2023-06-14 12:27:52 +0200 | <Profpatsch> | I guess HasField will have to do |
2023-06-14 12:28:14 +0200 | <Profpatsch> | ncf: I have a config file which should only annoy the user if they want to use a subcommand that needs a field |
2023-06-14 12:28:37 +0200 | <Profpatsch> | so if I want to call `cli foo` I should only be required to set the config options that are relevant to the `foo` subcommand |
2023-06-14 12:28:45 +0200 | <Profpatsch> | same for `cli bar` |
2023-06-14 12:28:58 +0200 | <Profpatsch> | yeah, I think HasField will be good for this |
2023-06-14 12:29:29 +0200 | <Profpatsch> | Oh, and in addition I’m generating a schema for all config options, so I’d need a “fullParser” that concats all subsets of parsers somehow |
2023-06-14 12:30:19 +0200 | <Profpatsch> | I’ll see if I can get a union operation working |
2023-06-14 12:30:53 +0200 | <Profpatsch> | (the config.json starts with "$schema": "./generated-schema.json" which is auto-updated iff the schema changes |
2023-06-14 12:31:03 +0200 | <ncf> | i'd parse everything into Maybe and let subcommands complain if they get Nothing |
2023-06-14 12:31:23 +0200 | <Profpatsch> | ncf: yeah, that’s another way to do it I guess |
2023-06-14 12:31:25 +0200 | <Profpatsch> | hrm |
2023-06-14 12:32:06 +0200 | <Profpatsch> | HasField is so good, now Haskal only needs compiler support for anonymous structs and we are golden |
2023-06-14 12:32:18 +0200 | <Profpatsch> | *only* :P |
2023-06-14 12:33:00 +0200 | chromoblob | (~user@37.113.180.121) |
2023-06-14 12:36:20 +0200 | laxask | (~laxask@cfeld-pcx40162.desy.de) (Quit: Client closed) |
2023-06-14 12:36:50 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-06-14 12:41:08 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2023-06-14 12:42:50 +0200 | <[exa]> | For dockerized haskell apps, is there any simple way to install "only dependencies" in an intermediate docker build step so that the dependencies of the package don't need to be recompiled everytime I rebuild the image? |
2023-06-14 12:43:21 +0200 | <[exa]> | (problem: I change 1 letter in the code -> docker rebuilds everything) |
2023-06-14 12:44:19 +0200 | <[exa]> | spoiler: cabal install --only-dependencies doesn't cut it because docker is unaware of the fact that nothing changed |
2023-06-14 12:51:19 +0200 | __monty__ | (~toonn@user/toonn) |
2023-06-14 13:00:58 +0200 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
2023-06-14 13:01:49 +0200 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) |
2023-06-14 13:03:13 +0200 | xff0x_ | (~xff0x@ai098135.d.east.v6connect.net) |
2023-06-14 13:03:55 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) |
2023-06-14 13:03:55 +0200 | Stone | (~Stone@2405:201:c02a:1274:95a:6d70:6567:7cf8) |
2023-06-14 13:04:51 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 255 seconds) |
2023-06-14 13:08:16 +0200 | texasmynsted | (~username@99.96.221.112) (Server closed connection) |
2023-06-14 13:08:38 +0200 | texasmynsted | (~username@99.96.221.112) |
2023-06-14 13:09:32 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 13:11:46 +0200 | accord | (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-06-14 13:14:18 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-06-14 13:17:43 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 13:18:18 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-06-14 13:19:01 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds) |
2023-06-14 13:19:23 +0200 | Stone | (~Stone@2405:201:c02a:1274:95a:6d70:6567:7cf8) (Ping timeout: 245 seconds) |
2023-06-14 13:22:24 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-06-14 13:36:02 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) |
2023-06-14 13:36:48 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Client Quit) |
2023-06-14 13:37:08 +0200 | fbytez_ | (~uid@2001:bc8:2117:100::) (Changing host) |
2023-06-14 13:37:08 +0200 | fbytez_ | (~uid@user/fbytez) |
2023-06-14 13:38:09 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 255 seconds) |
2023-06-14 13:40:04 +0200 | laxask | (~laxask@cfeld-pcx40162.desy.de) |
2023-06-14 13:40:39 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-06-14 13:43:45 +0200 | <merijn> | I mean, wouldn't the solution be to make docker aware that nothing changed? |
2023-06-14 13:45:56 +0200 | <hpc> | whenever people encounter this problem in other languages, the answer always seems to be making intermediate images |
2023-06-14 13:46:32 +0200 | <merijn> | hpc: I mean, I generally think the appropriate solution is: get rid of docker, but I realise that's generally not the desired answer :p |
2023-06-14 13:46:50 +0200 | <hpc> | yeah, that too |
2023-06-14 13:48:10 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-06-14 13:48:16 +0200 | laxask | (~laxask@cfeld-pcx40162.desy.de) () |
2023-06-14 13:53:29 +0200 | gascown | (~My_user_n@81.208.15.172) |
2023-06-14 13:57:05 +0200 | danse-nr3 | (~francesco@151.19.254.7) |
2023-06-14 13:58:33 +0200 | byte` | (~byte@user/byte) |
2023-06-14 13:58:44 +0200 | taupiqueur2 | (~taupiqueu@2a02-842a-8180-4601-e9a3-1936-d44b-526b.rev.sfr.net) |
2023-06-14 13:59:18 +0200 | byte | (~byte@user/byte) (Ping timeout: 268 seconds) |
2023-06-14 13:59:18 +0200 | byte` | byte |
2023-06-14 14:02:14 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-06-14 14:02:14 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-06-14 14:02:14 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-06-14 14:11:06 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-06-14 14:12:42 +0200 | laxmik | (~user@cfeld-pcx40162.desy.de) |
2023-06-14 14:18:45 +0200 | erisco_ | (~erisco@d24-141-66-165.home.cgocable.net) |
2023-06-14 14:19:01 +0200 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 240 seconds) |
2023-06-14 14:19:10 +0200 | erisco_ | erisco |
2023-06-14 14:23:21 +0200 | danse-nr3 | (~francesco@151.19.254.7) (Read error: Connection reset by peer) |
2023-06-14 14:23:23 +0200 | danse-nr3_ | (~francesco@151.35.246.225) |
2023-06-14 14:24:44 +0200 | taupiqueur2 | (~taupiqueu@2a02-842a-8180-4601-e9a3-1936-d44b-526b.rev.sfr.net) (Ping timeout: 240 seconds) |
2023-06-14 14:24:55 +0200 | taupiqueur2 | (~taupiqueu@2a02:842a:8180:4601:95a3:46c4:9fe7:ffd7) |
2023-06-14 14:27:14 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-06-14 14:38:21 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 14:38:53 +0200 | laxmik | michals |
2023-06-14 14:41:46 +0200 | Everything | (~Everythin@static.208.206.21.65.clients.your-server.de) (Server closed connection) |
2023-06-14 14:41:55 +0200 | Everything | (~Everythin@static.208.206.21.65.clients.your-server.de) |
2023-06-14 14:43:00 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Ping timeout: 260 seconds) |
2023-06-14 14:43:23 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-06-14 14:45:44 +0200 | hippoid | (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Remote host closed the connection) |
2023-06-14 14:46:06 +0200 | hippoid | (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) |
2023-06-14 14:48:50 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2023-06-14 14:51:06 +0200 | danse-nr3_ | (~francesco@151.35.246.225) (Ping timeout: 268 seconds) |
2023-06-14 14:56:42 +0200 | cheater_ | (~Username@user/cheater) |
2023-06-14 14:59:39 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal) |
2023-06-14 15:00:00 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-06-14 15:00:30 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2023-06-14 15:00:39 +0200 | cheater_ | cheater |
2023-06-14 15:02:01 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Quit: leaving) |
2023-06-14 15:02:02 +0200 | barcisz | (~barcisz@79.191.35.59.ipv4.supernova.orange.pl) |
2023-06-14 15:02:39 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-06-14 15:05:29 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-06-14 15:06:25 +0200 | jero98772 | (~jero98772@2800:484:1d7f:5d36::2) |
2023-06-14 15:08:04 +0200 | danse-nr3_ | (~francesco@151.35.246.225) |
2023-06-14 15:09:10 +0200 | Pickchea | (~private@user/pickchea) |
2023-06-14 15:16:57 +0200 | shef | (~ai5lk@209-188-121-236.taosnet.com) |
2023-06-14 15:18:28 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 15:18:57 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection) |
2023-06-14 15:19:25 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 15:20:12 +0200 | shef | (~ai5lk@209-188-121-236.taosnet.com) (Client Quit) |
2023-06-14 15:23:08 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2023-06-14 15:25:08 +0200 | acidjnk | (~acidjnk@p200300d6e7072f92753eec54266ef16c.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2023-06-14 15:25:51 +0200 | shef | (~ai5lk@209-188-121-236.taosnet.com) |
2023-06-14 15:26:24 +0200 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 248 seconds) |
2023-06-14 15:39:26 +0200 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
2023-06-14 15:41:04 +0200 | ddellacosta | (~ddellacos@143.244.47.89) |
2023-06-14 15:45:33 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-06-14 15:48:33 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-06-14 15:50:18 +0200 | chromoblob | (~user@37.113.180.121) (Ping timeout: 265 seconds) |
2023-06-14 15:50:50 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-06-14 15:51:21 +0200 | Ross[m]1 | (~zhichuche@2001:470:69fc:105::3:584b) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | ibizaman[m] | (~ibizamanm@2001:470:69fc:105::a3d) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | lilpotent_jlemen | (~lilpotent@2001:470:69fc:105::3:6eb6) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | DustinStiles[m] | (~duwstiles@2001:470:69fc:105::3:699b) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | ocharles[m] | (~ocharlesm@2001:470:69fc:105::3:5899) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | oak- | (~oak-@2001:470:69fc:105::fcd) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | jade[m] | (~jade256th@2001:470:69fc:105::3:58df) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | teo | (~teo@user/teo) (Write error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | Daniel[m]123 | (~danieltan@2001:470:69fc:105::3:6e5e) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | tbidne[m] | (~tbidnemat@2001:470:69fc:105::3:6d42) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | aerc[m] | (~aercmatri@2001:470:69fc:105::3:67b9) (Read error: Connection reset by peer) |
2023-06-14 15:51:21 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Write error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | somerandomnick[m | (~somerando@2001:470:69fc:105::3:4f2e) (Write error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | jorwas[m] | (~jorwasmat@2001:470:69fc:105::3:60e7) (Write error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | kleenestar[m] | (~kleenesta@2001:470:69fc:105::3:6d78) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Write error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | ners[m] | (~nersnixos@2001:470:69fc:105::3:648b) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | supersven[m] | (~supersven@2001:470:69fc:105::31b6) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | zfnmxt | (~zfnmxt@user/zfnmxt) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | polykernel[m] | (~polykerne@user/polykernel) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | xrvdg[m] | (~xrvdgmatr@2001:470:69fc:105::3:625a) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | shapr[m] | (~shaprcofr@2001:470:69fc:105::2:d107) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | aaronv | (~aaronv@user/aaronv) (Read error: Connection reset by peer) |
2023-06-14 15:51:22 +0200 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | jmcantrell | (~jmcantrel@user/jmcantrell) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Null_A[m] | (~jasonjckn@2001:470:69fc:105::bb85) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | m1-s[m] | (~m1-smatri@2001:470:69fc:105::2:39da) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | elevenkb | (~elevenkb@2001:470:69fc:105::2:cb89) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | hsiktas[m] | (~hsiktasm]@2001:470:69fc:105::30d4) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | eldritchcookie[m | (~eldritchc@2001:470:69fc:105::2:d53c) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | hellwolf[m] | (~hellwolfm@2001:470:69fc:105::3:6a4) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Inst[m] | (~instrmatr@2001:470:69fc:105::1:903e) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | alanz | (~alanz@2001:470:69fc:105::2:49a6) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Deide | (~deide@user/deide) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | chreekat | (~chreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | kadoban | (~kadoban@user/kadoban) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | end- | (~end@user/end/x-0094621) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | akadude[m] | (~akadudema@2001:470:69fc:105::2:5bf7) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | zebrag[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | Las[m]1 | (~lasmatrix@2001:470:69fc:105::74e) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | ormaaaj | (~ormaaj@user/ormaaj) (Read error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | bgamari[m] | (~bgamari@2001:470:69fc:105::c7b9) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | nicm[m] | (~nicmollel@2001:470:69fc:105::1:feeb) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | joyfulmantis[m] | (~joyfulman@2001:470:69fc:105::3:400a) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | sm | (~sm@plaintextaccounting/sm) (Write error: Connection reset by peer) |
2023-06-14 15:51:23 +0200 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) (Read error: Connection reset by peer) |
2023-06-14 15:51:25 +0200 | paulapatience | (~paulapati@2001:470:69fc:105::16a4) (Read error: Connection reset by peer) |
2023-06-14 15:54:32 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 240 seconds) |
2023-06-14 15:54:42 +0200 | hexology | (~hexology@user/hexology) |
2023-06-14 15:56:01 +0200 | Hafydd | (~Hafydd@user/hafydd) (Ping timeout: 240 seconds) |
2023-06-14 15:57:17 +0200 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) |
2023-06-14 15:57:17 +0200 | <MangoIV[m]> | <Profpatsch> "HasField is so good, now..." <- why do you need compiler support? I think the ways of simulating is are pretty ergonomic, no? |
2023-06-14 15:57:17 +0200 | <MangoIV[m]> | perhaps they are not fast thought |
2023-06-14 15:57:17 +0200 | <MangoIV[m]> | * perhaps they are not fast though |
2023-06-14 15:57:30 +0200 | elain4 | (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) |
2023-06-14 15:58:54 +0200 | Hafydd | (~Hafydd@user/hafydd) |
2023-06-14 15:59:19 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2023-06-14 16:00:43 +0200 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) |
2023-06-14 16:00:43 +0200 | <jean-paul[m]> | [exa]: You can build your Haskell and Docker images with Nix and you'll get pretty good caching properties. |
2023-06-14 16:00:58 +0200 | <jean-paul[m]> | As a bonus, this is a useful step towards getting rid of your Docker images too ;) |
2023-06-14 16:01:11 +0200 | <merijn> | By replacing them with Nix >.> |
2023-06-14 16:01:39 +0200 | <merijn> | I'm not convinced that's great, unless you wanted to switch careers to "nix infrastructure maintainer" at your company :p |
2023-06-14 16:04:34 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 16:04:49 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 16:05:37 +0200 | cheater_ | (~Username@user/cheater) |
2023-06-14 16:06:29 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2023-06-14 16:06:43 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2023-06-14 16:07:43 +0200 | cheater__ | (~Username@user/cheater) |
2023-06-14 16:09:34 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-06-14 16:09:53 +0200 | juri__ | juri_ |
2023-06-14 16:09:55 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-06-14 16:11:59 +0200 | cheater__ | (~Username@user/cheater) (Ping timeout: 246 seconds) |
2023-06-14 16:12:03 +0200 | cheater_ | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-06-14 16:14:05 +0200 | chromoblob | (~user@37.113.180.121) |
2023-06-14 16:16:00 +0200 | <Profpatsch> | MangoIV[m]: they are neither fast nor ergonomics |
2023-06-14 16:16:01 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2023-06-14 16:16:01 +0200 | Null_A[m] | (~jasonjckn@2001:470:69fc:105::bb85) |
2023-06-14 16:16:01 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2023-06-14 16:16:01 +0200 | ocharles[m] | (~ocharlesm@2001:470:69fc:105::3:5899) |
2023-06-14 16:16:01 +0200 | alanz | (~alanz@2001:470:69fc:105::2:49a6) |
2023-06-14 16:16:01 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2023-06-14 16:16:01 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-06-14 16:16:02 +0200 | <Profpatsch> | -s |
2023-06-14 16:16:02 +0200 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) |
2023-06-14 16:16:03 +0200 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2023-06-14 16:16:03 +0200 | Deide | (~deide@user/deide) |
2023-06-14 16:16:03 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2023-06-14 16:16:03 +0200 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2023-06-14 16:16:03 +0200 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2023-06-14 16:16:03 +0200 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2023-06-14 16:16:09 +0200 | gurkenglas | (~user@dynamic-046-114-177-119.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-06-14 16:16:23 +0200 | <Profpatsch> | And they tend to trigger compiler regressions |
2023-06-14 16:17:05 +0200 | <Profpatsch> | MangoIV[m]: I released our workaround recently, which is reasonably nice to use in practical projects https://hackage.haskell.org/package/pa-label |
2023-06-14 16:17:50 +0200 | <Profpatsch> | (see README for explanation) |
2023-06-14 16:17:54 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 255 seconds) |
2023-06-14 16:20:33 +0200 | user2 | (~user@103.206.114.126) |
2023-06-14 16:20:33 +0200 | user2 | wns |
2023-06-14 16:20:54 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-06-14 16:23:37 +0200 | cheater__ | (~Username@user/cheater) |
2023-06-14 16:23:37 +0200 | cheater__ | cheater |
2023-06-14 16:26:57 +0200 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) |
2023-06-14 16:26:58 +0200 | jorwas[m] | (~jorwasmat@2001:470:69fc:105::3:60e7) |
2023-06-14 16:26:58 +0200 | ormaaaj | (~ormaaj@user/ormaaj) |
2023-06-14 16:26:58 +0200 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) |
2023-06-14 16:26:58 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2023-06-14 16:26:58 +0200 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) |
2023-06-14 16:26:58 +0200 | chreekat | (~chreekat@2001:470:69fc:105::16b5) |
2023-06-14 16:26:58 +0200 | elevenkb | (~elevenkb@2001:470:69fc:105::2:cb89) |
2023-06-14 16:26:58 +0200 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) |
2023-06-14 16:26:58 +0200 | bgamari[m] | (~bgamari@2001:470:69fc:105::c7b9) |
2023-06-14 16:26:59 +0200 | supersven[m] | (~supersven@2001:470:69fc:105::31b6) |
2023-06-14 16:26:59 +0200 | zebrag[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2023-06-14 16:26:59 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2023-06-14 16:26:59 +0200 | paulapatience | (~paulapati@2001:470:69fc:105::16a4) |
2023-06-14 16:26:59 +0200 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) |
2023-06-14 16:26:59 +0200 | shapr[m] | (~shaprcofr@2001:470:69fc:105::2:d107) |
2023-06-14 16:26:59 +0200 | hsiktas[m] | (~hsiktasm]@2001:470:69fc:105::30d4) |
2023-06-14 16:27:00 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) |
2023-06-14 16:27:00 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
2023-06-14 16:27:00 +0200 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) |
2023-06-14 16:27:00 +0200 | joyfulmantis[m] | (~joyfulman@2001:470:69fc:105::3:400a) |
2023-06-14 16:27:00 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2023-06-14 16:27:01 +0200 | zfnmxt | (~zfnmxt@user/zfnmxt) |
2023-06-14 16:27:01 +0200 | nicm[m] | (~nicmollel@2001:470:69fc:105::1:feeb) |
2023-06-14 16:27:01 +0200 | kadoban | (~kadoban@user/kadoban) |
2023-06-14 16:27:01 +0200 | end- | (~end@2001:470:69fc:105::3:673f) |
2023-06-14 16:27:01 +0200 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) |
2023-06-14 16:27:10 +0200 | tbidne[m] | (~tbidnemat@2001:470:69fc:105::3:6d42) |
2023-06-14 16:27:10 +0200 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) |
2023-06-14 16:27:10 +0200 | m1-s[m] | (~m1-smatri@2001:470:69fc:105::2:39da) |
2023-06-14 16:27:11 +0200 | aaronv | (~aaronv@user/aaronv) |
2023-06-14 16:27:45 +0200 | kleenestar[m] | (~kleenesta@2001:470:69fc:105::3:6d78) |
2023-06-14 16:27:46 +0200 | aerc[m] | (~aercmatri@2001:470:69fc:105::3:67b9) |
2023-06-14 16:27:46 +0200 | oak- | (~oak-@2001:470:69fc:105::fcd) |
2023-06-14 16:27:47 +0200 | Daniel[m]1 | (~danieltan@2001:470:69fc:105::3:6e5e) |
2023-06-14 16:27:47 +0200 | ibizaman[m] | (~ibizamanm@2001:470:69fc:105::a3d) |
2023-06-14 16:27:47 +0200 | ners[m] | (~nersnixos@2001:470:69fc:105::3:648b) |
2023-06-14 16:27:48 +0200 | somerandomnick[m | (~somerando@2001:470:69fc:105::3:4f2e) |
2023-06-14 16:27:49 +0200 | lilpotent_jlemen | (~lilpotent@2001:470:69fc:105::3:6eb6) |
2023-06-14 16:30:23 +0200 | barcisz | (~barcisz@79.191.35.59.ipv4.supernova.orange.pl) (Quit: Client closed) |
2023-06-14 16:36:19 +0200 | chromoblob | (~user@37.113.180.121) (Ping timeout: 260 seconds) |
2023-06-14 16:37:51 +0200 | shef | (~ai5lk@209-188-121-236.taosnet.com) (Quit: WeeChat 3.8) |
2023-06-14 16:39:49 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 16:44:15 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Ping timeout: 260 seconds) |
2023-06-14 16:44:25 +0200 | danse-nr3_ | (~francesco@151.35.246.225) (Read error: Connection reset by peer) |
2023-06-14 16:45:22 +0200 | danse-nr3_ | (~francesco@151.43.246.222) |
2023-06-14 16:45:25 +0200 | ijqq_ | (uid603979@id-603979.helmsley.irccloud.com) |
2023-06-14 16:46:13 +0200 | Pickchea | (~private@user/pickchea) |
2023-06-14 16:47:11 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2023-06-14 16:47:41 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-06-14 16:48:22 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-06-14 16:51:20 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-06-14 16:51:58 +0200 | <ijqq_> | http://sprunge.us/am6An7 |
2023-06-14 16:51:58 +0200 | <ijqq_> | In here, I want any case where x is a digit to be handled as one, but because I did case x of, now ghci gives me a warning -Wname-shadowing. So is there a way to do this while keeping the check inside the case of block? |
2023-06-14 16:54:10 +0200 | <merijn> | ijqq_: ok, so first of all name shadowing is not inherently an error (although usually best avoided), there's 2 solutions |
2023-06-14 16:54:32 +0200 | <merijn> | ijqq_: don't reuse the 'x' variable in the pattern, i.e. change the case line to 'c | isDigit c' |
2023-06-14 16:54:45 +0200 | <merijn> | ijqq_: Alternatively, use a wildcard and do '_ | isDigit x' |
2023-06-14 16:54:58 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-06-14 16:55:11 +0200 | <ijqq_> | Oh, so c will still be referring to the value of x? |
2023-06-14 16:55:31 +0200 | <geekosaur> | yes |
2023-06-14 16:55:32 +0200 | <merijn> | ijqq_: the pattern refers to whatever is between 'case ? of' |
2023-06-14 16:55:54 +0200 | <merijn> | ijqq_: so "case x of x -> " introduces a new variable 'x' that has the same value as the old x |
2023-06-14 16:56:14 +0200 | <merijn> | ijqq_: GHC is complaining because you're introducing a new 'x' variable when one is already in scope (which is usually a good way to refer to wrong things) |
2023-06-14 16:57:21 +0200 | <ijqq_> | Oh cool, I didn't know that. Thank you. I think I'll use the first solution since I might need the wildcard pattern for something else. |
2023-06-14 16:57:33 +0200 | <merijn> | ijqq_: in the 'c | isDigit c' case you're saying "if none of the values above match, assign the value to x and use that' |
2023-06-14 16:57:42 +0200 | <merijn> | eh, assign the value to 'c' |
2023-06-14 16:58:12 +0200 | <merijn> | in the case of '_ | isDigit x' you're assigning the value of 'x' to the wildcard (i.e. ignoring it) and then checking 'x' directly |
2023-06-14 16:58:46 +0200 | <merijn> | ijqq_: both the wildcard and 'c | isDigit c' should have the same behaviour, in both cases if the guard (isDigit) fails, it will fallthrough to the next |
2023-06-14 16:59:58 +0200 | <ijqq_> | Ohh, I misread your second solution. So that's probably better then, since I don't need to make a new name c for the same thing? |
2023-06-14 17:00:27 +0200 | <merijn> | tbh, I think they're about equal. |
2023-06-14 17:01:06 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-06-14 17:03:34 +0200 | <geekosaur> | they should even produce the same core |
2023-06-14 17:03:47 +0200 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) |
2023-06-14 17:04:01 +0200 | jade[m]1 | (~jade256th@2001:470:69fc:105::3:58df) |
2023-06-14 17:04:09 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-06-14 17:04:14 +0200 | akadude[m] | (~akadudema@2001:470:69fc:105::2:5bf7) |
2023-06-14 17:04:18 +0200 | <merijn> | Well, I was thinking that the wildcard can break if you refactor the function arguments and the explicit binding won't |
2023-06-14 17:04:25 +0200 | <merijn> | but that seemed like such a niche nitpick |
2023-06-14 17:04:29 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2023-06-14 17:04:44 +0200 | xrvdg[m] | (~xrvdgmatr@2001:470:69fc:105::3:625a) |
2023-06-14 17:05:29 +0200 | teo | (~teo@user/teo) |
2023-06-14 17:05:41 +0200 | Inst[m] | (~instrmatr@2001:470:69fc:105::1:903e) |
2023-06-14 17:05:53 +0200 | eldritchcookie[m | (~eldritchc@2001:470:69fc:105::2:d53c) |
2023-06-14 17:06:36 +0200 | hellwolf[m] | (~hellwolfm@2001:470:69fc:105::3:6a4) |
2023-06-14 17:06:52 +0200 | Las[m]1 | (~lasmatrix@2001:470:69fc:105::74e) |
2023-06-14 17:07:14 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) () |
2023-06-14 17:07:37 +0200 | Ross[m] | (~zhichuche@2001:470:69fc:105::3:584b) |
2023-06-14 17:07:49 +0200 | DustinStiles[m] | (~duwstiles@2001:470:69fc:105::3:699b) |
2023-06-14 17:07:49 +0200 | polykernel[m] | (~polykerne@user/polykernel) |
2023-06-14 17:07:50 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) |
2023-06-14 17:10:40 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) (Client Quit) |
2023-06-14 17:11:02 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-06-14 17:13:42 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:adaa:7968:23a1:1d20) (Quit: WeeChat 2.8) |
2023-06-14 17:17:02 +0200 | gascown | (~My_user_n@81.208.15.172) (Quit: WeeChat 3.8) |
2023-06-14 17:17:43 +0200 | shapr | (~user@2600:1700:c640:3100:3dca:cf49:f271:c6b2) |
2023-06-14 17:19:14 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 17:24:05 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-06-14 17:24:18 +0200 | nyc | (~nyc@user/nyc) |
2023-06-14 17:24:20 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) |
2023-06-14 17:27:38 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 17:28:46 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2023-06-14 17:32:23 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.8) |
2023-06-14 17:34:43 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-06-14 17:35:01 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2023-06-14 17:43:04 +0200 | Nosrep | (~Nosrep@user/nosrep) (Remote host closed the connection) |
2023-06-14 17:43:36 +0200 | Nosrep | (~Nosrep@user/nosrep) |
2023-06-14 17:44:02 +0200 | chromoblob | (~user@37.113.180.121) |
2023-06-14 17:46:03 +0200 | elain4 | (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
2023-06-14 17:48:13 +0200 | zeenk | (~zeenk@2a02:2f04:a106:3c00::7fe) (Quit: Konversation terminated!) |
2023-06-14 17:49:00 +0200 | acidjnk | (~acidjnk@p200300d6e7072f92b0f51e98686b2908.dip0.t-ipconnect.de) |
2023-06-14 17:53:02 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2023-06-14 17:54:33 +0200 | michals | (~user@cfeld-pcx40162.desy.de) (ERC (IRC client for Emacs 26.3)) |
2023-06-14 17:54:33 +0200 | 073AAK9LE | (~oac@72-50-214-210.fttp.usinternet.com) |
2023-06-14 18:01:56 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2023-06-14 18:04:25 +0200 | Pickchea | (~private@user/pickchea) |
2023-06-14 18:08:08 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-06-14 18:08:26 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Remote host closed the connection) |
2023-06-14 18:11:54 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-06-14 18:12:02 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-06-14 18:18:41 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-06-14 18:19:27 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8) |
2023-06-14 18:26:45 +0200 | 073AAK9LE | oac |
2023-06-14 18:27:21 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 18:27:22 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:1181:6da5:7700:e0d3) (Read error: Connection reset by peer) |
2023-06-14 18:31:28 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.8) |
2023-06-14 18:32:08 +0200 | mauke | (~mauke@user/mauke) |
2023-06-14 18:39:38 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-06-14 18:40:27 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-06-14 18:43:53 +0200 | chomwitt | (~chomwitt@2a02:587:7a0e:cf00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2023-06-14 18:52:50 +0200 | zaidhaan | (~zai@2001:f40:960:1c54:3c0f:370:d2d1:4fb9) |
2023-06-14 18:53:38 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:2cf1:36b7:6ec2:d529) (Remote host closed the connection) |
2023-06-14 18:53:57 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:2cf1:36b7:6ec2:d529) |
2023-06-14 18:54:59 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-06-14 18:57:23 +0200 | ystael | (~ystael@user/ystael) (Server closed connection) |
2023-06-14 18:57:38 +0200 | ystael | (~ystael@user/ystael) |
2023-06-14 18:59:56 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-06-14 18:59:56 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-06-14 18:59:56 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-06-14 19:00:14 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-06-14 19:04:41 +0200 | danse-nr3_ | (~francesco@151.43.246.222) (Ping timeout: 256 seconds) |
2023-06-14 19:05:20 +0200 | mud | (~mud@user/kadoban) |
2023-06-14 19:06:57 +0200 | ripspin | (~chatzilla@1.145.195.123) |
2023-06-14 19:08:24 +0200 | wns | (~user@103.206.114.126) (Quit: WeeChat 3.8) |
2023-06-14 19:09:36 +0200 | danse-nr3_ | (~francesco@151.43.246.222) |
2023-06-14 19:21:58 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-06-14 19:24:39 +0200 | CAT_S | (apic@brezn3.muc.ccc.de) (Ping timeout: 255 seconds) |
2023-06-14 19:25:46 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2023-06-14 19:31:27 +0200 | pavonia | (~user@user/siracusa) |
2023-06-14 19:31:30 +0200 | oac | (~oac@72-50-214-210.fttp.usinternet.com) (Quit: oac) |
2023-06-14 19:31:45 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2023-06-14 19:31:46 +0200 | oac | (~oac@72-50-214-210.fttp.usinternet.com) |
2023-06-14 19:36:21 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds) |
2023-06-14 19:46:45 +0200 | danse-nr3_ | (~francesco@151.43.246.222) (Ping timeout: 240 seconds) |
2023-06-14 19:47:42 +0200 | hisa38 | (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) |
2023-06-14 19:49:20 +0200 | cafkafk | (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds) |
2023-06-14 19:51:13 +0200 | jrm | (~jrm@user/jrm) (Server closed connection) |
2023-06-14 19:51:30 +0200 | jrm | (~jrm@user/jrm) |
2023-06-14 19:52:03 +0200 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2023-06-14 19:53:56 +0200 | raym | (~ray@user/raym) (Ping timeout: 260 seconds) |
2023-06-14 19:55:37 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-06-14 19:57:16 +0200 | kritty | (~crumb@c-76-155-235-153.hsd1.co.comcast.net) |
2023-06-14 19:57:38 +0200 | nitrix | (~nitrix@user/nitrix) |
2023-06-14 19:57:42 +0200 | cafkafk | (~cafkafk@fsf/member/cafkafk) (Quit: WeeChat 3.6) |
2023-06-14 20:02:00 +0200 | laxmik | (~laxmik@2a01:c23:903b:ff00:542e:56dc:fc4:bc71) |
2023-06-14 20:03:09 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-06-14 20:06:29 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-06-14 20:06:30 +0200 | <kritty> | the macro-abusing C programmer in me might be showing, but is there a better way to create enums with *explicit* correspondance to Int? (https://paste.tomsmeding.com/rarFWFBR) |
2023-06-14 20:08:38 +0200 | <kritty> | this is going to be used to represent opcodes that have gaps (unused ints between used values) so i didn't want to derive Enum :( |
2023-06-14 20:09:38 +0200 | __monty__ | (~toonn@user/toonn) |
2023-06-14 20:09:53 +0200 | <EvanR> | my reaction to that is writing to and from Int explicitly is a better way xD |
2023-06-14 20:10:41 +0200 | <kritty> | lmfao absolutely. this is the best i could come up with. probably not using it in this state lol |
2023-06-14 20:11:50 +0200 | oac | (~oac@72-50-214-210.fttp.usinternet.com) (Quit: oac) |
2023-06-14 20:12:24 +0200 | oac__ | (~oac@72-50-214-210.fttp.usinternet.com) |
2023-06-14 20:17:31 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2023-06-14 20:18:57 +0200 | <mauke> | I'd say that's not an enum in the haskell sense, so I wouldn't provide an Enum instance |
2023-06-14 20:21:49 +0200 | <kritty> | oh god, you're right. `succ x` could be an error while `succ (succ x)` wouldn't. i need sleep. |
2023-06-14 20:22:22 +0200 | <mauke> | sleep (sleep x) |
2023-06-14 20:23:37 +0200 | cafkafk | (~cafkafk@fsf/member/cafkafk) |
2023-06-14 20:23:37 +0200 | <geekosaur> | I can't even see why you'd want it to be a Haskell enum |
2023-06-14 20:23:50 +0200 | <geekosaur> | C enum, sure, but C enums aren't Haskell enums |
2023-06-14 20:24:26 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Remote host closed the connection) |
2023-06-14 20:26:44 +0200 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
2023-06-14 20:30:59 +0200 | <monochrom> | I had great fun telling students about C enum being fake enum. |
2023-06-14 20:31:25 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 20:31:42 +0200 | <mauke> | "enum" is the keyword used to declare constants in C |
2023-06-14 20:31:59 +0200 | <mauke> | for example: enum { BUF_SIZE = 1024 }; |
2023-06-14 20:32:08 +0200 | <monochrom> | enum e1 {X, Y}; enum e2 {A, B}; enum e1 v1 = A; enum e2 v2 = X; enum e1 i = 10000; |
2023-06-14 20:33:15 +0200 | <monochrom> | And then I went on to typedef enum e1 e2; typedef enum e2 e1; But that's for another day. :) |
2023-06-14 20:33:34 +0200 | <Cale> | Haskell's Enum should also be two classes though. |
2023-06-14 20:33:56 +0200 | <Cale> | Putting succ and pred in with the functions that interpret the special list syntaxes is a bit weird. |
2023-06-14 20:34:44 +0200 | <kritty> | circular Enums >:3 |
2023-06-14 20:39:35 +0200 | smalltalkman | (uid545680@2a03:5180:f:4::8:5390) (Quit: Connection closed for inactivity) |
2023-06-14 20:40:46 +0200 | <chromoblob> | > [()..] |
2023-06-14 20:40:48 +0200 | <lambdabot> | [()] |
2023-06-14 20:40:57 +0200 | <chromoblob> | > [(),()..] |
2023-06-14 20:40:58 +0200 | <lambdabot> | [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),... |
2023-06-14 20:41:30 +0200 | notzmv | (~zmv@user/notzmv) (Read error: Connection reset by peer) |
2023-06-14 20:42:09 +0200 | <chromoblob> | > [False..] |
2023-06-14 20:42:10 +0200 | <lambdabot> | <hint>:1:9: error: parse error on input ‘]’ |
2023-06-14 20:42:29 +0200 | <monochrom> | You probably need a space between False and .. |
2023-06-14 20:42:50 +0200 | <monochrom> | lest it means module False operator . |
2023-06-14 20:43:26 +0200 | <chromoblob> | oh |
2023-06-14 20:43:28 +0200 | <mauke> | > [Prelude.False..] |
2023-06-14 20:43:28 +0200 | <chromoblob> | > [False ..] |
2023-06-14 20:43:29 +0200 | <lambdabot> | <hint>:1:17: error: parse error on input ‘]’ |
2023-06-14 20:43:29 +0200 | <lambdabot> | [False,True] |
2023-06-14 20:43:37 +0200 | <chromoblob> | > [False,True ..] |
2023-06-14 20:43:37 +0200 | <mauke> | this would've worked in Haskell 98 |
2023-06-14 20:43:38 +0200 | <lambdabot> | [False,True] |
2023-06-14 20:44:26 +0200 | ripspin | (~chatzilla@1.145.195.123) (Remote host closed the connection) |
2023-06-14 20:44:49 +0200 | <chromoblob> | > [True,False ..] |
2023-06-14 20:44:50 +0200 | <lambdabot> | [True,False] |
2023-06-14 20:45:12 +0200 | <Rembane> | arrowhead: No worries. Good luck! :) |
2023-06-14 20:45:58 +0200 | <mauke> | enum Boolean { TRUE, FALSE, FILE_NOT_FOUND }; |
2023-06-14 20:47:25 +0200 | <EvanR> | that's what I immediately though of when kritty's enum consisted of numbers 0, 1, and 3 |
2023-06-14 20:54:56 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-06-14 20:57:52 +0200 | <laxmik> | instance Enum Void where {fromEnum = absurd; toEnum _ = undefined } |
2023-06-14 20:58:32 +0200 | <EvanR> | toEnum = 1/0 |
2023-06-14 21:00:42 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-06-14 21:00:57 +0200 | gurkenglas | (~user@dynamic-046-114-177-119.46.114.pool.telefonica.de) |
2023-06-14 21:04:09 +0200 | emergence | (emergence@2607:5300:60:5910:dcad:beff:feef:5bc) |
2023-06-14 21:06:03 +0200 | <[exa]> | merijn jean-paul[m] hpc: thx for the docker hints; I unfortunately have to fit into docker infrastructure. In the end an intermediate image has won it |
2023-06-14 21:10:18 +0200 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2023-06-14 21:10:24 +0200 | laxmik | (~laxmik@2a01:c23:903b:ff00:542e:56dc:fc4:bc71) (Quit: Client closed) |
2023-06-14 21:11:58 +0200 | laxmik | (~laxmik@2a01:c23:903b:ff00:542e:56dc:fc4:bc71) |
2023-06-14 21:12:36 +0200 | kritty | (~crumb@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Leaving) |
2023-06-14 21:13:22 +0200 | <[exa]> | oh actually |
2023-06-14 21:13:31 +0200 | <[exa]> | https://github.com/haskell/cabal/issues/7416#issuecomment-851389809 |
2023-06-14 21:13:44 +0200 | <[exa]> | this does it. |
2023-06-14 21:18:42 +0200 | notzmv | (~zmv@user/notzmv) |
2023-06-14 21:20:43 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-06-14 21:21:47 +0200 | ft | (~ft@p508dbdef.dip0.t-ipconnect.de) |
2023-06-14 21:25:32 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-06-14 21:27:33 +0200 | kimiamania6 | (~65804703@user/kimiamania) (Server closed connection) |
2023-06-14 21:27:55 +0200 | kimiamania6 | (~65804703@user/kimiamania) |
2023-06-14 21:28:10 +0200 | <chromoblob> | laxmik: what should enumFrom and friends return, empty or non-empty list? |
2023-06-14 21:28:39 +0200 | <chromoblob> | for Void |
2023-06-14 21:29:49 +0200 | <EvanR> | a non-empty list of Void sounds wrong very wrong |
2023-06-14 21:30:28 +0200 | <laxmik> | enumFrom and friends need a Void, which cannot be provided.. |
2023-06-14 21:33:40 +0200 | <chromoblob> | oh, so no list at all |
2023-06-14 21:34:02 +0200 | <chromoblob> | but maybe it could be empty list |
2023-06-14 21:34:41 +0200 | ai5lk | (~ai5lk@209-188-121-236.taosnet.com) |
2023-06-14 21:34:45 +0200 | <EvanR> | it could be anything because absurd |
2023-06-14 21:35:40 +0200 | <monochrom> | An empty list sounds fine. |
2023-06-14 21:36:52 +0200 | <monochrom> | But Void -> Whatever allows you to do whatever. This applies to Void -> [Void] too. |
2023-06-14 21:36:59 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 21:37:14 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 21:37:56 +0200 | <monochrom> | I wouldn't mind if Void meant "infinite information" so enumFrom would give an infinite list of undefineds. |
2023-06-14 21:40:08 +0200 | <ncf> | ? |
2023-06-14 21:41:14 +0200 | <EvanR> | like negative infinite temperature? |
2023-06-14 21:41:31 +0200 | <mauke> | :t absurd |
2023-06-14 21:41:32 +0200 | <lambdabot> | Void -> a |
2023-06-14 21:41:36 +0200 | <mauke> | looks infinite to me |
2023-06-14 21:42:13 +0200 | <EvanR> | or is this the same abuse as 'finite means non-zero' |
2023-06-14 21:42:27 +0200 | <EvanR> | i.e. infinite = zero |
2023-06-14 21:42:38 +0200 | <monochrom> | Consider [Shannon's] information theory. |
2023-06-14 21:42:43 +0200 | cheater | (~Username@user/cheater) |
2023-06-14 21:43:09 +0200 | <monochrom> | closer to impossible = more information |
2023-06-14 21:43:54 +0200 | <monochrom> | And yeah since Void->a allows you to extract any type from Void, that's infinite information too intuitively. |
2023-06-14 21:44:07 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Read error: Connection reset by peer) |
2023-06-14 21:44:26 +0200 | <monochrom> | In fact any value too for whichever type you choose. |
2023-06-14 21:44:29 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-06-14 21:44:43 +0200 | <EvanR> | - log (n / N) |
2023-06-14 21:44:49 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 21:45:03 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 21:45:31 +0200 | <ncf> | i mean sure but i'd expect enumFrom to yield total elements |
2023-06-14 21:46:11 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2023-06-14 21:46:11 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2023-06-14 21:46:15 +0200 | allbery_b | geekosaur |
2023-06-14 21:47:30 +0200 | <probie> | ncf: Why? You've already somehow managed to get a `Void`. |
2023-06-14 21:47:36 +0200 | <monochrom> | I expect undefined to beget more undefineds. |
2023-06-14 21:48:43 +0200 | <EvanR> | it's better for errors to be noticed as soon as possible so they need to spread explosively! |
2023-06-14 21:48:51 +0200 | <probie> | Personally, I'd be inclined to go with `enumFrom = repeat` for `Void` |
2023-06-14 21:48:55 +0200 | <EvanR> | detonational semantics |
2023-06-14 21:49:05 +0200 | <monochrom> | Alternatively but equivalently, if v::Void is total, then vacuously absurd v :: Int is total, and absurd v = 1 and absurd v = 0 are both totally true too. >:) |
2023-06-14 21:49:36 +0200 | carbolymer | (~carbolyme@dropacid.net) (Server closed connection) |
2023-06-14 21:49:45 +0200 | carbolymer | (~carbolyme@dropacid.net) |
2023-06-14 21:49:52 +0200 | <ncf> | probie: oh yeah |
2023-06-14 21:50:22 +0200 | <ncf> | i agree then, i was thinking of enumFrom :: Enum a => [a] for some reason |
2023-06-14 21:51:59 +0200 | <probie> | I don't think it really matters - one hopes that any code that has a `Void` in it, is never actually run |
2023-06-14 21:52:27 +0200 | <EvanR> | why are we implementing Enum for Void anyway |
2023-06-14 21:52:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) (Remote host closed the connection) |
2023-06-14 21:53:07 +0200 | <EvanR> | because we 'can' ? |
2023-06-14 21:53:12 +0200 | <laxmik> | for Void of reasons |
2023-06-14 21:53:18 +0200 | <probie> | Can we have an unlifted Void? |
2023-06-14 21:54:23 +0200 | <probie> | I guess it'd be less useful, since you wouldn't be able to do things like `IO Void` |
2023-06-14 21:55:03 +0200 | <monochrom> | haha Void of reasons |
2023-06-14 21:55:31 +0200 | <monochrom> | Um an unlifted Void would be infinitely useful! Remember? >:) |
2023-06-14 21:56:03 +0200 | <probie> | actually, I take that back - it wouldn't be less useful, it would be useless |
2023-06-14 21:56:23 +0200 | <EvanR> | isn't unlifted Void what we have in Idris and that's the point |
2023-06-14 21:56:35 +0200 | <monochrom> | If there were an unlifted Void, then I would be able to extract new homework questions from it! That's how useful it would be. If only... |
2023-06-14 21:57:13 +0200 | <monochrom> | OK I mean if unlifted Void had a value. |
2023-06-14 22:03:30 +0200 | tessier_ | (~treed@ip72-197-145-89.sd.sd.cox.net) (Ping timeout: 255 seconds) |
2023-06-14 22:03:50 +0200 | Pickchea | (~private@user/pickchea) |
2023-06-14 22:05:19 +0200 | tessier | (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
2023-06-14 22:10:30 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-06-14 22:10:30 +0200 | <laxmik> | i'd say that unlifted Void has fewer (theoretical) quirks then lifted one. For the lifted one, one can give an 'undefined' and pattern match on it, if one doesn't look into it.. |
2023-06-14 22:11:58 +0200 | <mauke> | Void# |
2023-06-14 22:12:10 +0200 | oac__ | (~oac@72-50-214-210.fttp.usinternet.com) (Quit: oac__) |
2023-06-14 22:12:42 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 22:13:02 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a031:36aa:a52b:1d5b) |
2023-06-14 22:21:04 +0200 | mauke_ | (~mauke@user/mauke) |
2023-06-14 22:22:05 +0200 | joeyh_ | (~joeyh@kitenet.net) (Ping timeout: 240 seconds) |
2023-06-14 22:22:17 +0200 | joeyh | (joeyh@2600:3c03::f03c:91ff:fe73:b0d2) |
2023-06-14 22:22:22 +0200 | laxmik | (~laxmik@2a01:c23:903b:ff00:542e:56dc:fc4:bc71) (Quit: laxmik) |
2023-06-14 22:22:25 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 240 seconds) |
2023-06-14 22:22:25 +0200 | mauke_ | mauke |
2023-06-14 22:28:17 +0200 | kuribas | (~user@ptr-17d51eok8qyevk6ux0s.18120a2.ip6.access.telenet.be) |
2023-06-14 22:29:24 +0200 | <kuribas> | Is there an applicative law that "fst <$> liftA2 (,) a b" = a ? |
2023-06-14 22:29:31 +0200 | oac__ | (~oac@72-50-214-210.fttp.usinternet.com) |
2023-06-14 22:29:32 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-06-14 22:30:00 +0200 | <kuribas> | hmm, I suppose not if they perform a side-effect... |
2023-06-14 22:30:08 +0200 | <kuribas> | Is there a structure that has this law? |
2023-06-14 22:33:19 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-06-14 22:33:31 +0200 | <kuribas> | > fst <$> liftA2 (,) [1, 3] [2, 4, 5] |
2023-06-14 22:33:33 +0200 | <lambdabot> | [1,1,1,3,3,3] |
2023-06-14 22:35:31 +0200 | <probie> | do you mean `fst <$> liftA2 (,) a b = pure a` as a law? |
2023-06-14 22:36:03 +0200 | <chromoblob> | not "pure a", just "a" |
2023-06-14 22:36:27 +0200 | <chromoblob> | a :: f a |
2023-06-14 22:36:35 +0200 | <ncf> | some sort of lazy applicative |
2023-06-14 22:36:58 +0200 | <probie> | You're right (the sun is yet to rise and I'm still half-asleep) |
2023-06-14 22:37:14 +0200 | <kuribas> | An applicative without effects? |
2023-06-14 22:37:27 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2023-06-14 22:37:35 +0200 | <EvanR> | the Identity applicative |
2023-06-14 22:37:40 +0200 | <kuribas> | fst <$> liftA2 (,) a b = unEffect a |
2023-06-14 22:37:54 +0200 | <ncf> | or at least effects that are tied to the values, like in lazy IO |
2023-06-14 22:38:11 +0200 | <chromoblob> | there could be an effect, only "always left" one |
2023-06-14 22:38:19 +0200 | <probie> | > fst <$> liftA2 (,) (ZipList [1,3]) (ZipList [2,4,5]) |
2023-06-14 22:38:21 +0200 | <lambdabot> | ZipList {getZipList = [1,3]} |
2023-06-14 22:38:40 +0200 | <ncf> | > snd <$> liftA2 (,) (ZipList [1,3]) (ZipList [2,4,5]) |
2023-06-14 22:38:41 +0200 | <lambdabot> | ZipList {getZipList = [2,4]} |
2023-06-14 22:38:52 +0200 | <ncf> | presumably you'd also want the symmetric law snd <$> liftA2 (,) a b = b |
2023-06-14 22:38:59 +0200 | <kuribas> | yes |
2023-06-14 22:39:13 +0200 | <kuribas> | I have something like "time -> val" |
2023-06-14 22:40:15 +0200 | <kuribas> | > fst <$> liftA2 (,) (+ 2) (*3) |
2023-06-14 22:40:17 +0200 | <lambdabot> | error: |
2023-06-14 22:40:17 +0200 | <lambdabot> | • Overlapping instances for Show (Integer -> Integer) |
2023-06-14 22:40:17 +0200 | <lambdabot> | arising from a use of ‘show_M59024113475167700508’ |
2023-06-14 22:40:27 +0200 | <kuribas> | > (fst <$> liftA2 (,) (+ 2) (*3)) 5 |
2023-06-14 22:40:28 +0200 | <lambdabot> | 7 |
2023-06-14 22:40:37 +0200 | <kuribas> | > (snd <$> liftA2 (,) (+ 2) (*3)) 5 |
2023-06-14 22:40:38 +0200 | <lambdabot> | 15 |
2023-06-14 22:42:49 +0200 | <kuribas> | hmm https://hackage.haskell.org/package/TypeCompose-0.8.0/docs/Data-Zip.html#t:Unzip |
2023-06-14 22:43:51 +0200 | <chromoblob> | Hoogle cannot into text encoding |
2023-06-14 22:43:57 +0200 | <tomsmeding> | iirc a monad is called commutative if 'a >>= \x -> b >>= \y -> f x y' = 'b >>= \y -> a >>= \x -> f x y' |
2023-06-14 22:44:24 +0200 | <chromoblob> | at top there is text input with query, then drop-down menu and Search button |
2023-06-14 22:44:25 +0200 | <tomsmeding> | surely there is some other relevant term for a monad where 'a >>= \x -> E' = 'E' if x is not free in E |
2023-06-14 22:44:30 +0200 | <chromoblob> | i looked into the drop-down menu |
2023-06-14 22:44:49 +0200 | <chromoblob> | some author names are garbled, where characters are not ASCII |
2023-06-14 22:45:46 +0200 | <tomsmeding> | chromoblob: author:fix-whitespace-was-originally-written-by-Nils-Anders-Danielsson-as-part-of-Agda-2-with-contributions-from-Ulf-Norell |
2023-06-14 22:46:28 +0200 | <chromoblob> | hehe |
2023-06-14 22:47:15 +0200 | <tomsmeding> | kuribas: the terms seems to be an "affine monad" |
2023-06-14 22:47:27 +0200 | <tomsmeding> | which is defined by T () ~= () |
2023-06-14 22:47:44 +0200 | <tomsmeding> | () being the unit type here |
2023-06-14 22:47:59 +0200 | <tomsmeding> | indeed Identity () ~= (), and Reader r () ~= () |
2023-06-14 22:48:42 +0200 | <tomsmeding> | and [()] ~/= (), because [()] ~= Natural |
2023-06-14 22:49:48 +0200 | <ncf> | very cool |
2023-06-14 22:50:12 +0200 | candlestick | (~tls@179.152.251.228) |
2023-06-14 22:50:13 +0200 | <tomsmeding> | I wonder how this holds up for ZipList though; though of course ZipList is not a monad, so perhaps that's why the correspondence (being "kuribas' law holds precisely for affine monads") doesn't go up there |
2023-06-14 22:51:21 +0200 | <tomsmeding> | so perhaps it rather is that `fst <$> liftM2 (,) a b = a` is equivalent to "the monad is affine" :p |
2023-06-14 22:52:30 +0200 | oac__ | (~oac@72-50-214-210.fttp.usinternet.com) (Quit: oac__) |
2023-06-14 22:52:33 +0200 | <chromoblob> | ohh, there is pure |
2023-06-14 22:52:41 +0200 | <chromoblob> | so no "left effect" |
2023-06-14 22:52:50 +0200 | oac | (~oac@72-50-214-210.fttp.usinternet.com) |
2023-06-14 22:53:00 +0200 | candlestick | (~tls@179.152.251.228) () |
2023-06-14 22:53:09 +0200 | <kuribas> | and Set |
2023-06-14 22:53:10 +0200 | <ncf> | yeah, nlab claims that affineness is equivalent to (fmap fst &&& fmap snd) (liftM2 (,) a b) = (a, b) |
2023-06-14 22:53:29 +0200 | <ncf> | which is exactly kuribas's condition |
2023-06-14 22:53:52 +0200 | <kuribas> | right, thanks! |
2023-06-14 22:54:05 +0200 | <tomsmeding> | aside from Identity and Reader, there are also other, highly nontrivial affine monads such as https://lazyppl.bitbucket.io/ |
2023-06-14 22:54:23 +0200 | <EvanR> | chromoblob, unamerican encoding reported |
2023-06-14 22:54:48 +0200 | <tomsmeding> | ncf: cool! |
2023-06-14 22:55:00 +0200 | <tomsmeding> | didn't read that far on the surprisingly short nlab page :p |
2023-06-14 22:56:07 +0200 | <tomsmeding> | ncf: what does nlab mean with that π? |
2023-06-14 22:56:07 +0200 | <chromoblob> | doesn't AlwaysLeft k work where data AlwaysLeft k a = AlwaysLeft (Maybe k) a; pure = AlwaysLeft Nothing; AlwaysLeft Nothing f <*> AlwaysLeft k a = AlwaysLeft k (f a); AlwaysLeft k f <*> AlwaysLeft _ a = AlwaysLeft k (f a) ? |
2023-06-14 22:56:14 +0200 | <ncf> | tomsmeding: projections, fst and snd |
2023-06-14 22:56:25 +0200 | Buliarous | (~gypsydang@46.232.210.139) |
2023-06-14 22:56:27 +0200 | <tomsmeding> | ncf: but, like, then I would have expected π1 and π2 |
2023-06-14 22:56:34 +0200 | <ncf> | that would be clearer |
2023-06-14 22:56:36 +0200 | <ncf> | i can edit it |
2023-06-14 22:56:40 +0200 | <tomsmeding> | lol |
2023-06-14 22:56:54 +0200 | <EvanR> | the side is obvious from context:tm: |
2023-06-14 22:57:00 +0200 | <ncf> | done |
2023-06-14 22:57:12 +0200 | <tomsmeding> | yay! |
2023-06-14 22:57:45 +0200 | <tomsmeding> | thanks :) |
2023-06-14 22:58:50 +0200 | <ncf> | chromoblob: snd <$> liftA2 (,) (AlwaysLeft (Just 1) a) (AlwaysLeft (Just 2) a) = AlwaysLeft (Just 1) a, i think? |
2023-06-14 22:59:29 +0200 | <tomsmeding> | right, so you need both the fst part and the snd part of the law |
2023-06-14 23:00:17 +0200 | <ncf> | (additionally your pure isn't an isomorphism, though i don't know if that equivalence maps well to the applicative case) |
2023-06-14 23:01:04 +0200 | <chromoblob> | isn't isomorphism - so what |
2023-06-14 23:01:48 +0200 | <ncf> | in the case of affine monads, an equivalent condition is that pure @() :: () -> m () is an isomorphism |
2023-06-14 23:01:59 +0200 | <ncf> | i.e. "no value, no effect" |
2023-06-14 23:02:44 +0200 | <tomsmeding> | ncf: chromoblob's example was intended to be a counterexample: one that does satisfy kuribas' law but where 'pure' is _not_ an isomorphism |
2023-06-14 23:02:50 +0200 | <tomsmeding> | but it satisfies only the first half of the law |
2023-06-14 23:03:08 +0200 | <chromoblob> | yeah, i missed kuribas' reply "yeah" to the "snd" law |
2023-06-14 23:03:37 +0200 | <tomsmeding> | still it's a good example, showing that you need the full strength of the law |
2023-06-14 23:04:33 +0200 | fendor | (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) (Remote host closed the connection) |
2023-06-14 23:05:36 +0200 | <tomsmeding> | ah re ZipList: doesn't satisfy the law |
2023-06-14 23:05:55 +0200 | <tomsmeding> | > fst <$> liftA2 (,) (ZipList [1,2,6]) (ZipList [3,4]) |
2023-06-14 23:05:57 +0200 | <lambdabot> | ZipList {getZipList = [1,2]} |
2023-06-14 23:06:12 +0200 | <tomsmeding> | holds for applicatives so far :) |
2023-06-14 23:06:48 +0200 | <tomsmeding> | oh you already saw that |
2023-06-14 23:07:19 +0200 | taupiqueur2 | (~taupiqueu@2a02:842a:8180:4601:95a3:46c4:9fe7:ffd7) (Quit: WeeChat 3.8) |
2023-06-14 23:08:09 +0200 | <chromoblob> | Some functors support an implementation of liftA2 that is more efficient than the default one. ... This became a typeclass method in 4.10.0.0. |
2023-06-14 23:08:13 +0200 | <chromoblob> | i missed that |
2023-06-14 23:08:42 +0200 | <chromoblob> | but what about liftA∞? |
2023-06-14 23:08:45 +0200 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 268 seconds) |
2023-06-14 23:08:56 +0200 | cross | (~cross@spitfire.i.gajendra.net) (Server closed connection) |
2023-06-14 23:09:28 +0200 | cross | (~cross@spitfire.i.gajendra.net) |
2023-06-14 23:11:20 +0200 | <ncf> | sequenceA? |
2023-06-14 23:11:43 +0200 | nitrix | (~nitrix@user/nitrix) (Leaving) |
2023-06-14 23:12:01 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-06-14 23:13:57 +0200 | michalz | (~michalz@185.246.207.205) (Remote host closed the connection) |
2023-06-14 23:13:57 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2023-06-14 23:14:06 +0200 | <ijqq_> | is there a way to have multi-line strings without needed to backslash at the end? i saw there is a language extension quasi quotes but it seems you need to download some package to actually use it? |
2023-06-14 23:15:03 +0200 | Errdonald | (~Errdonald@2a01:540:536:a500:7f5d:bc02:46ea:a9e8) (Read error: Connection reset by peer) |
2023-06-14 23:15:48 +0200 | <sm> | yes, there are several packages like that but you have to require/install them |
2023-06-14 23:16:28 +0200 | <sm> | the other way, that's built in, is... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/eda936b26db4c3bee9138ddc7cbef6480122…>) |
2023-06-14 23:17:48 +0200 | <chromoblob> | with unlines, instead of backslashes you need quotes and commas... |
2023-06-14 23:18:45 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 23:19:42 +0200 | <ijqq_> | ah okay. in that case i will use a list with unlines i think |
2023-06-14 23:19:54 +0200 | gentauro | (~gentauro@user/gentauro) |
2023-06-14 23:20:00 +0200 | <ijqq_> | oh hi chromo, how's it going? |
2023-06-14 23:21:23 +0200 | <chromoblob> | please give the code which you questioned yesterday whether it is idiomatic |
2023-06-14 23:21:32 +0200 | <chromoblob> | probably you gave a link, i missed it |
2023-06-14 23:22:16 +0200 | <chromoblob> | ijqq_: note that unlines inserts a newline between elements of the list, use concat instead if you don't want them |
2023-06-14 23:22:55 +0200 | <ijqq_> | okay sure, here is what i have so far |
2023-06-14 23:22:56 +0200 | <ijqq_> | http://sprunge.us/A88qZE |
2023-06-14 23:23:20 +0200 | <ijqq_> | i think it is just about fonished for the tokenising, now i will write a few tests to check it works and then i can move to the next sectino of the book |
2023-06-14 23:25:53 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-06-14 23:26:06 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-06-14 23:26:16 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds) |
2023-06-14 23:26:33 +0200 | adium | (adium@user/adium) (Server closed connection) |
2023-06-14 23:26:37 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-06-14 23:26:49 +0200 | adium | (adium@user/adium) |
2023-06-14 23:35:38 +0200 | <ijqq_> | oops there was a type in isIdentifier, it's mean to be || c == '_' instead of c == ' ' |
2023-06-14 23:35:43 +0200 | <ijqq_> | typo* |
2023-06-14 23:40:50 +0200 | <chromoblob> | yeah, your code appears as fine functional code, also seems correct |
2023-06-14 23:42:00 +0200 | <EvanR> | if it's correct it's good. If it's functional it's perfect |
2023-06-14 23:44:08 +0200 | <ijqq_> | okay i added some example at the bottom too |
2023-06-14 23:44:10 +0200 | <ijqq_> | http://sprunge.us/2JNF1a |
2023-06-14 23:44:34 +0200 | <ijqq_> | well that's good to hear, thank you for taking a look . now on to the next chapter |
2023-06-14 23:45:46 +0200 | hnOsmium0001 | (~hnosm@user/hnOsmium0001) (Server closed connection) |
2023-06-14 23:46:13 +0200 | hnOsmium0001 | (~hnosm@user/hnOsmium0001) |
2023-06-14 23:47:41 +0200 | zaidhaan | (~zai@2001:f40:960:1c54:3c0f:370:d2d1:4fb9) (Quit: WeeChat 3.8) |
2023-06-14 23:50:28 +0200 | reach | (~reach@2607:fea8:4c0:990:4d7:b700:e6a6:d72c) |
2023-06-14 23:55:32 +0200 | mz_ | (~mz@190.15.90.11) |