2023-04-30 00:00:27 +0200 | <jean-paul[m]> | Rembane: They'll change a bit at a time |
2023-04-30 00:01:05 +0200 | <jean-paul[m]> | int-e: So consider strict vs lazy early? Does that mean it's tricky to go back later and make lazy things strict? |
2023-04-30 00:01:13 +0200 | <Rembane> | jean-paul[m]: So no huge garbage collections in the middle? |
2023-04-30 00:01:44 +0200 | <int-e> | jean-paul[m]: it's tricky to figure out *where* things are insufficiently strict |
2023-04-30 00:01:55 +0200 | <somerandomnick[m> | nono, write small, simple composable pieces |
2023-04-30 00:01:56 +0200 | <somerandomnick[m> | then you can make those strict or lazy later |
2023-04-30 00:05:57 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-04-30 00:07:12 +0200 | <int-e> | jean-paul[m]: It doesn't really matter when you do this I suppose... the main idea here is that making fields strict if evaluating subdata lazily won't ever pay off is better than forcing that same field all over the place. |
2023-04-30 00:07:27 +0200 | <int-e> | going back and changing things later works both ways too |
2023-04-30 00:07:52 +0200 | <hammond> | I'm calling this: |
2023-04-30 00:07:54 +0200 | <hammond> | roundToStr :: (PrintfArg a, Floating a) => Int -> a -> String |
2023-04-30 00:07:56 +0200 | <hammond> | roundToStr = printf "%0.*f" |
2023-04-30 00:08:08 +0200 | <hammond> | with a Double and it works fine. why is that? |
2023-04-30 00:08:18 +0200 | <jean-paul[m]> | Rembane: I'm not sure. That's one place where I don't feel like I have much of an intuition yet. If there's one large structure, will a small change to it create a huge amount of garbage? If it is immutable I could imagine this being the case. |
2023-04-30 00:08:21 +0200 | <hammond> | how is Floating a Double? |
2023-04-30 00:08:32 +0200 | <int-e> | It's a type class |
2023-04-30 00:08:39 +0200 | <hammond> | k |
2023-04-30 00:08:40 +0200 | <int-e> | Both Double and Float are instances of Floating |
2023-04-30 00:08:55 +0200 | <int-e> | (I imagine Comples Double and Comples Float are as well) |
2023-04-30 00:09:03 +0200 | <int-e> | *Complex |
2023-04-30 00:09:32 +0200 | <Rembane> | jean-paul[m]: I usually assume that there's some magic in the RTS that handles that. There's probably a more formal explanation for how that works. |
2023-04-30 00:10:21 +0200 | <jade[m]> | int-e: `ReaFloat a => Floating (Complex a)` |
2023-04-30 00:10:29 +0200 | <int-e> | (But are there PrintfArg instances for Complex?) |
2023-04-30 00:10:51 +0200 | <jade[m]> | s/ReaFloat/RealFloat/ |
2023-04-30 00:11:05 +0200 | <int-e> | (Answer, not by default.) |
2023-04-30 00:12:05 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2023-04-30 00:12:36 +0200 | <hammond> | whats that => thingie, I don't understand that in relation to currying. |
2023-04-30 00:12:40 +0200 | <hammond> | :) |
2023-04-30 00:12:58 +0200 | <jean-paul[m]> | int-e: Got it, thanks |
2023-04-30 00:13:00 +0200 | <jade[m]> | It adds a constraint on the type |
2023-04-30 00:13:02 +0200 | <jean-paul[m]> | Rembane: I love RTS magic. :) |
2023-04-30 00:13:09 +0200 | <Rembane> | jean-paul[m]: It's the best kind of magic. :) |
2023-04-30 00:13:27 +0200 | <jade[m]> | here it's a typeclass constraint (whatever a may be, it has to be an instance of the typeclass) |
2023-04-30 00:13:59 +0200 | <hammond> | but it seems to turn into an Int. |
2023-04-30 00:14:14 +0200 | <jade[m]> | hm? |
2023-04-30 00:14:37 +0200 | <hammond> | i call the function like this roundToStr 2 someDoubleHere |
2023-04-30 00:14:52 +0200 | <hammond> | why do i need all that. |
2023-04-30 00:15:12 +0200 | <jade[m]> | I don't understand the question |
2023-04-30 00:15:27 +0200 | <hammond> | I could have just defined the function Int->Double->String |
2023-04-30 00:15:39 +0200 | <monochrom> | Yes. |
2023-04-30 00:15:49 +0200 | <geekosaur> | "%.*f" means "print something in fixed floating point format, with a specified width (the *)" |
2023-04-30 00:15:56 +0200 | <geekosaur> | the Int corresponds to the width |
2023-04-30 00:16:17 +0200 | <jade[m]> | yes, you can make the function more narrow |
2023-04-30 00:16:28 +0200 | <jade[m]> | but usually you don't want that |
2023-04-30 00:16:50 +0200 | <jade[m]> | keeping things as general as possible is good most of the time |
2023-04-30 00:16:52 +0200 | <monochrom> | If someone else want a more general and polymorphic version, they are not wrong. If you want a more concrete KISS version, you are not wrong either. |
2023-04-30 00:16:53 +0200 | <int-e> | :t sort |
2023-04-30 00:16:54 +0200 | <lambdabot> | Ord a => [a] -> [a] |
2023-04-30 00:17:11 +0200 | <geekosaur> | jade[m], there's tradeoffs there |
2023-04-30 00:17:13 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 00:17:18 +0200 | <monochrom> | There is not going to be an answer to "why must I do that?". Do whatever you want. |
2023-04-30 00:17:32 +0200 | <geekosaur> | more general means slower and (usually) more complex error modes |
2023-04-30 00:17:39 +0200 | <geekosaur> | more specific means less flexible |
2023-04-30 00:17:53 +0200 | <jade[m]> | compile time errors that is? |
2023-04-30 00:17:57 +0200 | <geekosaur> | yes |
2023-04-30 00:18:07 +0200 | <monochrom> | If you are curious about "Floating a =>", read up on type classes. |
2023-04-30 00:18:20 +0200 | <hammond> | ok |
2023-04-30 00:18:28 +0200 | <jade[m]> | fair point, I think it strongly depends on the scope that the function will be used in |
2023-04-30 00:18:43 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-04-30 00:19:16 +0200 | <int-e> | hammond: Type class constraints are used a lot in Haskell to give polymorphic functions access to useful operations on types. `sort` (see above), for example, needs to compare values, and that's what the `Ord` class is for. You (usually) don't have to worry about the constraint much... the compiler will infer it for you when possible. You will see type errors though when that fails. (Try... |
2023-04-30 00:19:22 +0200 | <int-e> | ...`roundToStr 42 "abc"` and see what error you get...) |
2023-04-30 00:19:43 +0200 | <hammond> | lemmi see |
2023-04-30 00:20:23 +0200 | <int-e> | (Unfortunately those errors are not exactly pretty... they'll take a while to get used to.) |
2023-04-30 00:22:29 +0200 | <monochrom> | If you keep seeing advanced generalizations in libraries, well that's because libraries need to be general, and besides the target audience is people who have finished learning Haskell. |
2023-04-30 00:22:40 +0200 | <monochrom> | This is the same over all languages. |
2023-04-30 00:22:41 +0200 | <hammond> | I'll read more on it. |
2023-04-30 00:23:44 +0200 | <jade[m]> | monochrom: is there a finish to learning haskell? ;) |
2023-04-30 00:23:57 +0200 | <monochrom> | An absolute C beginner who has barely started with "int foo(int i)" will look at a real world library and see "void *" all over the place and the correct response is "one step at a time". |
2023-04-30 00:25:40 +0200 | cheater | (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com)) |
2023-04-30 00:31:44 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-04-30 00:33:29 +0200 | cheater | (~Username@user/cheater) |
2023-04-30 00:36:07 +0200 | cheater_ | (~Username@user/cheater) |
2023-04-30 00:36:22 +0200 | cheater_ | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-30 00:37:12 +0200 | cheater_ | (~Username@user/cheater) |
2023-04-30 00:37:28 +0200 | cheater_ | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-30 00:37:31 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
2023-04-30 00:39:01 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 276 seconds) |
2023-04-30 00:41:04 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-04-30 00:47:14 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!) |
2023-04-30 00:49:57 +0200 | bratwurst | (~dfadsva@2604:3d09:207f:f650::9c24) (Quit: Leaving) |
2023-04-30 00:50:20 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2023-04-30 00:51:27 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-04-30 00:51:27 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-04-30 00:51:27 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-04-30 00:53:08 +0200 | acidjnk_new | (~acidjnk@p200300d6e715c468b4bf77e5a0595f20.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-04-30 00:54:00 +0200 | wagle_ | wagle |
2023-04-30 01:01:54 +0200 | tubogram44 | (~tubogram@user/tubogram) (Quit: Ping timeout (120 seconds)) |
2023-04-30 01:02:14 +0200 | tubogram44 | (~tubogram@user/tubogram) |
2023-04-30 01:10:01 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2023-04-30 01:16:38 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
2023-04-30 01:25:53 +0200 | <somerandomnick[m> | jade: keep in mind that type class constraints can make your compiled program inefficient. When exposing an API I recommend the SPECIALIZE pragma. |
2023-04-30 01:26:13 +0200 | <somerandomnick[m> | when using general functions in your code make sure GHC creates specialized instances of those functions |
2023-04-30 01:26:31 +0200 | <somerandomnick[m> | or just dont call them "all the time" |
2023-04-30 01:32:00 +0200 | falafel | (~falafel@2603-8000-d700-115c-2fcd-f6bf-9b28-c84d.res6.spectrum.com) |
2023-04-30 01:40:12 +0200 | mauke_ | (~mauke@user/mauke) |
2023-04-30 01:41:47 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 246 seconds) |
2023-04-30 01:41:47 +0200 | mauke_ | mauke |
2023-04-30 01:47:54 +0200 | falafel | (~falafel@2603-8000-d700-115c-2fcd-f6bf-9b28-c84d.res6.spectrum.com) (Ping timeout: 250 seconds) |
2023-04-30 01:48:27 +0200 | <mmynsted[m]> | How do I customize the files used by cabal init when I create a new project? For example the default Main.hs it creates for an executable? |
2023-04-30 01:48:59 +0200 | cheater | (~Username@user/cheater) |
2023-04-30 01:51:34 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-04-30 01:51:53 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-30 01:53:51 +0200 | janus | (janus@anubis.0x90.dk) |
2023-04-30 01:57:51 +0200 | <mmynsted[m]> | It does not appear to be in or referenced in ~/.cabal/config |
2023-04-30 01:58:10 +0200 | Me-me | (~Me-me@user/me-me) |
2023-04-30 02:02:50 +0200 | berberman | (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-04-30 02:04:18 +0200 | berberman | (~berberman@user/berberman) |
2023-04-30 02:05:13 +0200 | cheater | (~Username@user/cheater) |
2023-04-30 02:05:53 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-30 02:08:06 +0200 | <mmynsted[m]> | I guess hard-coded into cabal. https://github.com/haskell/cabal/blob/3af1731c01c35614fd902ee5c1aec40f5587fde6/cabal-install/src/D… |
2023-04-30 02:11:53 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
2023-04-30 02:13:27 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-04-30 02:21:22 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-e9a1-4bc6-a339-90d3.res6.spectrum.com) |
2023-04-30 02:28:00 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-04-30 02:40:42 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-04-30 02:41:23 +0200 | shailangsa | (~shailangs@host165-120-169-78.range165-120.btcentralplus.com) (Remote host closed the connection) |
2023-04-30 02:45:26 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-30 02:47:12 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-04-30 02:47:45 +0200 | cheater | (~Username@user/cheater) |
2023-04-30 02:50:09 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-30 02:54:58 +0200 | cheater | (~Username@user/cheater) |
2023-04-30 03:05:50 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-04-30 03:11:09 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-04-30 03:12:20 +0200 | Inst__ | (~Inst@2601:6c4:4081:54f0:9027:6f4:a9a6:93a0) (Ping timeout: 260 seconds) |
2023-04-30 03:16:48 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-04-30 03:17:16 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-04-30 03:19:20 +0200 | gmg | (~user@user/gehmehgeh) (Ping timeout: 240 seconds) |
2023-04-30 03:21:25 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-04-30 03:34:30 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-04-30 03:37:59 +0200 | <talismanick> | Oh, how I wish there was a standard math notation equivalent to <$>... |
2023-04-30 03:40:08 +0200 | Nic | (~Nic@c-24-127-33-212.hsd1.mi.comcast.net) |
2023-04-30 03:43:48 +0200 | <int-e> | f <$> x = F(f)(x) where F is the functor in question? |
2023-04-30 03:45:42 +0200 | Nic | (~Nic@c-24-127-33-212.hsd1.mi.comcast.net) (Quit: Connection closed) |
2023-04-30 03:47:03 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 03:47:21 +0200 | <monochrom> | Since in math usually you have multiple functors flying around in the same equation, it may not be a good idea to call all of their fmaps the same name. |
2023-04-30 03:48:40 +0200 | <johnjaye> | Diophantus called the unknown Ϛ, even if there were a dozen unknowns to solve for. |
2023-04-30 03:48:48 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
2023-04-30 03:52:12 +0200 | <monochrom> | Consider for example a natural transformation p from F to G. We already have some slack with "p . F h = G h . p" --- the two p's are of different types. |
2023-04-30 03:52:45 +0200 | <monochrom> | Now imagine we further add <$> overloading and write "p . (h <$>) = (h <$>) . p" >:0 |
2023-04-30 03:57:47 +0200 | <monochrom> | Hrm let's code-golf that further! |
2023-04-30 03:57:57 +0200 | <monochrom> | @pl \h -> p . fmap h |
2023-04-30 03:57:58 +0200 | <lambdabot> | (p .) . fmap |
2023-04-30 03:58:06 +0200 | <monochrom> | @pl \h -> fmap h . p |
2023-04-30 03:58:07 +0200 | <lambdabot> | (. p) . fmap |
2023-04-30 03:58:23 +0200 | <monochrom> | (p .) . fmap = (. p) . fmap |
2023-04-30 03:58:30 +0200 | <monochrom> | This is profound. >:) |
2023-04-30 03:58:47 +0200 | <int-e> | now replace (.) by fmap. Is it still true? |
2023-04-30 03:59:08 +0200 | <monochrom> | I prefer replacing fmap by (.) hahaha |
2023-04-30 03:59:19 +0200 | <monochrom> | "..." |
2023-04-30 04:01:51 +0200 | <monochrom> | "Hi I saw on a blog f $ g $ x = f <$> g $ x so what's the difference between <$> and $?" >:) |
2023-04-30 04:02:29 +0200 | <int-e> | <$> has more characters |
2023-04-30 04:02:42 +0200 | <monochrom> | sharp edges :) |
2023-04-30 04:02:54 +0200 | <int-e> | (if in doubt, answer such questions at the lexical level) |
2023-04-30 04:05:06 +0200 | hgolden_ | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2023-04-30 04:07:00 +0200 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
2023-04-30 04:16:42 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2023-04-30 04:23:29 +0200 | ryantrinkle | (~ryantrink@204.2.88.230) (Ping timeout: 246 seconds) |
2023-04-30 04:29:33 +0200 | falafel | (~falafel@2603-8000-d700-115c-557c-00d7-83ff-43f9.res6.spectrum.com) |
2023-04-30 04:30:52 +0200 | slack1256 | (~slack1256@186.11.41.76) |
2023-04-30 04:39:23 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-e9a1-4bc6-a339-90d3.res6.spectrum.com) (Quit: ZZZzzz…) |
2023-04-30 04:41:32 +0200 | <ski> | clearly `p_h' is a more suitable notation for `p_B . F h' / `G h . p_A' |
2023-04-30 04:44:03 +0200 | <ski> | talismanick : any particular functor in mind ? |
2023-04-30 04:44:15 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 250 seconds) |
2023-04-30 04:46:13 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 04:46:49 +0200 | <ski> | (you could also write `(| p f ; h a |) : G B', if `(| f ; a |) : F A') |
2023-04-30 04:48:16 +0200 | Square | (~Square@user/square) |
2023-04-30 04:50:38 +0200 | <Square> | Hey. I'm using ExistentialQuantification for a type : data Foo = forall a. Eq a => Foo a. How would I be able to make Foo derive Eq? In this example any cheat is ok, as long as its correct. |
2023-04-30 04:51:55 +0200 | <ski> | `instance Eq Foo where _ == _ = True' should be okay, i think ? |
2023-04-30 04:52:56 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
2023-04-30 04:53:14 +0200 | td_ | (~td@i53870937.versanet.de) (Ping timeout: 246 seconds) |
2023-04-30 04:53:33 +0200 | slac19128 | (~slack1256@191.125.26.100) |
2023-04-30 04:54:05 +0200 | <Square> | ski, looks like always True to me? |
2023-04-30 04:54:09 +0200 | <ski> | the only think you can do with a value of type `Foo', when unpacking it, is to pass the internal value of type `a' (some hidden/forgotten/opaque/abstract/skolem type), *twice*, to `(==)' (or to `(/=)') (if we discount passing stuff like `undefined') .. and so we can't get any information out of a `Foo' value. so all values ought to count as equal |
2023-04-30 04:54:14 +0200 | <ski> | Square : yes |
2023-04-30 04:54:31 +0200 | <ski> | s/only think/only thing/ |
2023-04-30 04:55:07 +0200 | td_ | (~td@i53870931.versanet.de) |
2023-04-30 04:55:31 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-04-30 04:55:46 +0200 | <ski> | so, it seems to me, this is the only sensible `Eq' instance you can make (however useless it is), for this type. if you allow changing the definition of `Foo', that's a different question, however .. |
2023-04-30 04:55:49 +0200 | slack1256 | (~slack1256@186.11.41.76) (Ping timeout: 265 seconds) |
2023-04-30 04:55:57 +0200 | <int-e> | ski: heh, I'm surprised that you didn't use ⦇ ⦈ there |
2023-04-30 04:56:09 +0200 | <ski> | .. although, perhaps a better question would be : what are you trying to achieve here ? |
2023-04-30 04:56:52 +0200 | <ski> | int-e : i was following suit with the Haskell-like syntax |
2023-04-30 05:00:49 +0200 | <ski> | (i've also used that ascii approximation before, in this context, in the channel) |
2023-04-30 05:00:54 +0200 | <Square> | ski, I have "form" descriptions. Some select type fields have enum like field types. like 'data Field = forall a. FInt | Choice (Set a) | ...' and then 'type Form = [Field]' |
2023-04-30 05:01:20 +0200 | <Square> | sorry |
2023-04-30 05:01:32 +0200 | <Square> | data Field = forall a. Eq a => FInt | Choice (Set a) | ... |
2023-04-30 05:02:10 +0200 | <Square> | (really i was hoping on mashing more fields into the Choice type to support some sort of unpacking.) |
2023-04-30 05:02:24 +0200 | <ski> | i presume you meant to attach that `forall a. Eq a =>' to the `Choice' data constructor |
2023-04-30 05:02:36 +0200 | <Square> | yeah.. i guess i can move it |
2023-04-30 05:03:22 +0200 | <ski> | how do you intend to use this set alternative of a field ? |
2023-04-30 05:04:19 +0200 | <ski> | mashing them into it, how, in what sense ? |
2023-04-30 05:04:26 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 246 seconds) |
2023-04-30 05:04:26 +0200 | <Square> | a) for Generic type matches. b) to render field and read field input. |
2023-04-30 05:04:51 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::2) (Remote host closed the connection) |
2023-04-30 05:04:51 +0200 | <ski> | (also, is `FInt' intended to take any payload ? like maybe an `Int' or something ?) |
2023-04-30 05:05:09 +0200 | <Square> | its just field definition, not the actual input. |
2023-04-30 05:05:20 +0200 | <Square> | on "FInt" |
2023-04-30 05:05:43 +0200 | <ski> | mhm |
2023-04-30 05:05:51 +0200 | <Square> | The Set of Choice are the possible options |
2023-04-30 05:06:20 +0200 | <ski> | it seems there's very little you can do with your value of type `Set a', with `a' unknown, and only `Eq a' known about it |
2023-04-30 05:06:39 +0200 | <ski> | you could call `size :: Set a -> Int' on it, i suppose |
2023-04-30 05:07:11 +0200 | <Square> | I simplified the description of the problem here to make it clearer. |
2023-04-30 05:07:32 +0200 | <ski> | unfortunately, the simplification was too radical |
2023-04-30 05:07:39 +0200 | <Square> | Hashable? |
2023-04-30 05:08:24 +0200 | <ski> | i'm assuming you're still thinking about `Eq Field' ? or some other class than `Eq' ? |
2023-04-30 05:08:50 +0200 | <Square> | correct |
2023-04-30 05:09:37 +0200 | <Square> | Eq seems to be the problematic one as it takes 2 arguments to == |
2023-04-30 05:09:39 +0200 | <ski> | perhaps some sample set example would help to see what you're after modelling |
2023-04-30 05:10:35 +0200 | ryantrinkle | (~ryantrink@204.2.88.230) |
2023-04-30 05:10:49 +0200 | <ski> | yea, the problem is that if you have two `Field's, and both happen to be of the `Choice' alternative, then there's no guarantee they'll be using the same unknown type `a'. in fact, since you can't rely on that, you must assume that they are not |
2023-04-30 05:12:11 +0200 | <ski> | (if you had added `Typeable a' to the set of constraints on `a', then you could probably compare the types, at least if the sets were non-empty .. but it's not obvious this is the correct way forward) |
2023-04-30 05:12:15 +0200 | <Square> | Gotcha. I was hoping you could produce some hash of both and use that for equality. |
2023-04-30 05:13:13 +0200 | <Square> | I got Typeable on them and I compare types. But yeah. The actual values aren't comparable atm. |
2023-04-30 05:14:14 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 246 seconds) |
2023-04-30 05:14:33 +0200 | <ski> | what else, apart from calling operations that require `Eq', do you want to do with `Field's ? |
2023-04-30 05:18:16 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 05:18:22 +0200 | <Square> | Show..., maybe some To/FromJSON. Also for the Choice fields, I want Read for the actual type. |
2023-04-30 05:18:26 +0200 | <ski> | hmm. you mentioned generic type matches, as well as rendering fields and reading inputs corresponding to them. i dunno what you mean by the former, and have only a vague idea of what you may mean by the latter |
2023-04-30 05:18:49 +0200 | <ski> | `Read', but not, say, `Show' ? |
2023-04-30 05:20:04 +0200 | <ski> | also `Read' sounds like it would be more important, when constructing `Field's, than when deconstructing them |
2023-04-30 05:20:18 +0200 | <Square> | data Field = FInt | forall a. (Eq a, Show a, Typeable a, Read a, Ord a) => Choice a deriving (Show, Eq). |
2023-04-30 05:20:28 +0200 | <Square> | would be more like it |
2023-04-30 05:20:39 +0200 | <ski> | (`Ord a' implies `Eq a', btw) |
2023-04-30 05:20:54 +0200 | <Square> | oh? i did not know. |
2023-04-30 05:21:05 +0200 | <ski> | @src Ord |
2023-04-30 05:21:05 +0200 | <lambdabot> | class (Eq a) => Ord a where |
2023-04-30 05:21:05 +0200 | <lambdabot> | compare :: a -> a -> Ordering |
2023-04-30 05:21:05 +0200 | <lambdabot> | (<), (<=), (>), (>=) :: a -> a -> Bool |
2023-04-30 05:21:06 +0200 | <lambdabot> | max, min :: a -> a -> a |
2023-04-30 05:21:42 +0200 | <Square> | Ord require Eq so to speak. |
2023-04-30 05:21:49 +0200 | <ski> | yep |
2023-04-30 05:23:01 +0200 | <ski> | (so `(Eq a,Ord a)' amounts to the same thing as `Ord a', it's just the former is wordier (and maybe slightly less efficient .. dunno whether GHC would just remove implied constraints from the code)) |
2023-04-30 05:23:24 +0200 | <Square> | gotcha. |
2023-04-30 05:24:42 +0200 | <ski> | how would you render fields ? (and was the input reading means to be done in tandem to that ?) |
2023-04-30 05:24:46 +0200 | <Square> | I'm mentally sketching here for an idea I'm not 100% it will work out. I was thinking I could provide a "Eq a" for Choice through hashable, but maybe I need to dumb it down with strings or something. |
2023-04-30 05:25:40 +0200 | <ski> | i'm still wondering why `forall a. (..a..) => Choice (Set a)' would be preferable over `Choice Int' (the `Int' being the `size' of the set in question) |
2023-04-30 05:26:39 +0200 | <ski> | what information would you like to be able to get out of the set, that's not captured by the size of the set ? .. i suspect the rendering of the field comes in play here |
2023-04-30 05:27:13 +0200 | <Square> | case fld of ; Choice set -> fmap render set. And that would require some sort of 'Render a => Choice (Set a)' |
2023-04-30 05:28:04 +0200 | <ski> | also, what are specific candidate types, which `a' could possibly be ? |
2023-04-30 05:28:09 +0200 | <Square> | Q: "i'm still wondering why `forall a. (..a..)..." A: Cause "a" can be wildly different between Choice fields |
2023-04-30 05:28:56 +0200 | <Square> | I'm thinking no-arg sum types. Enum? |
2023-04-30 05:29:27 +0200 | <ski> | a single such type ? or multiple ones ? |
2023-04-30 05:29:38 +0200 | mncheck-m | (~mncheck@193.224.205.254) (Ping timeout: 246 seconds) |
2023-04-30 05:30:08 +0200 | <Square> | Multiple... 100s of different. |
2023-04-30 05:33:20 +0200 | <Square> | That's why its important I get the Eq implementation correct. I need to be able to tell if fld1 == fld2. |
2023-04-30 05:34:29 +0200 | <ski> | and if two sets use different enumeration types, they're to be considered definitely different sets ? |
2023-04-30 05:34:30 +0200 | <Square> | Choice (Set.fromList [A1,A2]) /= Choice (Set.fromList [B1,B2]) |
2023-04-30 05:34:53 +0200 | <Square> | exactly |
2023-04-30 05:34:55 +0200 | <ski> | (the answer to that question isn't obviously "yes") |
2023-04-30 05:35:36 +0200 | <Square> | maybe not, but for me its important. |
2023-04-30 05:36:02 +0200 | <ski> | i guess you may want to use `Typeable', then |
2023-04-30 05:36:55 +0200 | <ski> | you should be able to use `cast' to convert one set into (statically) having the same type as the other one (in case the types are indeed the same) |
2023-04-30 05:38:59 +0200 | <ski> | @type let hetEqSet :: (Typeable a,Typeable b,Eq a,Eq b) => S.Set a -> S.Set b -> Bool; hetEqSet sa sb = case cast sa of Nothing -> False; Just sa -> sa == sb in hetEqSet |
2023-04-30 05:39:00 +0200 | <lambdabot> | (Typeable a, Typeable b, Eq a, Eq b) => S.Set a -> S.Set b -> Bool |
2023-04-30 05:39:33 +0200 | <Square> | sweet! |
2023-04-30 05:39:41 +0200 | <Square> | That looks helpful |
2023-04-30 05:40:08 +0200 | <ski> | (you may still run into other difficulties with the existential, mind) |
2023-04-30 05:41:07 +0200 | <ski> | (of course, nothing in the code of that `hetEqSet' is specific to it handling sets .. but that's the situation you had, so) |
2023-04-30 05:41:07 +0200 | <Square> | I know I know. It's not good form. But yeah, in this case the total type isn't that important. |
2023-04-30 05:41:26 +0200 | zmt00 | (~zmt00@user/zmt00) |
2023-04-30 05:41:38 +0200 | <Square> | ski, thanks a bunch for helping me think along. Much appreciated. |
2023-04-30 05:42:14 +0200 | <ski> | i'm still not convinced using existentials like this, or using `Typeable' here (in case the existential is warranted), is sensible |
2023-04-30 05:42:50 +0200 | <ski> | but you may explore this option further down the road a bit, and perhaps discover some other roadblock later .. or not |
2023-04-30 05:45:00 +0200 | <Square> | what would you suggest instead? Note these flds will be part of tree like structures. A HList like type would be too. Encoding the Choice values to common type would ofcourse be an approach. |
2023-04-30 05:45:28 +0200 | <ski> | i still only have a quite vague idea of what you're really doing, so it's hard to say |
2023-04-30 05:45:44 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-30 05:45:54 +0200 | <Square> | yeah. ill try this and we'll see. Thanks a bunch. |
2023-04-30 05:46:17 +0200 | <ski> | have fun |
2023-04-30 05:46:31 +0200 | slac19128 | slack1256 |
2023-04-30 05:50:07 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2023-04-30 05:50:37 +0200 | nattiestnate | (~nate@202.138.250.62) (Quit: WeeChat 3.8) |
2023-04-30 05:52:52 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
2023-04-30 05:53:42 +0200 | <ski> | ("Eq seems to be the problematic one as it takes 2 arguments to ==" -- btw, this echoes problems with "binary methods" in OO -- not too surprisingly, since OO can be thought of in terms of existentials) |
2023-04-30 06:05:20 +0200 | Square | (~Square@user/square) (Ping timeout: 246 seconds) |
2023-04-30 06:07:26 +0200 | falafel | (~falafel@2603-8000-d700-115c-557c-00d7-83ff-43f9.res6.spectrum.com) (Ping timeout: 246 seconds) |
2023-04-30 06:17:34 +0200 | ddellacosta | (~ddellacos@143.244.47.73) (Ping timeout: 252 seconds) |
2023-04-30 06:26:18 +0200 | berberman | (~berberman@user/berberman) |
2023-04-30 06:40:19 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2023-04-30 06:43:02 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-04-30 06:55:36 +0200 | berberman | (~berberman@user/berberman) (Remote host closed the connection) |
2023-04-30 06:55:56 +0200 | berberman | (~berberman@user/berberman) |
2023-04-30 07:12:43 +0200 | bilegeek | (~bilegeek@2600:1008:b06c:a5bb:d8ca:a8ce:a1a:8895) |
2023-04-30 07:25:52 +0200 | trev | (~trev@user/trev) |
2023-04-30 07:29:20 +0200 | JScript | (~JScript@144.48.39.18) (Ping timeout: 246 seconds) |
2023-04-30 07:36:04 +0200 | sgarcia_ | (sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com) |
2023-04-30 07:39:14 +0200 | sgarcia | (sgarcia@swarm.znchost.com) |
2023-04-30 07:42:36 +0200 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2023-04-30 07:44:37 +0200 | JScript | (~JScript@45.248.77.142) |
2023-04-30 07:46:53 +0200 | slack1256 | (~slack1256@191.125.26.100) (Remote host closed the connection) |
2023-04-30 07:48:43 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 07:53:50 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-04-30 07:53:50 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-04-30 07:53:50 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-04-30 07:53:51 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-04-30 07:53:59 +0200 | thegeekinside | (~thegeekin@189.180.38.222) |
2023-04-30 07:54:14 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) |
2023-04-30 07:54:20 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-04-30 07:54:25 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-04-30 07:54:58 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-04-30 07:55:00 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-04-30 07:55:01 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2023-04-30 07:55:27 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-04-30 07:55:44 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-04-30 08:04:08 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-04-30 08:07:09 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2023-04-30 08:07:54 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-04-30 08:15:01 +0200 | mei | (~mei@user/mei) (Quit: mei) |
2023-04-30 08:16:37 +0200 | mei | (~mei@user/mei) |
2023-04-30 08:21:04 +0200 | bilegeek | (~bilegeek@2600:1008:b06c:a5bb:d8ca:a8ce:a1a:8895) (Quit: Leaving) |
2023-04-30 08:22:14 +0200 | user363627 | (~user36362@146.70.198.100) (Ping timeout: 250 seconds) |
2023-04-30 08:22:45 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-04-30 08:25:36 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-04-30 08:26:05 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) |
2023-04-30 08:42:47 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-04-30 08:43:12 +0200 | acidjnk_new | (~acidjnk@p200300d6e715c467d9596cc51d075b5b.dip0.t-ipconnect.de) |
2023-04-30 08:43:54 +0200 | falafel | (~falafel@2603-8000-d700-115c-a14b-5f58-a067-9cc9.res6.spectrum.com) |
2023-04-30 08:50:12 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-04-30 08:50:56 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
2023-04-30 08:52:40 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-04-30 08:53:13 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-04-30 08:53:48 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-04-30 08:54:34 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-04-30 08:55:03 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2023-04-30 09:01:24 +0200 | ddellacosta | (~ddellacos@146.70.168.100) |
2023-04-30 09:06:56 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-04-30 09:11:51 +0200 | falafel | (~falafel@2603-8000-d700-115c-a14b-5f58-a067-9cc9.res6.spectrum.com) (Remote host closed the connection) |
2023-04-30 09:12:16 +0200 | falafel | (~falafel@2603-8000-d700-115c-9d8a-36a2-86b0-529b.res6.spectrum.com) |
2023-04-30 09:17:08 +0200 | falafel | (~falafel@2603-8000-d700-115c-9d8a-36a2-86b0-529b.res6.spectrum.com) (Ping timeout: 246 seconds) |
2023-04-30 09:22:18 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-04-30 09:22:19 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-04-30 09:22:27 +0200 | thegeekinside | (~thegeekin@189.180.38.222) (Remote host closed the connection) |
2023-04-30 09:22:52 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-04-30 09:23:03 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2023-04-30 09:24:46 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-04-30 09:25:07 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-04-30 09:34:08 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-30 09:46:56 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-30 09:48:05 +0200 | neohtetxyz[m] | (~neohtetxy@2001:470:69fc:105::3:314c) |
2023-04-30 09:50:46 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection) |
2023-04-30 09:51:05 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-04-30 09:51:47 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2023-04-30 09:53:31 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 09:54:05 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-04-30 09:55:12 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) |
2023-04-30 10:18:23 +0200 | jespada_ | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
2023-04-30 10:22:48 +0200 | czy | (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
2023-04-30 10:25:39 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-04-30 10:27:08 +0200 | GerryH | (~Brgaammin@p5b375702.dip0.t-ipconnect.de) |
2023-04-30 10:33:59 +0200 | acidbong | (6e5528b381@198.108.77.94) |
2023-04-30 10:39:46 +0200 | _ht | (~Thunderbi@82.174.52.28) |
2023-04-30 10:46:29 +0200 | Inst | (~Inst@2601:6c4:4081:54f0:7880:a3e7:2b04:1611) |
2023-04-30 10:46:41 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-04-30 10:51:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) (Remote host closed the connection) |
2023-04-30 10:57:14 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2023-04-30 10:57:47 +0200 | bontaq | (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 250 seconds) |
2023-04-30 11:03:34 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) |
2023-04-30 11:10:43 +0200 | Digitteknohippie | (~user@user/digit) |
2023-04-30 11:11:02 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-04-30 11:11:35 +0200 | Digit | (~user@user/digit) (Ping timeout: 246 seconds) |
2023-04-30 11:15:47 +0200 | pyook | (~puke@user/puke) (Ping timeout: 246 seconds) |
2023-04-30 11:16:05 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 11:16:13 +0200 | Digitteknohippie | Digit |
2023-04-30 11:16:27 +0200 | zmt01 | (~zmt00@user/zmt00) |
2023-04-30 11:19:28 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 250 seconds) |
2023-04-30 11:20:45 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2023-04-30 11:22:19 +0200 | <Helle> | hrm, is there a canonically reasonable tool for linting Haskell, other then both the compiler and hlint ?, trying to make sure I didn't make a complete mess before continuing, heh |
2023-04-30 11:25:01 +0200 | <geekosaur[m]> | hlint is pretty much it |
2023-04-30 11:25:40 +0200 | <Helle> | shame |
2023-04-30 11:26:11 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-85e1-23ae-ea70-6ae4.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 11:26:13 +0200 | <Helle> | I mean the compiler gives more useful warnings then hlint for the most part (also surprised that hlint does not complain about bare imports) |
2023-04-30 11:26:30 +0200 | <[exa]> | Helle: why would it complain when the compiler already complains? |
2023-04-30 11:26:31 +0200 | Digitteknohippie | (~user@user/digit) |
2023-04-30 11:26:56 +0200 | <jade[m]> | hlint is integrated into HLS, right? |
2023-04-30 11:26:56 +0200 | <Helle> | [exa]: because it generates nice reports |
2023-04-30 11:27:12 +0200 | <[exa]> | ah. |
2023-04-30 11:28:32 +0200 | <geekosaur> | HLS uses both pedantic compiler warnings and hlint, yes |
2023-04-30 11:29:00 +0200 | Digit | (~user@user/digit) (Ping timeout: 250 seconds) |
2023-04-30 11:29:34 +0200 | <mauke> | (I like how what gcc calls "pedantic" warnings are the minimum diagnostics required by the C standard) |
2023-04-30 11:29:37 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 11:29:58 +0200 | <Helle> | mauke: don't get me started on other languages :P |
2023-04-30 11:31:30 +0200 | Digitteknohippie | Digit |
2023-04-30 11:38:42 +0200 | tzh | (~tzh@24.21.73.154) (Quit: zzz) |
2023-04-30 11:52:19 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) |
2023-04-30 11:54:17 +0200 | GerryH | (~Brgaammin@p5b375702.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-04-30 11:56:44 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) (Ping timeout: 246 seconds) |
2023-04-30 11:57:01 +0200 | gehmehgeh | gmg |
2023-04-30 12:13:10 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2023-04-30 12:24:51 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-04-30 12:29:27 +0200 | <somerandomnick[m> | a linter is more congruent with a language like python or typescript, where the philosophy is: different coders solving the same problem shall come up with the same code |
2023-04-30 12:30:21 +0200 | <somerandomnick[m> | haskell philosophy is dual to that, hosting the many different EDSL |
2023-04-30 12:30:26 +0200 | <geekosaur> | but the original `lint` was for C |
2023-04-30 12:31:04 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
2023-04-30 12:31:25 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-04-30 12:31:57 +0200 | <somerandomnick[m> | I did not know that |
2023-04-30 12:32:36 +0200 | <somerandomnick[m> | anyways in haskell, id rather have the type system "lint" for me |
2023-04-30 12:33:12 +0200 | <somerandomnick[m> | also what would a linter know about balancing out pointfree with pointful style |
2023-04-30 12:33:41 +0200 | <mauke> | the original lint was for C because the compiler couldn't typecheck function calls |
2023-04-30 12:36:04 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 12:42:08 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) (Ping timeout: 248 seconds) |
2023-04-30 12:44:15 +0200 | GerryH | (~Brgaammin@p5b375702.dip0.t-ipconnect.de) |
2023-04-30 12:44:23 +0200 | Inst | (~Inst@2601:6c4:4081:54f0:7880:a3e7:2b04:1611) (Ping timeout: 246 seconds) |
2023-04-30 12:48:27 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-04-30 12:53:22 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-04-30 12:54:05 +0200 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 240 seconds) |
2023-04-30 12:55:07 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 248 seconds) |
2023-04-30 12:57:14 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 13:08:41 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!) |
2023-04-30 13:14:20 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-04-30 13:16:39 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 13:19:23 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-04-30 13:20:10 +0200 | GerryH | (~Brgaammin@p5b375702.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2023-04-30 13:41:17 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-30 13:45:56 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2023-04-30 13:50:50 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2023-04-30 13:53:41 +0200 | stallmanator | (~stallmana@user/stallmanator) |
2023-04-30 13:56:16 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-30 13:56:30 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-04-30 13:56:59 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
2023-04-30 13:59:28 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 248 seconds) |
2023-04-30 14:00:32 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2023-04-30 14:01:25 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 14:06:27 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2023-04-30 14:06:51 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 14:07:19 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 14:08:11 +0200 | tremon | (~tremon@83.80.159.219) |
2023-04-30 14:12:18 +0200 | gawen | (~gawen@user/gawen) (Quit: cya) |
2023-04-30 14:13:39 +0200 | gawen | (~gawen@user/gawen) |
2023-04-30 14:15:42 +0200 | Joao003 | (~Joao003@2804:840:8311:b700:5c98:76bb:dd08:e1ad) |
2023-04-30 14:17:33 +0200 | <Joao003> | Hello |
2023-04-30 14:18:54 +0200 | <[exa]> | o/ |
2023-04-30 14:21:27 +0200 | <Joao003> | [exa]: What |
2023-04-30 14:22:33 +0200 | <[exa]> | wait I'll wave with the other hand, hope you'll see it then |
2023-04-30 14:22:35 +0200 | <[exa]> | \o |
2023-04-30 14:22:53 +0200 | <stallmanator> | hi |
2023-04-30 14:24:15 +0200 | <Joao003> | Oh |
2023-04-30 14:26:19 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-04-30 14:26:21 +0200 | pyook | (~puke@user/puke) |
2023-04-30 14:26:55 +0200 | <Helle> | oooh, I'm already pushing the boundaries of the type system, always fun |
2023-04-30 14:29:14 +0200 | <Helle> | I know I probably shouldn't be doing this |
2023-04-30 14:29:27 +0200 | <[exa]> | Helle: traditionally I have to ask about what direction are you pushing, w.r.t. to the direction towards undecidability |
2023-04-30 14:29:30 +0200 | <[exa]> | :D |
2023-04-30 14:30:12 +0200 | <Helle> | [exa]: quite close, I am reminded that during my bachelor I found a bug in PostgreSQL's query planner that forced it to solve the halting planner |
2023-04-30 14:30:20 +0200 | <Helle> | err, halting problem |
2023-04-30 14:30:30 +0200 | <Helle> | that was fun when I finally realised why the query didn't work |
2023-04-30 14:31:31 +0200 | <Helle> | let's see if I can phrase the question for this, and excuse my incorrect terminology, my Haskell is super rusty |
2023-04-30 14:31:47 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-30 14:32:19 +0200 | <[exa]> | lol cool |
2023-04-30 14:32:32 +0200 | <Joao003> | Halting Problem? Did you mean impossible? |
2023-04-30 14:32:37 +0200 | <Helle> | Joao003: yes |
2023-04-30 14:32:41 +0200 | <Joao003> | XD |
2023-04-30 14:33:25 +0200 | <Helle> | it was also a bug in the query planner, it is supposed to be written in such a way that that never happens, but humans |
2023-04-30 14:33:28 +0200 | <Helle> | anyway |
2023-04-30 14:33:30 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
2023-04-30 14:35:28 +0200 | <Helle> | I have a variable of type Node, https://www.stackage.org/haddock/nightly-2023-04-28/xml-conduit-1.9.1.2/src/Text.XML.html#Node passed to a function, I need to work on only the ones of decomposed type Element and I want it to be an error (ideally a type error) to pass it any Node that has a different underlying type, I currently just pattern match it and pass back a Nothing, but ideally would like the type |
2023-04-30 14:35:34 +0200 | <Helle> | system to help me and eliminate that |
2023-04-30 14:36:47 +0200 | <Joao003> | Guys |
2023-04-30 14:37:08 +0200 | <Helle> | but I am probably short some concept with the type declaration of the function |
2023-04-30 14:37:18 +0200 | <Helle> | (as said, quite rusty) |
2023-04-30 14:38:27 +0200 | <Joao003> | I just solved a kata in Codewars, and 4 people did the most clever thing possible: `Set.toList . Set.fromList` instead of `sort . nub` |
2023-04-30 14:38:28 +0200 | <[exa]> | Helle: why not just go with Element? |
2023-04-30 14:38:47 +0200 | pyook | (~puke@user/puke) (Ping timeout: 246 seconds) |
2023-04-30 14:39:38 +0200 | CiaoSen | (~Jura@tmo-110-209.customers.d1-online.com) |
2023-04-30 14:39:43 +0200 | <Helle> | [exa]: I didn't get to choose to be passed a Node (library function) instead of the Element |
2023-04-30 14:39:51 +0200 | <ncf> | Joao003: nub doesn't need sorting |
2023-04-30 14:40:41 +0200 | <Joao003> | ncf: It does |
2023-04-30 14:40:50 +0200 | <Joao003> | Because of the kata's objective |
2023-04-30 14:41:08 +0200 | <ncf> | ah, you're sorting after nub |
2023-04-30 14:41:17 +0200 | <[exa]> | Helle: then you probably can't typecheck it easily, you'd need to decompose the library function to have the top of the structure represented in types |
2023-04-30 14:41:49 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Remote host closed the connection) |
2023-04-30 14:42:15 +0200 | <[exa]> | (or at least annotated in types, but for that I guess there won't be enough polymorphism) |
2023-04-30 14:42:43 +0200 | <Helle> | [exa]: yeah, I got the feeling that that would be the case |
2023-04-30 14:43:20 +0200 | <[exa]> | (generally, valuechecking by types is hard) |
2023-04-30 14:43:56 +0200 | <Helle> | mhm |
2023-04-30 14:44:05 +0200 | <Joao003> | ncf: The objective of that kata was to get the longest lexicographically sorted string pulling characters from two input strings |
2023-04-30 14:44:23 +0200 | <Joao003> | With distinct characters |
2023-04-30 14:44:52 +0200 | <[exa]> | Helle: otoh you can easily patternmatch on the result and have a relatively sane error handling if not |
2023-04-30 14:45:07 +0200 | Alex_test | (~al_test@178.34.150.15) (Quit: ;-) |
2023-04-30 14:45:28 +0200 | <Helle> | [exa]: yeah, but I can't have compile time checking in that case, right ? |
2023-04-30 14:45:29 +0200 | AlexZenon | (~alzenon@178.34.150.15) (Quit: ;-) |
2023-04-30 14:45:53 +0200 | AlexNoo | (~AlexNoo@178.34.150.15) (Quit: Leaving) |
2023-04-30 14:45:56 +0200 | <[exa]> | Helle: yeah, I kinda guess you're trying to push the typechecker into doing input validation for you |
2023-04-30 14:46:27 +0200 | <Helle> | [exa]: not even |
2023-04-30 14:46:49 +0200 | <Helle> | although good point, that is why the issue exists |
2023-04-30 14:47:01 +0200 | <Helle> | because the pattern is quite similar to that |
2023-04-30 14:47:08 +0200 | pyook | (~puke@user/puke) |
2023-04-30 14:47:11 +0200 | <[exa]> | anyway in cases like this I usually just go for some shortcirtuiting monad like a Maybe that shortcuts when the patternmatch fails |
2023-04-30 14:48:32 +0200 | <[exa]> | e.g. you can have the error handled literally by `x <- element input` where element returns `Maybe Element` |
2023-04-30 14:48:45 +0200 | <Helle> | yep |
2023-04-30 14:48:58 +0200 | <Helle> | literally what it does right now |
2023-04-30 14:49:14 +0200 | <Helle> | (otoh, the underlying type in this case is knowable, but I seem to remember the type checker being forgetful on purpose in cases like this, gah, you are making me actually require some stuff I studied) |
2023-04-30 14:50:02 +0200 | <Joao003> | Oh no |
2023-04-30 14:50:34 +0200 | <Helle> | (Trying to recall if it was a performance choice, or for the exact same reason as why I bugged out the PostgreSQL query planner.....) |
2023-04-30 14:50:42 +0200 | <Joao003> | In the Haskell solutions for a Kata in Codewars, someone didn't know about currying nor `id` XD |
2023-04-30 14:50:51 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 14:51:13 +0200 | <Helle> | Joao003: I mean |
2023-04-30 14:51:23 +0200 | alexherbo2 | (~alexherbo@211.190.65.81.rev.sfr.net) |
2023-04-30 14:51:24 +0200 | <Helle> | never blame someone for still solving it |
2023-04-30 14:51:31 +0200 | Helle | looks at how bad her current code is |
2023-04-30 14:52:17 +0200 | <Joao003> | Take a look at it for yourself |
2023-04-30 14:53:21 +0200 | ft | (~ft@p4fc2a88b.dip0.t-ipconnect.de) |
2023-04-30 14:53:25 +0200 | <Joao003> | https://paste.tomsmeding.com/PELz6Ja5 |
2023-04-30 14:53:29 +0200 | <[exa]> | Helle: anyway yeah the "forgetting" of the structure may be a blocker there, it's beneficial for keeping stuff simple for the compiler but you see, problems. |
2023-04-30 14:54:47 +0200 | <[exa]> | Helle: it might be nicer if e.g. the package allowed you to pass in a functor or an applicative or so, you might then force it to remember stuff using say `MyFunctor Element a` |
2023-04-30 14:55:05 +0200 | <[exa]> | but that gets unwieldy for the package implementors... |
2023-04-30 14:57:43 +0200 | <Helle> | yep |
2023-04-30 14:58:34 +0200 | <Hecate> | not using `id` means that you've spent too much time in your code and need to take a step back |
2023-04-30 14:58:35 +0200 | <Helle> | anyway, I am enjoying running into limits and them turning out to be actual limitations, that shows that I atleast have some grasp of this :) |
2023-04-30 15:01:32 +0200 | <Helle> | also, just remembered, I can make it hit an.... error |
2023-04-30 15:01:46 +0200 | <Helle> | but I think I can produce a more userfriendly instructing some yelling at a dev |
2023-04-30 15:03:51 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 265 seconds) |
2023-04-30 15:05:18 +0200 | <Hecate> | :D |
2023-04-30 15:11:02 +0200 | <Helle> | (the only failure cases would be am incompatible library update, or new code that does incorrect stuff)w |
2023-04-30 15:11:02 +0200 | <stallmanator> | does the let keyword do anything differently or is it just syntactic sugar? |
2023-04-30 15:11:58 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 276 seconds) |
2023-04-30 15:12:40 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-04-30 15:13:40 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 15:14:17 +0200 | GerryH | (~Brgaammin@p5b375702.dip0.t-ipconnect.de) |
2023-04-30 15:14:46 +0200 | <Joao003> | Who uses `let ... in` outside of GHCI? |
2023-04-30 15:15:45 +0200 | CiaoSen | (~Jura@tmo-110-209.customers.d1-online.com) (Ping timeout: 240 seconds) |
2023-04-30 15:16:05 +0200 | <ski> | stallmanator : `let' is not syntactic sugar |
2023-04-30 15:16:27 +0200 | <ski> | (and differently from what ?) |
2023-04-30 15:17:11 +0200 | <stallmanator> | the book I'm reading compares let x = 1 to x = 1 |
2023-04-30 15:17:32 +0200 | <ski> | where ? |
2023-04-30 15:18:24 +0200 | <stallmanator> | the part where it introduces let |
2023-04-30 15:18:31 +0200 | ski | 's also delightfully surprised this use of monospace is not terminated by "clear all attributes" |
2023-04-30 15:18:54 +0200 | <ski> | stallmanator : no, i mean, in which context is the book considering those two program fragments ? |
2023-04-30 15:20:02 +0200 | <ski> | are those being placed as commands in a `do', as defining equations in a `where', in the top-level of a module (after its `where'), in the interactor (like GHCi), &c. ? |
2023-04-30 15:20:02 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-04-30 15:20:49 +0200 | gmg | (~user@user/gehmehgeh) |
2023-04-30 15:20:51 +0200 | <stallmanator> | I'm yet to encounter where but yes I think it's talking in context of ghci |
2023-04-30 15:21:43 +0200 | myme | (~myme@2a01:799:d60:e400:d3f8:a1c2:97a0:2fb) (Ping timeout: 260 seconds) |
2023-04-30 15:21:46 +0200 | <ski> | ok. in *that* specific context, you can leave out the `let' (so the form without `let' could be seen as syntactic sugar) |
2023-04-30 15:22:19 +0200 | <Joao003> | stallmanator: Have you seen `let ... in` yet? |
2023-04-30 15:22:22 +0200 | <stallmanator> | I see, well really thanks help for the help :) |
2023-04-30 15:22:23 +0200 | <ski> | (in other contexts, either the `let' is required, or it's not allowed) |
2023-04-30 15:22:29 +0200 | <stallmanator> | Joao003: yeah I found the wiki page on hackage |
2023-04-30 15:22:35 +0200 | myme | (~myme@2a01:799:d60:e400:62e6:cfdd:2547:9938) |
2023-04-30 15:23:04 +0200 | <stallmanator> | oh sorry my bad: https://wiki.haskell.org/Let_vs._Where this page |
2023-04-30 15:23:24 +0200 | AlexNoo | (~AlexNoo@178.34.150.15) |
2023-04-30 15:23:28 +0200 | <stallmanator> | I heard hackage somewhere and it's been stuck in my head because sounds like a pretty cool name :) |
2023-04-30 15:24:13 +0200 | <ski> | @where hackage |
2023-04-30 15:24:14 +0200 | <lambdabot> | <http://hackage.haskell.org/packages>, also see `revdeps',`status' |
2023-04-30 15:24:20 +0200 | AlexZenon | (~alzenon@178.34.150.15) |
2023-04-30 15:25:19 +0200 | <mauke> | @where revdeps |
2023-04-30 15:25:19 +0200 | <lambdabot> | <http://packdeps.haskellers.com/reverse>,<http://packdeps.haskellers.com/>,<http://www.yesodweb.com/blog/2011/02/reverse-packdeps> |
2023-04-30 15:25:25 +0200 | <mauke> | @where status |
2023-04-30 15:25:26 +0200 | <lambdabot> | <https://status.haskell.org>,<http://auto-status.haskell.org/>,<https://twitter.com/haskellstatus> |
2023-04-30 15:27:59 +0200 | Alex_test | (~al_test@178.34.150.15) |
2023-04-30 15:31:51 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-04-30 15:35:09 +0200 | <somerandomnick[m> | ski: does it help the compiler to utilize referential transparency, to avoid re-evaluation? |
2023-04-30 15:35:28 +0200 | <ski> | "it" being ? |
2023-04-30 15:35:52 +0200 | <Joao003> | Is there a non-inclusive `enumFromTo`? |
2023-04-30 15:36:04 +0200 | <ski> | not that i'm aware of |
2023-04-30 15:36:20 +0200 | <ski> | > range (0,9) |
2023-04-30 15:36:22 +0200 | <lambdabot> | [0,1,2,3,4,5,6,7,8,9] |
2023-04-30 15:36:57 +0200 | <int-e> | ski: I've had so many off-by-one errors because of that |
2023-04-30 15:37:10 +0200 | <ski> | `range' or `enumFromTo' ? |
2023-04-30 15:37:14 +0200 | <int-e> | range |
2023-04-30 15:38:04 +0200 | <ski> | > range ((0,2),(3,3)) |
2023-04-30 15:38:06 +0200 | <lambdabot> | [(0,2),(0,3),(1,2),(1,3),(2,2),(2,3),(3,2),(3,3)] |
2023-04-30 15:38:59 +0200 | acidjnk | (~acidjnk@p200300d6e715c46789327d173b2333a9.dip0.t-ipconnect.de) |
2023-04-30 15:39:05 +0200 | <int-e> | . o O ( >>> list(range(0,9)) --> [0, 1, 2, 3, 4, 5, 6, 7, 8] ) |
2023-04-30 15:39:22 +0200 | <ski> | Python ? |
2023-04-30 15:39:30 +0200 | <int-e> | Yes. |
2023-04-30 15:39:44 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-04-30 15:40:00 +0200 | <int-e> | And recently, Rust. |
2023-04-30 15:40:25 +0200 | <int-e> | Which has a 0..9 syntax for an iterator over 0,1,...,8 and 0..=9 for 0,1,...,9 |
2023-04-30 15:40:27 +0200 | acidjnk_new | (~acidjnk@p200300d6e715c467d9596cc51d075b5b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2023-04-30 15:40:48 +0200 | <int-e> | hmm, well, technically it's a range and it auto-converts into an iterator for loops |
2023-04-30 15:42:26 +0200 | <ski> | i'm guessing it doesn't do multi-dimensional ranges |
2023-04-30 15:42:32 +0200 | <ski> | hmm |
2023-04-30 15:42:57 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-30 15:46:06 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit) |
2023-04-30 15:47:25 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-30 15:47:31 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 15:47:44 +0200 | <Joao003> | > enumFromTo "aa" "zz" |
2023-04-30 15:47:46 +0200 | <lambdabot> | error: |
2023-04-30 15:47:46 +0200 | <lambdabot> | • No instance for (Enum [Char]) arising from a use of ‘enumFromTo’ |
2023-04-30 15:47:46 +0200 | <lambdabot> | • In the expression: enumFromTo "aa" "zz" |
2023-04-30 15:48:14 +0200 | <Joao003> | > enumFromTo ('a', 'a') ('z', 'z') |
2023-04-30 15:48:15 +0200 | <lambdabot> | error: |
2023-04-30 15:48:15 +0200 | <lambdabot> | • No instance for (Enum (Char, Char)) |
2023-04-30 15:48:15 +0200 | <lambdabot> | arising from a use of ‘enumFromTo’ |
2023-04-30 15:49:08 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat) |
2023-04-30 15:49:21 +0200 | <geekosaur> | there's at least two possible definitions for that |
2023-04-30 15:49:37 +0200 | <probie> | > join (liftM2 (\x y -> [x,y])) (enumFromTo 'a' 'z') |
2023-04-30 15:49:39 +0200 | <lambdabot> | ["aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao",... |
2023-04-30 15:49:39 +0200 | <geekosaur> | better to implement the one you want yourself |
2023-04-30 15:49:59 +0200 | <ski> | total order (lexicographic) vs. partial order |
2023-04-30 15:50:13 +0200 | <int-e> | Oh, the range *is* the iterator; it updates the start of the range as you iterate. So with that design it really can't do multi-dimensional ranges. A different design of the library could... |
2023-04-30 15:50:45 +0200 | <int-e> | It's all apples and oranges, of course. |
2023-04-30 15:50:53 +0200 | <ski> | > replicateM 2 ['a' .. 'z'] |
2023-04-30 15:50:55 +0200 | <lambdabot> | ["aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao",... |
2023-04-30 15:51:03 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) |
2023-04-30 15:54:46 +0200 | <Joao003> | Who here hates list comprehensions? |
2023-04-30 15:55:19 +0200 | <Joao003> | And how is `map` defined? |
2023-04-30 15:55:22 +0200 | <Joao003> | @src map |
2023-04-30 15:55:22 +0200 | <lambdabot> | map _ [] = [] |
2023-04-30 15:55:22 +0200 | <lambdabot> | map f (x:xs) = f x : map f xs |
2023-04-30 15:55:26 +0200 | <Joao003> | Cool. |
2023-04-30 15:55:33 +0200 | <int-e> | (it's a lie) |
2023-04-30 15:55:53 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) |
2023-04-30 15:56:08 +0200 | <Joao003> | So it's actually `map f xs = [f x | x <- xs]`? |
2023-04-30 15:57:27 +0200 | <int-e> | No. In fact, GHC.Base does contain that code verbatim. But most of the time, the compiler will rewrite `map f xs` to something else to enable list fusion. |
2023-04-30 15:57:28 +0200 | <Joao003> | The difference between `foldl` and `foldr` can be annoying at times, specifically the folding function's arguments swapping |
2023-04-30 15:58:06 +0200 | <int-e> | And list fusion in turn is essential for making list comprehension not suck. |
2023-04-30 15:58:06 +0200 | <Joao003> | > foldl (-) [5..1] |
2023-04-30 15:58:08 +0200 | <lambdabot> | error: |
2023-04-30 15:58:08 +0200 | <lambdabot> | • No instance for (Num [Integer]) arising from a use of ‘e_151’ |
2023-04-30 15:58:08 +0200 | <lambdabot> | • In the expression: e_151 |
2023-04-30 15:58:18 +0200 | <Joao003> | > foldl (-) 0 [5..1] |
2023-04-30 15:58:18 +0200 | Me-me | (~Me-me@user/me-me) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.) |
2023-04-30 15:58:19 +0200 | <lambdabot> | 0 |
2023-04-30 15:58:26 +0200 | <int-e> | > [5..1] |
2023-04-30 15:58:28 +0200 | <lambdabot> | [] |
2023-04-30 15:58:32 +0200 | <Joao003> | > foldl (-) 0 [1..5] |
2023-04-30 15:58:35 +0200 | <lambdabot> | -15 |
2023-04-30 15:58:41 +0200 | <Joao003> | > foldr (-) 0 [1..5] |
2023-04-30 15:58:44 +0200 | <lambdabot> | 3 |
2023-04-30 15:58:46 +0200 | <Joao003> | Ugh |
2023-04-30 15:58:58 +0200 | <int-e> | Joao003: you can message lambdabot privately too |
2023-04-30 15:59:29 +0200 | <Joao003> | It became 1-(2-(3-(4-(5-0)))) |
2023-04-30 15:59:42 +0200 | <int-e> | of course |
2023-04-30 15:59:59 +0200 | <geekosaur> | easy to remember what foldr does, it replaces , with the operator/function and [] with the base case |
2023-04-30 16:00:02 +0200 | <Joao003> | > foldr (flip (-)) 0 [1..5] |
2023-04-30 16:00:02 +0200 | <int-e> | (what did you expect?) |
2023-04-30 16:00:04 +0200 | <lambdabot> | -15 |
2023-04-30 16:00:27 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) (Ping timeout: 260 seconds) |
2023-04-30 16:00:44 +0200 | <Joao003> | > scanl (*) 1 [1..10] |
2023-04-30 16:00:46 +0200 | <lambdabot> | [1,1,2,6,24,120,720,5040,40320,362880,3628800] |
2023-04-30 16:00:49 +0200 | <Joao003> | Factorials |
2023-04-30 16:01:02 +0200 | <geekosaur> | sorry replaces (:), you need to look at it in (:) form (the actual list) to understand it |
2023-04-30 16:01:22 +0200 | <probie> | > foldr subtract 0 [1..5] |
2023-04-30 16:01:27 +0200 | <lambdabot> | -15 |
2023-04-30 16:01:36 +0200 | <int-e> | > fix (scanl (+) 0 . (1:)) |
2023-04-30 16:01:38 +0200 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
2023-04-30 16:01:46 +0200 | <Joao003> | > 1:2:3:4:[5] |
2023-04-30 16:01:47 +0200 | <lambdabot> | [1,2,3,4,5] |
2023-04-30 16:02:11 +0200 | <geekosaur> | > 1:2:3:4:5:[] |
2023-04-30 16:02:13 +0200 | <lambdabot> | [1,2,3,4,5] |
2023-04-30 16:02:43 +0200 | <Joao003> | > let snoc = reverse . (:) . reverse in foldl snoc [] [1..5] |
2023-04-30 16:02:45 +0200 | <lambdabot> | error: |
2023-04-30 16:02:45 +0200 | <lambdabot> | • Couldn't match type ‘[[a2]] -> [[a2]]’ with ‘[a3]’ |
2023-04-30 16:02:45 +0200 | <lambdabot> | Expected type: [a2] -> [a3] |
2023-04-30 16:02:49 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 252 seconds) |
2023-04-30 16:02:55 +0200 | <Joao003> | > let snoc = reverse . (:) . reverse in foldr snoc [] [1..5] |
2023-04-30 16:02:57 +0200 | <lambdabot> | error: |
2023-04-30 16:02:57 +0200 | <lambdabot> | • Couldn't match type ‘[[a2]] -> [[a2]]’ with ‘[a3]’ |
2023-04-30 16:02:57 +0200 | <lambdabot> | Expected type: [a2] -> [a3] |
2023-04-30 16:03:03 +0200 | <int-e> | Joao003: please experiment somewhere else |
2023-04-30 16:03:12 +0200 | pyooque | (~puke@user/puke) |
2023-04-30 16:03:12 +0200 | puke | Guest8720 |
2023-04-30 16:03:12 +0200 | Guest8720 | (~puke@user/puke) (Killed (copper.libera.chat (Nickname regained by services))) |
2023-04-30 16:03:12 +0200 | pyooque | puke |
2023-04-30 16:03:49 +0200 | puke | (~puke@user/puke) (Max SendQ exceeded) |
2023-04-30 16:04:42 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) |
2023-04-30 16:05:05 +0200 | puke | (~puke@user/puke) |
2023-04-30 16:05:52 +0200 | alexherbo2 | (~alexherbo@211.190.65.81.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 16:05:52 +0200 | puke | (~puke@user/puke) (Max SendQ exceeded) |
2023-04-30 16:07:05 +0200 | puke | (~puke@user/puke) |
2023-04-30 16:07:31 +0200 | <int-e> | @pl \x xs -> reverse (x : reverse xs) |
2023-04-30 16:07:32 +0200 | <lambdabot> | (reverse .) . (. reverse) . (:) |
2023-04-30 16:07:42 +0200 | <int-e> | (almost pretty) |
2023-04-30 16:08:34 +0200 | chomwitt | (~chomwitt@2a02:587:7a1d:9d00:1ac0:4dff:fedb:a3f1) |
2023-04-30 16:21:16 +0200 | <Helle> | *sigh* "Oh, I wonder where you'd really use id all that much" 10 minutes laters I found a pretty reasonable use for it, so I guess, right there |
2023-04-30 16:21:41 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2023-04-30 16:23:32 +0200 | <ski> | ooc, where did you use it ? |
2023-04-30 16:25:56 +0200 | <Helle> | well, I also just removed it again, heh |
2023-04-30 16:26:10 +0200 | <Helle> | so not that great |
2023-04-30 16:27:37 +0200 | <Helle> | maybe default id, but fromMaybe does just that without requiring the id, though just as many characters :P |
2023-04-30 16:27:56 +0200 | <Helle> | (thanks hlint) |
2023-04-30 16:39:21 +0200 | jade[m] | uploaded an image: (512KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/GbfgntNYrnWgZtoCMUmcnDxN/image.png > |
2023-04-30 16:39:21 +0200 | <jade[m]> | I made this by accident |
2023-04-30 16:39:22 +0200 | <jade[m]> | looks kinda sick |
2023-04-30 16:40:48 +0200 | <int-e> | :t foldMap id -- this one has a name though, `fold` |
2023-04-30 16:40:49 +0200 | <lambdabot> | (Foldable t, Monoid m) => t m -> m |
2023-04-30 16:44:00 +0200 | <int-e> | :t foldr (.) id |
2023-04-30 16:44:01 +0200 | <lambdabot> | Foldable t => t (b -> b) -> b -> b |
2023-04-30 16:47:49 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-04-30 16:48:22 +0200 | Square | (~Square@user/square) |
2023-04-30 16:51:32 +0200 | acidjnk | (~acidjnk@p200300d6e715c46789327d173b2333a9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2023-04-30 16:52:29 +0200 | <fbytez> | In a statement like the following, does it ever make sense to use `deriving`?: `newtype Thing = Thing String` |
2023-04-30 16:52:50 +0200 | <fbytez> | I was actually expecting a warning or something from the compiler. |
2023-04-30 16:53:44 +0200 | <fbytez> | I was using `data` as I didn't know about `newtype`. |
2023-04-30 16:54:07 +0200 | Joao003 | (~Joao003@2804:840:8311:b700:5c98:76bb:dd08:e1ad) (Quit: Leaving) |
2023-04-30 16:58:13 +0200 | <probie> | fbytez: why wouldn't it make sense to use deriving? |
2023-04-30 16:58:58 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-04-30 17:00:23 +0200 | <fbytez> | I guess I thought it was closer to `type` than `data`. |
2023-04-30 17:00:49 +0200 | <fbytez> | So, is basically like `data` but without any fields? |
2023-04-30 17:00:49 +0200 | trev | (~trev@user/trev) |
2023-04-30 17:01:15 +0200 | <ski> | you can have `newtype Think = MkThing {getThing :: Spring}' |
2023-04-30 17:03:49 +0200 | <fbytez> | Right. I just got `The constructor of a newtype must have exactly one field` in ghci. |
2023-04-30 17:05:06 +0200 | <fbytez> | So, is there any technical reason to use `newtype` instead of `data`? |
2023-04-30 17:05:32 +0200 | <ski> | there are semantic reasons |
2023-04-30 17:05:39 +0200 | <ncf> | https://wiki.haskell.org/Newtype |
2023-04-30 17:06:21 +0200 | <ski> | `newtype' doesn't add an extra bottom |
2023-04-30 17:07:29 +0200 | <ncf> | @let newtype Thing = Thing String |
2023-04-30 17:07:30 +0200 | <lambdabot> | /sandbox/tmp/.L.hs:165:1: error: |
2023-04-30 17:07:30 +0200 | <lambdabot> | Multiple declarations of ‘Thing’ |
2023-04-30 17:07:30 +0200 | <lambdabot> | Declared at: /sandbox/tmp/.L.hs:163:1 |
2023-04-30 17:07:39 +0200 | <ncf> | > case error "no" of Thing _ -> "yes" |
2023-04-30 17:07:41 +0200 | <lambdabot> | "yes" |
2023-04-30 17:07:50 +0200 | <ncf> | @let data DataThing = Thing String |
2023-04-30 17:07:51 +0200 | <lambdabot> | /sandbox/tmp/.L.hs:165:18: error: |
2023-04-30 17:07:51 +0200 | <lambdabot> | Multiple declarations of ‘Thing’ |
2023-04-30 17:07:51 +0200 | <lambdabot> | Declared at: /sandbox/tmp/.L.hs:163:17 |
2023-04-30 17:07:57 +0200 | <ncf> | @let data DataThing = DataThing String |
2023-04-30 17:07:59 +0200 | <lambdabot> | Defined. |
2023-04-30 17:08:03 +0200 | <ncf> | > case error "no" of DataThing _ -> "yes" |
2023-04-30 17:08:05 +0200 | <lambdabot> | "*Exception: no |
2023-04-30 17:08:40 +0200 | <ski> | `newtype' data constructors are also always strict |
2023-04-30 17:09:13 +0200 | <ski> | (but matching on them is a no-op, unlike matching on (all) `data' constructors) |
2023-04-30 17:11:49 +0200 | <fbytez> | The wiki page that ncf shared seems informative but I don't quite get it yet. |
2023-04-30 17:13:53 +0200 | <ski> | in terms of implementation, `data Foo = MkFoo Bar' adds some extra memory for `MkFoo', over the plain `Bar', but `newtype Foo = MkFoo Bar' doesn't, the representation for a `Foo' is the same as the one for a `Bar', so converting between the two is a no-op |
2023-04-30 17:14:08 +0200 | econo | (uid147250@user/econo) |
2023-04-30 17:15:22 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) |
2023-04-30 17:15:40 +0200 | <ski> | if `Bar' is `Bool', then the possible values for `Foo', if it's a `data' type, are `_|_',`MkFoo _|_',`MkFoo False',`MkFoo True'. but if `Foo' is a `newtype', then `_|_' and `MkFoo _|_' are not distinct |
2023-04-30 17:16:13 +0200 | <ski> | (in case you're unsure, perhaps now is the time to ask about what `_|_' means) |
2023-04-30 17:21:19 +0200 | <fbytez> | That's helpful, ski, thankyou. |
2023-04-30 17:22:38 +0200 | GerryH | (~Brgaammin@p5b375702.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-04-30 17:22:54 +0200 | heraldo | (~heraldo@user/heraldo) |
2023-04-30 17:23:20 +0200 | <ncf> | it means someone doesn't know how to type ⊥ |
2023-04-30 17:24:04 +0200 | <heraldo> | It means she shouldn't look over her shoulder at you when she walks away. |
2023-04-30 17:25:58 +0200 | heraldo | (~heraldo@user/heraldo) () |
2023-04-30 17:27:20 +0200 | trev | (~trev@user/trev) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Alex_test | (~al_test@178.34.150.15) (*.net *.split) |
2023-04-30 17:27:20 +0200 | myme | (~myme@2a01:799:d60:e400:62e6:cfdd:2547:9938) (*.net *.split) |
2023-04-30 17:27:20 +0200 | tremon | (~tremon@83.80.159.219) (*.net *.split) |
2023-04-30 17:27:20 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (*.net *.split) |
2023-04-30 17:27:20 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (*.net *.split) |
2023-04-30 17:27:20 +0200 | sus0 | (zero@user/zeromomentum) (*.net *.split) |
2023-04-30 17:27:20 +0200 | talismanick | (~user@2601:204:ef80:6c80::a8e2) (*.net *.split) |
2023-04-30 17:27:20 +0200 | vulpine | (xfnw@tilde.team) (*.net *.split) |
2023-04-30 17:27:20 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (*.net *.split) |
2023-04-30 17:27:20 +0200 | ix | (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) (*.net *.split) |
2023-04-30 17:27:20 +0200 | PHO` | (~pho@akari.cielonegro.org) (*.net *.split) |
2023-04-30 17:27:20 +0200 | pieguy128_ | (~pieguy128@bras-base-mtrlpq5031w-grc-56-65-92-162-12.dsl.bell.ca) (*.net *.split) |
2023-04-30 17:27:20 +0200 | bgamari_ | (~bgamari@64.223.233.113) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Philonous | (~Philonous@user/philonous) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Unode | (~Unode@fg-ext-220.embl.de) (*.net *.split) |
2023-04-30 17:27:20 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (*.net *.split) |
2023-04-30 17:27:20 +0200 | telser | (~quassel@user/telser) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split) |
2023-04-30 17:27:20 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
2023-04-30 17:27:20 +0200 | sa | (sid1055@id-1055.tinside.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | megeve | (sid523379@id-523379.hampstead.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | rubin55 | (sid175221@id-175221.hampstead.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | astra | (sid289983@user/amish) (*.net *.split) |
2023-04-30 17:27:20 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) (*.net *.split) |
2023-04-30 17:27:20 +0200 | TMA | (tma@twin.jikos.cz) (*.net *.split) |
2023-04-30 17:27:20 +0200 | energizer | (~energizer@user/energizer) (*.net *.split) |
2023-04-30 17:27:20 +0200 | dagit | (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) (*.net *.split) |
2023-04-30 17:27:20 +0200 | SoF | (~skius@user/skius) (*.net *.split) |
2023-04-30 17:27:20 +0200 | kawzeg_ | (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (*.net *.split) |
2023-04-30 17:27:20 +0200 | codedmart | (~codedmart@li335-49.members.linode.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | bonz060 | (~quassel@2001:bc8:47a4:a23::1) (*.net *.split) |
2023-04-30 17:27:20 +0200 | acro | (~acro@user/acro) (*.net *.split) |
2023-04-30 17:27:20 +0200 | acidsys | (~crameleon@openSUSE/member/crameleon) (*.net *.split) |
2023-04-30 17:27:20 +0200 | nonzen | (~nonzen@user/nonzen) (*.net *.split) |
2023-04-30 17:27:20 +0200 | aaronm04 | (~user@user/aaronm04) (*.net *.split) |
2023-04-30 17:27:20 +0200 | ames | (~amelia@offtopia/offtopian/amelia) (*.net *.split) |
2023-04-30 17:27:20 +0200 | haveo_ | (~haveo@sl35.iuwt.fr) (*.net *.split) |
2023-04-30 17:27:20 +0200 | xnbya2 | (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Fangs | (sid141280@id-141280.hampstead.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | mxs | (~mxs@user/mxs) (*.net *.split) |
2023-04-30 17:27:20 +0200 | rune | (sid21167@id-21167.ilkley.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | fiddlerwoaroof | (~fiddlerwo@user/fiddlerwoaroof) (*.net *.split) |
2023-04-30 17:27:20 +0200 | jackdk | (sid373013@cssa/jackdk) (*.net *.split) |
2023-04-30 17:27:20 +0200 | mustafa | (sid502723@rockylinux/releng/mustafa) (*.net *.split) |
2023-04-30 17:27:20 +0200 | parseval | (sid239098@id-239098.helmsley.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | T_S_ | (sid501726@id-501726.uxbridge.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | bw | (sid2730@user/betawaffle) (*.net *.split) |
2023-04-30 17:27:20 +0200 | JSharp | (sid4580@id-4580.lymington.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | buhman | (sid411355@user/buhman) (*.net *.split) |
2023-04-30 17:27:20 +0200 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (*.net *.split) |
2023-04-30 17:27:20 +0200 | integral | (sid296274@user/integral) (*.net *.split) |
2023-04-30 17:27:20 +0200 | bjs | (sid190364@user/bjs) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Boarders___ | (sid425905@2a03:5180:f:2::6:7fb1) (*.net *.split) |
2023-04-30 17:27:20 +0200 | Kamuela | (sid111576@2a03:5180:f::1:b3d8) (*.net *.split) |
2023-04-30 17:27:20 +0200 | conjunctive | (sid433686@2a03:5180:f:1::6:9e16) (*.net *.split) |
2023-04-30 17:27:20 +0200 | gonz_______ | (sid304396@2a03:5180:f:2::4:a50c) (*.net *.split) |
2023-04-30 17:27:20 +0200 | hamishmack | (sid389057@2a03:5180:f:4::5:efc1) (*.net *.split) |
2023-04-30 17:27:20 +0200 | agander_m | (sid407952@2a03:5180:f::6:3990) (*.net *.split) |
2023-04-30 17:27:20 +0200 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) (*.net *.split) |
2023-04-30 17:27:20 +0200 | jonrh | (sid5185@id-5185.ilkley.irccloud.com) (*.net *.split) |
2023-04-30 17:27:29 +0200 | xnbya | (~xnbya@2a01:4f8:c17:cbdd::1) |
2023-04-30 17:27:30 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2023-04-30 17:27:30 +0200 | mxs | (~mxs@user/mxs) |
2023-04-30 17:27:34 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-04-30 17:27:34 +0200 | Unode | (~Unode@fg-ext-220.embl.de) |
2023-04-30 17:27:36 +0200 | parseval | (sid239098@id-239098.helmsley.irccloud.com) |
2023-04-30 17:27:37 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-04-30 17:27:37 +0200 | TMA | (tma@twin.jikos.cz) |
2023-04-30 17:27:38 +0200 | codedmart | (~codedmart@li335-49.members.linode.com) |
2023-04-30 17:27:38 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-04-30 17:27:39 +0200 | Alex_test | (~al_test@178.34.150.15) |
2023-04-30 17:27:40 +0200 | Fangs | (sid141280@id-141280.hampstead.irccloud.com) |
2023-04-30 17:27:41 +0200 | bonz060 | (~quassel@2001:bc8:47a4:a23::1) |
2023-04-30 17:27:46 +0200 | talismanick | (~user@2601:204:ef80:6c80::a8e2) |
2023-04-30 17:27:51 +0200 | rune | (sid21167@id-21167.ilkley.irccloud.com) |
2023-04-30 17:27:51 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2023-04-30 17:27:51 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2023-04-30 17:27:53 +0200 | kawzeg_ | (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) |
2023-04-30 17:27:56 +0200 | conjunctive | (sid433686@id-433686.helmsley.irccloud.com) |
2023-04-30 17:27:57 +0200 | myme | (~myme@2a01:799:d60:e400:62e6:cfdd:2547:9938) |
2023-04-30 17:27:57 +0200 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
2023-04-30 17:27:57 +0200 | jackdk | (sid373013@id-373013.tinside.irccloud.com) |
2023-04-30 17:27:58 +0200 | trev | (~trev@109-252-34-44.nat.spd-mgts.ru) |
2023-04-30 17:28:06 +0200 | bw_ | (sid2730@user/betawaffle) |
2023-04-30 17:28:07 +0200 | hamishmack | (sid389057@id-389057.hampstead.irccloud.com) |
2023-04-30 17:28:08 +0200 | Kamuela | (sid111576@2a03:5180:f::1:b3d8) |
2023-04-30 17:28:10 +0200 | jonrh | (sid5185@id-5185.ilkley.irccloud.com) |
2023-04-30 17:28:11 +0200 | sus0 | (zero@user/zeromomentum) |
2023-04-30 17:28:11 +0200 | gonz_______ | (sid304396@id-304396.lymington.irccloud.com) |
2023-04-30 17:28:12 +0200 | agander_m | (sid407952@2a03:5180:f::6:3990) |
2023-04-30 17:28:13 +0200 | megeve | (sid523379@id-523379.hampstead.irccloud.com) |
2023-04-30 17:28:15 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) |
2023-04-30 17:28:15 +0200 | T_S_ | (sid501726@id-501726.uxbridge.irccloud.com) |
2023-04-30 17:28:16 +0200 | rubin55 | (sid175221@id-175221.hampstead.irccloud.com) |
2023-04-30 17:28:19 +0200 | ix | (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) |
2023-04-30 17:28:19 +0200 | bjs | (sid190364@id-190364.helmsley.irccloud.com) |
2023-04-30 17:28:19 +0200 | astra | (sid289983@id-289983.hampstead.irccloud.com) |
2023-04-30 17:28:19 +0200 | integral | (sid296274@id-296274.lymington.irccloud.com) |
2023-04-30 17:28:19 +0200 | mustafa | (sid502723@id-502723.hampstead.irccloud.com) |
2023-04-30 17:28:22 +0200 | Boarders___ | (sid425905@id-425905.lymington.irccloud.com) |
2023-04-30 17:28:31 +0200 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) |
2023-04-30 17:28:33 +0200 | jackdk | (sid373013@id-373013.tinside.irccloud.com) (Changing host) |
2023-04-30 17:28:33 +0200 | jackdk | (sid373013@cssa/jackdk) |
2023-04-30 17:28:34 +0200 | acidsys | (~crameleon@openSUSE/member/crameleon) |
2023-04-30 17:28:34 +0200 | trev | (~trev@109-252-34-44.nat.spd-mgts.ru) (Changing host) |
2023-04-30 17:28:34 +0200 | trev | (~trev@user/trev) |
2023-04-30 17:28:44 +0200 | sa | (sid1055@2a03:5180:f::41f) |
2023-04-30 17:28:58 +0200 | buhman | (sid411355@id-411355.tinside.irccloud.com) |
2023-04-30 17:29:00 +0200 | JSharp | (sid4580@id-4580.lymington.irccloud.com) |
2023-04-30 17:29:01 +0200 | bjs | (sid190364@id-190364.helmsley.irccloud.com) (Changing host) |
2023-04-30 17:29:01 +0200 | bjs | (sid190364@user/bjs) |
2023-04-30 17:29:01 +0200 | integral | (sid296274@id-296274.lymington.irccloud.com) (Changing host) |
2023-04-30 17:29:01 +0200 | integral | (sid296274@user/integral) |
2023-04-30 17:29:04 +0200 | mustafa | (sid502723@id-502723.hampstead.irccloud.com) (Changing host) |
2023-04-30 17:29:04 +0200 | mustafa | (sid502723@rockylinux/releng/mustafa) |
2023-04-30 17:29:07 +0200 | bgamari | (~bgamari@64.223.233.113) |
2023-04-30 17:29:13 +0200 | buhman | (sid411355@id-411355.tinside.irccloud.com) (Changing host) |
2023-04-30 17:29:13 +0200 | buhman | (sid411355@user/buhman) |
2023-04-30 17:29:22 +0200 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) |
2023-04-30 17:29:23 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) |
2023-04-30 17:29:33 +0200 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) |
2023-04-30 17:29:36 +0200 | ix | Guest3954 |
2023-04-30 17:29:41 +0200 | pieguy128 | (~pieguy128@bas1-montreal02-65-92-162-12.dsl.bell.ca) |
2023-04-30 17:29:52 +0200 | tremon | (~tremon@83.80.159.219) |
2023-04-30 17:29:53 +0200 | telser | (~quassel@user/telser) |
2023-04-30 17:29:58 +0200 | Philonous | (~Philonous@user/philonous) |
2023-04-30 17:30:19 +0200 | nonzen | (~nonzen@user/nonzen) |
2023-04-30 17:30:43 +0200 | PHO` | (~pho@2406:da14:856:600:e03a:2c8f:39c:7838) |
2023-04-30 17:30:44 +0200 | aaronm04 | (~user@user/aaronm04) |
2023-04-30 17:30:46 +0200 | energizer | (~energizer@user/energizer) |
2023-04-30 17:30:59 +0200 | ryantrinkle | (~ryantrink@204.2.88.230) (Ping timeout: 246 seconds) |
2023-04-30 17:31:13 +0200 | vulpine | (xfnw@tilde.team) |
2023-04-30 17:33:00 +0200 | haveo | (~haveo@51.15.176.9) |
2023-04-30 17:33:29 +0200 | acro | (~acro@user/acro) |
2023-04-30 17:33:59 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) (Quit: WeeChat 3.0.1) |
2023-04-30 17:34:10 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) |
2023-04-30 17:34:33 +0200 | fiddlerwoaroof | (~fiddlerwo@user/fiddlerwoaroof) |
2023-04-30 17:37:04 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) (Ping timeout: 248 seconds) |
2023-04-30 17:37:52 +0200 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.8) |
2023-04-30 17:38:06 +0200 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
2023-04-30 17:38:54 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-179-053.46.114.pool.telefonica.de) |
2023-04-30 17:40:05 +0200 | xff0x_ | (~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 246 seconds) |
2023-04-30 17:43:10 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-30 17:46:05 +0200 | ryantrinkle | (~ryantrink@204.2.88.230) |
2023-04-30 17:47:42 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
2023-04-30 17:49:10 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-04-30 17:56:23 +0200 | JScript2 | (~JScript@cpe-172-193-181-254.qld.foxtel.net.au) |
2023-04-30 17:56:44 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 18:00:58 +0200 | JScript | (~JScript@45.248.77.142) (Ping timeout: 276 seconds) |
2023-04-30 18:02:00 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-04-30 18:04:33 +0200 | ames | (~amelia@offtopia/offtopian/amelia) |
2023-04-30 18:09:31 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-04-30 18:12:35 +0200 | hammond | (proscan@gateway02.insomnia247.nl) (Changing host) |
2023-04-30 18:12:35 +0200 | hammond | (proscan@user/hammond2) |
2023-04-30 18:14:52 +0200 | nicm[m] | (~nicmollel@2001:470:69fc:105::1:feeb) |
2023-04-30 18:17:31 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-179-053.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-04-30 18:18:06 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) |
2023-04-30 18:34:40 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) |
2023-04-30 18:35:00 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-04-30 18:37:29 +0200 | Square | (~Square@user/square) (Ping timeout: 246 seconds) |
2023-04-30 18:42:23 +0200 | chomwitt | (~chomwitt@2a02:587:7a1d:9d00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2023-04-30 18:43:05 +0200 | swamp_ | (~zmt00@user/zmt00) |
2023-04-30 18:46:03 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 248 seconds) |
2023-04-30 18:47:27 +0200 | JScript2 | (~JScript@cpe-172-193-181-254.qld.foxtel.net.au) (Read error: Connection reset by peer) |
2023-04-30 18:47:54 +0200 | JScript | (~JScript@103.137.12.21) |
2023-04-30 18:48:13 +0200 | SoF | (~skius@user/skius) |
2023-04-30 18:50:10 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-04-30 18:52:45 +0200 | merijn | (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2023-04-30 18:57:14 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2023-04-30 19:00:16 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds) |
2023-04-30 19:02:11 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-04-30 19:04:45 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-04-30 19:10:47 +0200 | fsestini | (~fsestini@5.151.90.160) |
2023-04-30 19:22:15 +0200 | <sm> | looks very nice |
2023-04-30 19:22:22 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 19:22:37 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 19:25:33 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 19:25:46 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 19:33:34 +0200 | Guest|82 | (~Guest|82@pd9e0ad5b.dip0.t-ipconnect.de) |
2023-04-30 19:36:04 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 19:36:20 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 19:40:37 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 19:41:28 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 19:50:03 +0200 | ryantrinkle | (~ryantrink@204.2.88.230) (Ping timeout: 260 seconds) |
2023-04-30 19:51:26 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-04-30 19:52:21 +0200 | jade[m] | uploaded an image: (186KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/rMfrmjpTVaUROQSFsHIpjytX/image.png > |
2023-04-30 19:52:22 +0200 | <jade[m]> | Not sure if I'm happy with this code |
2023-04-30 19:53:57 +0200 | extor | (~extor@2001:41d0:1004:636::1) |
2023-04-30 19:59:43 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 20:00:15 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 20:03:02 +0200 | <geekosaur> | at some point you should learn to use a pastebin; it's really hard to cut and paste from an image |
2023-04-30 20:04:02 +0200 | extor | (~extor@2001:41d0:1004:636::1) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
2023-04-30 20:06:20 +0200 | talismanick | (~user@2601:204:ef80:6c80::a8e2) (Remote host closed the connection) |
2023-04-30 20:08:10 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) |
2023-04-30 20:13:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-04-30 20:14:34 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-04-30 20:14:41 +0200 | <[exa]> | (not to mention the font choices that don't really port across screens and viewing conditions) |
2023-04-30 20:14:45 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-04-30 20:16:05 +0200 | pieguy128 | (~pieguy128@bas1-montreal02-65-92-162-12.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-04-30 20:16:25 +0200 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-56-65-92-162-12.dsl.bell.ca) |
2023-04-30 20:18:33 +0200 | fsestini | (~fsestini@5.151.90.160) (Ping timeout: 245 seconds) |
2023-04-30 20:19:45 +0200 | zeenk | (~zeenk@2a02:2f04:a20f:5200::7fe) |
2023-04-30 20:24:21 +0200 | <somerandomnick[m> | it is pretty. |
2023-04-30 20:24:23 +0200 | <somerandomnick[m> | you did it |
2023-04-30 20:25:42 +0200 | <somerandomnick[m> | ll 16-12 is python style though |
2023-04-30 20:26:03 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-04-30 20:26:03 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-04-30 20:26:03 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-04-30 20:26:49 +0200 | somerandomnick[m | sent a code block: https://libera.ems.host/_matrix/media/v3/download/libera.chat/089612aff82d71194d8eac553c2eff529566… |
2023-04-30 20:26:55 +0200 | <somerandomnick[m> | what do you think about this style |
2023-04-30 20:27:27 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-04-30 20:27:38 +0200 | <jade[m]> | It's what the lsp format did haha |
2023-04-30 20:27:45 +0200 | <jade[m]> | I originally had it inline |
2023-04-30 20:28:00 +0200 | Guest4285 | (~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de) |
2023-04-30 20:28:24 +0200 | <somerandomnick[m> | helpful tools being helpful as always |
2023-04-30 20:28:33 +0200 | Guest4285 | (~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de) (Client Quit) |
2023-04-30 20:32:25 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 276 seconds) |
2023-04-30 20:40:11 +0200 | TonyStone | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) |
2023-04-30 20:43:04 +0200 | [_] | [itchyjunk] |
2023-04-30 20:43:33 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-04-30 20:47:28 +0200 | brettgilio | (~brettgili@147.182.241.1) (Ping timeout: 248 seconds) |
2023-04-30 20:56:48 +0200 | thejdoe | (~thejdoe@201-35-245-62.user3p.brasiltelecom.net.br) |
2023-04-30 20:57:45 +0200 | Guest7110 | (~Guest71@201-35-245-62.user3p.brasiltelecom.net.br) |
2023-04-30 20:59:08 +0200 | Bocaneri | (~sauvin@user/Sauvin) |
2023-04-30 20:59:31 +0200 | Bocaneri | Guest1315 |
2023-04-30 21:00:59 +0200 | Sauvin | (~sauvin@user/Sauvin) (Ping timeout: 246 seconds) |
2023-04-30 21:05:31 +0200 | GerryH | (~Brgaammin@ip-046-223-087-181.um13.pools.vodafone-ip.de) |
2023-04-30 21:06:11 +0200 | GerryH | (~Brgaammin@ip-046-223-087-181.um13.pools.vodafone-ip.de) (Client Quit) |
2023-04-30 21:15:52 +0200 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2023-04-30 21:21:04 +0200 | michalz | (~michalz@185.246.207.221) |
2023-04-30 21:21:12 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-04-30 21:22:36 +0200 | Guest7110 | (~Guest71@201-35-245-62.user3p.brasiltelecom.net.br) (Quit: Client closed) |
2023-04-30 21:26:30 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-04-30 21:29:28 +0200 | <monochrom> | I wonder how long it takes the young generation to realize that in response to our "pastebin not pics" they can reply "you can OCR if you need to". |
2023-04-30 21:30:14 +0200 | <monochrom> | Cf. https://xkcd.com/763/ |
2023-04-30 21:31:24 +0200 | <geekosaur> | they didn't even receive it (or yours), the bridge isn't relaying from irc to matrix |
2023-04-30 21:31:41 +0200 | <geekosaur> | which I have just been informed is "operating normally: 😞 |
2023-04-30 21:31:51 +0200 | <mauke> | ooh, secret chats |
2023-04-30 21:32:11 +0200 | <mauke> | we call it information hiding |
2023-04-30 21:32:21 +0200 | <monochrom> | Well, we don't actually want the young generation to see what I said there, right? >:) |
2023-04-30 21:35:54 +0200 | <int-e> | geekosaur: Wait what? What's the bridge for then, just advertising the m*****x platform? |
2023-04-30 21:36:09 +0200 | <geekosaur> | no clue |
2023-04-30 21:36:28 +0200 | <geekosaur> | I'm not the only one seeing it either, nothing IRC-side is making it to matrix |
2023-04-30 21:36:33 +0200 | <int-e> | I swear I've had discussions with [m] folks recently. |
2023-04-30 21:36:53 +0200 | <geekosaur> | (I had some overnight, this only started a few hours ago |
2023-04-30 21:38:08 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-04-30 21:38:16 +0200 | <int-e> | maybe it's a late April Fool's joke |
2023-04-30 21:38:42 +0200 | Guest1315 | Sauvin |
2023-04-30 21:44:25 +0200 | nate1 | (~nate@98.45.169.16) |
2023-04-30 21:48:59 +0200 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
2023-04-30 21:49:19 +0200 | acidjnk | (~acidjnk@p200300d6e715c46489327d173b2333a9.dip0.t-ipconnect.de) |
2023-04-30 21:49:31 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2023-04-30 21:50:23 +0200 | <remexre> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_data.html |
2023-04-30 21:50:40 +0200 | <remexre> | looks like someone forgot the syntax for comments lol |
2023-04-30 21:50:53 +0200 | <remexre> | (the bottom two code blocks) |
2023-04-30 21:51:25 +0200 | <geekosaur> | lol |
2023-04-30 21:51:44 +0200 | <mauke> | I mean, it does say that the code is invalid |
2023-04-30 21:55:51 +0200 | <hpc> | this is why i only use semicolon comments |
2023-04-30 21:56:50 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-179-053.46.114.pool.telefonica.de) |
2023-04-30 22:00:20 +0200 | pavonia | (~user@user/siracusa) |
2023-04-30 22:04:07 +0200 | puke | (~puke@user/puke) (Quit: puke) |
2023-04-30 22:05:15 +0200 | _ht | (~Thunderbi@82.174.52.28) (Remote host closed the connection) |
2023-04-30 22:08:59 +0200 | Guest7148 | (~Guest71@201-35-245-62.user3p.brasiltelecom.net.br) |
2023-04-30 22:25:35 +0200 | puke | (~puke@user/puke) |
2023-04-30 22:26:49 +0200 | Guest7148 | (~Guest71@201-35-245-62.user3p.brasiltelecom.net.br) (Quit: Client closed) |
2023-04-30 22:26:49 +0200 | thejdoe | (~thejdoe@201-35-245-62.user3p.brasiltelecom.net.br) (Remote host closed the connection) |
2023-04-30 22:31:55 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-04-30 22:35:15 +0200 | puke | (~puke@user/puke) (Remote host closed the connection) |
2023-04-30 22:49:34 +0200 | puke | (~puke@user/puke) |
2023-04-30 22:50:15 +0200 | fun-safe-math | (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) |
2023-04-30 23:07:32 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-04-30 23:14:15 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection) |
2023-04-30 23:14:30 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) |
2023-04-30 23:21:23 +0200 | Guest|82 | (~Guest|82@pd9e0ad5b.dip0.t-ipconnect.de) (Quit: Connection closed) |
2023-04-30 23:23:32 +0200 | c0c0 | (~coco@212-51-146-137.fiber7.init7.net) (Quit: WeeChat 3.7.1) |
2023-04-30 23:29:02 +0200 | fun-safe-math | (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Quit: Leaving) |
2023-04-30 23:29:57 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-04-30 23:34:09 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::3) |
2023-04-30 23:43:28 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-04-30 23:45:58 +0200 | trev | (~trev@user/trev) |
2023-04-30 23:46:25 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2023-04-30 23:51:32 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-04-30 23:51:45 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-04-30 23:54:11 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-04-30 23:58:20 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-04-30 23:59:44 +0200 | jpds2 | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |