Logs: liberachat/#haskell
| 2021-06-11 03:22:25 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Ping timeout: 268 seconds) |
| 2021-06-11 03:22:31 | × | jaror[m] quits (~jaror@2001:470:69fc:105::265) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | dualinverter[m] quits (~dualinver@2001:470:69fc:105::16a7) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | bryan[m] quits (~bchreekat@2001:470:69fc:105::16b5) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | maralorn quits (~maralorn@2001:470:69fc:105::251) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | sm[m] quits (~sm@plaintextaccounting/sm) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | peddie quits (~peddie@2001:470:69fc:105::25d) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:31 | × | thedward[m] quits (~thedwardm@2001:470:69fc:105::f79) (Ping timeout: 264 seconds) |
| 2021-06-11 03:22:38 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 272 seconds) |
| 2021-06-11 03:22:38 | × | yin[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 272 seconds) |
| 2021-06-11 03:22:41 | × | siraben quits (~siraben@user/siraben) (Ping timeout: 272 seconds) |
| 2021-06-11 03:22:53 | → | cjb joins (~cjb@user/cjb) |
| 2021-06-11 03:23:38 | → | yd502_ joins (~yd502@180.168.212.6) |
| 2021-06-11 03:24:07 | → | azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
| 2021-06-11 03:24:09 | <hololeap> | I don't know where you find the source for the Maybe instance of Alternative |
| 2021-06-11 03:24:28 | <qrpnxz> | wow awesome, i see text is monoid so i can just use generic function <> to concat, works as expected. empty text being mempty. Haskell is nice |
| 2021-06-11 03:24:44 | <qrpnxz> | hololeap, it's in Base i believe |
| 2021-06-11 03:25:26 | <boxscape> | I would link it but I'm getting a 502 on hackage :( |
| 2021-06-11 03:26:03 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds) |
| 2021-06-11 03:26:21 | <boxscape> | hololeap since hackage is down here's a link to the ghc repo https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/GHC/Base.hs#L1095-1099 |
| 2021-06-11 03:26:29 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 2021-06-11 03:26:40 | <boxscape> | wait |
| 2021-06-11 03:26:40 | <boxscape> | not hackage |
| 2021-06-11 03:26:42 | <boxscape> | hoogle is down |
| 2021-06-11 03:26:50 | <boxscape> | I just always use hoogle to find my way through hackage |
| 2021-06-11 03:27:48 | <hololeap> | boxscape: ok, but where is some and maybe? |
| 2021-06-11 03:27:53 | <hololeap> | I mean many? |
| 2021-06-11 03:28:35 | <boxscape> | hololeap many has a default implementation, you don't need to provide an implementation in the instance |
| 2021-06-11 03:28:37 | <hololeap> | I suppose they're defined in the class definition for Alternative, but I can't find that... |
| 2021-06-11 03:28:39 | <boxscape> | as does some |
| 2021-06-11 03:28:48 | <boxscape> | see directly above the linked section |
| 2021-06-11 03:29:10 | <boxscape> | hololeap https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/GHC/Base.hs#L1074-1092 |
| 2021-06-11 03:29:21 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 2021-06-11 03:29:39 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-06-11 03:29:41 | <hololeap> | oh, I was just searching wrong :p |
| 2021-06-11 03:30:24 | <bontaq`> | is hoogle down? :ded: |
| 2021-06-11 03:30:33 | <boxscape> | bontaq` yep |
| 2021-06-11 03:30:50 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 244 seconds) |
| 2021-06-11 03:30:51 | <bontaq`> | :summoning ritual: come back to us |
| 2021-06-11 03:30:56 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 2021-06-11 03:31:00 | <boxscape> | @hoogle Alternative |
| 2021-06-11 03:31:00 | <lambdabot> | Control.Applicative class Applicative f => Alternative f |
| 2021-06-11 03:31:00 | <lambdabot> | GHC.Base class Applicative f => Alternative f |
| 2021-06-11 03:31:00 | <lambdabot> | Distribution.Compat.Prelude.Internal class Applicative f => Alternative (f :: Type -> Type) |
| 2021-06-11 03:31:05 | <boxscape> | at least lambdabot's works |
| 2021-06-11 03:31:17 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 2021-06-11 03:31:29 | <bontaq`> | @hoogle Sequence |
| 2021-06-11 03:31:29 | <lambdabot> | module Data.Sequence |
| 2021-06-11 03:31:29 | <lambdabot> | Data.Yaml.Parser Sequence :: [YamlValue] -> Anchor -> YamlValue |
| 2021-06-11 03:31:29 | <lambdabot> | module Text.Regex.Posix.Sequence |
| 2021-06-11 03:31:41 | <hololeap> | ok, so it looks like the default implementation of some/many will just loop forever unless the Alternative can contain an empty later on |
| 2021-06-11 03:32:47 | <boxscape> | those default definitions are so weird actually, why is the whole where block duplicated when only half of it is used |
| 2021-06-11 03:32:59 | <hololeap> | and nothing from base can do that if I understand correctly |
| 2021-06-11 03:33:06 | <boxscape> | oh wait |
| 2021-06-11 03:33:08 | <boxscape> | it is used :) |
| 2021-06-11 03:33:19 | <boxscape> | (s/it/the other half) |
| 2021-06-11 03:33:57 | <hololeap> | so some/maybe on an Alternative from base will just loop forever |
| 2021-06-11 03:34:22 | <hololeap> | *some/many |
| 2021-06-11 03:34:33 | <hololeap> | (I don't know why I keep doing that...) |
| 2021-06-11 03:35:00 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2021-06-11 03:35:05 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 2021-06-11 03:35:36 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 2021-06-11 03:35:44 | <qrpnxz> | so Go has some nice Reader and Writer interfaces that let you simply connect and wrap streams of bytes rather easily. Does haskell have something like that? |
| 2021-06-11 03:36:10 | → | Crypt9a2e joins (~Crypt9a2e@2409:4072:301:9da3:dd1a:701:893d:eef1) |
| 2021-06-11 03:36:50 | <hololeap> | what do you mean by "connect and wrap"? append? |
| 2021-06-11 03:37:22 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 2021-06-11 03:38:05 | <qrpnxz> | like you can easily copy a reader to a writer, or wrap a reader or a writer with gzip so that the stream is automatically compressed and decompressed |
| 2021-06-11 03:38:57 | → | doublex_ joins (~doublex@2601:542:c480:6ee0:184b:7083:f026:c689) |
| 2021-06-11 03:39:23 | <qrpnxz> | or wrap stdin in a buffered reader, or slurp a reader into a buffer with ReadFrom and then wrap that in something else and read from it, or then copy it to another writer and so on |
| 2021-06-11 03:39:29 | <hololeap> | hm, the use of Reader/Writer here sounds very different from the haskell versions of those terms. you might be looking for something like conduit |
| 2021-06-11 03:39:40 | → | koishi_ joins (~koishi_@67.209.186.120.16clouds.com) |
| 2021-06-11 03:39:49 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 244 seconds) |
| 2021-06-11 03:40:35 | <qrpnxz> | yeah i was thinking i might have to use conduit/pipes or smth like that because what i'm describing i do not see in the stdlib of haskell |
| 2021-06-11 03:40:56 | <qrpnxz> | and it's like one of my favourite things in Go |
| 2021-06-11 03:41:10 | × | renzhi quits (~xp@2607:fa49:6500:bc00::e7b) (Ping timeout: 244 seconds) |
| 2021-06-11 03:41:18 | <hololeap> | there's also streamly, which I haven't used as of yet, but I've heard very good things |
| 2021-06-11 03:41:30 | <qrpnxz> | alright thanks |
| 2021-06-11 03:41:58 | <hololeap> | those things are almost certainly going to exist in external packages |
| 2021-06-11 03:43:08 | <hololeap> | in conduit terms, it would be Source/Sink vs. Reader/Writer |
| 2021-06-11 03:43:20 | <qrpnxz> | System.IO actually looks rather limited. Are external libraries also able to implement these kind of system stuff? |
| 2021-06-11 03:44:21 | <hololeap> | oh, definitely. most of the stuff in base is pretty low-level |
| 2021-06-11 03:44:43 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 2021-06-11 03:44:53 | <hololeap> | a big part of becoming competent in haskell is learning which external libraries to use |
| 2021-06-11 03:45:16 | <qrpnxz> | no kidding, i mean, i don't see any networking stuff here either oh boy i'm gonna have to do a lot of searching |
| 2021-06-11 03:45:55 | <hololeap> | it depends on what kind of networking you're trying to do. are you trying to set up something based on HTTP or a custom protocol? |
| 2021-06-11 03:46:43 | <hololeap> | (or something else) |
| 2021-06-11 03:46:49 | <qrpnxz> | Well, like let's say i wanted to just listen for TCP connections and then do a TLS handshake on em and dispatch that and so on |
| 2021-06-11 03:47:15 | <qrpnxz> | i'm sure haskell has some kind of http lib as well |
All times are in UTC.