2021/01/08

2021-01-08 00:01:45 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-01-08 00:02:08 +0100dandart(~Thunderbi@home.dandart.co.uk)
2021-01-08 00:02:09 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2021-01-08 00:02:22 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-01-08 00:02:36 +0100 <koz_> @unmtl ReaderT r (StateT s (Except e)) a
2021-01-08 00:02:37 +0100 <lambdabot> r -> s -> Except e (a, s)
2021-01-08 00:02:52 +0100 <koz_> @unmtl ReaderT r (ExceptT e (State s)) a
2021-01-08 00:02:52 +0100 <lambdabot> r -> s -> (Either e a, s)
2021-01-08 00:03:14 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 00:03:47 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 00:04:08 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2021-01-08 00:05:34 +0100dandart(~Thunderbi@home.dandart.co.uk) (Client Quit)
2021-01-08 00:08:01 +0100 <pie_> Melanie: sidenote your snippets seem to need a join tacked on the front, the exitcode stuff returns an IO a , so combined with <$> it ends up IO IO
2021-01-08 00:08:42 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-08 00:08:50 +0100Alleria__(~textual@2603-7000-3040-0000-dc9b-805c-a211-54dd.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
2021-01-08 00:09:59 +0100 <Melanie> pie_: then use fromMaybe (exitWith X), I didn't use a linter because I'm not sure what the other funcitons are
2021-01-08 00:10:01 +0100 <koz_> Actual wat: https://paste.debian.net/1180108/
2021-01-08 00:10:05 +0100 <Melanie> or which modules to import
2021-01-08 00:10:15 +0100 <pie_> Melanie: yeah sure
2021-01-08 00:10:16 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 00:10:30 +0100 <pie_> oh.
2021-01-08 00:10:37 +0100 <pie_> I was about to ask why that helps
2021-01-08 00:10:40 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-01-08 00:11:10 +0100 <monochrom> koz_: So, my foldr version broke GHC? :)
2021-01-08 00:11:17 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds)
2021-01-08 00:11:26 +0100 <koz_> monochrom: It wasn't that.
2021-01-08 00:11:33 +0100danso(~dan@23-233-104-25.cpe.pppoe.ca)
2021-01-08 00:15:13 +0100 <koz_> Let me try a MRE.
2021-01-08 00:15:19 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-08 00:15:20 +0100fosterite(~fosterite@2600:6c46:7800:fecf:8d97:96be:d9ba:bbf8)
2021-01-08 00:15:24 +0100 <koz_> (minimal reproducing example, not meal ready-to-eat)
2021-01-08 00:15:28 +0100 <koz_> (never try those)
2021-01-08 00:15:37 +0100usr25(~usr25@unaffiliated/usr25) ()
2021-01-08 00:15:45 +0100 <pie_> Melanie: thats still screwy though because `fromMaybe :: a -> Maybe a -> a` ends up as `fromMaybe :: IO a -> Maybe (IO a) -> IO a`
2021-01-08 00:15:54 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 00:15:59 +0100 <pie_> and its a IO (Maybe a)
2021-01-08 00:16:13 +0100 <pie_> well I winged the variables but something like that
2021-01-08 00:16:37 +0100christo(~chris@81.96.113.213)
2021-01-08 00:16:51 +0100 <pie_> not sure if i was supposed to get rid of the fmap too
2021-01-08 00:18:22 +0100 <pie_> if i keep the fmap the problem is in the other direction; where I'm trying to use the default that has IO in it, while in a pure context
2021-01-08 00:18:44 +0100 <pie_> s/other direction/
2021-01-08 00:18:57 +0100 <Melanie> pie_: can you share the imports of your file?
2021-01-08 00:19:14 +0100 <Melanie> just the pertinent ones
2021-01-08 00:19:40 +0100conal(~conal@143.244.61.230)
2021-01-08 00:19:44 +0100 <monochrom> "fromMaybe :: IO a -> Maybe (IO a) -> IO a" is the right level.
2021-01-08 00:20:11 +0100 <pie_> Melanie: https://bpa.st/6CFA
2021-01-08 00:20:12 +0100 <monochrom> or "maybe :: IO a -> (x -> IO a) -> IO a" in the case of "maybe".
2021-01-08 00:20:19 +0100Benzi-Junior(~BenziJuni@88-149-65-135.du.xdsl.is)
2021-01-08 00:20:29 +0100 <pie_> Melanie: said pertinent ones too late :p
2021-01-08 00:21:06 +0100 <monochrom> err, "maybe :: IO a -> (x -> IO a) -> Maybe x -> IO a"
2021-01-08 00:21:58 +0100 <pie_> maybe i read it wrong
2021-01-08 00:22:09 +0100 <pie_> • Couldn't match expected type ‘Maybe (IO Matcher)’
2021-01-08 00:22:09 +0100 <pie_> with actual type ‘IO (Maybe Matcher)’
2021-01-08 00:22:32 +0100pie_checks his code
2021-01-08 00:22:51 +0100dwts(pid@gateway/shell/blinkenshell.org/x-irepyeqrcbcxhiib) (Ping timeout: 256 seconds)
2021-01-08 00:23:08 +0100 <pie_> I mean yeah, toMatcher returns an IO (Maybe Matcher)
2021-01-08 00:23:12 +0100dwts(pid@gateway/shell/blinkenshell.org/x-yvyypwvhqlmptmog)
2021-01-08 00:23:16 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2021-01-08 00:23:28 +0100 <Melanie> pie_, i'm pretty sure a bind will fix it, give me a sec
2021-01-08 00:23:29 +0100 <pie_> doh, I can just >>= or something
2021-01-08 00:23:36 +0100 <pie_> Melanie: too fast :P
2021-01-08 00:23:45 +0100 <monochrom> Yes, why would anyone avoid >>=
2021-01-08 00:24:14 +0100 <monochrom> Avoiding >>= is the #1 cause of XY problems.
2021-01-08 00:24:26 +0100 <pie_> I wasnt avoiding it
2021-01-08 00:24:29 +0100 <pie_> I just...didnt think of it
2021-01-08 00:24:41 +0100 <monochrom> With the #1 XY problem being "so I threw in fmap but it is insufficient"
2021-01-08 00:24:41 +0100 <pie_> i probably should have been using it from the start
2021-01-08 00:25:14 +0100fosterite(~fosterite@2600:6c46:7800:fecf:8d97:96be:d9ba:bbf8) (Ping timeout: 264 seconds)
2021-01-08 00:25:16 +0100 <pie_> though now i have weird parens everywhere :PP
2021-01-08 00:25:25 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2021-01-08 00:25:29 +0100 <pie_> well, not really weird
2021-01-08 00:25:31 +0100 <pie_> anyway.
2021-01-08 00:26:43 +0100 <koz_> OK, that's interesting. The crash only happens on 8.8.*
2021-01-08 00:26:54 +0100 <koz_> On 8.10.* it instead gives a sensible error.
2021-01-08 00:27:29 +0100acidjnk_new(~acidjnk@p200300d0c704e71938399a79d0a041ac.dip0.t-ipconnect.de)
2021-01-08 00:27:59 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-08 00:30:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-01-08 00:33:24 +0100 <pie_> bind would work if i wasnt doing io in the frommaybe :P
2021-01-08 00:33:44 +0100 <pie_> or something
2021-01-08 00:34:05 +0100 <Melanie> then go back to maybe (exitWith X) pure =<< ...
2021-01-08 00:34:06 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-01-08 00:35:12 +0100 <Melanie> . o O (var <- maybe (ioAction ()) (\a -> ioAction2 a) =<< ioMaybe ma)
2021-01-08 00:35:26 +0100 <Melanie> i don't know irc very well :p
2021-01-08 00:35:31 +0100 <pie_> huh that actually worked
2021-01-08 00:35:40 +0100 <Melanie> :)
2021-01-08 00:36:04 +0100 <pie_> huh =<< is around by default
2021-01-08 00:36:08 +0100 <pie_> I used >>=
2021-01-08 00:36:10 +0100 <pie_> :P
2021-01-08 00:36:32 +0100 <Melanie> :t (=<<)
2021-01-08 00:36:33 +0100 <lambdabot> Monad m => (a -> m b) -> m a -> m b
2021-01-08 00:36:51 +0100 <Melanie> i like it, it's closer to (<$>)
2021-01-08 00:36:56 +0100 <Melanie> :t (<$>)
2021-01-08 00:36:58 +0100 <lambdabot> Functor f => (a -> b) -> f a -> f b
2021-01-08 00:37:40 +0100 <pie_> makes sense i guess
2021-01-08 00:37:55 +0100 <pie_> brains are weird
2021-01-08 00:38:31 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 00:38:46 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
2021-01-08 00:39:14 +0100 <pie_> for >>= im moving the data in the function box, with fmap im moving a function in the data box, and it doesnt want to merge the concepts :p
2021-01-08 00:39:28 +0100 <ephemient> (=<<) = flip (>>=), and it is exported by Prelude so it's always available (unless you explicitly stop it from being imported)
2021-01-08 00:39:57 +0100 <pie_> is there something in ghci that will give you docstrings?
2021-01-08 00:40:06 +0100 <pie_> (do we even have docstrings per se?Ö
2021-01-08 00:40:32 +0100Melaniebi_functor
2021-01-08 00:40:37 +0100 <pie_> wow. :doc. whod have thought
2021-01-08 00:42:38 +0100 <ephemient> https://gitlab.haskell.org/ghc/ghc/-/commit/85309a3cda367425cca727dfa45e5e6c63b47391 since 8.6
2021-01-08 00:43:23 +0100 <ephemient> I usually open the haddock for modules in a browser anyway though, nicer overview than :b
2021-01-08 00:43:30 +0100redkite(~redkite@s91904423.blix.com)
2021-01-08 00:43:50 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Ping timeout: 264 seconds)
2021-01-08 00:43:57 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
2021-01-08 00:45:22 +0100 <pie_> yeah I really should improve my setup
2021-01-08 00:46:25 +0100fendor(~fendor@77.119.129.169.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-08 00:46:38 +0100 <bi_functor> pie_, what's your setup now?
2021-01-08 00:47:37 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-08 00:49:56 +0100ulidtko|k(~ulidtko@194.54.80.38) (Ping timeout: 240 seconds)
2021-01-08 00:50:26 +0100spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
2021-01-08 00:50:57 +0100knupfer(~Thunderbi@200116b82cd91d004d86847a3f67d3a4.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-08 00:51:31 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 00:51:53 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 00:54:00 +0100 <ski> /me looks at bi_functor
2021-01-08 00:54:06 +0100skilooks at bi_functor
2021-01-08 00:54:13 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
2021-01-08 00:57:13 +0100dandels(~dandels@unaffiliated/dandels) (Ping timeout: 264 seconds)
2021-01-08 00:59:17 +0100thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-01-08 01:00:18 +0100bi_functorlooks at ski
2021-01-08 01:02:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 01:04:11 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 01:05:00 +0100pedrorubster[m]sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/vqSDqSbqUByHKrNbBUOSHZqU/message.txt >
2021-01-08 01:05:27 +0100 <pedrorubster[m]> My question is, what does that M does after data, and how do I search inside that data Mariosca? Sorry, but I'm a bit of a newbie to Haskell
2021-01-08 01:05:54 +0100 <pie_> bi_functor: a bunch of half-assed nix crap :P
2021-01-08 01:06:21 +0100 <pie_> well, not really half-assed, more like half-working because i never get around to finishing anythng and I dont manage to KISS it :P
2021-01-08 01:06:22 +0100 <ephemient> pedrorubster[m]: https://wiki.haskell.org/Constructor#Data_constructor
2021-01-08 01:07:10 +0100 <monochrom> Branco, Azul, Vermelho, Verde, M are all data constructors.
2021-01-08 01:07:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-08 01:08:16 +0100 <pedrorubster[m]> I understand that, but I'm not sure what M is, since all the examples just use the M for no reason, at least I can't understand why
2021-01-08 01:08:40 +0100 <ephemient> you can pattern match to destructure
2021-01-08 01:08:46 +0100 <pedrorubster[m]> <ephemient "pedrorubster: https://wiki.haske"> if I try to do:
2021-01-08 01:08:46 +0100 <monochrom> To be fair you should also not know what Azul is.
2021-01-08 01:09:05 +0100dfeuer(~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
2021-01-08 01:09:08 +0100 <pedrorubster[m]> <monochrom "To be fair you should also not k"> Ok, true, let me put the expected output here
2021-01-08 01:09:20 +0100pedrorubster[m]sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/kaVOSbxVqtMeCoilkBvMhHnF/message.txt >
2021-01-08 01:09:24 +0100 <monochrom> except that you know it is a data constructor and that someone thought it was cute to use Azul for the name.
2021-01-08 01:09:29 +0100pedrorubster[m]sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/tPcEBayjlCnyqtwaEljCxVMA/message.txt >
2021-01-08 01:10:30 +0100 <pedrorubster[m]> Ok ye, I'll take that, I'm just confused because that M is always static on the example output (static I mean, it's just M, doesn't change anything), but I can't understand how I should do the function, since I always get Not in scope, not sure why
2021-01-08 01:10:50 +0100pedrorubster[m]uploaded an image: image.png (21KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/bwlReHosRzNYSZgFUjOTPykE/image.png >
2021-01-08 01:11:15 +0100 <monochrom> Change that to M.
2021-01-08 01:11:26 +0100 <monochrom> Matriwhatever is not a data constructor.
2021-01-08 01:11:48 +0100 <pedrorubster[m]> OHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH GOT IT OKKKKKK
2021-01-08 01:11:53 +0100 <monochrom> And when coding up "f (??? x y z) = ..." the ??? has to be a data constructor.
2021-01-08 01:12:03 +0100 <pedrorubster[m]> Now I understand, thanks!
2021-01-08 01:12:24 +0100 <pedrorubster[m]> Just 1 more question, if it's nothing, what do I return?
2021-01-08 01:12:26 +0100pedrorubster[m]uploaded an image: image.png (38KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/tkngjsgyHMRIWkmyLHBeJmqZ/image.png >
2021-01-08 01:12:34 +0100 <pedrorubster[m]> I can't return Nothing
2021-01-08 01:12:58 +0100 <ephemient> @define data Cor = Branco | Azul | Vermelho | Verde deriving Show
2021-01-08 01:13:00 +0100 <lambdabot> Defined.
2021-01-08 01:13:06 +0100 <ephemient> @define data Matriosca = M Cor (Maybe Matriosca) deriving Show
2021-01-08 01:13:07 +0100 <monochrom> the empty list?
2021-01-08 01:13:08 +0100 <lambdabot> Defined.
2021-01-08 01:13:25 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Ping timeout: 264 seconds)
2021-01-08 01:13:31 +0100 <ephemient> @define paraLista = Data.List.NonEmpty.unfoldr $ \(M cor filho) -> (cor, filho)
2021-01-08 01:13:32 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2021-01-08 01:13:32 +0100xirhtogallagothrix
2021-01-08 01:13:32 +0100 <lambdabot> .L.hs:183:5: error:
2021-01-08 01:13:33 +0100 <lambdabot> Not in scope: ‘Data.List.NonEmpty.unfoldr’
2021-01-08 01:13:33 +0100 <lambdabot> No module named ‘Data.List.NonEmpty’ is imported.
2021-01-08 01:13:48 +0100 <ephemient> hmm, what does lambdabot have that imported as
2021-01-08 01:13:58 +0100 <ephemient> @define paraLista = NE.unfoldr $ \(M cor filho) -> (cor, filho)
2021-01-08 01:13:59 +0100 <lambdabot> .L.hs:182:13: error:
2021-01-08 01:13:59 +0100 <lambdabot> Not in scope: ‘NE.unfoldr’
2021-01-08 01:13:59 +0100 <lambdabot> Perhaps you meant one of these:
2021-01-08 01:14:02 +0100 <bi_functor> :t NE.fromList
2021-01-08 01:14:04 +0100 <lambdabot> error:
2021-01-08 01:14:04 +0100 <lambdabot> Not in scope: ‘NE.fromList’
2021-01-08 01:14:04 +0100 <lambdabot> Perhaps you meant one of these:
2021-01-08 01:14:06 +0100 <pedrorubster[m]> I can only use Prelude functions for this btw
2021-01-08 01:14:18 +0100edrx(~Eduardo@2804:56c:d2ef:cf00:67de:bc02:9559:c5c1) ("Killed buffer")
2021-01-08 01:14:24 +0100NGravity(csp@gateway/shell/xshellz/x-zzfgzhhirbsduhrr) (Ping timeout: 256 seconds)
2021-01-08 01:14:47 +0100Tario(~Tario@201.192.165.173)
2021-01-08 01:14:50 +0100 <ephemient> @define import qualified Data.List.NonEmpty as NE
2021-01-08 01:14:52 +0100 <lambdabot> Defined.
2021-01-08 01:15:01 +0100 <ephemient> @define paraLista = NE.unfoldr $ \(M cor filho) -> (cor, filho)
2021-01-08 01:15:04 +0100 <lambdabot> Defined.
2021-01-08 01:15:20 +0100NGravity(csp@gateway/shell/xshellz/x-wudhqfssegtlqiwc)
2021-01-08 01:15:22 +0100 <bi_functor> :t NE.unfoldr
2021-01-08 01:15:24 +0100 <lambdabot> (a -> (b, Maybe a)) -> a -> NE.NonEmpty b
2021-01-08 01:15:24 +0100 <ephemient> > paraLista $ M Branco (Just (M Azul (Just (M Vermelho (Just (M Verde Nothing))))))
2021-01-08 01:15:27 +0100 <lambdabot> Branco :| [Azul,Vermelho,Verde]
2021-01-08 01:15:28 +0100 <bi_functor> :t unfoldr
2021-01-08 01:15:29 +0100 <lambdabot> (b -> Maybe (a, b)) -> b -> [a]
2021-01-08 01:15:37 +0100 <bi_functor> interesting
2021-01-08 01:15:41 +0100 <ephemient> NE.unfoldr matches this data type better than List.unfoldr
2021-01-08 01:15:49 +0100 <ephemient> (as it's never headless)
2021-01-08 01:16:10 +0100 <pedrorubster[m]> But I'm guessing this doesn't belong to Prelude right?
2021-01-08 01:16:26 +0100 <pedrorubster[m]> Because I can only use Prelude
2021-01-08 01:16:27 +0100 <ephemient> no, but you can figure out how that works
2021-01-08 01:16:39 +0100 <ephemient> it's unrelated to your challenges with data types and constructors
2021-01-08 01:17:08 +0100 <pedrorubster[m]> Yes, I was just making sure
2021-01-08 01:19:05 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
2021-01-08 01:20:14 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-01-08 01:20:47 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection)
2021-01-08 01:21:39 +0100 <pedrorubster[m]> Just 1 more question, sorry for being annoying, I'm trying to use it recursevely, but I'm using a Maybe Matriosca instead of Matriosca, I'm having issues solving that, I know I should use case of, but somehow I'm not doing it right
2021-01-08 01:22:01 +0100 <pedrorubster[m]> Again, thanks for the help, sorry for all this newbie questions, I was stuck on this exercise for 10 minutes and I got really frustrated
2021-01-08 01:22:18 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-01-08 01:22:28 +0100pedrorubster[m]sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/MDXyLFFZVjtspRVZVxbgfKvt/message.txt >
2021-01-08 01:22:37 +0100 <pedrorubster[m]> I think I did it, let me test
2021-01-08 01:23:09 +0100 <pedrorubster[m]> yes, it worked, thank you ephemient for all the help, you really got me unstuck from this
2021-01-08 01:23:14 +0100 <ephemient> you don't need the case:
2021-01-08 01:23:36 +0100 <ephemient> you can use (M a Nothing) in one branch and (M a (Just b)) in another branch
2021-01-08 01:23:55 +0100 <ephemient> or prelude functions,
2021-01-08 01:24:02 +0100 <pedrorubster[m]> Ye, I just realized that, I was about to edit, thanks!
2021-01-08 01:24:07 +0100 <pedrorubster[m]> Oh, that's a good idea, thanks!
2021-01-08 01:24:07 +0100 <ephemient> > let paraLista (M a b) = a : maybe [] paraLista b in paraLista $ M Branco (Just (M Azul (Just (M Vermelho (Just (M Verde Nothing))))))
2021-01-08 01:24:10 +0100 <lambdabot> [Branco,Azul,Vermelho,Verde]
2021-01-08 01:24:54 +0100 <ephemient> but it all works out to be the same in the end :)
2021-01-08 01:25:05 +0100 <pedrorubster[m]> Ye, but that's way smarter haha
2021-01-08 01:25:24 +0100 <pedrorubster[m]> Haskell is so different, I'm mainly a .net dev, but learning haskell will help me so much with lambda's
2021-01-08 01:29:53 +0100justsomeguy(~justsomeg@216.186.218.241)
2021-01-08 01:29:53 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2021-01-08 01:29:53 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-01-08 01:30:20 +0100 <aldum> interesting
2021-01-08 01:30:29 +0100 <aldum> have you checked out F#?
2021-01-08 01:30:38 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Ping timeout: 264 seconds)
2021-01-08 01:30:39 +0100 <aldum> and/or F*?
2021-01-08 01:30:46 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
2021-01-08 01:30:49 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
2021-01-08 01:35:40 +0100 <pedrorubster[m]> I did not, but I want to
2021-01-08 01:36:03 +0100 <monochrom> F* would be too far out, no?
2021-01-08 01:36:19 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-08 01:36:54 +0100 <monochrom> Generally, as usual, I'm always concerned when people here suggest too-advanced things to obvious beginners.
2021-01-08 01:37:45 +0100 <monochrom> "Oh you're just beginning with very basic algebraic data type and very basic recursion, let me suggest you something that assumes you have already aced higher-order functions and dependent types"
2021-01-08 01:38:17 +0100 <monochrom> Frankly I don't understand the logic.
2021-01-08 01:38:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 01:38:44 +0100 <monochrom> Unless the logic is "to be a show-off".
2021-01-08 01:40:59 +0100plutoniix(~q@node-ujf.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2021-01-08 01:41:52 +0100alx741(~alx741@186.178.110.141) (Ping timeout: 246 seconds)
2021-01-08 01:45:01 +0100 <bi_functor> how often do lambdabot and yahb "reset", if ever?
2021-01-08 01:45:46 +0100 <bi_functor> and is there an easy way to inspect their current configuration?
2021-01-08 01:45:55 +0100 <monochrom> lambdabot probably doesn't. yahb can be reset by a :quit, and knowing that there is a meta-level watchdog that goes "you have died, I'll restart you"
2021-01-08 01:46:16 +0100 <monochrom> No, they aren't inspectable.
2021-01-08 01:46:46 +0100 <monochrom> Ah, lambdabot can also be almost-reset by an @undefine
2021-01-08 01:47:31 +0100 <monochrom> But it is not going to be as clean as :quit
2021-01-08 01:47:44 +0100 <bi_functor> thanks! good to know :)
2021-01-08 01:48:21 +0100DavidEichmann(~david@98.27.93.209.dyn.plus.net) (Ping timeout: 265 seconds)
2021-01-08 01:48:31 +0100 <monochrom> The way @undefine works is this:
2021-01-08 01:49:25 +0100 <monochrom> You can issue an @let command. It causes adding code to lambdabot's L.hs file. This file is :load'ed every so often (like at every @let and @undefine, I think?)
2021-01-08 01:49:57 +0100 <monochrom> @undefine erases that file, or reset it to default content, I forgot which.
2021-01-08 01:49:57 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-08 01:51:00 +0100 <monochrom> So it is not as clean as :quit but it is good enough until you realize that ghc can leak space just by repeating :load
2021-01-08 01:51:02 +0100 <ephemient> looking at the sources, seems that it copies Pristine.hs over it
2021-01-08 01:51:11 +0100 <ephemient> which is https://github.com/lambdabot/lambdabot/blob/master/lambdabot/State/Pristine.hs.default ?
2021-01-08 01:51:14 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
2021-01-08 01:51:15 +0100 <monochrom> yeah
2021-01-08 01:52:43 +0100 <aldum> monochrom: I wasn't suggesting, I was just curious about the path from .net to haskell
2021-01-08 01:53:37 +0100 <aldum> reading it back, it is ambiguous phrasing, I did not mean "hey, check out these"
2021-01-08 01:54:57 +0100alx741(~alx741@181.196.69.12)
2021-01-08 01:55:18 +0100infinisil(~infinisil@NixOS/user/infinisil) (Quit: Configuring ZNC, sorry for the joins/quits!)
2021-01-08 01:55:27 +0100 <ephemient> interesting. https://www.cin.ufpe.br/~haskell/papers/Scripting_.NET_using_Mondrian-Meijer&Perry&Yzendoorn.pdf is quite Haskell-like
2021-01-08 01:55:37 +0100 <ephemient> doesn't look like it went any further though
2021-01-08 01:56:23 +0100 <monochrom> Ah Mondrian, yeah a forgotten name.
2021-01-08 01:56:53 +0100 <monochrom> But even F# is much less heard of than Haskell.
2021-01-08 01:57:56 +0100 <pedrorubster[m]> I'm mainly a C# dev, but I like to learn new languages, etc
2021-01-08 01:58:04 +0100 <pedrorubster[m]> But .NET is what pays the bills haha
2021-01-08 02:00:06 +0100infinisil(~infinisil@NixOS/user/infinisil)
2021-01-08 02:03:05 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-08 02:04:56 +0100 <monochrom> w00t https://well-typed.com/blog/2021/01/first-look-at-hi-profiling-mode/ sounds pretty neat.
2021-01-08 02:05:24 +0100infinisil(~infinisil@NixOS/user/infinisil) (Quit: Configuring ZNC, sorry for the joins/quits!)
2021-01-08 02:06:12 +0100 <monochrom> Because instead of "values of your homebrew type T is occupying 1GB" you really want "but which line of code is creating all those values?"
2021-01-08 02:06:19 +0100 <monochrom> likewise for thunks
2021-01-08 02:06:19 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 02:07:24 +0100conal(~conal@143.244.61.230) (Quit: Computer has gone to sleep.)
2021-01-08 02:07:31 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
2021-01-08 02:07:51 +0100infinisil(~infinisil@NixOS/user/infinisil)
2021-01-08 02:08:17 +0100 <monochrom> but haha "this work is not yet merged into GHC"
2021-01-08 02:08:46 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-01-08 02:08:53 +0100 <monochrom> well, it's already under review, I think it'll get accepted soon.
2021-01-08 02:09:21 +0100conal(~conal@143.244.61.230)
2021-01-08 02:09:31 +0100 <ephemient> also relatedly… strict tuples would be a nice thing to have sometimes
2021-01-08 02:09:33 +0100conal(~conal@143.244.61.230) (Client Quit)
2021-01-08 02:09:53 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 02:10:06 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 265 seconds)
2021-01-08 02:10:25 +0100 <ephemient> GHC has unboxed tuples but it's not really nice to use
2021-01-08 02:10:50 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 264 seconds)
2021-01-08 02:11:01 +0100 <monochrom> In that case, consider the packages "strict" and "strict-data" :)
2021-01-08 02:11:35 +0100zaquest(~notzaques@5.128.210.178)
2021-01-08 02:12:13 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-twbakplhwmmiboua) (Quit: Connection closed for inactivity)
2021-01-08 02:12:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-08 02:13:27 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 02:13:31 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
2021-01-08 02:13:48 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 02:14:00 +0100 <ephemient> true, that exists... it's just that in any individual situation, I'm more likely to create a strict data type than pull in an external dependency. something standard would be nice
2021-01-08 02:14:24 +0100conal(~conal@209.58.139.51)
2021-01-08 02:14:39 +0100 <monochrom> "strict" is not too bad in that regard
2021-01-08 02:14:47 +0100 <Axman6> @check \n (d : Integer) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) = divMod n d
2021-01-08 02:14:47 +0100 <lambdabot> <unknown>.hs:1:108:Parse error: =
2021-01-08 02:14:49 +0100 <monochrom> "just one more package"
2021-01-08 02:14:59 +0100 <Axman6> @check \n (d : Integer) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n d
2021-01-08 02:15:01 +0100 <lambdabot> error:
2021-01-08 02:15:01 +0100 <lambdabot> Not in scope: data constructor ‘Integer’ Perhaps you meant one of these: var...
2021-01-08 02:15:12 +0100 <Axman6> @check \n (d : Int) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n d
2021-01-08 02:15:15 +0100 <lambdabot> error:
2021-01-08 02:15:15 +0100 <lambdabot> Not in scope: data constructor ‘Int’ Perhaps you meant one of these: ‘In’ (i...
2021-01-08 02:15:20 +0100 <monochrom> (I am aware of the slippery slope of "just one more turn" when playing Civ 5 or 6 :) )
2021-01-08 02:15:26 +0100 <Axman6> excusemewhat?
2021-01-08 02:15:27 +0100 <ephemient> @check \n (d :: Int) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n d
2021-01-08 02:15:28 +0100 <lambdabot> <unknown>.hs:1:15:ScopedTypeVariables language extension is not enabled. Ple...
2021-01-08 02:15:35 +0100 <Axman6> uh, too much DAML!
2021-01-08 02:16:00 +0100 <Axman6> @check \n d -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
2021-01-08 02:16:04 +0100 <lambdabot> error:
2021-01-08 02:16:04 +0100 <lambdabot> • Couldn't match expected type ‘Integer’ with actual type ‘Test.QuickCheck.S...
2021-01-08 02:16:31 +0100 <ephemient> there was a proposal to swap : and :: https://github.com/halfaya/ghc-proposals/blob/master/proposals/0000-colonectomy.rst
2021-01-08 02:17:10 +0100 <ephemient> not accepted, but it is an interesting point that Hashell's : and :: are reversed from most other languages using the same tokens
2021-01-08 02:17:10 +0100 <Axman6> yeah it's one of the many changes in DAML I'd like to see in Haskell, but it would be a difficult thing to migrate
2021-01-08 02:17:47 +0100 <monochrom> I understand : vs :: from the POV of Huffman coding.
2021-01-08 02:18:15 +0100 <monochrom> In SML, you write more type signatures than list nodes. In Haskell, it's the other way round.
2021-01-08 02:18:17 +0100 <Axman6> any idea what I'm doing wrong with that @check above?
2021-01-08 02:19:17 +0100 <monochrom> You write more type signatures in SML because you write a lot of module signatures. There is no module signature to write in Haskell. Unless you go Backpack.
2021-01-08 02:19:44 +0100 <ephemient> also personal opinion, but 1:2:3:[] looks better than 1::2::3::Nil (a la caml), and it seems more natural to put spaces around the longer :: than the shorter :
2021-01-08 02:19:45 +0100dansho(~dansho@ec2-52-196-57-214.ap-northeast-1.compute.amazonaws.com)
2021-01-08 02:20:12 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Ping timeout: 260 seconds)
2021-01-08 02:20:19 +0100 <Axman6> :t \n d -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
2021-01-08 02:20:21 +0100 <lambdabot> error:
2021-01-08 02:20:21 +0100 <lambdabot> • Couldn't match expected type ‘Integer’
2021-01-08 02:20:21 +0100 <lambdabot> with actual type ‘Test.QuickCheck.Safe.SProperty’
2021-01-08 02:21:01 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 02:21:04 +0100 <monochrom> :type \n d -> divMod n d
2021-01-08 02:21:13 +0100 <monochrom> Um
2021-01-08 02:21:16 +0100 <monochrom> @type \n d -> divMod n d
2021-01-08 02:21:17 +0100 <lambdabot> Integral a => a -> a -> (a, a)
2021-01-08 02:21:35 +0100 <monochrom> @type (==>)
2021-01-08 02:21:37 +0100 <lambdabot> STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty
2021-01-08 02:22:01 +0100 <ephemient> :t property
2021-01-08 02:22:03 +0100 <lambdabot> error: Variable not in scope: property
2021-01-08 02:22:06 +0100 <Axman6> there's an instance for STestable Bool
2021-01-08 02:22:43 +0100 <monochrom> OK, next...
2021-01-08 02:22:46 +0100 <Axman6> and (..., STestable prop) => STestable (a -> prop)
2021-01-08 02:22:59 +0100 <Axman6> and Arbitrary Integer
2021-01-08 02:23:03 +0100 <monochrom> @type \n d -> d/=0 ==> n == d
2021-01-08 02:23:04 +0100 <lambdabot> error:
2021-01-08 02:23:04 +0100 <lambdabot> Precedence parsing error
2021-01-08 02:23:05 +0100 <lambdabot> cannot mix ‘/=’ [infix 4] and ‘==’ [infix 4] in the same infix expression
2021-01-08 02:23:10 +0100 <Axman6> ah
2021-01-08 02:23:21 +0100 <Axman6> @check \n d -> (d /= 0) ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
2021-01-08 02:23:23 +0100 <lambdabot> *** Failed! Falsifiable (after 3 tests and 4 shrinks):
2021-01-08 02:23:24 +0100 <lambdabot> -4 -3
2021-01-08 02:23:24 +0100 <monochrom> No, yours does not suffer from precedence.
2021-01-08 02:23:34 +0100 <monochrom> Oh, yours do.
2021-01-08 02:23:45 +0100 <Axman6> yeah
2021-01-08 02:24:07 +0100 <Axman6> so, assuming I have quot and rem, how do I implement divMod?
2021-01-08 02:24:30 +0100 <Axman6> @check \n d -> (d /= 0) ==> let (q,r) = quotRem n d in if r < 0 then (q-signum q,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
2021-01-08 02:24:32 +0100 <lambdabot> *** Failed! Falsifiable (after 4 tests and 5 shrinks):
2021-01-08 02:24:32 +0100 <lambdabot> -3 -5
2021-01-08 02:24:53 +0100Axman6heads to ghci since this isn't as simple as he first thought
2021-01-08 02:25:52 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 02:25:55 +0100 <monochrom> OK, so quot rounds towards zero, div rounds towards -oo
2021-01-08 02:26:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 02:26:34 +0100 <monochrom> hrm, does "round towards zero" and "truncate towards zero" mean the same thing?
2021-01-08 02:26:54 +0100 <monochrom> because Haskell Report uses "truncate". I butchered it to "round".
2021-01-08 02:27:55 +0100 <bi_functor> monochrom, round is almost always toward the nearest integer, regardless of direction
2021-01-08 02:29:12 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 02:29:32 +0100redkite(~redkite@s91904423.blix.com) (Quit: Lost terminal)
2021-01-08 02:29:34 +0100columbarius1(~columbari@i5E86B3D0.versanet.de) (Ping timeout: 260 seconds)
2021-01-08 02:29:38 +0100 <bi_functor> but i think they're interchangeable if you specify, like you did baove
2021-01-08 02:29:45 +0100 <bi_functor> s/ba/ab
2021-01-08 02:29:46 +0100Tario(~Tario@201.192.165.173)
2021-01-08 02:30:11 +0100 <arahael> Hmm, I don't understand monad transformers yet, but I have a 'StateT A IO ()', and I want to map a 'State A ()' into that StateT, what can I do?
2021-01-08 02:30:29 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 02:30:45 +0100 <bi_functor> arahael: State A () ~ StateT A Identity ()
2021-01-08 02:30:50 +0100 <Axman6> @hoogle State s a -> StateT s m a
2021-01-08 02:30:51 +0100 <lambdabot> No results found
2021-01-08 02:30:59 +0100 <arahael> bi_functor: Ah, of course.
2021-01-08 02:31:40 +0100columbarius1(~columbari@mue-88-130-54-078.dsl.tropolys.de)
2021-01-08 02:31:50 +0100 <arahael> bi_functor: Which means I need to transform that second type parameter.
2021-01-08 02:32:15 +0100 <arahael> (Ie, how do I modify the stack so that it changes the 'Identity' into 'IO'?)
2021-01-08 02:32:20 +0100 <Axman6> ( \(StateT f) -> StateT (pure . runIdentity . f)
2021-01-08 02:32:30 +0100 <Axman6> :t \(StateT f) -> StateT (pure . runIdentity . f)
2021-01-08 02:32:31 +0100 <lambdabot> Applicative m => StateT s Identity a -> StateT s m a
2021-01-08 02:32:35 +0100 <ephemient> modify the stack so that it gives you a StateT A m () instead of a State A ()?
2021-01-08 02:33:34 +0100 <bi_functor> % :t fmap ((pure . runIdentity) .) @StateT
2021-01-08 02:33:34 +0100 <yahb> bi_functor: ; <interactive>:1:1: error:; * Cannot apply expression of type `f0 (a0 -> Identity a1) -> f0 (a0 -> f1 a1)'; to a visible type argument `StateT'; * In the expression: fmap ((pure . runIdentity) .) @StateT
2021-01-08 02:33:50 +0100 <monochrom> Axman6: I think you're on the right track, except your condition should not be r<0, it should be "n and q have opposite signs", i.e., n/q would be negative
2021-01-08 02:33:50 +0100 <jackdk> % :t hoist generalize
2021-01-08 02:33:51 +0100 <yahb> jackdk: ; <interactive>:1:7: error:; * Variable not in scope: generalize :: Base s a -> Base t a; * Perhaps you meant `Q.generate' (imported from Test.QuickCheck)
2021-01-08 02:34:06 +0100 <bi_functor> % :t fmap ((pure . runIdentity) .) @(StateT s IO)
2021-01-08 02:34:06 +0100 <yahb> bi_functor: ; <interactive>:1:40: error: Not in scope: type variable `s'
2021-01-08 02:34:09 +0100 <jackdk> from package mmorph
2021-01-08 02:34:14 +0100 <bi_functor> % :t fmap ((pure . runIdentity) .) @(StateT Bool IO)
2021-01-08 02:34:14 +0100 <yahb> bi_functor: ; <interactive>:1:1: error:; * Cannot apply expression of type `f0 (a0 -> Identity a1) -> f0 (a0 -> f1 a1)'; to a visible type argument `(StateT Bool IO)'; * In the expression: fmap ((pure . runIdentity) .) @(StateT Bool IO)
2021-01-08 02:34:31 +0100 <monochrom> err, "n and d have opposite signs, n/d would be negative"
2021-01-08 02:34:38 +0100 <monochrom> I guess it means q<0
2021-01-08 02:34:46 +0100 <Axman6> bi_functor: fmail is never going to be able to do it
2021-01-08 02:34:51 +0100 <Axman6> fmap*
2021-01-08 02:34:53 +0100tomku(~tomku@unaffiliated/tomku) (Ping timeout: 256 seconds)
2021-01-08 02:35:39 +0100 <jackdk> arahel: use the mmorph package. `StateT s` has an `MFunctor` instance. https://www.irccloud.com/pastebin/xpHcxdDD/hoist-generalize.txt
2021-01-08 02:36:17 +0100tomku(~tomku@unaffiliated/tomku)
2021-01-08 02:38:23 +0100 <Axman6> or, just the lambda I wrote above :)
2021-01-08 02:38:36 +0100 <jackdk> yes
2021-01-08 02:39:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 02:40:02 +0100 <monochrom> mapStateT can also help. You're looking at: mapStateT :: (Identity (a, s) -> IO (b, s)) -> StateT s Identity a -> StateT s IO b
2021-01-08 02:41:11 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 256 seconds)
2021-01-08 02:41:31 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-01-08 02:42:10 +0100 <Axman6> :t StateT . (pure .) . (runIdentity .) . runStateT
2021-01-08 02:42:12 +0100 <lambdabot> Applicative m => StateT s Identity a -> StateT s m a
2021-01-08 02:42:57 +0100 <arahael> bi_functor: It looks obvious, but I seem to be failing to see it. :( I created two functions `bar :: State Int ()` and `foo :: StateT Int IO ()`, but `foo = do runIdentity <$> bar` just doesn't seem to do the trick. I also tried `foo = do (pure . runIdentity) <$> bar`
2021-01-08 02:43:17 +0100 <arahael> bi_functor: I *do* want to do it within the do block as this is a simplified example of what I'm trying to do.
2021-01-08 02:43:32 +0100 <Axman6> arahael: you cannot use fmap to do this
2021-01-08 02:43:35 +0100 <arahael> (Though, being only one expression, that 'do' is superflurous)
2021-01-08 02:43:44 +0100 <Axman6> the code I wrote above does exactly what you want
2021-01-08 02:44:10 +0100 <bi_functor> arahael: use the lambda function outside of the monad
2021-01-08 02:44:13 +0100 <arahael> Axman6: I'm still looking at how to apply your suggestion.
2021-01-08 02:44:20 +0100 <arahael> bi_functor: Ah, I want to do it within the monad.
2021-01-08 02:44:57 +0100 <Axman6> the code I gave you literally does exactly what you asked for :\
2021-01-08 02:45:18 +0100 <Axman6> \(StateT f) -> StateT (pure . runIdentity . f) is probably the easiest to understand
2021-01-08 02:45:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-08 02:45:47 +0100 <bi_functor> arahael: you can't change the monad's parameters from within the monad
2021-01-08 02:46:04 +0100 <arahael> Axman6: I've got: `foo = do StateT ( pure . runIdentity . bar)`, but that doesn't work either.
2021-01-08 02:46:10 +0100 <arahael> bi_functor: I can't?
2021-01-08 02:46:18 +0100 <Axman6> :t let promoteState (StateT f) = StateT (\s -> pure . runIdentity . f $ s) in promoteState
2021-01-08 02:46:19 +0100 <lambdabot> Applicative m => StateT s Identity a -> StateT s m a
2021-01-08 02:46:26 +0100 <bi_functor> @let s = put 1 :: State Int ()
2021-01-08 02:46:28 +0100 <lambdabot> Defined.
2021-01-08 02:46:34 +0100 <bi_functor> > runState s 0
2021-01-08 02:46:37 +0100 <lambdabot> error:
2021-01-08 02:46:37 +0100 <lambdabot> Ambiguous occurrence ‘s’
2021-01-08 02:46:37 +0100 <lambdabot> It could refer to
2021-01-08 02:46:43 +0100 <bi_functor> > runState L.s 0
2021-01-08 02:46:45 +0100 <lambdabot> ((),1)
2021-01-08 02:47:09 +0100 <bi_functor> @let promoteState (StateT f) = StateT (\s -> pure . runIdentity . f $ s)
2021-01-08 02:47:10 +0100 <lambdabot> Defined.
2021-01-08 02:47:17 +0100 <Axman6> :t let promoteState (StateT f) = StateT (\s -> pure . runIdentity . f $ s) in promoteState (put 1 :: State Int ()) :: StateT Int IO ()
2021-01-08 02:47:20 +0100 <lambdabot> StateT Int IO ()
2021-01-08 02:48:17 +0100 <bi_functor> > runState (promoteState s) 0
2021-01-08 02:48:20 +0100 <lambdabot> error:
2021-01-08 02:48:20 +0100 <lambdabot> Ambiguous occurrence ‘s’
2021-01-08 02:48:20 +0100 <lambdabot> It could refer to
2021-01-08 02:48:23 +0100 <bi_functor> > runState (promoteState L.s) 0
2021-01-08 02:48:26 +0100 <lambdabot> ((),1)
2021-01-08 02:49:00 +0100 <bi_functor> you can't see the difference from the result, but this one's in IO
2021-01-08 02:49:12 +0100 <bi_functor> as Axman6 demonstrated :)
2021-01-08 02:50:14 +0100 <bi_functor> so, if you had foo :: State A (), then (promoteState foo) :: StateT A IO ()
2021-01-08 02:50:53 +0100 <bi_functor> promoteState isn't done inside the do block, it's done outside the monad, because you're effectively changing the monad itself
2021-01-08 02:51:07 +0100 <arahael> Axman6: promoteState as cut&pasted works, just needing to understand it now; it seems you manually unwrap the state monad, then create a new StateT, I was looking purely at the get/set and other functions.
2021-01-08 02:51:13 +0100 <bi_functor> even though you're not changing the computation
2021-01-08 02:51:31 +0100 <arahael> bi_functor: It compiles *fine* inside the `foo` do block.
2021-01-08 02:51:49 +0100 <Uniaika> bi_functor: hey Melanie, it's Hécate :)
2021-01-08 02:52:00 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
2021-01-08 02:52:11 +0100 <arahael> bi_functor: Ie, `foo = do promoteState bar` works fine.
2021-01-08 02:52:11 +0100 <bi_functor> bonsoir Hecate, il est quelle heure ou tu es? :p
2021-01-08 02:52:23 +0100 <Uniaika> bi_functor: bientôt 3h du matin :(
2021-01-08 02:52:26 +0100 <Uniaika> et toi ?
2021-01-08 02:52:31 +0100 <bi_functor> arahael: sure, foo and bar have different types
2021-01-08 02:52:39 +0100 <arahael> bi_functor: Yes, they do.
2021-01-08 02:52:56 +0100 <bi_functor> i'm saying you can't do promoteState inside bar's do block
2021-01-08 02:53:01 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-08 02:53:05 +0100Tario(~Tario@201.192.165.173)
2021-01-08 02:53:16 +0100 <arahael> bi_functor: `foo :: StateT Int IO ()` and ... Oh, I was never trying to do it inside bar. I wanted to keep bar *simple* and ignorant of IO.
2021-01-08 02:53:29 +0100 <bi_functor> Uniaika: c'est tard!
2021-01-08 02:54:14 +0100 <bi_functor> Uniaika: qu'est-ce que tu fais ~debout~ assis maintenant!!
2021-01-08 02:54:28 +0100 <arahael> Axman6: Thanks for the help.
2021-01-08 02:54:55 +0100 <monochrom> "bar :: MonadState Int m => m ()" is ignorant of everything, and directly usable as-is inside foo.
2021-01-08 02:55:28 +0100 <monochrom> By hardcoding "State" you destroyed the beauty of it.
2021-01-08 02:55:54 +0100 <Uniaika> bi_functor: j'étais justement en train d'aller me coucher :P
2021-01-08 02:55:56 +0100 <monochrom> It is not ignorant of IO. It is aware of IO in the sense that "but I refuse IO".
2021-01-08 02:56:01 +0100 <arahael> monochrom: Sure, but I _barely_ understand MonadTransformers at all, I have to start somewhere!
2021-01-08 02:56:06 +0100 <Uniaika> nacht, #haskell!
2021-01-08 02:56:22 +0100 <monochrom> Don't stay where you start.
2021-01-08 02:56:27 +0100 <monochrom> Never stay where you start.
2021-01-08 02:57:09 +0100_bin(~bin@2600:1700:10a1:38d0:b49e:5cc4:aa1c:81d9)
2021-01-08 02:57:40 +0100 <arahael> monochrom: MonadState is "just" a typeclass, though. It isn't itself part of the monad transformer. State, which is really StateT in this case, _is_ a MonadTransformer, and that's what I was trying to figure out. :)
2021-01-08 02:57:50 +0100 <arahael> monochrom: By using MonadState, I could've avoided this mental excercise.
2021-01-08 02:58:28 +0100 <bi_functor> arahael: the nice thing about monad transformers is that the monad typeclasses get lifted up the stack!
2021-01-08 02:59:17 +0100 <arahael> Indeed.
2021-01-08 02:59:38 +0100 <monochrom> In term of "just learning about monad transformers", converting StateT X I to StateT X J is largely outside the syllabus.
2021-01-08 02:59:48 +0100 <arahael> monochrom: I'm intrigued that you suggest that 'State Int ()' is still aware of IO but just refuses to do IO...
2021-01-08 03:00:03 +0100 <monochrom> Yes.
2021-01-08 03:00:17 +0100 <arahael> monochrom: Well, if you don't know how to do that, you'd need to ensure you absolutely use the *same* monad transformer stack everywhere in the entire application...
2021-01-08 03:00:24 +0100 <arahael> monochrom: Which seems limiting?
2021-01-08 03:00:39 +0100 <monochrom> "f :: Int -> Int; f x = x" is not ignorant of Double. It is positively refusing Double, and (), and Bool, and everything except Int.
2021-01-08 03:00:47 +0100 <monochrom> "f :: a -> a" is the ignorant one.
2021-01-08 03:00:59 +0100 <arahael> Oh, that interpretation of ignorant.
2021-01-08 03:01:45 +0100 <arahael> (A more accurate interpretation, admittably)
2021-01-08 03:02:02 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Remote host closed the connection)
2021-01-08 03:02:21 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
2021-01-08 03:03:35 +0100 <arahael> I think part of my mistake was ignoring the actual definition of StateT, and relying only on the typeclass definition.
2021-01-08 03:04:14 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-01-08 03:04:49 +0100Kaeipi(~Kaiepi@47.54.252.148)
2021-01-08 03:04:55 +0100Kaiepi(~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
2021-01-08 03:05:23 +0100notzmv(~user@unaffiliated/zmv)
2021-01-08 03:06:29 +0100 <_bin> Good evening, question for y'all: I'm wondering if anyone has advice on the best way to manage an Arch Haskell development environment. The Archpackaging story appears to be a disaster and I couldn't get it working, so I tried using Nix and that appears to do nicely; I can install stuff and compile with Cabal. How does this compare to Haskell Platform and ghcup?
2021-01-08 03:07:05 +0100 <maerwald> _bin: ghcup is simple, nix is complex
2021-01-08 03:07:08 +0100 <monochrom> Haskell Platform is stepping down.
2021-01-08 03:08:00 +0100 <maerwald> the only problem ppl have with ghcup is "how do I adjust PATH"... the problem ppl have with nix, well... you could fill a summer school course with it
2021-01-08 03:08:24 +0100 <ephemient> primarily, use whatever you want that isn't Arch's native Haskell packages
2021-01-08 03:08:49 +0100 <_bin> Yep, Nix definitely is complex, but I figure I want to learn it anyway. Thanks for the help.
2021-01-08 03:09:05 +0100 <_bin> And yeah, I tried the Arch packages first... did not go well.
2021-01-08 03:09:50 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com) (Quit: leaving)
2021-01-08 03:11:13 +0100 <maerwald> well, then nix seems like a reasonable choice, if you intended to learn it anyway
2021-01-08 03:11:49 +0100 <_bin> I'm debating between three different books to start out; I have solid knowledge in imperative languages but none in functional. The candidates are Haskell Programming from First Principles, Learn You a Haskell for Great Good, and Real World Haskell. The third seems to be regarded as a more intermediate to advanced text; any thoughts on the pros/cons of each?
2021-01-08 03:12:02 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:8c45:faa1:a31d:b462) (Ping timeout: 264 seconds)
2021-01-08 03:12:54 +0100 <maerwald> there's a refactor of Real World Haskell
2021-01-08 03:13:10 +0100 <maerwald> https://github.com/tssm/up-to-date-real-world-haskell
2021-01-08 03:13:37 +0100 <maerwald> LYAH is not recommended
2021-01-08 03:14:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 03:14:41 +0100 <_bin> Got it, appreciate the recommendation.
2021-01-08 03:15:03 +0100acidjnk_new(~acidjnk@p200300d0c704e71938399a79d0a041ac.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-08 03:15:53 +0100 <monochrom> HPFFP is the least worst of the three.
2021-01-08 03:16:32 +0100maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-01-08 03:16:56 +0100 <_bin> Are there better options? "Least worst" doesn't sound encouraging.
2021-01-08 03:17:52 +0100 <arahael> As it turns out, I needed FlexibleContexts for bi_functor's suggestion to just use the MonadState constraint restriction, why's that?
2021-01-08 03:18:18 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:8c45:faa1:a31d:b462)
2021-01-08 03:18:55 +0100 <monochrom> https://en.wikibooks.org/wiki/Haskell , Hutton's book, Bird's book.
2021-01-08 03:19:37 +0100 <monochrom> But depending on your traits, HPFFP can still be the best.
2021-01-08 03:21:49 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 264 seconds)
2021-01-08 03:22:14 +0100 <maerwald> does servant support http pipelining?
2021-01-08 03:22:20 +0100 <monochrom> LYAH is The Gentle Introduction made longer by fillers not substance.
2021-01-08 03:22:37 +0100 <arahael> (What makes 'MonadState Int m => m ()' a complex constraint that requires FlexibleConstraints?)
2021-01-08 03:23:00 +0100 <monochrom> the "Int" part, which is not a type variable.
2021-01-08 03:23:03 +0100 <arahael> LYAH set me backwards, actually - I tried to follow it, but couldn't get past the broken english. :(
2021-01-08 03:23:11 +0100 <arahael> monochrom: Ah!
2021-01-08 03:24:13 +0100 <arahael> monochrom: Am I correct to assume it's an entirely harmless language extension, or am I better off avoiding it?
2021-01-08 03:24:30 +0100 <monochrom> It is a harmless extension. It is a good extension.
2021-01-08 03:24:42 +0100 <arahael> Awesome. I realise that wasn't an exclusive OR. :D
2021-01-08 03:24:59 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 03:25:11 +0100Tario(~Tario@201.192.165.173)
2021-01-08 03:25:47 +0100 <maerwald> LYAH is good if you had two or three glasses of wine and still want to do some haskell
2021-01-08 03:26:24 +0100 <monochrom> No. I would use The Gentle Introduction for that.
2021-01-08 03:27:03 +0100 <monochrom> Same amount of Shannon information and shorter. I.e., not a waste of time.
2021-01-08 03:27:22 +0100 <arahael> maerwald: It's funny how one suddenly gets the urge to do some haskell. :D I was playing nethack, then suddenly had the urge to write a random C function in haskell, just for kicks. Unfortunately it's horribly full of side effects and crap, which made me look for monad transformers.
2021-01-08 03:27:33 +0100 <ephemient> there's plenty of extensions that can be enabled without affecting code that doesn't use them, FlexibleContexts included
2021-01-08 03:27:42 +0100 <maerwald> arahael: you don't need monad transformers at all
2021-01-08 03:28:00 +0100 <arahael> maerwald: What do you suggest?
2021-01-08 03:28:04 +0100 <maerwald> IO
2021-01-08 03:28:11 +0100 <_bin> Got it, no LYAH. Thanks monochrom, maerwald, arahael for the info.
2021-01-08 03:28:29 +0100cyphase(~cyphase@unaffiliated/cyphase) (Ping timeout: 260 seconds)
2021-01-08 03:28:29 +0100 <arahael> Just doing it all in IO? Sure, and using mvar's?
2021-01-08 03:29:00 +0100 <maerwald> arahael: State monad is just parameter passing in disguise, you can do that without mvars
2021-01-08 03:29:02 +0100 <arahael> _bin: No need to credit me, I didn't really contribute anything. :)
2021-01-08 03:29:38 +0100 <arahael> maerwald: The function has a _lot_ of state - it comes from nethack.
2021-01-08 03:29:40 +0100 <maerwald> for small codebases, there's really no good argument to be made for most transformers... and even in big code bases you can avoid most of them
2021-01-08 03:29:42 +0100 <ephemient> well sure, all of mtl can be replaced with non-monadic code achieving the same effect explicitly
2021-01-08 03:29:46 +0100jlamothe(~jlamothe@198.251.55.207) (Quit: leaving)
2021-01-08 03:29:54 +0100 <maerwald> arahael: what does "a lot of state" mean?
2021-01-08 03:30:08 +0100 <maerwald> ephemient: and often more efficiently
2021-01-08 03:30:13 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2021-01-08 03:30:20 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-01-08 03:30:38 +0100 <ephemient> eh, if it doesn't cross module boundaries GHC should be able to inline pretty effectively
2021-01-08 03:30:45 +0100 <maerwald> "should"
2021-01-08 03:30:47 +0100 <arahael> maerwald: The entire world is known and every single branch in the code has side effects.
2021-01-08 03:31:01 +0100 <sm[m]> @where HTAC , _bin ?
2021-01-08 03:31:01 +0100 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2021-01-08 03:31:07 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-08 03:31:07 +0100notzmv(~user@unaffiliated/zmv)
2021-01-08 03:31:13 +0100 <maerwald> arahael: MonadState has one state
2021-01-08 03:31:25 +0100 <maerwald> if you user parameters, it's also one
2021-01-08 03:31:39 +0100 <arahael> maerwald: I was using a State WorldState ()
2021-01-08 03:31:59 +0100 <maerwald> arahael: then now you do: foo :: WorldState -> IO (WorldState, a)
2021-01-08 03:32:05 +0100robotmay(~beepboop@80.172.187.81.in-addr.arpa) (Ping timeout: 240 seconds)
2021-01-08 03:32:28 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-08 03:32:42 +0100 <arahael> maerwald: Yes, that'd be simpler.
2021-01-08 03:32:56 +0100 <ephemient> in the same vein, we could write everything as C-like code. I don't think that's what I like to write when I'm using Haskell though
2021-01-08 03:33:06 +0100arahaelprobably should stop trying to avoid IO as much as he does.
2021-01-08 03:33:32 +0100 <maerwald> ephemient: that's not even a close comparison
2021-01-08 03:33:40 +0100 <maerwald> transformers aren't inherent to haskell at all
2021-01-08 03:33:50 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2021-01-08 03:33:52 +0100 <fosterite> sometimes when I'm writing C I'd like to be writing really verbose imperative haskell instead
2021-01-08 03:33:57 +0100 <maerwald> and there's a lot of work going on to remove them once and for all
2021-01-08 03:34:35 +0100 <arahael> maerwald: Could you elaborate as to why?
2021-01-08 03:34:36 +0100 <maerwald> but not sure the alternative will really save us
2021-01-08 03:34:43 +0100 <monochrom> Sometimes when I'm in C, I want partial application, so I FFI to Haskell...
2021-01-08 03:34:55 +0100 <monochrom> Fortunately, lately I learned that libffi can do that.
2021-01-08 03:35:05 +0100 <maerwald> arahael: https://www.youtube.com/watch?v=0jI-AlWEwYI
2021-01-08 03:35:16 +0100 <arahael> maerwald: I don't really learn from videos. :( (I'm deaf, too)
2021-01-08 03:35:21 +0100plutoniix(~q@184.82.195.253)
2021-01-08 03:35:31 +0100 <maerwald> https://github.com/hasura/eff
2021-01-08 03:35:33 +0100 <monochrom> Although, FFIing to Haskell is still less code to write by hand :)
2021-01-08 03:35:50 +0100 <maerwald> arahael: there should be captions
2021-01-08 03:36:23 +0100cyphase(~cyphase@unaffiliated/cyphase)
2021-01-08 03:36:30 +0100 <monochrom> No, that one has only auto-generated English.
2021-01-08 03:36:52 +0100 <maerwald> the slides itself are quite useful though
2021-01-08 03:37:01 +0100 <monochrom> Ah, that one yes.
2021-01-08 03:37:21 +0100 <monochrom> Yeah sometimes I ignore everything except the slides.
2021-01-08 03:37:54 +0100 <arahael> Wonder why they didn't just put the slides up then - sorry, I just have a knee-jerk reaction to youtube because more often then not, the captions are crap, or missing, or the video is "too new" (so doesn't even have the autogenerated english), or just very very slow in general when it could've been a nice, elegant article. :(
2021-01-08 03:38:33 +0100 <monochrom> Usually the slides are up somewhere else.
2021-01-08 03:38:46 +0100 <monochrom> The speaker's own home page for example.
2021-01-08 03:39:07 +0100 <maerwald> sometimes she's on IRC, but not right now I think
2021-01-08 03:39:13 +0100 <arahael> And it's very tedious to wait through the first advetisement... The second advertisement... And then skip to the middle to check the captions quality... Then skip back to the start to let it run through.
2021-01-08 03:40:10 +0100 <_bin> disconnect znc_snoonet
2021-01-08 03:40:19 +0100 <ephemient> slides with speakers notes to page through at your own rate would be ideal. I can't find either for this presentation though
2021-01-08 03:40:43 +0100xff0x(~fox@2001:1a81:5319:4600:de4d:e10d:2b58:a372) (Ping timeout: 260 seconds)
2021-01-08 03:41:06 +0100 <maerwald> the videos should be *in the slides* :)
2021-01-08 03:41:20 +0100 <maerwald> and when you switch to a slide, you can watch the section for that slide
2021-01-08 03:41:37 +0100 <arahael> Yeah, this video is terrible - the slides are possibly good, but very very slow. The captions seem to be good, actually, but can't read the slides at the same time as they dont' give enough time.
2021-01-08 03:42:25 +0100conal(~conal@209.58.139.51) (Ping timeout: 265 seconds)
2021-01-08 03:42:29 +0100xff0x(~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d)
2021-01-08 03:42:54 +0100 <monochrom> maerwald, that's a great idea.
2021-01-08 03:43:33 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-01-08 03:43:48 +0100 <arahael> Oh, wow. Youtube provides *transcripts* now.
2021-01-08 03:43:52 +0100 <maerwald> 50 years of programming, millions of codebases, but we still suck at usability
2021-01-08 03:44:09 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-08 03:44:26 +0100 <arahael> I can click on a line in the transcript, and it'll jump to that section in the video - this might be usable.
2021-01-08 03:44:35 +0100 <monochrom> The fundamental limitation is coder mindset.
2021-01-08 03:44:46 +0100 <ephemient> it's as usable as the automatic captions are
2021-01-08 03:44:57 +0100 <ephemient> in this case, probably pretty good, as it's a clean recording
2021-01-08 03:44:58 +0100 <monochrom> Coder mindset means thinking "what I can code up" not "what people really need".
2021-01-08 03:45:23 +0100 <arahael> ephemient: I assume she probably has a "good accent" and that there's no background noise, it does seem a clean recording.
2021-01-08 03:45:43 +0100 <maerwald> monochrom: well... we had a usability course in university, but I don't think anyone realised that it's probably the most important course. The rest you can easily teach yourself, imo.
2021-01-08 03:46:03 +0100 <arahael> monochrom: I think it's also that disabilities are pushed down. Videos as the trendy form of expression puts the bar to intellegibility higher.
2021-01-08 03:46:21 +0100 <maerwald> But programmers are unlikely to teach themselves usability theory
2021-01-08 03:46:35 +0100 <monochrom> And I'm careful to word it not as "programmer mindset" because now I broaden "programmer" to include, for example, artists who use a CAD system to build 3D models for movies. And those people actually make sense in terms of needs.
2021-01-08 03:46:46 +0100conal(~conal@64.71.133.70)
2021-01-08 03:47:10 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-08 03:48:35 +0100 <maerwald> Some things you have to hammer into their faces
2021-01-08 03:48:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-08 03:51:39 +0100 <maerwald> But then again, from the companies I worked at only one hired a "usability engineer" and only because the product was internal and ppl were leaving because it sucked so hard :D
2021-01-08 03:52:45 +0100jmchael(~jmchael@81.174.205.210) (Ping timeout: 240 seconds)
2021-01-08 03:57:01 +0100 <arahael> Copied transcript. Reformatted to fit a sane line length. It's now 1000 lines, without any punctuation whatsoever. :D
2021-01-08 03:57:58 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-01-08 04:01:00 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-01-08 04:03:28 +0100sajith_(~sajith@fsf/member/nonzen) (Disconnected by services)
2021-01-08 04:03:58 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-01-08 04:04:46 +0100lagothrixGuest2830
2021-01-08 04:04:46 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2021-01-08 04:04:46 +0100Guest2830(~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services)))
2021-01-08 04:04:46 +0100xirhtogallagothrix
2021-01-08 04:05:50 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-08 04:06:01 +0100 <arahael> maerwald: Thanks for the talk, going to reformat the transcript as I go through it but it does seem that there's loads of good stuff in there.
2021-01-08 04:06:07 +0100 <arahael> Will do that in the arvo.
2021-01-08 04:06:15 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 04:07:25 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 264 seconds)
2021-01-08 04:11:03 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
2021-01-08 04:12:58 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-01-08 04:19:59 +0100dddddd(~dddddd@unaffiliated/dddddd) (Remote host closed the connection)
2021-01-08 04:22:37 +0100maroloccio(~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
2021-01-08 04:22:52 +0100maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-01-08 04:23:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 04:25:25 +0100juri_(~juri@178.63.35.222) (Ping timeout: 264 seconds)
2021-01-08 04:28:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 04:28:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-08 04:30:07 +0100petersen_(~petersen@redhat/juhp)
2021-01-08 04:30:44 +0100_bin(~bin@2600:1700:10a1:38d0:b49e:5cc4:aa1c:81d9) (Quit: ZNC - https://znc.in)
2021-01-08 04:30:54 +0100_bin(~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29)
2021-01-08 04:31:25 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 264 seconds)
2021-01-08 04:31:39 +0100petersen_petersen
2021-01-08 04:32:22 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-01-08 04:32:43 +0100dddddd(~dddddd@unaffiliated/dddddd)
2021-01-08 04:32:46 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-08 04:34:36 +0100Varis(~Tadas@unaffiliated/varis) (Ping timeout: 272 seconds)
2021-01-08 04:36:15 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2021-01-08 04:36:35 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 04:38:33 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 04:38:54 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 04:39:24 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-dhvdirleecffuxmg)
2021-01-08 04:39:38 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-138.cust.tzulo.com)
2021-01-08 04:44:01 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-08 04:46:54 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-08 04:51:42 +0100theDon(~td@muedsl-82-207-238-201.citykom.de) (Ping timeout: 272 seconds)
2021-01-08 04:52:08 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2021-01-08 04:52:50 +0100theDon(~td@muedsl-82-207-238-128.citykom.de)
2021-01-08 04:56:13 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
2021-01-08 04:56:47 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru)
2021-01-08 04:58:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 04:58:37 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 05:00:29 +0100Rudd0(~Rudd0@185.189.115.103)
2021-01-08 05:05:04 +0100cassim-(~cassim@51.194.80.91) (Ping timeout: 265 seconds)
2021-01-08 05:07:08 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-01-08 05:09:35 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
2021-01-08 05:09:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2021-01-08 05:10:17 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-01-08 05:10:30 +0100dddddd(~dddddd@unaffiliated/dddddd)
2021-01-08 05:13:49 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-xrvpventptxcogxg) ()
2021-01-08 05:14:21 +0100drbean(~drbean@TC210-63-209-157.static.apol.com.tw)
2021-01-08 05:14:48 +0100christo(~chris@81.96.113.213)
2021-01-08 05:18:35 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 05:18:38 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-08 05:22:29 +0100fosterite(~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) ()
2021-01-08 05:22:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 05:23:09 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 05:23:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-08 05:23:39 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-138.cust.tzulo.com) (Quit: Leaving)
2021-01-08 05:24:25 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
2021-01-08 05:24:32 +0100notzmv(~user@unaffiliated/zmv)
2021-01-08 05:25:42 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 05:25:59 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 05:27:05 +0100jedws(~jedws@121.209.189.201)
2021-01-08 05:27:42 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 05:27:58 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 05:29:12 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-01-08 05:32:14 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
2021-01-08 05:33:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-08 05:35:15 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 05:35:55 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-08 05:39:56 +0100Tario(~Tario@201.192.165.173)
2021-01-08 05:40:09 +0100conal(~conal@64.71.133.70)
2021-01-08 05:41:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Remote host closed the connection)
2021-01-08 05:41:27 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-08 05:41:52 +0100conal(~conal@64.71.133.70)
2021-01-08 05:42:08 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-08 05:44:04 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2021-01-08 05:44:05 +0100conal(~conal@64.71.133.70)
2021-01-08 05:44:17 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-08 05:44:41 +0100conal(~conal@64.71.133.70)
2021-01-08 05:44:41 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-08 05:49:32 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 05:49:51 +0100new_haskeller(ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com)
2021-01-08 05:49:58 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-01-08 05:51:28 +0100notzmv(~user@unaffiliated/zmv)
2021-01-08 05:53:36 +0100lep-deleteGuest18945
2021-01-08 05:53:37 +0100Guest18945test
2021-01-08 05:53:37 +0100testGuest18945
2021-01-08 05:55:02 +0100Guest18945lep-delete
2021-01-08 05:59:20 +0100Cassim(~cassim@51.194.80.91)
2021-01-08 06:01:24 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 06:02:37 +0100dfeuer(~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-01-08 06:04:51 +0100spopejoy(~stuart@ool-44c5f8c9.dyn.optonline.net) (Quit: spopejoy)
2021-01-08 06:07:22 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 06:08:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 06:10:25 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-01-08 06:10:46 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-08 06:11:47 +0100notzmv(~user@unaffiliated/zmv)
2021-01-08 06:11:47 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds)
2021-01-08 06:12:29 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 06:12:53 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Excess Flood)
2021-01-08 06:13:14 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
2021-01-08 06:14:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-08 06:14:43 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-01-08 06:16:03 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 06:17:33 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 06:17:40 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2021-01-08 06:18:29 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-01-08 06:19:10 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-08 06:22:40 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-08 06:22:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 06:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 06:24:22 +0100Tops21(~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de)
2021-01-08 06:27:32 +0100petersen(~petersen@redhat/juhp) (Quit: petersen)
2021-01-08 06:27:49 +0100Tops2(~Tobias@dyndsl-095-033-017-251.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
2021-01-08 06:28:13 +0100petersen(~petersen@redhat/juhp)
2021-01-08 06:28:51 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-08 06:29:06 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 06:30:09 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2021-01-08 06:30:33 +0100ezrakilty(~ezrakilty@75-172-99-84.tukw.qwest.net)
2021-01-08 06:31:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
2021-01-08 06:32:27 +0100kupi(uid212005@gateway/web/irccloud.com/x-zsinuyuwufxnleoc) (Quit: Connection closed for inactivity)
2021-01-08 06:33:33 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2021-01-08 06:36:54 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
2021-01-08 06:38:08 +0100ezrakilty(~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection)
2021-01-08 06:40:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 06:40:59 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 06:41:22 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 06:41:25 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-08 06:46:08 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-08 06:51:23 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 06:53:43 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 06:55:08 +0100Tops21(~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de) (Quit: Leaving.)
2021-01-08 06:57:04 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-01-08 07:00:42 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-08 07:01:31 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
2021-01-08 07:01:51 +0100dansho(~dansho@ec2-52-196-57-214.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 256 seconds)
2021-01-08 07:02:13 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 07:03:19 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
2021-01-08 07:03:27 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 07:03:28 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
2021-01-08 07:03:58 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 07:04:27 +0100rlaager1(~rlaager@84.39.117.57) (Remote host closed the connection)
2021-01-08 07:10:17 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 272 seconds)
2021-01-08 07:12:17 +0100nineonine(~nineonine@50.216.62.2)
2021-01-08 07:13:48 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 07:14:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-08 07:18:25 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2021-01-08 07:19:21 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-01-08 07:19:56 +0100spopejoy(~stuart@ool-44c5f8c9.dyn.optonline.net)
2021-01-08 07:20:46 +0100nineonin_(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-08 07:21:05 +0100jespada(~jespada@90.254.245.49)
2021-01-08 07:22:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 07:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 07:23:56 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
2021-01-08 07:24:40 +0100spopejoy(~stuart@ool-44c5f8c9.dyn.optonline.net) (Ping timeout: 256 seconds)
2021-01-08 07:26:37 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2021-01-08 07:29:24 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-01-08 07:29:26 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 07:37:12 +0100thevishy(~Nishant@103.210.43.19)
2021-01-08 07:39:54 +0100rembo10(~rembo10@wally.codeshy.com)
2021-01-08 07:41:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 07:44:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 07:46:35 +0100jedws(~jedws@121.209.189.201)
2021-01-08 07:46:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-08 07:49:19 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 07:49:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-01-08 07:52:51 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 07:54:48 +0100jedws(~jedws@121.209.189.201)
2021-01-08 07:54:53 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-01-08 07:56:12 +0100jedws(~jedws@121.209.189.201) (Client Quit)
2021-01-08 08:02:43 +0100grey_owl(~Harry@c-98-248-252-181.hsd1.ca.comcast.net)
2021-01-08 08:05:24 +0100grey_owl(~Harry@c-98-248-252-181.hsd1.ca.comcast.net) (Quit: Leaving)
2021-01-08 08:07:42 +0100tsrt^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-01-08 08:08:35 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 08:08:36 +0100 <gnumonic> Hello. I'm trying to figure out how to do basic arithmetic with singletons, but I'm stuck on how to work with existential GADTs. Could anyone tell me why https://gist.github.com/gnumonik/2bbda78c261cb36fcc492d33d2f0a54e doesn't work? I'm lost.
2021-01-08 08:09:20 +0100ArsenArsen_(~Arsen@fsf/member/ArsenArsen)
2021-01-08 08:09:57 +0100ArsenArsen(~Arsen@fsf/member/ArsenArsen) (Ping timeout: 260 seconds)
2021-01-08 08:12:35 +0100new_haskeller(ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds)
2021-01-08 08:12:40 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2021-01-08 08:13:37 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
2021-01-08 08:15:22 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 08:18:47 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-01-08 08:20:09 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-01-08 08:21:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 08:22:47 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 08:22:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 08:23:03 +0100ericsagnes(~ericsagne@2405:6580:0:5100:e26e:cf9:1dd6:9615) (Ping timeout: 260 seconds)
2021-01-08 08:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 08:23:56 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Remote host closed the connection)
2021-01-08 08:24:11 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
2021-01-08 08:27:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 264 seconds)
2021-01-08 08:28:26 +0100justinthong(~justintho@2001:e68:5442:bb98:d4be:58e5:d005:c53b)
2021-01-08 08:28:31 +0100nrh^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-01-08 08:29:37 +0100jkjf(af88139f@175.136.19.159)
2021-01-08 08:30:28 +0100 <justinthong> hi how do you set a fork of a repo in the dependency for dependency of building a package?
2021-01-08 08:30:51 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 08:31:27 +0100christo(~chris@81.96.113.213)
2021-01-08 08:31:56 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-08 08:32:21 +0100 <justinthong> i figured it was just as simple as specifying it in extra-deps specifying github and commit key
2021-01-08 08:32:39 +0100 <justinthong> does this pull the package and build on my local automatically??
2021-01-08 08:34:44 +0100MarcelineVQ(~anja@198.254.202.72) (Ping timeout: 260 seconds)
2021-01-08 08:36:03 +0100MarcelineVQ(~anja@198.254.202.72)
2021-01-08 08:40:15 +0100jkjf(af88139f@175.136.19.159) (Remote host closed the connection)
2021-01-08 08:41:01 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2021-01-08 08:45:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-01-08 08:45:50 +0100unlink_(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de)
2021-01-08 08:47:11 +0100justinthongtintinthong
2021-01-08 08:47:19 +0100 <tintinthong> l
2021-01-08 08:48:15 +0100 <xerox_> tintinthong: you use the project file to describe overrides
2021-01-08 08:48:59 +0100 <xerox_> https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=packages#specifying-the-local-pac…
2021-01-08 08:50:23 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-01-08 08:50:53 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-08 08:51:20 +0100tintinthong(~justintho@2001:e68:5442:bb98:d4be:58e5:d005:c53b) (Remote host closed the connection)
2021-01-08 08:51:31 +0100rmk236(~lcampos@2a02:908:3616:b100:b46b:967f:fa10:7f63)
2021-01-08 08:52:42 +0100tintinthong(af88139f@175.136.19.159)
2021-01-08 08:53:50 +0100guest15`(~user@49.5.6.87)
2021-01-08 08:54:00 +0100guest15(~user@49.5.6.87) (Read error: Connection reset by peer)
2021-01-08 08:54:22 +0100eacameron(uid256985@gateway/web/irccloud.com/x-ruzyobnhrnktduyo) (Quit: Connection closed for inactivity)
2021-01-08 08:54:53 +0100matijja(~matijja@193.77.181.208)
2021-01-08 08:55:06 +0100poljar1(~poljar@93-139-24-194.adsl.net.t-com.hr) (Remote host closed the connection)
2021-01-08 08:55:33 +0100poljar1(~poljar@93-139-24-194.adsl.net.t-com.hr)
2021-01-08 08:55:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-08 09:00:56 +0100thevishy(~Nishant@103.210.43.19) (Ping timeout: 265 seconds)
2021-01-08 09:01:14 +0100 <ephemient> extra-deps sounds like stack, not cabal https://docs.haskellstack.org/en/stable/yaml_configuration/#extra-deps
2021-01-08 09:01:25 +0100 <ephemient> yes, it'll pull the package and build locally
2021-01-08 09:02:53 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 09:04:09 +0100jokester(~mono@unaffiliated/jokester)
2021-01-08 09:08:01 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
2021-01-08 09:08:29 +0100nineonin_(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-08 09:09:22 +0100 <tintinthong> @ephemie
2021-01-08 09:09:23 +0100 <lambdabot> Unknown command, try @list
2021-01-08 09:09:51 +0100 <tintinthong> @ephemient thanks. I noticed i wrote github in the key rather than git
2021-01-08 09:09:51 +0100 <lambdabot> Unknown command, try @list
2021-01-08 09:10:32 +0100michalz(~user@185.246.204.79)
2021-01-08 09:11:35 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-08 09:11:41 +0100 <gentauro> I think I found a solution to do CI/CD for windows binaries :)
2021-01-08 09:12:45 +0100 <gentauro> https://hub.docker.com/_/microsoft-windows-servercore or https://hub.docker.com/_/microsoft-windows-nanoserver
2021-01-08 09:12:52 +0100 <gentauro> «License > CONTAINER OS IMAGE > The Container Image may only be used with a validly licensed copy of: … Microsoft Windows Operating System (version 10) software (“Client Host Software”), or …»
2021-01-08 09:13:06 +0100 <gentauro> I have a Windows 10 license from my laptop that I don't use :) (nixos)
2021-01-08 09:13:40 +0100jmchael(~jmchael@87.112.235.234)
2021-01-08 09:15:49 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds)
2021-01-08 09:16:45 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2021-01-08 09:18:59 +0100ericsagnes(~ericsagne@2405:6580:0:5100:f3f3:dcc0:7739:4a38)
2021-01-08 09:19:02 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds)
2021-01-08 09:19:07 +0100pera(~pera@unaffiliated/pera)
2021-01-08 09:22:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 09:23:08 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 09:25:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 09:30:25 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-01-08 09:32:48 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 09:35:31 +0100thevishy(~Nishant@103.210.43.144)
2021-01-08 09:36:00 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-08 09:38:50 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Client Quit)
2021-01-08 09:39:09 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-08 09:41:52 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 09:42:51 +0100 <idnar> gentauro: note that you need a Windows host to run those
2021-01-08 09:45:30 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 09:46:28 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
2021-01-08 09:48:08 +0100 <tintinthong> im a little confused. If im using hpack with package.yaml how do I specify a repo to clone and build with git?? or even just a local repo?? I suppose all of this should be under dependencies
2021-01-08 09:48:58 +0100 <merijn> tintinthong: ok, you are, I think, conflating a number of things
2021-01-08 09:49:16 +0100drbean(~drbean@TC210-63-209-157.static.apol.com.tw) (Ping timeout: 265 seconds)
2021-01-08 09:49:48 +0100 <tintinthong> yes probably
2021-01-08 09:50:03 +0100 <tintinthong> this is the slick rep
2021-01-08 09:50:05 +0100 <tintinthong> repo
2021-01-08 09:50:07 +0100 <tintinthong> ultimately
2021-01-08 09:50:07 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-08 09:50:07 +0100 <merijn> tintinthong: package.yaml is an alternative (and imo *bad*) way to specify the cabal file of a package. Cabal files cannot specify how/where to get dependencies. Presumably you're using stack, in which case overriding "where to get things" should be part of the stack configuration file (stack.yaml?)
2021-01-08 09:50:21 +0100 <merijn> See also: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07
2021-01-08 09:50:55 +0100howdoi(uid224@gateway/web/irccloud.com/x-tiblbupceujnheos) (Quit: Connection closed for inactivity)
2021-01-08 09:51:16 +0100 <tintinthong> uhmmm but i dont get when I update stack with the dependency with git. It clones but it doesn't recognize the repo under the name "Slick"
2021-01-08 09:51:48 +0100 <merijn> I don't actually use stack, so not really sure how to make it use anything else
2021-01-08 09:51:52 +0100 <ephemient> stack.yaml tells stack where to get packages and which versions; *.cabal (generated from package.yaml) tells cabal (which stack calls) which packages are needed
2021-01-08 09:52:13 +0100da39a3ee5e6b4b0d(~da39a3ee5@67.23.55.162)
2021-01-08 09:52:25 +0100mpereira(~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
2021-01-08 09:53:03 +0100 <ephemient> if you want to make use of a custom package, pin it in stack.yaml and make sure it's a dep in package.yaml/*.cabal
2021-01-08 09:54:01 +0100 <tintinthong> yes. so there is where im at now. I have got it to clone. but I dont know how to specify package that was cloned so that cabal knows about it
2021-01-08 09:54:40 +0100jmchael(~jmchael@87.112.235.234) (Ping timeout: 256 seconds)
2021-01-08 09:54:46 +0100 <tintinthong> im just unsure how to modify the dependencies key in package.yaml
2021-01-08 09:55:15 +0100 <ephemient> if you're replacing an existing package, it shouldn't need to change
2021-01-08 09:55:27 +0100 <tintinthong> oh
2021-01-08 09:55:34 +0100 <tintinthong> so I can just use the same name??
2021-01-08 09:55:46 +0100 <tintinthong> dependencies:
2021-01-08 09:55:54 +0100 <tintinthong> - slick
2021-01-08 09:55:59 +0100 <tintinthong> in my package.yaml
2021-01-08 09:56:02 +0100undergroundclove(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
2021-01-08 09:56:12 +0100 <tintinthong> im replacing slick with my own fork of it
2021-01-08 09:56:21 +0100 <ephemient> yes, as long as your fork keeps the package name slick
2021-01-08 09:56:35 +0100 <tintinthong> hmmmm fishy then something unusual is happening
2021-01-08 09:56:42 +0100 <tintinthong> probably a bug on y side then
2021-01-08 09:56:58 +0100 <tintinthong> my*
2021-01-08 09:57:30 +0100 <tintinthong> gees haskell breaks my soul when I manage packages
2021-01-08 09:59:16 +0100carlomagno(~cararell@148.87.23.11) (Remote host closed the connection)
2021-01-08 10:00:06 +0100carlomagno(~cararell@148.87.23.11)
2021-01-08 10:00:33 +0100nij(~user@24-124-119-167-dynamic.midco.net)
2021-01-08 10:01:24 +0100rmk236(~lcampos@2a02:908:3616:b100:b46b:967f:fa10:7f63) (Quit: Leaving.)
2021-01-08 10:01:52 +0100 <nij> Hello! Just installed xmonad and xmonad-contrib from cabal, and ran `xmonad --recompile`. An error popped out asking me to enable some hidden packages: "You can run `:set -package xmonad` to expose it." How to do this without ghci?
2021-01-08 10:02:12 +0100 <nij> Or.. if there's a way to do this with ghci, I'll also be happy to know.
2021-01-08 10:03:01 +0100undergroundclove(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) ()
2021-01-08 10:03:09 +0100 <ephemient> tintinthong: you can try checking the package out in some local directory, and adding it to the packages section in stack.yaml (e.g. git clone ... slick; modify stack.yaml with packages: ⏎ - . ⏎ - slick). this will be a local build instead of fetching from git, may help you debug whatever is going on
2021-01-08 10:03:18 +0100undergroundclove(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
2021-01-08 10:03:53 +0100 <tintinthong> cool that sounds like a very reasonable solution
2021-01-08 10:04:09 +0100 <tintinthong> thanks!
2021-01-08 10:04:30 +0100undergroundclove(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) (Client Quit)
2021-01-08 10:05:09 +0100ubert(~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-08 10:05:36 +0100bitmagie(~Thunderbi@200116b806b0fe00759218703f44b452.dip.versatel-1u1.de)
2021-01-08 10:05:58 +0100 <idnar> merijn: what's the .cabal equivalent of listing all your sources in exposed/other-modules automatically?
2021-01-08 10:07:02 +0100 <merijn> idnar: There is none, because that is an explicit anti-feature
2021-01-08 10:07:04 +0100 <ephemient> the cabal equivalent of listing all your sources is… listing all your sources
2021-01-08 10:07:50 +0100 <merijn> idnar: Like, I get that programmers (me included) are lazy and that everyone (me not included) wants that, but cabal intentionally does not support that
2021-01-08 10:08:02 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 10:08:44 +0100 <ephemient> nij: I don't use xmonad but sounds like https://github.com/xmonad/xmonad/issues/199
2021-01-08 10:09:02 +0100 <idnar> merijn: for executables it's _really_ tedious :/
2021-01-08 10:09:16 +0100 <merijn> idnar: The *main* purpose of cabal files is to *explicitly* specify exactly what's in a package, because long term packaging/package management is *hell* without explicit specifications
2021-01-08 10:09:58 +0100 <idnar> merijn: I'm fine with it for public packages
2021-01-08 10:10:03 +0100ADG1089__(~aditya@171.79.107.193)
2021-01-08 10:10:03 +0100 <merijn> idnar: tbh, I find it only a minor inconvenience, in practice you just don't add modules *that* often. And whenever I get annoyed by doing it I just remind myself it's "for the greater good" :p
2021-01-08 10:10:13 +0100 <merijn> idnar: There's some beta-quality tools for automating things
2021-01-08 10:10:15 +0100 <nij> ephemient: I was about to try the info in your link.
2021-01-08 10:10:22 +0100 <nij> But another method worked..
2021-01-08 10:10:25 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 246 seconds)
2021-01-08 10:10:35 +0100 <nij> I have to use `cabal new-install` instead of `cabal install`
2021-01-08 10:10:51 +0100 <nij> Weird... I thought they are made to be the same already.
2021-01-08 10:11:04 +0100 <merijn> nij: Which version of cabal-install do you have?
2021-01-08 10:11:21 +0100 <ephemient> for the record you should be writing v2-install instead of new-install, but... as of cabal 3 they should be the same, odd
2021-01-08 10:11:21 +0100ericsagn1(~ericsagne@2405:6580:0:5100:bc30:81f5:400c:ad5c)
2021-01-08 10:12:06 +0100 <merijn> ephemient: Several distros still ship 2.4 (or even older!)
2021-01-08 10:12:07 +0100 <nij> merijn: 3.2.0.0
2021-01-08 10:12:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-08 10:13:15 +0100 <merijn> idnar: https://github.com/haskell/cabal/issues/5343#issuecomment-520140470
2021-01-08 10:13:36 +0100 <gentauro> 09:42 < idnar> gentauro: note that you need a Windows host to run those
2021-01-08 10:13:44 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:8da5:2e46:f1e1:ab48)
2021-01-08 10:13:51 +0100 <gentauro> idnar: can't they run on a *nix with `docker`?
2021-01-08 10:13:54 +0100 <merijn> nij: install should be equal to v2-install there
2021-01-08 10:14:15 +0100 <merijn> nij: What's the difference you see?
2021-01-08 10:14:35 +0100ericsagnes(~ericsagne@2405:6580:0:5100:f3f3:dcc0:7739:4a38) (Ping timeout: 272 seconds)
2021-01-08 10:15:04 +0100 <nij> I first used install, and then `xmonad --recompile` failed.
2021-01-08 10:15:28 +0100 <nij> Then I ran `cabal new-install --lib xmonad xmonad-contrib`. After this, `xmonad --recompile` worked.
2021-01-08 10:15:41 +0100 <nij> I should do it all again and see what the problem is.
2021-01-08 10:15:59 +0100 <ephemient> the --lib part is what made the difference, not the new-install part
2021-01-08 10:16:09 +0100 <merijn> --lib is kinda wonky, though
2021-01-08 10:16:19 +0100 <merijn> You probably wanna follow hvr's recommendation here: https://github.com/xmonad/xmonad/issues/199
2021-01-08 10:16:26 +0100 <ephemient> and it's global state, so it'll stick around...
2021-01-08 10:16:27 +0100 <merijn> oh, that was already linked xD
2021-01-08 10:16:46 +0100 <nij> Sorry, I did run --lib with install.
2021-01-08 10:17:05 +0100 <nij> ephemient: what's global state?
2021-01-08 10:17:48 +0100 <ephemient> --lib writes ~/.ghc/$ARCH-$OS-$GHCVER/environments/default
2021-01-08 10:18:59 +0100 <idnar> gentauro: no, Docker for Windows runs actual Windows images in actual Windows containers (unlike Docker for Mac which runs Linux images in a VM)
2021-01-08 10:19:22 +0100ericsagnes(~ericsagne@2405:6580:0:5100:8a75:732f:61a9:9dfb)
2021-01-08 10:20:05 +0100undergro_(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
2021-01-08 10:20:05 +0100undergroundclove(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
2021-01-08 10:20:11 +0100 <nij> ephemient: is it discouraged to add that to global env?
2021-01-08 10:20:11 +0100undergroundclove(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) (Client Quit)
2021-01-08 10:20:17 +0100ericsagn1(~ericsagne@2405:6580:0:5100:bc30:81f5:400c:ad5c) (Ping timeout: 272 seconds)
2021-01-08 10:20:45 +0100 <ephemient> in general, yes. agree with merijn that hvr's suggestion is better
2021-01-08 10:20:54 +0100 <ephemient> *I agree
2021-01-08 10:20:55 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-01-08 10:22:23 +0100 <nij> I'm not sure I understand hvr's code block. But at the end hvr suggested:
2021-01-08 10:22:32 +0100 <nij> `cabal install -z --lib --package-env=$HOME/.xmonad/ xmonad xmonad-contrib`
2021-01-08 10:22:34 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 10:22:37 +0100 <nij> is this also recommended?
2021-01-08 10:22:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 10:23:09 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 10:23:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 10:23:15 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 10:23:17 +0100 <ephemient> yes, that writes ~/.xmonad/.ghc.environment... instead of the global env, in such a way that xmonad should pick it up
2021-01-08 10:23:28 +0100pera(~pera@unaffiliated/pera)
2021-01-08 10:23:37 +0100 <ephemient> as long as your GHC version is the same
2021-01-08 10:23:49 +0100 <nij> I will give it a try! Thanks :D
2021-01-08 10:24:09 +0100nij(~user@24-124-119-167-dynamic.midco.net) ("ERC (IRC client for Emacs 27.1)")
2021-01-08 10:24:19 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
2021-01-08 10:24:31 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2021-01-08 10:24:36 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 10:25:28 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 10:26:07 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 10:26:11 +0100yhsiveht(~Nishant@103.210.43.128)
2021-01-08 10:28:45 +0100thevishy(~Nishant@103.210.43.144) (Ping timeout: 240 seconds)
2021-01-08 10:28:47 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 10:30:02 +0100thevishy(~Nishant@103.210.43.130)
2021-01-08 10:30:32 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 272 seconds)
2021-01-08 10:30:40 +0100pera(pera@gateway/vpn/mullvad/pera)
2021-01-08 10:30:47 +0100undergro_(~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) ()
2021-01-08 10:30:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-08 10:32:07 +0100yhsiveht(~Nishant@103.210.43.128) (Ping timeout: 246 seconds)
2021-01-08 10:32:13 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-01-08 10:33:43 +0100daaaamien(~damien@2a01:e34:ef93:9a60:1adb:f2ff:fe40:717b)
2021-01-08 10:33:51 +0100daaaamien(~damien@2a01:e34:ef93:9a60:1adb:f2ff:fe40:717b) (Client Quit)
2021-01-08 10:34:10 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Remote host closed the connection)
2021-01-08 10:36:39 +0100RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 260 seconds)
2021-01-08 10:37:35 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-atpmuzdscbrrptko) (Quit: Connection closed for inactivity)
2021-01-08 10:38:08 +0100RusAlex(~Chel@unaffiliated/rusalex)
2021-01-08 10:41:41 +0100tintinthong(af88139f@175.136.19.159) (Remote host closed the connection)
2021-01-08 10:42:55 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-01-08 10:46:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-08 10:46:56 +0100__monty__(~toonn@unaffiliated/toonn)
2021-01-08 10:47:14 +0100fradet(~pi@216.252.75.247)
2021-01-08 10:48:03 +0100hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-08 10:49:16 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-01-08 10:49:23 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2021-01-08 10:57:51 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 11:01:18 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
2021-01-08 11:05:01 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-01-08 11:05:01 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-01-08 11:05:01 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-08 11:07:37 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 11:07:40 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20)
2021-01-08 11:11:43 +0100fendor(~fendor@77.119.129.169.wireless.dyn.drei.com)
2021-01-08 11:11:47 +0100juri_(~juri@79.140.115.159)
2021-01-08 11:12:40 +0100juri_(~juri@79.140.115.159) (Read error: Connection reset by peer)
2021-01-08 11:14:17 +0100Deide(~Deide@217.155.19.23)
2021-01-08 11:15:10 +0100pera(pera@gateway/vpn/mullvad/pera) (Ping timeout: 246 seconds)
2021-01-08 11:15:18 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-08 11:16:45 +0100juri_(~juri@178.63.35.222)
2021-01-08 11:17:07 +0100pera(~pera@unaffiliated/pera)
2021-01-08 11:17:07 +0100pera(~pera@unaffiliated/pera) (Client Quit)
2021-01-08 11:17:52 +0100DavidEichmann(~david@98.27.93.209.dyn.plus.net)
2021-01-08 11:19:05 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:8c45:faa1:a31d:b462) (Remote host closed the connection)
2021-01-08 11:20:43 +0100acidjnk_new(~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de)
2021-01-08 11:21:34 +0100christo(~chris@81.96.113.213)
2021-01-08 11:22:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 11:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 11:24:55 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 11:25:37 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-01-08 11:26:23 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:5a:c3a4:5df0:660c)
2021-01-08 11:29:48 +0100guest15`(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2021-01-08 11:33:10 +0100thc202(~thc202@unaffiliated/thc202)
2021-01-08 11:34:33 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
2021-01-08 11:36:09 +0100kuribas(~user@ptr-25vy0i9wm95xppa9w26.18120a2.ip6.access.telenet.be)
2021-01-08 11:39:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Ping timeout: 264 seconds)
2021-01-08 11:40:33 +0100rajivr(uid269651@gateway/web/irccloud.com/x-ynaufapxkeljugpz)
2021-01-08 11:45:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2021-01-08 11:48:37 +0100nij(~user@24-124-119-167-dynamic.midco.net)
2021-01-08 11:49:43 +0100 <nij> I have my xmobarrc put in ~/.config/xmobar . It has worked nicely as I used to rely on pacman (arch's package manager).
2021-01-08 11:49:43 +0100vilpan(~0@212.117.1.172)
2021-01-08 11:50:20 +0100 <__monty__> nij: #xmonad may be more appropriate.
2021-01-08 11:50:22 +0100 <nij> I decided to switch to cabal completely, so I got it from `cabal install xmobar`, and removed that from pacman.
2021-01-08 11:50:36 +0100 <nij> However, my config stops working..
2021-01-08 11:50:53 +0100 <nij> __monty__: I think this is again a dependency issue.. which is more related to cabal.
2021-01-08 11:51:36 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-08 11:52:32 +0100 <nij> But sure.. I will try there.
2021-01-08 11:54:23 +0100 <__monty__> nij: If it's a constraint issue feel free to ask here but I do expect the intersection of haskeller's that know about xmobar and haskell will be in #xmonad.
2021-01-08 11:55:05 +0100christo(~chris@81.96.113.213)
2021-01-08 11:55:15 +0100 <nij> __monty__: thanks :)
2021-01-08 11:55:33 +0100madjest13(~Android@188-207-107-141.mobile.kpn.net)
2021-01-08 11:59:05 +0100 <nij> In short, I got xmobar from two different place. One from pacman, build recipe given below, and the other from `cabal new-install xmobar-0.36`. The former parses my xmobarrc correctly, but the later does not. The build recipe for the former is given here: https://github.com/archlinux/svntogit-community/blob/packages/xmobar/trunk/PKGBUILD --- Question: I wonder how I should use `cabal new-install` to get xmobar that behaves like the
2021-01-08 11:59:06 +0100 <nij> former.
2021-01-08 11:59:06 +0100nij(~user@24-124-119-167-dynamic.midco.net) (Remote host closed the connection)
2021-01-08 11:59:22 +0100nij(~user@24-124-119-167-dynamic.midco.net)
2021-01-08 12:00:31 +0100 <nij> ,ping
2021-01-08 12:00:51 +0100 <nij> Got disconnected.. not sure if it sent through.. sorry if it did.
2021-01-08 12:01:01 +0100 <mouseghost> huh
2021-01-08 12:01:19 +0100 <nij> I got xmobar from two different places. One from pacman (build recipe given below), and the other from `cabal new-install xmobar-0.36`. The former parses my xmobarrc correctly, while the later does not. --- Question: How should should use `cabal new-install` to get xmobar that behaves like the former. BUILD RECIPE of the former: https://github.com/archlinux/svntogit-community/blob/packages/xmobar/trunk/PKGBUILD
2021-01-08 12:01:53 +0100 <mouseghost> yeah that sent through
2021-01-08 12:03:01 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:03:50 +0100nij(~user@24-124-119-167-dynamic.midco.net) (Remote host closed the connection)
2021-01-08 12:03:59 +0100da39a3ee5e6b4b0d(~da39a3ee5@67.23.55.162) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 12:04:05 +0100nij(~user@24-124-119-167-dynamic.midco.net)
2021-01-08 12:12:20 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-08 12:13:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 12:14:12 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:15:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-08 12:15:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-08 12:15:55 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it)
2021-01-08 12:16:18 +0100jmchael(~jmchael@87.112.235.234)
2021-01-08 12:16:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-01-08 12:16:57 +0100ubert(~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-08 12:17:02 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:18:28 +0100esp32_prog(yoann@gateway/vpn/protonvpn/esp32prog/x-46565127)
2021-01-08 12:19:21 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Ping timeout: 272 seconds)
2021-01-08 12:23:01 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 12:23:07 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2021-01-08 12:23:23 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:24:19 +0100madjest13(~Android@188-207-107-141.mobile.kpn.net) (Quit: -a- Connection Timed Out)
2021-01-08 12:24:29 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 12:24:36 +0100madjestic(~Android@188-207-107-141.mobile.kpn.net)
2021-01-08 12:25:54 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2021-01-08 12:25:59 +0100 <__monty__> nij: I think `cabal install --constraint='xmobar == 0.36' xmobar` should work.
2021-01-08 12:27:24 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-08 12:28:05 +0100 <nij> __monty__: It asks for xrandr: https://bpa.st/X2CQ
2021-01-08 12:28:10 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-08 12:28:21 +0100 <nij> I do have libxrandr on my arch.. not sure how to let cabal see it.
2021-01-08 12:28:41 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 12:29:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:29:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 260 seconds)
2021-01-08 12:29:38 +0100 <__monty__> Not familiar with Arch's system packages. Check whether there's a libxrandr-dev package or something?
2021-01-08 12:30:07 +0100phaul(~phaul@ruby/staff/phaul)
2021-01-08 12:31:03 +0100da39a3ee5e6b4b0d(~da39a3ee5@67.23.55.162)
2021-01-08 12:35:57 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
2021-01-08 12:36:50 +0100 <ephemient> Archlinux doesn't have separate dev packages
2021-01-08 12:40:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Ping timeout: 264 seconds)
2021-01-08 12:42:19 +0100hololeap(~hololeap@unaffiliated/hololeap) (Ping timeout: 246 seconds)
2021-01-08 12:45:56 +0100 <ephemient> xmobar builds fine for me on archlinux, not sure what is different with your setup
2021-01-08 12:46:05 +0100Vaxu(~vaxaren@melkki.cs.helsinki.fi)
2021-01-08 12:46:25 +0100 <dibblego> I was having trouble with it a couple of hours ago, gave up, and copied config from a similar machine setup
2021-01-08 12:46:39 +0100 <dibblego> and it was the problem described above ^^
2021-01-08 12:46:41 +0100 <nij> ephemient: I think I narrow down the problem more.
2021-01-08 12:46:51 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-08 12:47:10 +0100 <nij> For my config, I need xmobar to be compiled with more flags : with_xft with_utf8 with_inotify with_mpd with_alsa with_nl80211 with_datezone with_mpris with_dbus with_xpm with_threaded with_rtsopts with_weather
2021-01-08 12:47:36 +0100 <nij> With some standard config, it compiled ran without problem indeed.
2021-01-08 12:47:42 +0100 <nij> *compiled and ran
2021-01-08 12:49:21 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 12:49:47 +0100 <__monty__> nij: --flags='with_xft,with_utf8...'?
2021-01-08 12:50:10 +0100 <__monty__> I don't actually know whether you need to provide values or how to provide multiple flags though tbh.
2021-01-08 12:50:13 +0100 <nij> __monty__: Yes, but then it complains that it cannot access to some dir (without specifying), and therefore lacks of xrandr.
2021-01-08 12:50:42 +0100 <nij> Without any flag, xrandr is fine.. so I think i need to teach cabal where my libs are.
2021-01-08 12:51:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 12:51:31 +0100 <__monty__> I suspect it doesn't need xrandr if you don't pass those flags. Cabal wouldn't suddenly not look in a libdir because you pass some flags afaik.
2021-01-08 12:51:37 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:51:43 +0100 <nij> A hint is given in the arch build recipe.. which at the end works for me. I'm still experimenting: https://github.com/archlinux/svntogit-community/blob/packages/xmobar/trunk/PKGBUILD#L34
2021-01-08 12:52:35 +0100 <ephemient> https://github.com/jaor/xmobar/blob/master/xmobar.cabal
2021-01-08 12:52:47 +0100 <ephemient> it always wants Xrandr and Xrender, some other native libraries are optional depending on flags
2021-01-08 12:52:52 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-01-08 12:53:46 +0100 <nij> Wow. Compiling programs are really difficult (but fun)!
2021-01-08 12:55:28 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-01-08 12:55:56 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-01-08 12:59:07 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 12:59:34 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 13:00:04 +0100ubert(~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-08 13:00:07 +0100 <sshine> nij, what part of the process do you think is the difficult part?
2021-01-08 13:00:39 +0100 <nij> sshine: I'm trying to `cabal install --flag="with_xft` xmobar`.
2021-01-08 13:00:47 +0100 <nij> But it gives error.
2021-01-08 13:00:56 +0100 <dminuoso> Should `cabal gen-bounds` take my cabal.project into accounts? It doesn't seem to find packages vendored via cabal.projects packages stanza
2021-01-08 13:01:13 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-01-08 13:01:13 +0100 <nij> sshine: I think it either does not know where my system lib is, or it cannot read the lib somehow.
2021-01-08 13:02:13 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-08 13:04:12 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:f964:d8d4:1ec3:146c) (Quit: Leaving)
2021-01-08 13:06:16 +0100knupfer(~Thunderbi@200116b82c8bca00a01b46fffe79591f.dip.versatel-1u1.de)
2021-01-08 13:06:23 +0100esp32_prog(yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Remote host closed the connection)
2021-01-08 13:06:56 +0100knupfer(~Thunderbi@200116b82c8bca00a01b46fffe79591f.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-08 13:07:10 +0100knupfer(~Thunderbi@200116b82c8bca00b8bd6ca10a864d4f.dip.versatel-1u1.de)
2021-01-08 13:07:30 +0100 <merijn> dminuoso: cabal.project doesn't affect bounds
2021-01-08 13:08:05 +0100 <dminuoso> merijn: No, but it affects the build plan.
2021-01-08 13:08:15 +0100 <merijn> dminuoso: It just affects whether packages are local. If you have bounds incompatible with the local version your code just doesn't build
2021-01-08 13:08:15 +0100 <dminuoso> It's failing to generate a build plan because I have locally vendored packages
2021-01-08 13:08:32 +0100 <merijn> dminuoso: Well, fix your bounds to match the vendored package then? :p
2021-01-08 13:08:35 +0100 <dminuoso> huh?
2021-01-08 13:08:37 +0100 <dminuoso> You misunderstand
2021-01-08 13:08:51 +0100Entertainment(~entertain@104.246.132.210)
2021-01-08 13:09:00 +0100 <dminuoso> I have a local package, not available on hackage. It's being vendored through cabal.project
2021-01-08 13:09:13 +0100 <dminuoso> When I type `cabal gen-bounds` it fails because it cant find my local package on hackage.
2021-01-08 13:09:33 +0100 <merijn> I think gen-bounds only consults the index, which doesn't have your package
2021-01-08 13:10:07 +0100 <merijn> You'd have to extend gen-bounds to somehow consider the union of the index and vendor packages, but that seems non-trivial
2021-01-08 13:10:08 +0100 <dminuoso> Mmm, so perhaps just remove the dependency on the local package while running gen-bounds?
2021-01-08 13:10:19 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2021-01-08 13:10:32 +0100 <dminuoso> Dunno, Id expect gen-bounds to use the same build plan building code that the rest of cabal uses.
2021-01-08 13:11:03 +0100 <dminuoso> It *does* consider sub-components after all
2021-01-08 13:11:14 +0100 <dminuoso> Which might not be on the index
2021-01-08 13:12:28 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-08 13:14:37 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
2021-01-08 13:16:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2021-01-08 13:18:34 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-01-08 13:19:34 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 13:20:09 +0100Tario(~Tario@201.192.165.173)
2021-01-08 13:21:08 +0100ericsagnes(~ericsagne@2405:6580:0:5100:8a75:732f:61a9:9dfb) (Ping timeout: 260 seconds)
2021-01-08 13:22:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 13:23:00 +0100 <kuribas> for my database library I have a query type: Query database a
2021-01-08 13:23:02 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
2021-01-08 13:23:08 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 13:23:25 +0100 <nij> Just couldn't get it right @_@
2021-01-08 13:24:00 +0100 <kuribas> To apply a query, you have to return the selector which will extract rows and convert them to haskell: Query database (Selector database a)
2021-01-08 13:24:10 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it)
2021-01-08 13:24:24 +0100 <kuribas> They are "inside" the query, because they depend on joined rows.
2021-01-08 13:25:36 +0100 <kuribas> Now, to be able to modify the query, you need access to the joined tables, so Query database (joinedTables, Selector database a).
2021-01-08 13:26:04 +0100 <kuribas> My question is, to "generate" the query string, should I use the last type, or just the one returning the selector?
2021-01-08 13:26:52 +0100 <kuribas> the joinTables aren't really necessary to generate a query, but they are necessary to be able to modify it...
2021-01-08 13:29:58 +0100drbean(~drbean@TC210-63-209-63.static.apol.com.tw)
2021-01-08 13:30:17 +0100 <kuribas> However not everyone may want to modify the query...
2021-01-08 13:32:36 +0100 <kuribas> hmm, maybe I'll keep it simple, but add documentation on how to modify the query...
2021-01-08 13:33:24 +0100ulidtko|k(~ulidtko@193.111.48.79)
2021-01-08 13:33:24 +0100ericsagnes(~ericsagne@2405:6580:0:5100:cd75:ef91:6f71:5ba7)
2021-01-08 13:36:22 +0100 <dminuoso> merijn: but fair enough, Ill just do it by hand using cabal-plan :)
2021-01-08 13:36:39 +0100 <merijn> kuribas: Sounds like you're slowly converging on the same sorta opaleye mess you wanted to avoid :p
2021-01-08 13:36:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
2021-01-08 13:36:57 +0100 <kuribas> merijn: erm, I think my library is vastly simpler than opaleye...
2021-01-08 13:37:04 +0100 <merijn> For now :p
2021-01-08 13:37:14 +0100 <kuribas> :-)
2021-01-08 13:37:21 +0100 <kuribas> it's more like esqueleto perhaps
2021-01-08 13:38:14 +0100 <kuribas> In fact, I find that reworking my types makes the thing simpler.
2021-01-08 13:38:42 +0100 <kuribas> IMO the need for making a custom database with the joined tables, if you want to compose queries, is a good thing.
2021-01-08 13:38:55 +0100 <kuribas> because adds information about your queries.
2021-01-08 13:40:18 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-08 13:41:01 +0100 <kuribas> Going back to haskell from a dynmic language is such a relief. The more I write haskell, the more I like it, and the less I like other language.
2021-01-08 13:41:12 +0100 <kuribas> Just being able to change a type, then follow the red lines...
2021-01-08 13:41:21 +0100 <nij> I almost gave up.. cannot compile xmonad with flags successfully by `cabal install` :( Here is the command and error.. I'd appreciate your kind help. https://dpaste.org/9VMX
2021-01-08 13:41:21 +0100madjestic(~Android@188-207-107-141.mobile.kpn.net) (Read error: Connection reset by peer)
2021-01-08 13:41:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Ping timeout: 264 seconds)
2021-01-08 13:41:42 +0100 <nij> s/xmonad/xmobar
2021-01-08 13:42:49 +0100geekosaur(ac3a3bdd@172.58.59.221)
2021-01-08 13:43:58 +0100 <kuribas> merijn: it seems that types have a will of their own, and when you don't resist it, things start to fall in place, and the code becomes cleaner.
2021-01-08 13:44:09 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 13:44:30 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 13:44:50 +0100 <kuribas> merijn: more like "discovering" the patterns, than creating them.
2021-01-08 13:45:59 +0100 <dminuoso> nij: You seem to have permission problems in your cabal store
2021-01-08 13:46:22 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 13:46:34 +0100Alleria(~textual@mskresolve-a.mskcc.org)
2021-01-08 13:46:35 +0100 <dminuoso> or.. I dont know
2021-01-08 13:46:42 +0100 <dminuoso> its hard to chase through thousands of lines of log
2021-01-08 13:46:58 +0100AlleriaGuest43451
2021-01-08 13:47:03 +0100christo(~chris@81.96.113.213)
2021-01-08 13:47:07 +0100 <kuribas> merijn: in fact, returning the Selector from the Query, instead of keeping it separate, simplified the API by a lot.
2021-01-08 13:47:10 +0100geekosaur(ac3a3bdd@172.58.59.221) (Ping timeout: 245 seconds)
2021-01-08 13:47:30 +0100usr25_tm(~usr25@unaffiliated/usr25)
2021-01-08 13:47:55 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 13:48:42 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-01-08 13:48:42 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
2021-01-08 13:48:52 +0100usr25(~usr25@unaffiliated/usr25) (Ping timeout: 256 seconds)
2021-01-08 13:49:00 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-08 13:49:00 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-08 13:50:17 +0100 <nij> dminuoso: It seems so! I tried prefixing it by sudo, but it goes instead to /root/.cabal..
2021-01-08 13:50:29 +0100 <kuribas> merijn: because it acknowledges the fact that the fields you return depend on the query body.
2021-01-08 13:50:34 +0100 <nij> How to use `sudo..` but still install it in /home/nij/.cabal?
2021-01-08 13:51:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2021-01-08 13:51:20 +0100 <merijn> Why are you using sudo?
2021-01-08 13:51:25 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-01-08 13:51:27 +0100geekosaur(ac3a3be6@172.58.59.230)
2021-01-08 13:51:46 +0100 <nij> To get all permissions.. as dminuoso remarked.
2021-01-08 13:51:46 +0100 <dminuoso> Gah, that moment when GHC reports an error on a type, that alone when pretty printed exceeds your terminal buffer length...
2021-01-08 13:52:06 +0100dminuosostares at this in dismay
2021-01-08 13:52:08 +0100 <merijn> nij: sudo'ing random commands is...certainly adventuruos
2021-01-08 13:52:19 +0100 <nij> merijn: oh...
2021-01-08 13:52:25 +0100usr25_tm(~usr25@unaffiliated/usr25) (Ping timeout: 264 seconds)
2021-01-08 13:52:26 +0100 <merijn> dminuoso: lol
2021-01-08 13:52:32 +0100 <nij> I'm desperate :D :D :D
2021-01-08 13:52:35 +0100 <merijn> dminuoso: Increase your buffer length :p
2021-01-08 13:52:44 +0100 <nij> I did this in eshell.
2021-01-08 13:52:51 +0100 <dminuoso> merijn: It's already at 1000 lines!
2021-01-08 13:53:06 +0100 <nij> so.. any idea? Can I use some other verbose option to make the rant smaller?
2021-01-08 13:53:53 +0100 <dminuoso> Oh yeah this is priceless, a type that prettyprints to roughly 6k lines !
2021-01-08 13:56:12 +0100 <merijn> dminuoso: I mean, half this code is C++, 1k lines doesn't sound like *remotely* enough for error output
2021-01-08 13:56:35 +0100 <nij> I feel that I should ditch xmonad until I am comfortable with the tool chain
2021-01-08 13:57:55 +0100 <nij> tool*
2021-01-08 14:02:43 +0100 <dminuoso> merijn: Hold on. Not the error, just a single type!
2021-01-08 14:02:53 +0100 <dminuoso> Can C++ do that easily? :D
2021-01-08 14:02:57 +0100 <merijn> Sure
2021-01-08 14:03:22 +0100 <merijn> dminuoso: https://codegolf.stackexchange.com/questions/1956/generate-the-longest-error-message-in-c ;)
2021-01-08 14:04:24 +0100 <dminuoso> mmm, not sure whether template instantiations exactly count as types..
2021-01-08 14:04:24 +0100 <merijn> dminuoso: See also: https://tgceec.tumblr.com/post/107429634033/the-results-thus-far?is_related_post=1 :p
2021-01-08 14:04:35 +0100 <merijn> dminuoso: What else would they be?
2021-01-08 14:04:38 +0100 <dminuoso> Sure, that one is old news to me
2021-01-08 14:05:27 +0100ArConan(9de62a69@157.230.42.105)
2021-01-08 14:08:55 +0100cgfbee(~bot@oc1.itim-cj.ro) (Ping timeout: 272 seconds)
2021-01-08 14:10:23 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-01-08 14:10:42 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-08 14:10:50 +0100 <ArConan> I want to sign up ,but how?
2021-01-08 14:13:57 +0100SvenG1(~SvenG@s91904426.blix.com)
2021-01-08 14:14:56 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-08 14:15:55 +0100plutoniix(~q@184.82.195.253) (Quit: Leaving)
2021-01-08 14:17:21 +0100urodna(~urodna@unaffiliated/urodna)
2021-01-08 14:18:48 +0100bi_functor(~Melanie@192-0-134-138.cpe.teksavvy.com)
2021-01-08 14:19:27 +0100ArConan(9de62a69@157.230.42.105)
2021-01-08 14:19:43 +0100 <ArConan> so,how can i sign up?
2021-01-08 14:20:33 +0100christo(~chris@81.96.113.213)
2021-01-08 14:23:35 +0100esp32_prog(yoann@gateway/vpn/protonvpn/esp32prog/x-46565127)
2021-01-08 14:23:41 +0100 <kuribas> is a nullary class considered bad?
2021-01-08 14:23:55 +0100 <merijn> Seems rather pointless
2021-01-08 14:24:01 +0100 <merijn> You can have only one instance
2021-01-08 14:24:10 +0100 <merijn> So what's the point then
2021-01-08 14:24:27 +0100 <kuribas> multiparameter class
2021-01-08 14:24:32 +0100 <kuribas> to specify a relationship
2021-01-08 14:24:39 +0100 <kuribas> between types
2021-01-08 14:24:43 +0100 <merijn> How can a multiparam class be nullary?
2021-01-08 14:24:47 +0100LKoen(~LKoen@185.61.176.203)
2021-01-08 14:25:04 +0100 <kuribas> I mean no methods
2021-01-08 14:25:14 +0100 <merijn> That's not the same :p
2021-01-08 14:25:15 +0100 <bi_functor> class Multi a b where ;
2021-01-08 14:25:36 +0100 <kuribas> what's it called then?
2021-01-08 14:25:52 +0100 <merijn> I dunno, but nullary class would be "class Foo where ..."
2021-01-08 14:26:13 +0100da39a3ee5e6b4b0d(~da39a3ee5@67.23.55.162) (Ping timeout: 265 seconds)
2021-01-08 14:26:21 +0100 <kuribas> ah I see...
2021-01-08 14:26:26 +0100 <hpc> if you squint, (~) might count
2021-01-08 14:26:46 +0100lazyshrk(~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-08 14:26:47 +0100 <merijn> Which is in standard Haskell since Haskell2010 and was the NullaryTypeclass (or something like that) extension before
2021-01-08 14:27:12 +0100 <kuribas> hmm, I could also make a Bool type family
2021-01-08 14:27:17 +0100 <kuribas> then check using ~
2021-01-08 14:27:30 +0100lazyshrk(~lazyshrk@128.199.58.13)
2021-01-08 14:27:51 +0100 <kuribas> MyRelation type1 type2 ~ Bool => F type1 -> G type2
2021-01-08 14:28:25 +0100 <merijn> kuribas: Why not just use MyRelation directly simply return an error constraint?
2021-01-08 14:28:43 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-01-08 14:28:43 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-01-08 14:28:43 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-08 14:29:12 +0100 <kuribas> what do you mean?
2021-01-08 14:29:16 +0100 <merijn> kuribas: https://hackage.haskell.org/package/persistent-2.11.0.2/docs/Database-Persist-Class.html#t:NoUniqu…
2021-01-08 14:29:27 +0100 <merijn> You can return custom type errors from type families
2021-01-08 14:29:50 +0100 <merijn> https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-TypeLits.html#v:Text
2021-01-08 14:30:09 +0100cgfbee(~bot@oc1.itim-cj.ro)
2021-01-08 14:30:20 +0100 <kuribas> so a type family returning an error?
2021-01-08 14:30:28 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 14:30:58 +0100 <kuribas> I can do that with my class as well...
2021-01-08 14:31:37 +0100nij(~user@24-124-119-167-dynamic.midco.net) (Quit: ERC (IRC client for Emacs 27.1))
2021-01-08 14:32:39 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
2021-01-08 14:32:50 +0100 <kuribas> merijn: how do you return the valid relation?
2021-01-08 14:32:58 +0100 <merijn> Empty constraint?
2021-01-08 14:33:12 +0100 <merijn> https://gist.github.com/merijn/6130082
2021-01-08 14:33:38 +0100 <kuribas> ah, that's possible.
2021-01-08 14:33:40 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-08 14:33:42 +0100 <merijn> That example predates custom error messages
2021-01-08 14:34:01 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 14:34:29 +0100 <merijn> (In fact, I requested to add custom error messages as a result of the example, which was deemed "not useful" at the time! Clearly I have the gift of foresigh for desirable features!)
2021-01-08 14:36:12 +0100 <kuribas> merijn: cool, you should have a look at my library when it's documented then :)
2021-01-08 14:36:23 +0100 <kuribas> maybe you can foresee desirable features...
2021-01-08 14:37:23 +0100ADG1089__(~aditya@171.79.107.193) (Remote host closed the connection)
2021-01-08 14:37:24 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-08 14:38:20 +0100jollygood2(~bc812391@217.29.117.252)
2021-01-08 14:38:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-08 14:38:49 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2021-01-08 14:39:20 +0100 <kuribas> why do I get "not in scope, Type or class Constraint"?
2021-01-08 14:39:29 +0100 <kuribas> I enabled {-# LANGUAGE ConstraintKinds #-}
2021-01-08 14:39:38 +0100 <merijn> Constraint is defined in GHC.Exts
2021-01-08 14:42:08 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-01-08 14:42:41 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 14:43:03 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 14:43:05 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-08 14:45:31 +0100cgfbee(~bot@oc1.itim-cj.ro) (Ping timeout: 246 seconds)
2021-01-08 14:46:29 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-08 14:47:36 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-01-08 14:47:37 +0100drbean(~drbean@TC210-63-209-63.static.apol.com.tw) (Ping timeout: 246 seconds)
2021-01-08 14:50:51 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 14:51:20 +0100philopsos(~caecilius@45.133.192.204) (Quit: Lost terminal)
2021-01-08 14:52:11 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2021-01-08 14:52:53 +0100ADG1089__(~aditya@171.79.107.193)
2021-01-08 14:53:27 +0100SvenG1(~SvenG@s91904426.blix.com) (Remote host closed the connection)
2021-01-08 14:54:04 +0100Blackraider(~Blackraid@46.6.204.81)
2021-01-08 14:54:06 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-08 14:56:35 +0100son0p(~son0p@181.136.122.143)
2021-01-08 14:57:30 +0100Blackraider(~Blackraid@46.6.204.81) (Remote host closed the connection)
2021-01-08 14:58:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-08 14:59:09 +0100tlockney(~tlockney@185.204.1.185)
2021-01-08 14:59:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 14:59:28 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-01-08 14:59:57 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-01-08 15:00:43 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 15:01:19 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 15:02:03 +0100ubert(~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-08 15:02:53 +0100thunderrd(~thunderrd@183.182.115.136) (Client Quit)
2021-01-08 15:07:25 +0100knupfer(~Thunderbi@200116b82c8bca00b8bd6ca10a864d4f.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-08 15:07:34 +0100knupfer(~Thunderbi@200116b82c8bca001074114868df5954.dip.versatel-1u1.de)
2021-01-08 15:08:28 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
2021-01-08 15:09:15 +0100thc202(~thc202@unaffiliated/thc202)
2021-01-08 15:13:06 +0100LKoen(~LKoen@185.61.176.203) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-01-08 15:14:00 +0100AnDrEs4(~AnDrEs@2.154.216.137.dyn.user.ono.com)
2021-01-08 15:14:15 +0100errst(~errst@unaffiliated/tirej) (Quit: Lost terminal)
2021-01-08 15:14:20 +0100 <AnDrEs4> Over 40.000$ BitCoin https://cryptotabbrowser.com/16879401 Earn Your BitCoin Now!!!
2021-01-08 15:14:46 +0100ChanServ+o geekosaur
2021-01-08 15:14:55 +0100 <__monty__> @ops
2021-01-08 15:14:55 +0100 <lambdabot> Maybe you meant: pl oeis docs
2021-01-08 15:14:59 +0100 <__monty__> @mods
2021-01-08 15:14:59 +0100 <lambdabot> Maybe you meant: todo more docs
2021-01-08 15:15:03 +0100 <__monty__> >.<
2021-01-08 15:16:48 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
2021-01-08 15:17:07 +0100 <geekosaur> sigh, webchat apparently doesn't support it
2021-01-08 15:17:53 +0100esp32_prog(yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Remote host closed the connection)
2021-01-08 15:18:10 +0100esp32_prog(yoann@gateway/vpn/protonvpn/esp32prog/x-46565127)
2021-01-08 15:18:16 +0100 <__monty__> I'm not connected via web. I just always forget the proper incantation to summon ops : )
2021-01-08 15:18:27 +0100ArConan(9de62a69@157.230.42.105)
2021-01-08 15:18:35 +0100geekosaur+b *!~AnDrEs@2.154.216.137.dyn.user.ono.com
2021-01-08 15:18:40 +0100AnDrEs4geekosaurYour behaviour is not conducive to the desired environment.
2021-01-08 15:19:04 +0100 <geekosaur> hidden in th user detail stuff, apparently
2021-01-08 15:19:15 +0100 <geekosaur> where's my commands? pfeh
2021-01-08 15:19:31 +0100geekosaur-o geekosaur
2021-01-08 15:20:52 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving)
2021-01-08 15:21:04 +0100 <ArConan> how to use ghc in command line?
2021-01-08 15:21:15 +0100 <ArConan> i try to add it to path
2021-01-08 15:21:23 +0100 <ArConan> but not works
2021-01-08 15:22:19 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 15:22:42 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 15:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 15:23:03 +0100 <yushyin> so what is your problem? you don't have it in PATH or you don't know how to use ghc cli?
2021-01-08 15:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 15:23:33 +0100 <geekosaur> how did you install it?
2021-01-08 15:23:45 +0100 <ArConan> emmmm
2021-01-08 15:24:02 +0100 <ArConan> geekosaur :use stack
2021-01-08 15:24:17 +0100 <geekosaur> if you used stack then you have to use stack to run it
2021-01-08 15:24:27 +0100 <geekosaur> stack exec -- ghc ...
2021-01-08 15:25:15 +0100 <ArConan> yushyin: but if i want to use ghci
2021-01-08 15:25:19 +0100 <ArConan> directly
2021-01-08 15:25:28 +0100 <ArConan> what should i do?
2021-01-08 15:25:28 +0100cgfbee(~bot@oc1.itim-cj.ro)
2021-01-08 15:26:17 +0100 <yushyin> I guess just like geekosaur example with ghc, stack exec -- ghci ?
2021-01-08 15:26:47 +0100 <yushyin> or stack repl ?
2021-01-08 15:27:10 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-01-08 15:27:37 +0100 <ArConan> sure stack exec--ghci works
2021-01-08 15:27:43 +0100maroloccio(~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
2021-01-08 15:27:59 +0100maroloccio_(~marolocci@pousada3ja.mma.com.br)
2021-01-08 15:28:02 +0100 <int-e> __monty__: @where ops (but I'm not sure whether it's up-to-date)
2021-01-08 15:28:21 +0100 <ArConan> but i heard it can be worked by only inputing ghci
2021-01-08 15:28:46 +0100 <geekosaur> if you use stack, you must do everything through stack
2021-01-08 15:29:00 +0100 <geekosaur> you can use ghcup to install a command line ghc
2021-01-08 15:29:01 +0100maroloccio_(~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
2021-01-08 15:29:29 +0100maroloccio_(~marolocci@pousada3ja.mma.com.br)
2021-01-08 15:29:45 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-08 15:30:28 +0100 <ArConan> so where can i get a ghcup for windows?
2021-01-08 15:30:31 +0100 <yushyin> adding arbitrary paths from stack installed binaries to $PATH is not a sensible approach imo
2021-01-08 15:30:46 +0100maroloccio_(~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
2021-01-08 15:31:08 +0100maroloccio_(~marolocci@pousada3ja.mma.com.br)
2021-01-08 15:31:56 +0100 <ArConan> orz,but i did it'=D
2021-01-08 15:32:05 +0100 <geekosaur> I thought ghcup worked on windows these days
2021-01-08 15:34:14 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 264 seconds)
2021-01-08 15:34:57 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-01-08 15:35:43 +0100maroloccio_(~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
2021-01-08 15:35:55 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br)
2021-01-08 15:36:29 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-01-08 15:36:37 +0100carlomagno(~cararell@148.87.23.11) (Ping timeout: 246 seconds)
2021-01-08 15:36:51 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
2021-01-08 15:36:58 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
2021-01-08 15:37:13 +0100geekosaur(ac3a3be6@172.58.59.230) (Remote host closed the connection)
2021-01-08 15:37:14 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br)
2021-01-08 15:37:26 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2021-01-08 15:37:44 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
2021-01-08 15:37:52 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-01-08 15:38:43 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
2021-01-08 15:38:54 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
2021-01-08 15:39:13 +0100 <ArConan> geekosaur: ummmm,i think i manage to do
2021-01-08 15:39:18 +0100 <ArConan> it
2021-01-08 15:39:22 +0100darjeeling_(~darjeelin@122.245.218.97) (Ping timeout: 256 seconds)
2021-01-08 15:39:26 +0100 <ArConan> hhhh
2021-01-08 15:39:33 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br)
2021-01-08 15:39:41 +0100 <ArConan> it should use GHCi
2021-01-08 15:39:43 +0100 <ArConan> not
2021-01-08 15:39:47 +0100 <ArConan> ghc
2021-01-08 15:39:53 +0100 <__monty__> int-e: Thanks. And to geekosaur but they seem to have parted.
2021-01-08 15:40:41 +0100 <gentauro> 10:18 < idnar> gentauro: no, Docker for Windows runs actual Windows images in actual Windows containers (unlike Docker for Mac which runs Linux images in a VM
2021-01-08 15:41:00 +0100 <gentauro> but I'm not using neither of those. I'm running `docker` from a linux box.
2021-01-08 15:41:06 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 15:41:44 +0100 <gentauro> idnar: idnar: so you are saying that a windows based container can't be runned from a `docker` on linux?
2021-01-08 15:42:00 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-08 15:42:27 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 15:43:01 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-01-08 15:44:23 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
2021-01-08 15:45:17 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-01-08 15:46:07 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-08 15:48:13 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 15:48:16 +0100 <ephemient> that is the statement, yes.
2021-01-08 15:49:11 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-01-08 15:49:12 +0100 <kuribas> merijn: can I give a type constraint on a type family?
2021-01-08 15:49:41 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
2021-01-08 15:49:42 +0100 <merijn> Maybe?
2021-01-08 15:50:34 +0100 <gentauro> ephemient: are you responding to my `docker` question?
2021-01-08 15:50:40 +0100 <kuribas> merijn: for example: type family Insertable (fieldNullable :: Nullable) fieldType insert :: Constraint
2021-01-08 15:50:40 +0100 <ephemient> gentauro: yes. to use Windows Docker containers, you need a Windows host running Docker for Windows. it could be Windows in a VM on Linux, but it can't be run directly by Docker for not-Windows
2021-01-08 15:50:44 +0100 <gentauro> if yes, then it's not really docker :(
2021-01-08 15:50:52 +0100 <kuribas> merijn: this implies H.ToSql insert
2021-01-08 15:51:26 +0100 <gentauro> ephemient: well then, let me re-phrase it, I don't have CI/CD for my win binaries :(
2021-01-08 15:51:53 +0100ArConan(9de62a69@157.230.42.105)
2021-01-08 15:52:12 +0100darjeeling_(~darjeelin@115.215.40.96)
2021-01-08 15:52:40 +0100ubert(~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-08 15:54:39 +0100ADG1089__(~aditya@171.79.107.193) (Remote host closed the connection)
2021-01-08 15:54:52 +0100 <gentauro> I think somebody suggested it here. Just setup a vm with windows and build there. I guess that's what I'm going to end up doing :|
2021-01-08 15:57:14 +0100yhsiveht(~Nishant@103.210.43.20)
2021-01-08 15:59:19 +0100carlomagno(~cararell@148.87.23.7)
2021-01-08 15:59:30 +0100thevishy(~Nishant@103.210.43.130) (Ping timeout: 265 seconds)
2021-01-08 16:00:54 +0100 <ephemient> at some point in the distant past, I did manage to cross-compile on Linux targeting Windows. I don't remember if I built a cross-compiling GHC or ran the whole thing under Wine
2021-01-08 16:01:17 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 16:02:26 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-08 16:03:30 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 16:04:02 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-01-08 16:05:12 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-01-08 16:07:06 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-01-08 16:07:16 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 16:08:49 +0100thevishy(~Nishant@103.210.43.13)
2021-01-08 16:10:36 +0100carlomagno1(~cararell@148.87.23.7)
2021-01-08 16:10:37 +0100carlomagno(~cararell@148.87.23.7) (Remote host closed the connection)
2021-01-08 16:10:57 +0100yhsiveht(~Nishant@103.210.43.20) (Ping timeout: 256 seconds)
2021-01-08 16:12:24 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 16:14:37 +0100ADG1089__(~aditya@171.79.107.193)
2021-01-08 16:15:11 +0100ArConan(9de62a69@157.230.42.105) (Remote host closed the connection)
2021-01-08 16:15:30 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 16:16:06 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-08 16:17:23 +0100 <__monty__> Doesn't GHActions have windows runners? Might be an option.
2021-01-08 16:18:31 +0100shinobi(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-01-08 16:19:44 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 240 seconds)
2021-01-08 16:21:58 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
2021-01-08 16:22:25 +0100systemfault(sid267009@gateway/web/irccloud.com/x-gdfwilpwbdeyfdvr) (Quit: Updating details, brb)
2021-01-08 16:22:25 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Quit: WeeChat 2.7.1)
2021-01-08 16:23:28 +0100fendor_(~fendor@77.119.128.254.wireless.dyn.drei.com)
2021-01-08 16:24:37 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-01-08 16:24:39 +0100systemfault(sid267009@gateway/web/irccloud.com/x-doohdrkwzcmqbspf)
2021-01-08 16:26:05 +0100fendor(~fendor@77.119.129.169.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-01-08 16:27:08 +0100_bin(~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29) (Quit: ZNC - https://znc.in)
2021-01-08 16:27:36 +0100_bin(~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29)
2021-01-08 16:28:41 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-08 16:30:17 +0100 <shinobi> I'm trying to load a haskell file into the ghci and it gives me a parse error on the where clause of the below function. The error is not too verbose. Can anyone tell me what it doesn't like.
2021-01-08 16:30:26 +0100 <shinobi> initCube :: Cube
2021-01-08 16:30:26 +0100 <shinobi> initCube = Map.fromList $ map zipWith (\d ft -> (d, initFace ft) ds fts
2021-01-08 16:30:26 +0100 <shinobi> where fts = faceTypes
2021-01-08 16:30:26 +0100 <shinobi> ds = directions
2021-01-08 16:31:20 +0100 <merijn> Are you using tabs?
2021-01-08 16:31:52 +0100 <shinobi> I was, I shut them off. It looks like all tabs have been removed and replaced with spaces
2021-01-08 16:32:10 +0100 <merijn> oh, wait, duh
2021-01-08 16:32:19 +0100 <merijn> shinobi: You're missing a closing parenthesis
2021-01-08 16:32:29 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-08 16:32:45 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-08 16:32:49 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-08 16:32:52 +0100 <shinobi> my bad. I was so focused on using the where correctly I completely missed it
2021-01-08 16:32:54 +0100 <shinobi> thanks!
2021-01-08 16:33:12 +0100 <ski> initCube = Map.fromList (zip ds (map initFace fts))
2021-01-08 16:33:20 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-08 16:33:38 +0100knupfer(~Thunderbi@200116b82c8bca001074114868df5954.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-08 16:33:43 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 16:33:54 +0100 <merijn> Or!
2021-01-08 16:34:06 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-01-08 16:34:09 +0100 <merijn> "initFace <$> Map.fromList (zip ds fts)" :p
2021-01-08 16:34:10 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-08 16:34:13 +0100 <ezzieyguywuf> y'all ever heard of or used 'fay'?
2021-01-08 16:34:20 +0100 <ezzieyguywuf> some sort of haskell/javascript thingy
2021-01-08 16:34:23 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2021-01-08 16:34:46 +0100 <merijn> ezzieyguywuf: The "Haskell" to JS compiler?
2021-01-08 16:34:52 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-08 16:34:56 +0100 <ezzieyguywuf> merijn: yea something like that.
2021-01-08 16:34:57 +0100 <ski> (.. or did you really mean `map zipWith' ? as the code stands (adding the second closing bracket just after the first), that would be a type error)
2021-01-08 16:35:28 +0100rkbeach(31cfde25@49.207.222.37)
2021-01-08 16:35:30 +0100 <ezzieyguywuf> I'm thinking of submitting a PR to update some things, but don't really want to bother if it's one of the nich, dark-corner-of-the-haskellverse type of things
2021-01-08 16:35:35 +0100skilooks at shinobi
2021-01-08 16:35:42 +0100 <ezzieyguywuf> s/one of the/one of those/
2021-01-08 16:35:52 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 16:36:03 +0100 <ski> @hoogle those
2021-01-08 16:36:04 +0100 <lambdabot> No results found
2021-01-08 16:36:25 +0100 <shinobi> ski: no I hadn't hit that error yet.
2021-01-08 16:36:28 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Client Quit)
2021-01-08 16:36:40 +0100 <ski> @type map zipWith
2021-01-08 16:36:42 +0100 <lambdabot> [a -> b -> c] -> [[a] -> [b] -> [c]]
2021-01-08 16:36:44 +0100 <shinobi> I was revising a file and trying to get it parsed by GHCI
2021-01-08 16:36:48 +0100 <merijn> ezzieyguywuf: I don't think anyone is really using Fay, tbh :p
2021-01-08 16:36:55 +0100 <ezzieyguywuf> merijn: lol forrill?
2021-01-08 16:36:57 +0100ADG1089__(~aditya@171.79.107.193) (Ping timeout: 256 seconds)
2021-01-08 16:37:02 +0100 <ezzieyguywuf> if that's the case I'll just move on.
2021-01-08 16:37:09 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 16:37:13 +0100 <ski> (so `map zipWith x y z' is a type error)
2021-01-08 16:37:19 +0100plutoniix(~q@node-uru.pool-125-24.dynamic.totinternet.net)
2021-01-08 16:37:26 +0100plutoniix(~q@node-uru.pool-125-24.dynamic.totinternet.net) (Max SendQ exceeded)
2021-01-08 16:37:27 +0100 <ezzieyguywuf> I came across it when updating some of the gentoo packages to support newer aeson and quickcheck, and it has some quirks that makes running the test suite 'interesting'
2021-01-08 16:37:31 +0100 <merijn> ezzieyguywuf: I think people are either using PureScript, Elm, or GHC web assembly
2021-01-08 16:37:31 +0100juri_(~juri@178.63.35.222) (Ping timeout: 246 seconds)
2021-01-08 16:37:41 +0100 <ezzieyguywuf> i'll just turn off tests and fuhgetaboutit
2021-01-08 16:37:48 +0100 <ezzieyguywuf> ahhh elm
2021-01-08 16:37:52 +0100plutoniix(~q@node-uru.pool-125-24.dynamic.totinternet.net)
2021-01-08 16:37:55 +0100 <ezzieyguywuf> yea I came across elm the other day
2021-01-08 16:38:03 +0100 <ezzieyguywuf> that's another interesting one their test suite requires network access
2021-01-08 16:38:34 +0100 <ezzieyguywuf> purescript is another one that needs some TLC in gentoo, but based on your input I'll shift my focus there away from fay
2021-01-08 16:38:48 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-01-08 16:39:07 +0100juri_(~juri@178.63.35.222)
2021-01-08 16:39:44 +0100 <shinobi> Are special characters allowed in Value Constuctor names? e.g. - or '
2021-01-08 16:39:49 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds)
2021-01-08 16:40:20 +0100 <hpc> ' is valid in lettery names, - is valid in symbolic names
2021-01-08 16:40:30 +0100 <hpc> both are considered lowercase
2021-01-08 16:40:49 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-01-08 16:41:37 +0100 <ski> @let data Clause = Fact' AtomicGoal | AtomicGoal :- Goal
2021-01-08 16:41:40 +0100 <lambdabot> Defined.
2021-01-08 16:43:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-01-08 16:44:41 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2021-01-08 16:45:11 +0100spopejoy(~stuart@ool-44c5f8c9.dyn.optonline.net)
2021-01-08 16:45:12 +0100thunderrd(~thunderrd@183.182.115.136) (Remote host closed the connection)
2021-01-08 16:45:30 +0100 <ezzieyguywuf> what about this thing? http://clckwrks.com/page/view-page-slug/1/clckwrks-com
2021-01-08 16:46:14 +0100 <ezzieyguywuf> i usually check git history etc for activity but his is hosted on darcs and I dunno how to use that, lol
2021-01-08 16:46:32 +0100thunderrd(~thunderrd@183.182.115.136)
2021-01-08 16:46:37 +0100 <ezzieyguywuf> oh shoot nvm they have a github thingy!
2021-01-08 16:49:49 +0100 <sm[m]> ezzieyguywuf: never discussed it used but updated regularly by author AFAICT
2021-01-08 16:49:50 +0100 <sm[m]> discussed or used
2021-01-08 16:50:38 +0100 <sm[m]> are you trawling hackage for things to package ? That's generous, way to go! :)
2021-01-08 16:51:02 +0100 <ezzieyguywuf> sm[m]: yea now that I found the github I can see that it and its ecosystem are kept up-to-date
2021-01-08 16:51:18 +0100 <ezzieyguywuf> sm[m]: he said on his blog that it was with sadness he moved from darcs to github (in 2014!), but honestly I'm glad he did
2021-01-08 16:51:47 +0100 <ezzieyguywuf> (except his hackage page still links to darcs...)
2021-01-08 16:51:57 +0100 <sm[m]> clckwrks must be pretty good by now you would think..
2021-01-08 16:52:45 +0100 <ezzieyguywuf> i've come across a bunch of neat haskell projects I want to try out, while working with the gentoo-haskell team to update our packages
2021-01-08 16:52:49 +0100 <merijn> ezzieyguywuf: Cheap PR to make ;)
2021-01-08 16:52:50 +0100 <ezzieyguywuf> clckwrks is one of them
2021-01-08 16:53:00 +0100 <ezzieyguywuf> merijn: where does the PR for hackage stuff go though?
2021-01-08 16:53:11 +0100 <merijn> ezzieyguywuf: The hackage data is just from the cabal file
2021-01-08 16:53:15 +0100 <ezzieyguywuf> i've never done anything in hackage except use/abuse/love it
2021-01-08 16:53:20 +0100 <sm[m]> the cabal file, yup
2021-01-08 16:53:20 +0100 <ezzieyguywuf> doh!
2021-01-08 16:53:27 +0100 <ezzieyguywuf> I'll make a note
2021-01-08 16:53:48 +0100 <sm[m]> and files it references, like the changelog
2021-01-08 16:53:49 +0100 <merijn> cabal file has a website/issue tracker/etc. field, so they presumably forgot to update that
2021-01-08 16:54:13 +0100 <ezzieyguywuf> but it wouldn't reflect in hackage until they release the new version, right?
2021-01-08 16:54:19 +0100 <merijn> Yeah
2021-01-08 16:54:40 +0100 <merijn> Might be possible to change with a revision, but probably not
2021-01-08 16:54:46 +0100 <sm[m]> although some metadata can be updated without a release
2021-01-08 16:55:41 +0100 <ezzieyguywuf> heh, one of my pet peeves is that revisions are often used to relax dependency bounds (yay!!) but the release tarball remains unchanged, with the old bounds in the cabal file (booooo!)
2021-01-08 16:56:07 +0100 <dcoutts> ezzieyguywuf: if you cabal unpack the tarball, by default it'll patch the .cabal file.
2021-01-08 16:56:17 +0100 <dcoutts> And the revisions are also used by default by cabal.
2021-01-08 16:56:24 +0100 <ephemient> Hackage website warns about that exact case too
2021-01-08 16:56:35 +0100 <ezzieyguywuf> I fetch the tarball directly though, not using cabal-install
2021-01-08 16:57:03 +0100 <dcoutts> You have the choice to use the revised .cabal file or not. Totally up to you.
2021-01-08 16:57:06 +0100 <ezzieyguywuf> hrm
2021-01-08 16:57:08 +0100 <__monty__> I believe it works that way because the stack folks wanted it?
2021-01-08 16:57:38 +0100 <ephemient> > Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
2021-01-08 16:57:41 +0100 <lambdabot> <hint>:1:43: error: <hint>:1:43: error: parse error on input ‘in’
2021-01-08 16:57:44 +0100 <ezzieyguywuf> dcoutts: > "you have the choice to used the revised .cabal file or not", ok I want the revised cabal file. How do I fetch it?
2021-01-08 16:57:51 +0100 <merijn> __monty__: No, it's because you can't update the tarball without changing the signature
2021-01-08 16:58:03 +0100 <ephemient> ezzieyguywuf: it says right after
2021-01-08 16:58:06 +0100 <merijn> ezzieyguywuf: The revision should be in the index
2021-01-08 16:58:22 +0100 <ezzieyguywuf> so _only_ by using cabal-the-executable, not using cabal-the-library directly?
2021-01-08 16:58:26 +0100 <merijn> ezzieyguywuf: You really don't want tarballs for long term archiving to be mutable
2021-01-08 16:58:27 +0100rkbeach(31cfde25@49.207.222.37) (Remote host closed the connection)
2021-01-08 16:58:47 +0100 <merijn> ezzieyguywuf: Cabal the library doesn't know anything about "getting" stuff (I think?)
2021-01-08 16:58:54 +0100 <dcoutts> ezzieyguywuf: so you're writing your own tooling that fetches packages from hackage? If so, you can use the hackage-security package to get it, which includes the hackage index which includes the revised .cabal files. Or extract the latest revision from the hackage index tar file. Or fetch the latest revision directly from the hackage webiste.
2021-01-08 16:59:44 +0100ericsagnes(~ericsagne@2405:6580:0:5100:cd75:ef91:6f71:5ba7) (Ping timeout: 240 seconds)
2021-01-08 17:00:20 +0100 <ezzieyguywuf> dcoutts: yea, `wget url-to-release-tarball`
2021-01-08 17:00:42 +0100 <ezzieyguywuf> dcoutts: merijn: ephemient: these are all great ideas and good info, thanks so much :)
2021-01-08 17:00:50 +0100 <merijn> ezzieyguywuf: Right, but that tarball never changes. Revisions are meta data in the index (i.e. index-01.tar)
2021-01-08 17:01:03 +0100 <ezzieyguywuf> also, merijn I agree that release tarballs should be immutable, I guess I was more thinking "why not release a new tarball with a -r1 or something"
2021-01-08 17:01:07 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 17:01:16 +0100 <dcoutts> ezzieyguywuf: ok, so if you prefer working with fetching things directly, rather than extracting it from the local index-01.tar, then you can grab them like so: http://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec.cabal
2021-01-08 17:01:26 +0100 <merijn> ezzieyguywuf: Because it's cheaper to have to only host/download the new .cabal file in the index? :p
2021-01-08 17:01:43 +0100 <dcoutts> ezzieyguywuf: compare that example to e.g. http://hackage.haskell.org/package/attoparsec-0.13.2.4/revision/0.cabal
2021-01-08 17:01:53 +0100 <merijn> ezzieyguywuf: Rather than having 8 copies of the same tar ball with slightly different cabal files
2021-01-08 17:01:59 +0100 <ezzieyguywuf> what is this index-01.tar? maybe *that's* what I need to be fetching
2021-01-08 17:02:08 +0100 <dcoutts> So it's easy to get the tarball and get the latest .cabal file
2021-01-08 17:02:17 +0100 <ezzieyguywuf> merijn: makes sense regarding cheaper to host new cabal
2021-01-08 17:02:18 +0100 <merijn> ezzieyguywuf: index-01.tar is the index that holds *all* metadata for everything on hackage
2021-01-08 17:02:38 +0100 <merijn> ezzieyguywuf: Since cabal-install needs to know everything that exists to compute a buildplan
2021-01-08 17:02:47 +0100 <ezzieyguywuf> ah, yikes, not sure if I can use that directly then. maybe some version of what dcoutts said.
2021-01-08 17:03:02 +0100 <merijn> ezzieyguywuf: The index is just the metadata, not the actual packages
2021-01-08 17:03:02 +0100 <ezzieyguywuf> hrm, actually I guess I probably *do* have it somewhere
2021-01-08 17:03:10 +0100 <ezzieyguywuf> except we don't use cabal-install
2021-01-08 17:03:25 +0100 <ezzieyguywuf> yea, I imagine the index gets updated with `cabal update`
2021-01-08 17:03:31 +0100 <merijn> yeah
2021-01-08 17:04:06 +0100 <dcoutts> cabal uses the hackage-security lib to do the indexing update (incrementally!) with the security checks.
2021-01-08 17:04:26 +0100Wuzzy(~Wuzzy@p5790e648.dip0.t-ipconnect.de)
2021-01-08 17:05:20 +0100 <dcoutts> /package/${name}-${ver}/${name}-${ver}.tar.gz
2021-01-08 17:05:21 +0100 <dcoutts> /package/${name}-${ver}/${name}.cabal
2021-01-08 17:05:35 +0100 <dcoutts> is otherwise the urls for all the package tarballs and latest .cabal files
2021-01-08 17:08:38 +0100acidjnk_new(~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-08 17:08:48 +0100 <ezzieyguywuf> hrm, what happens if, say, attoparsec updates to v0.14, how to I fetch the revised cabal file from v0.13.2.4?
2021-01-08 17:09:24 +0100 <dcoutts> That's latest revision for that version of the package. Not latest version of the package.
2021-01-08 17:09:36 +0100 <ezzieyguywuf> ah hah
2021-01-08 17:09:39 +0100 <ezzieyguywuf> yes I see it in the url now
2021-01-08 17:09:50 +0100 <dcoutts> Honestly if you want to do it properly, getting the hackage index is the right way to do it.
2021-01-08 17:10:30 +0100 <dcoutts> But for ad-hoc, "just grab one" then getting the urls above is fine.
2021-01-08 17:10:57 +0100 <dcoutts> Using the index lets you get all the changes across all packages, and get it incrementally.
2021-01-08 17:11:12 +0100 <dcoutts> This is how the hackage mirror tools work for example.
2021-01-08 17:12:13 +0100 <ezzieyguywuf> dcoutts: yea, but I guess in this case I'm using portage, the gentoo package manager, to solve the dependencies etc, so I don't really need the index
2021-01-08 17:12:30 +0100ericsagnes(~ericsagne@2405:6580:0:5100:e508:d43e:e329:fdb5)
2021-01-08 17:12:30 +0100 <ezzieyguywuf> although it begs the question - can I use the index to update all of the gentoo stuff in one fell swoop...
2021-01-08 17:13:23 +0100 <merijn> ezzieyguywuf: In theory, yes
2021-01-08 17:13:30 +0100 <ezzieyguywuf> interesting
2021-01-08 17:13:34 +0100 <dcoutts> ezzieyguywuf: yes exactly!
2021-01-08 17:13:46 +0100 <ezzieyguywuf> that would make life easier, today we bump packages one at a time, manually fixing dependency issues as the arise
2021-01-08 17:14:04 +0100 <merijn> ezzieyguywuf: At the very least you can use it to check "are any of our packages out of date?"
2021-01-08 17:14:08 +0100 <dcoutts> ezzieyguywuf: it's not just for solvers. It'd be perfect for portage tools, to update a tree of all gentoo Haskell packages in one go, based on the latest hackage index.
2021-01-08 17:14:15 +0100 <ezzieyguywuf> merijn: yes exactly what I was thinking .that's done manually today
2021-01-08 17:14:26 +0100 <ezzieyguywuf> dcoutts: yes I'm thinking the same
2021-01-08 17:14:30 +0100ezzieyguywufscratches chin hairs
2021-01-08 17:14:31 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20)
2021-01-08 17:14:59 +0100 <dcoutts> ezzieyguywuf: then you may well want to use the hackage-security lib and do it properly, so you also benefit from the security checks. Particularly important if you're doing this as an official gentoo dev.
2021-01-08 17:15:10 +0100 <ezzieyguywuf> honestly it makes no sense not to pursue this - we may as well leverage the work done by the hackage team (or whoever) that's already solved lots of these issues
2021-01-08 17:15:18 +0100ezzieyguywufnods
2021-01-08 17:15:19 +0100 <dcoutts> ezzieyguywuf: are you on the gentoo Haskell dev team? :-)
2021-01-08 17:15:22 +0100 <merijn> ezzieyguywuf: There's still a bunch of rough patches, but overall Hackage/Cabal's design are much more amenable to packaging than, say, npm :p
2021-01-08 17:15:32 +0100 <ezzieyguywuf> dcoutts: I'm not on the dev team *yet*, i'm working towards becoming a gentoo dev
2021-01-08 17:15:39 +0100 <ezzieyguywuf> dcoutts: but I've been contributing rather furiously the past month or so
2021-01-08 17:15:50 +0100 <dcoutts> ezzieyguywuf: nice. Check the git history, you'll find me there from years ago :-)
2021-01-08 17:16:05 +0100 <dcoutts> at least if they preserved the history when they converted from csv :-)
2021-01-08 17:16:05 +0100 <ezzieyguywuf> dcoutts: oooh I saw someone in there that contributed a bunch then seemed to disappear, I bet it was you :)
2021-01-08 17:16:25 +0100 <dcoutts> this was like 15 years ago
2021-01-08 17:16:32 +0100 <ezzieyguywuf> dcoutts: I looked at the whole history :)
2021-01-08 17:16:45 +0100 <ezzieyguywuf> also, pretty sure things have gotten better since 15 years ago
2021-01-08 17:17:23 +0100 <ezzieyguywuf> anywho, this is all very good food for thought. I have a feeling I'll be back asking more about this hackage-security thing, but right now I want to close out the project I have open which is updated the gentoo-haskell ecosystem for newer aeson and quickcheck
2021-01-08 17:17:29 +0100 <ezzieyguywuf> but this seems like a very worthwhile project for right after that
2021-01-08 17:18:12 +0100 <dcoutts> ezzieyguywuf: it may also make sense to use the cabal solver to help pick the compatible versions to put into portage.
2021-01-08 17:18:35 +0100 <ezzieyguywuf> dcoutts: yea exactly. I was just pondering a few days ago how we might leverage cabal to make our lives easier
2021-01-08 17:18:38 +0100 <ezzieyguywuf> there seems to be a clear path.
2021-01-08 17:19:18 +0100 <merijn> ezzieyguywuf: Have you seen cabal-plan?
2021-01-08 17:19:44 +0100thunderrd(~thunderrd@183.182.115.136) (Ping timeout: 246 seconds)
2021-01-08 17:20:08 +0100 <ezzieyguywuf> merijn: I updated the gentoo ebuild for it
2021-01-08 17:20:09 +0100 <ezzieyguywuf> :)
2021-01-08 17:20:10 +0100 <ezzieyguywuf> but that's it
2021-01-08 17:20:32 +0100 <merijn> ezzieyguywuf: It lets you visualise/inspect the buildplans that cabal-install creates
2021-01-08 17:21:09 +0100 <ezzieyguywuf> ah, I was doing `cabal build --dry-run`
2021-01-08 17:21:10 +0100sdressel_(~sdressel@pwning.de)
2021-01-08 17:21:10 +0100sdressel_(~sdressel@pwning.de) (Client Quit)
2021-01-08 17:21:15 +0100 <merijn> ezzieyguywuf: So when you do "cabal build" you'll get dist-newstyle with in it the buildplan. cabal-plan lets you get human-readable access to that
2021-01-08 17:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 17:23:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 17:23:45 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 17:27:24 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
2021-01-08 17:29:06 +0100 <bollu> If I have a file that contains raw doubles (ie, the 64-bit IEEE754 represenation), how do I slurp the data into a Data.Vector.Unboxed Double
2021-01-08 17:29:13 +0100pera(~pera@unaffiliated/pera)
2021-01-08 17:30:08 +0100 <bollu> Ah, it seems vector-binary-instances is what I need
2021-01-08 17:31:03 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-01-08 17:31:42 +0100 <ezzieyguywuf> lol, "slurp"
2021-01-08 17:31:46 +0100 <merijn> bollu: Oh, you can do it even more efficient!
2021-01-08 17:32:09 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-01-08 17:32:13 +0100 <merijn> bollu: Do you, too, like incredibly cursed code? Do you, too, wish you could just read a ByteString and make it a vector?
2021-01-08 17:32:18 +0100 <merijn> Do I have the code for you!
2021-01-08 17:32:27 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 17:32:29 +0100thunderrd(~thunderrd@183.182.115.7)
2021-01-08 17:32:36 +0100 <merijn> https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Utils/Vector.hs
2021-01-08 17:32:41 +0100 <merijn> #WarrantyUntilTheDoor
2021-01-08 17:33:27 +0100 <merijn> actually, I think I can simplify that and make it slightly less cursed
2021-01-08 17:36:19 +0100ubert1(~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de)
2021-01-08 17:36:38 +0100ubert(~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-08 17:36:38 +0100ubert1ubert
2021-01-08 17:38:08 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2021-01-08 17:40:10 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-08 17:41:15 +0100coot(~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl)
2021-01-08 17:41:42 +0100quintasan(~quassel@ubuntu/member/quintasan) (Quit: quintasan)
2021-01-08 17:41:49 +0100quintasan(~quassel@quintasan.pl)
2021-01-08 17:41:49 +0100quintasan(~quassel@quintasan.pl) (Changing host)
2021-01-08 17:41:49 +0100quintasan(~quassel@ubuntu/member/quintasan)
2021-01-08 17:42:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
2021-01-08 17:42:37 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds)
2021-01-08 17:42:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-08 17:43:44 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2021-01-08 17:44:58 +0100Icewing(~Icewing@unaffiliated/icewing)
2021-01-08 17:45:49 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 264 seconds)
2021-01-08 17:46:16 +0100kyali(~kyali@APN-123-248-168-gprs.simobil.net)
2021-01-08 17:47:06 +0100 <merijn> bollu: There you go: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Utils/Vector.hs
2021-01-08 17:47:20 +0100 <merijn> Even less cursed now! Doesn't even require MagicHash anymore :p
2021-01-08 17:48:19 +0100 <hpc> SufficientlyAdvancedTechnologyHash
2021-01-08 17:50:26 +0100 <merijn> Hell, it doesn't even use Addr anymore...boring
2021-01-08 17:50:26 +0100ADG1089__(~aditya@223.236.164.57)
2021-01-08 17:50:35 +0100geekosaur(ac3a8f61@172.58.143.97)
2021-01-08 17:51:17 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 17:51:34 +0100dandels(~dandels@unaffiliated/dandels)
2021-01-08 17:52:55 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 17:53:04 +0100 <merijn> Random internet people: "You can't get anything done in Haskell, because it's so safe the type system stops you!" Me: *quickly nudges -XMagicHash, unsafeCoerce, and friends out of sight*
2021-01-08 17:53:19 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
2021-01-08 17:53:20 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-01-08 17:53:32 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-08 17:53:37 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-08 17:54:31 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-08 17:54:52 +0100hiroaki(~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
2021-01-08 17:57:13 +0100darjeeling_(~darjeelin@115.215.40.96) (Ping timeout: 264 seconds)
2021-01-08 17:58:16 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-01-08 17:59:06 +0100conal(~conal@64.71.133.70)
2021-01-08 17:59:06 +0100fangyrn(uid481529@gateway/web/irccloud.com/x-qtoesenwjedcxvhm)
2021-01-08 18:00:13 +0100christo(~chris@81.96.113.213)
2021-01-08 18:00:25 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-08 18:01:06 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2021-01-08 18:01:37 +0100 <kuribas> merijn: you forgot unsafePerformIO
2021-01-08 18:02:07 +0100 <merijn> naah, unsafePerformIO is boring
2021-01-08 18:02:14 +0100 <merijn> I need harder stuff to get me going
2021-01-08 18:02:28 +0100 <merijn> inject that realyUnsafePtrEquality# directly into my veins ;)
2021-01-08 18:03:42 +0100 <kuribas> merijn: I get it, real men use unsafeDupablePerformIO
2021-01-08 18:04:15 +0100Boomerang(~Boomerang@2a05:f6c7:2179:0:8da5:2e46:f1e1:ab48) (Remote host closed the connection)
2021-01-08 18:05:56 +0100ADG1089__(~aditya@223.236.164.57) (Remote host closed the connection)
2021-01-08 18:06:03 +0100 <fangyrn> I want to see if haskell is good for my project. It is basically about creating a state machine. I understand that haskell aims to be as typesafe as possible, but does a good type system help against writing incorrect state transitions?
2021-01-08 18:06:32 +0100dandels(~dandels@unaffiliated/dandels) (Ping timeout: 272 seconds)
2021-01-08 18:06:51 +0100mukherjeea(~am@106.201.53.107)
2021-01-08 18:07:02 +0100NGravity(csp@gateway/shell/xshellz/x-wudhqfssegtlqiwc) (Remote host closed the connection)
2021-01-08 18:07:17 +0100 <__monty__> Sounds a bit like streaming (conduit, pipes, machines) so I'd take a stab at yes.
2021-01-08 18:07:30 +0100jamm(~jamm@unaffiliated/jamm)
2021-01-08 18:08:07 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-01-08 18:08:36 +0100conal(~conal@64.71.133.70)
2021-01-08 18:10:58 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br) (Ping timeout: 246 seconds)
2021-01-08 18:10:59 +0100 <fangyrn> oops, sorry, solved my question with a query to hn.algolia. It looks like 'motor' is the library to look like, and it looks like it is a port of a library from Idris.
2021-01-08 18:11:11 +0100ADG1089__(~aditya@223.236.164.57)
2021-01-08 18:11:47 +0100gioyik(~gioyik@186.118.234.246)
2021-01-08 18:12:49 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 264 seconds)
2021-01-08 18:13:22 +0100fradet(~pi@216.252.75.247) (Quit: leaving)
2021-01-08 18:13:46 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
2021-01-08 18:14:35 +0100nineonine(~nineonine@50.216.62.2)
2021-01-08 18:14:46 +0100nineonine(~nineonine@50.216.62.2) (Read error: Connection reset by peer)
2021-01-08 18:15:10 +0100nineonine(~nineonine@50.216.62.2)
2021-01-08 18:16:47 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-01-08 18:23:44 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br)
2021-01-08 18:24:34 +0100 <ADG1089__> when i have multiple files (7-8) xmonad --recompile using cabal install takes 15-20 sec, whereas if i put everything into 1 file it takes 1.31 sec using ghc
2021-01-08 18:24:56 +0100 <ADG1089__> even the binary loads up quicker with single file
2021-01-08 18:25:01 +0100 <ADG1089__> any idea why this might be?
2021-01-08 18:25:19 +0100kupi(uid212005@gateway/web/irccloud.com/x-xikvdfvfkemgovqv)
2021-01-08 18:26:13 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-01-08 18:26:22 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-08 18:26:23 +0100 <shinobi> I have a data type of Map.Map Type1 Type2 where Type 1 and Type 2 are concrete types. I have implemented it with the data key word, but realized I could have used the type keyword as well. Is there any benefit of one over the other?
2021-01-08 18:27:33 +0100berberman(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-01-08 18:28:06 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-08 18:28:45 +0100dfeuer(~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
2021-01-08 18:29:01 +0100 <ADG1089__> data can have more properties i think whereas type is just an alias
2021-01-08 18:29:19 +0100 <ADG1089__> properties like instances
2021-01-08 18:29:42 +0100 <gentauro> can this be written in `point-free-style`? -> `g x y = (== EQ) $ f x y`?
2021-01-08 18:29:49 +0100 <gentauro> s/written/refactored/
2021-01-08 18:30:34 +0100 <kuribas> is it possible to contramap (Void -> a)?
2021-01-08 18:30:44 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-01-08 18:30:51 +0100 <ADG1089__> @pl \x y -> (== EQ) $ f x y
2021-01-08 18:30:51 +0100 <lambdabot> ((EQ ==) .) . f
2021-01-08 18:31:16 +0100 <kuribas> I mean (contramap (f :: Void -> a))
2021-01-08 18:31:56 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 18:32:18 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 18:32:27 +0100conal(~conal@64.71.133.70)
2021-01-08 18:32:52 +0100kini(~kini@unaffiliated/kini) (Quit: bye)
2021-01-08 18:33:27 +0100kini(~kini@unaffiliated/kini)
2021-01-08 18:33:53 +0100jespada(~jespada@90.254.245.49) (Quit: Leaving)
2021-01-08 18:34:42 +0100 <dsal> shinobi: `data` and `type` do quite different things. `type` is helpful for making things readable, but doesn't offer any protection, just gives another name to the same thing. `data` creates a data type.
2021-01-08 18:35:04 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-08 18:36:37 +0100 <kupi> Is there a haskell-like language without syntax sugar which is intented to be written by human?
2021-01-08 18:36:40 +0100 <shinobi> So I suppose my question is: Is it worth making a separate data type for a specific type of Map?
2021-01-08 18:36:40 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-01-08 18:37:02 +0100 <dsal> shinobi: Not enough information.
2021-01-08 18:37:04 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-01-08 18:37:12 +0100rajivr(uid269651@gateway/web/irccloud.com/x-ynaufapxkeljugpz) (Quit: Connection closed for inactivity)
2021-01-08 18:37:17 +0100 <shinobi> data Cube = Cube (Map.Map Direction Face)
2021-01-08 18:37:17 +0100 <shinobi> deriving (Show, Eq)
2021-01-08 18:37:19 +0100 <dsal> kupi: what would a language without syntax be?
2021-01-08 18:37:31 +0100 <hpc> dsal: if you're my old AI professor, lisp
2021-01-08 18:37:49 +0100 <dsal> hpc: lisp has like, that one syntax.
2021-01-08 18:37:53 +0100 <kupi> It has syntax but no sugar
2021-01-08 18:38:04 +0100 <dsal> What is sugar?
2021-01-08 18:38:14 +0100 <geekosaur> readmacros?
2021-01-08 18:38:17 +0100 <hpc> dsal: yeah, he had some funny ideas
2021-01-08 18:38:31 +0100 <kupi> e.g. (:) 1 Nil instead of [1]
2021-01-08 18:38:35 +0100 <dsal> shinobi: I'd probably just `type Cube = Map Direction Face` but it really depends on things.
2021-01-08 18:38:56 +0100 <hpc> kupi: i don't think anything that stripped down exists
2021-01-08 18:39:24 +0100 <hpc> at all, not just in the category of stuff like haskell
2021-01-08 18:39:45 +0100 <bi_functor> shinobi: newtypes and data wrappers are usually for making custom instances of things
2021-01-08 18:39:49 +0100revprez_1nzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2021-01-08 18:40:00 +0100 <aldum> isn't that the whole ethos of lisps?
2021-01-08 18:40:06 +0100 <aldum> no syntax, just the tree?
2021-01-08 18:40:19 +0100 <hpc> aldum: how do you serialize and parse the tree? :P
2021-01-08 18:40:23 +0100darjeeling_(~darjeelin@115.215.40.96)
2021-01-08 18:40:27 +0100ski. o O ( Liskell )
2021-01-08 18:41:16 +0100esp32_prog(yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Ping timeout: 240 seconds)
2021-01-08 18:41:33 +0100 <aldum> dunno, I can't into compilers
2021-01-08 18:41:37 +0100 <ski> preflex: xseen therp
2021-01-08 18:41:58 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2021-01-08 18:41:58 +0100 <dfeuer> Point-free fun: isJust . f . guard
2021-01-08 18:42:39 +0100 <ski> @type (isJust .) . (. guard)
2021-01-08 18:42:39 +0100 <kupi> I once saw a github repo for a sttipped down haskell but forgot it's name. It knows everything vanilla haskell does but without features which only gives abbility to write shorter code
2021-01-08 18:42:40 +0100 <lambdabot> Alternative f => (f () -> Maybe a) -> Bool -> Bool
2021-01-08 18:43:12 +0100 <dfeuer> ski: oops, I meant fmap isJust . f . guard
2021-01-08 18:43:37 +0100notzmv(~user@unaffiliated/zmv)
2021-01-08 18:43:43 +0100 <ski> @where Helium
2021-01-08 18:43:44 +0100 <lambdabot> http://www.cs.uu.nl/research/projects/helium/
2021-01-08 18:44:24 +0100 <ski> @type (fmap isJust .) . (. guard)
2021-01-08 18:44:26 +0100 <lambdabot> (Alternative f1, Functor f2) => (f1 () -> f2 (Maybe a)) -> Bool -> f2 Bool
2021-01-08 18:44:31 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 18:45:17 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-08 18:46:02 +0100 <dfeuer> ski: this is for turning a Contains lens into an At lens.
2021-01-08 18:48:20 +0100justsomeguy(~justsomeg@072-186-136-238.biz.spectrum.com)
2021-01-08 18:48:20 +0100justsomeguy(~justsomeg@072-186-136-238.biz.spectrum.com) (Changing host)
2021-01-08 18:48:20 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-01-08 18:48:43 +0100 <ski> mhm
2021-01-08 18:48:47 +0100 <dfeuer> Too bad lambdabot doesn't understand TypeApplications
2021-01-08 18:49:05 +0100 <hpc> yahb does, iirc
2021-01-08 18:49:43 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Client Quit)
2021-01-08 18:50:06 +0100 <ski> % :t (=<<) @[]
2021-01-08 18:50:06 +0100 <yahb> ski: (a -> [b]) -> [a] -> [b]
2021-01-08 18:50:44 +0100ADG1089_(~aditya@171.76.136.168)
2021-01-08 18:50:44 +0100ADG1089__(~aditya@223.236.164.57) (Ping timeout: 256 seconds)
2021-01-08 18:53:21 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-08 18:53:48 +0100conal(~conal@64.71.133.70)
2021-01-08 18:55:07 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 18:55:23 +0100ADG1089_(~aditya@171.76.136.168) (Remote host closed the connection)
2021-01-08 19:00:30 +0100pavonia(~user@unaffiliated/siracusa)
2021-01-08 19:04:55 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-01-08 19:05:36 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-01-08 19:06:00 +0100thevishy(~Nishant@103.210.43.13) (Quit: Leaving)
2021-01-08 19:06:28 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
2021-01-08 19:07:10 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
2021-01-08 19:07:27 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2021-01-08 19:08:25 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
2021-01-08 19:10:22 +0100Tario(~Tario@201.192.165.173)
2021-01-08 19:11:43 +0100XinYaanZyoy(6a423406@106.66.52.6)
2021-01-08 19:11:44 +0100mukherjeea(~am@106.201.53.107) (Ping timeout: 260 seconds)
2021-01-08 19:13:49 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-01-08 19:18:30 +0100XinYaanZyoy(6a423406@106.66.52.6) (Remote host closed the connection)
2021-01-08 19:18:40 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2021-01-08 19:18:58 +0100leungbk(~user@2603-8000-f144-2028-4098-2613-36d5-de42.res6.spectrum.com)
2021-01-08 19:18:59 +0100stree(~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
2021-01-08 19:20:09 +0100XinYaanZyoy(6a423406@106.66.52.6)
2021-01-08 19:20:57 +0100XinYaanZyoy(6a423406@106.66.52.6) (Remote host closed the connection)
2021-01-08 19:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 19:23:08 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 19:23:08 +0100kuribas(~user@ptr-25vy0i9wm95xppa9w26.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-01-08 19:24:07 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-08 19:24:51 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-08 19:25:26 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-08 19:25:47 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 19:26:21 +0100mukherjeea(~am@106.201.53.107)
2021-01-08 19:27:01 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net) (Ping timeout: 256 seconds)
2021-01-08 19:27:59 +0100wlritchi_(~wlritchi@li1016-87.members.linode.com)
2021-01-08 19:33:58 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 256 seconds)
2021-01-08 19:34:12 +0100leah2(~leah@vuxu.org) (Ping timeout: 260 seconds)
2021-01-08 19:34:25 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-08 19:34:30 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
2021-01-08 19:35:00 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 19:35:07 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-01-08 19:36:28 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-01-08 19:36:33 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
2021-01-08 19:37:13 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-08 19:37:20 +0100christo(~chris@81.96.113.213)
2021-01-08 19:38:00 +0100leah2(~leah@vuxu.org)
2021-01-08 19:38:33 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-lngzfeghcpflmhlc)
2021-01-08 19:38:39 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-08 19:38:44 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
2021-01-08 19:38:48 +0100vilpan(~0@212.117.1.172) (Quit: Leaving.)
2021-01-08 19:39:17 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 19:39:30 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-01-08 19:40:20 +0100jollygood2(~bc812391@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-01-08 19:41:37 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-08 19:42:11 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-08 19:42:15 +0100usr25(~usr25@unaffiliated/usr25) ()
2021-01-08 19:43:01 +0100 <wlritchi_> I'm trying to get cabal and friends working on aarch64 in Arch Linux ARM. ghc has a binary for the architecture, and I've been able to run the cabal-install bootstrap successfully.
2021-01-08 19:43:25 +0100 <wlritchi_> The bootstrap script then suggests using the new cabal-install to build itself, which also looks like it's working.
2021-01-08 19:43:50 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 264 seconds)
2021-01-08 19:43:51 +0100conal(~conal@64.71.133.70)
2021-01-08 19:43:59 +0100 <wlritchi_> I noticed, though, that Arch Linux's (non-ARM) cabal-install package doesn't use the bootstrap, and is instead built using `runhaskell Setup configure` and `runhaskell Setup build`
2021-01-08 19:44:17 +0100 <wlritchi_> I'm very new to the Haskell ecosystem, so I don't know the implications of one over the other.
2021-01-08 19:44:19 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 19:44:40 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 19:44:44 +0100 <wlritchi_> Is there a reason why one of these would be the "correct" approach for me on a distro/architecture without a readily available existing cabal-install binary?
2021-01-08 19:45:16 +0100 <merijn> wlritchi_: Well, step 1 (on Arch) is to basically ignore literally everything the official packages do :)
2021-01-08 19:45:25 +0100 <[exa]> I'm not an arch user but you might soon receive a slightly categorical explanation
2021-01-08 19:45:28 +0100 <[exa]> oh here it is
2021-01-08 19:46:06 +0100 <koz_> Yep, basically this.
2021-01-08 19:46:07 +0100 <merijn> wlritchi_: If the bootstrap script for cabal-install works, then you should already be done?
2021-01-08 19:46:15 +0100 <koz_> Use ghcup and you'll be happier for it.
2021-01-08 19:46:19 +0100leungbk(~user@2603-8000-f144-2028-4098-2613-36d5-de42.res6.spectrum.com) (Quit: ERC (IRC client for Emacs 28.0.50))
2021-01-08 19:46:21 +0100 <merijn> koz_: Not sure that works on ARM
2021-01-08 19:46:26 +0100 <wlritchi_> ghcup isn't (yet) supported on aarch64
2021-01-08 19:46:39 +0100 <koz_> Ah, OK. TIL.
2021-01-08 19:46:47 +0100 <koz_> Maybe we should ask maerwald about it?
2021-01-08 19:46:56 +0100 <merijn> wlritchi_: Basically, if the bootstrap script works and cabal-install was able to build itself, well, what exactly is the issue, then? :)
2021-01-08 19:47:16 +0100 <wlritchi_> merijn: Mostly just checking that there isn't some compelling reason to do it the other way
2021-01-08 19:47:26 +0100eager_lambda(~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) (Remote host closed the connection)
2021-01-08 19:47:58 +0100 <merijn> wlritchi_: There is *a* compelling reason to do it the other way, which is: If for some reason using cabal-install is unacceptable/impossible :)
2021-01-08 19:48:40 +0100 <merijn> wlritchi_: Basically, the actual *building* is handled by Cabal (the library) which you can either invoke the painful way (runhaskell Setup.hs) or the pleasant way (cabal-install, which is just a fancy wrapper for the library)
2021-01-08 19:48:43 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2021-01-08 19:48:49 +0100 <merijn> wlritchi_: See also https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07
2021-01-08 19:49:34 +0100royal_screwup217(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-01-08 19:50:18 +0100Ben88(aec00c12@18.sub-174-192-12.myvzw.com)
2021-01-08 19:50:31 +0100 <merijn> wlritchi_: Distro packages are generally opinionated about stuff like "where should things be installed", "can we avoid custom tools like cabal-install?", etc. as programmer/user there's little reason not to use cabal-install if you don't object to where it installs things (and even then you can change that via ~/.cabal/config)
2021-01-08 19:51:56 +0100 <wlritchi_> Well, I'm considering turning whatever I do into an Arch User Repository package so to some extent I'll have to be mindful of distro conventions (AUR frequently plays fast and loose with those though)
2021-01-08 19:52:46 +0100 <wlritchi_> Many thanks for the explanation/clarification though - I'll stick with the route that's already working unless discussion with the Arch folks gives me a good reason to do otherwise.
2021-01-08 19:53:18 +0100 <xerox_> at least apple m1 does work, but that's different I guess
2021-01-08 19:53:19 +0100 <merijn> wlritchi_: I mean, the Arch folks also knowingly ship a completely broken Haskell ecosystem by default, so...eh...maybe take their opinions with a grain of salt :)
2021-01-08 19:53:37 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds)
2021-01-08 19:53:53 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-01-08 19:54:14 +0100 <Ben88> Hey folks, I wanted to share an early version of a new library I'm working on: https://github.com/benweitzman/hooks. It's basically a port of React Hooks to Haskell, to support writing programs which produce streams of values, in a FRP-ish sort of style
2021-01-08 19:54:58 +0100catern(~catern@104.131.201.120) (Quit: catern)
2021-01-08 19:56:13 +0100 <wlritchi_> merijn: Hah, I've run into the breakage enough times on my own. That's how I knew it was probably better to ask here first ;)
2021-01-08 19:56:44 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2021-01-08 19:56:59 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 19:57:43 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-08 19:57:43 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-01-08 19:57:43 +0100neiluj(~jco@unaffiliated/neiluj)
2021-01-08 19:58:03 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2021-01-08 19:58:04 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-01-08 19:58:13 +0100mukherjeea(~am@106.201.53.107) (Quit: leaving)
2021-01-08 19:58:28 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 19:58:35 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2021-01-08 19:58:38 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
2021-01-08 19:59:24 +0100Lord_of_Life_Lord_of_Life
2021-01-08 19:59:55 +0100ezrakilty(~ezrakilty@75-172-99-84.tukw.qwest.net)
2021-01-08 20:00:18 +0100matryoshka`(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 20:00:41 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 20:02:08 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 20:02:28 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 20:02:37 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 20:02:55 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-08 20:03:29 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-01-08 20:03:30 +0100berberman_(~berberman@unaffiliated/berberman)
2021-01-08 20:04:16 +0100keltono(~keltono@x-160-94-179-178.acm.umn.edu) (Ping timeout: 240 seconds)
2021-01-08 20:04:25 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-01-08 20:04:50 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-08 20:05:11 +0100ezrakilty(~ezrakilty@75-172-99-84.tukw.qwest.net) ()
2021-01-08 20:05:28 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-08 20:06:05 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-01-08 20:06:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-08 20:07:07 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
2021-01-08 20:09:41 +0100matryoshka(~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-08 20:10:03 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 20:11:08 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
2021-01-08 20:11:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-08 20:12:26 +0100matryoshka(~matryoshk@184.75.223.227) (Client Quit)
2021-01-08 20:12:46 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 20:12:48 +0100 <fresheyeball> Servant question
2021-01-08 20:12:55 +0100 <fresheyeball> I had a function like so
2021-01-08 20:13:12 +0100 <fresheyeball> myHandler :: MonadStuff m => UserId -> m Thing
2021-01-08 20:13:25 +0100geekosaur(ac3a8f61@172.58.143.97) (Ping timeout: 245 seconds)
2021-01-08 20:13:25 +0100 <fresheyeball> and it worked great with servant for a route that looks like this
2021-01-08 20:13:25 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-hbgqrvvjcuvgthgl)
2021-01-08 20:13:39 +0100howdoi(uid224@gateway/web/irccloud.com/x-lmcddsyzezhgbtrc)
2021-01-08 20:13:49 +0100 <fresheyeball> "getThing" :> Capture "userId" UserId :> Get '[JSON] Thing
2021-01-08 20:14:04 +0100 <fresheyeball> but now, for reasons I wont go into
2021-01-08 20:14:11 +0100 <fresheyeball> the route has changed to this
2021-01-08 20:14:20 +0100 <fresheyeball> "getThing" :> Capture "userId" UserId :> Raw
2021-01-08 20:14:40 +0100 <fresheyeball> It really needs to be `Raw` a the end there
2021-01-08 20:14:56 +0100 <fresheyeball> problem is how to refactor the `myHandler` function to compile with this?
2021-01-08 20:15:18 +0100hololeap(~hololeap@unaffiliated/hololeap)
2021-01-08 20:15:22 +0100 <fresheyeball> I was able to write a function `Thing -> Application` that should serve the way I want it to
2021-01-08 20:15:32 +0100 <fresheyeball> but the `m` is getting in the way here
2021-01-08 20:16:01 +0100 <fresheyeball> Servant wants this to be `Tagged m Application` but the closed I can get here is `Tagged m (m Application)` or `m (Taggged m Application`
2021-01-08 20:16:15 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-08 20:16:24 +0100 <fresheyeball> I can't find any way to write `m Thing -> Tagged m Application`
2021-01-08 20:16:37 +0100 <fresheyeball> but I think this should be possible, since it worked fine with `Get` as the combinator here
2021-01-08 20:16:56 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-01-08 20:17:40 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 246 seconds)
2021-01-08 20:18:23 +0100 <koz_> fresheyeball: This 'Tagged'? https://hackage.haskell.org/package/tagged-0.8.6.1/docs/Data-Tagged.html#t:Tagged
2021-01-08 20:19:17 +0100Tario(~Tario@201.192.165.173)
2021-01-08 20:21:20 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-08 20:21:38 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 20:21:44 +0100 <c_wraith> fresheyeball: `m Thing -> Tagged m Application` seems a very unlikely type
2021-01-08 20:21:50 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 20:22:15 +0100 <c_wraith> fresheyeball: unless Application happens to be some sort of wrapper around m already
2021-01-08 20:23:07 +0100jneira(5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156)
2021-01-08 20:23:35 +0100geekosaur(ac3a8f61@172.58.143.97)
2021-01-08 20:25:12 +0100matryoshka(~matryoshk@184.75.223.227) (Client Quit)
2021-01-08 20:25:36 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 20:26:58 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
2021-01-08 20:27:27 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer)
2021-01-08 20:27:38 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 264 seconds)
2021-01-08 20:27:45 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 20:29:06 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2021-01-08 20:29:27 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 20:30:02 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 264 seconds)
2021-01-08 20:32:20 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 20:32:41 +0100matryoshka(~matryoshk@184.75.223.227)
2021-01-08 20:35:59 +0100matryoshka(~matryoshk@184.75.223.227) (Client Quit)
2021-01-08 20:36:18 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 20:36:41 +0100 <fresheyeball> koz_: sorry stepped way, yes
2021-01-08 20:36:52 +0100 <fresheyeball> c_wraith: it's the Application type from wai
2021-01-08 20:38:38 +0100hololeap(~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
2021-01-08 20:39:46 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 20:40:25 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br) (Ping timeout: 264 seconds)
2021-01-08 20:41:01 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 20:41:02 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 20:42:00 +0100bitmagie(~Thunderbi@200116b806b0fe00759218703f44b452.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-08 20:44:44 +0100ADG1089__(~aditya@122.163.165.143)
2021-01-08 20:49:09 +0100new_haskeller(ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com)
2021-01-08 20:49:24 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 240 seconds)
2021-01-08 20:52:26 +0100troydm(~troydm@unaffiliated/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2021-01-08 20:53:12 +0100troydm(~troydm@unaffiliated/troydm)
2021-01-08 20:55:12 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2021-01-08 20:57:07 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-08 20:57:12 +0100Ben88(aec00c12@18.sub-174-192-12.myvzw.com) (Remote host closed the connection)
2021-01-08 20:57:54 +0100jneira(5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156) (Ping timeout: 260 seconds)
2021-01-08 21:01:39 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 21:02:32 +0100xff0x(~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d) (Ping timeout: 260 seconds)
2021-01-08 21:04:20 +0100xff0x(~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d)
2021-01-08 21:05:14 +0100jneira(5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156)
2021-01-08 21:07:41 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-08 21:08:18 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2021-01-08 21:08:52 +0100 <topos> exarkun:
2021-01-08 21:08:59 +0100 <topos> base32 is now up to date in the most recent LTS
2021-01-08 21:09:06 +0100 <topos> You shouldn't have problems anymore: https://github.com/emilypi/Base32/issues/11#issuecomment-756968751
2021-01-08 21:09:41 +0100 <exarkun> topos: Just saw the github notification :) Thank you for chasing that down.
2021-01-08 21:09:44 +0100 <gentauro> 18:30 < ADG1089__> @pl \x y -> (== EQ) $ f x y
2021-01-08 21:09:51 +0100 <gentauro> ADG1089__: what is this magic?
2021-01-08 21:09:52 +0100 <gentauro> :o
2021-01-08 21:11:23 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2021-01-08 21:11:25 +0100 <gentauro> btw, `distinctBy f = map head . groupBy g . sortBy f where g = ((== EQ) . ) . f` :)
2021-01-08 21:12:27 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-01-08 21:12:37 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds)
2021-01-08 21:14:35 +0100 <topos> exarkun: no worries, glad you raised it :)
2021-01-08 21:15:15 +0100knupfer(~Thunderbi@200116b82c8bca009019dffffe833b29.dip.versatel-1u1.de)
2021-01-08 21:15:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-01-08 21:15:44 +0100knupfer(~Thunderbi@200116b82c8bca009019dffffe833b29.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-08 21:15:53 +0100knupfer(~Thunderbi@200116b82c8bca001188403fbf05108c.dip.versatel-1u1.de)
2021-01-08 21:17:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 21:18:13 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2021-01-08 21:22:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-08 21:23:08 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-01-08 21:23:08 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-01-08 21:23:08 +0100mouseghost(~draco@wikipedia/desperek)
2021-01-08 21:23:09 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
2021-01-08 21:29:23 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
2021-01-08 21:29:23 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
2021-01-08 21:30:39 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-08 21:32:35 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 21:33:34 +0100_linker_(~linker@185-12-21-77.sigma.jaslo.pl)
2021-01-08 21:36:14 +0100maroloccio__(~marolocci@pousada3ja.mma.com.br)
2021-01-08 21:36:23 +0100knupfer(~Thunderbi@200116b82c8bca001188403fbf05108c.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-08 21:39:38 +0100Franciman(~francesco@host-82-48-174-127.retail.telecomitalia.it)
2021-01-08 21:41:31 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 21:42:14 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-01-08 21:43:17 +0100neiluj(~jco@unaffiliated/neiluj) (Remote host closed the connection)
2021-01-08 21:43:49 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 21:47:22 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Remote host closed the connection)
2021-01-08 21:47:42 +0100avdb(~avdb@gateway/tor-sasl/avdb)
2021-01-08 21:49:43 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-01-08 21:49:59 +0100xff0x(~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d) (Ping timeout: 272 seconds)
2021-01-08 21:53:04 +0100 <bi_functor> is it possible (obviously with different syntax) to get something close to this: (a -> a -> Ordering) -> instance Ord (WrappedOrd a) ...?
2021-01-08 21:53:20 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2021-01-08 21:53:57 +0100christo(~chris@81.96.113.213)
2021-01-08 21:53:58 +0100xff0x(~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d)
2021-01-08 21:54:01 +0100BuboBubo(~BuboBubo@rezo-mtrg2-17.ens.fr)
2021-01-08 21:54:03 +0100 <bi_functor> to derive a typeclass from a function that determines it?
2021-01-08 21:54:18 +0100 <merijn> No, typeclasses are static
2021-01-08 21:54:34 +0100 <merijn> You can *maybe* do something like that with "reflection"
2021-01-08 21:54:41 +0100 <merijn> But that's some dark voodoo magic nonsense
2021-01-08 21:55:23 +0100bi_functormakes a devious face
2021-01-08 21:56:35 +0100 <Rembane> bi_functor: Out of curiosity, why do you want to do this?
2021-01-08 21:57:26 +0100g_(~g@80-237-235-201.fibertel.com.ar)
2021-01-08 21:57:59 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 260 seconds)
2021-01-08 21:57:59 +0100dcbdnl(~dcbdnl@2601:2c6:4e00:2d20:4685:ff:fecf:3992)
2021-01-08 21:58:12 +0100g_(~g@80-237-235-201.fibertel.com.ar) (Client Quit)
2021-01-08 21:58:25 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2021-01-08 21:59:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 22:00:47 +0100 <hpc> maybe when haskell gets dependent types
2021-01-08 22:01:38 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
2021-01-08 22:01:54 +0100 <Uniaika> I say burn the witch
2021-01-08 22:03:34 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-01-08 22:03:35 +0100 <Rembane> Build a bridge out of her!
2021-01-08 22:04:06 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
2021-01-08 22:04:06 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 22:04:24 +0100 <dolio> The issue is that type classes aren't just arguments you don't have to pass. They're supposed to be uniquely determined.
2021-01-08 22:04:40 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
2021-01-08 22:05:03 +0100avdb(~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
2021-01-08 22:05:09 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
2021-01-08 22:05:09 +0100 <bi_functor> dolio: Ord is certainly not uniquely determined
2021-01-08 22:05:19 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-08 22:05:20 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-01-08 22:05:20 +0100neiluj(~jco@unaffiliated/neiluj)
2021-01-08 22:05:38 +0100 <merijn> bi_functor: It is, by the typeclass
2021-01-08 22:05:47 +0100 <merijn> if you want multiple instances, use a newtype
2021-01-08 22:06:11 +0100 <bi_functor> merijn: well yes, hence the WrappedOrd in my example
2021-01-08 22:06:37 +0100 <bi_functor> i want to know if that's something that can be generated
2021-01-08 22:06:41 +0100 <merijn> bi_functor: That's not unique, it'd have an instance per input as you describe it
2021-01-08 22:06:46 +0100 <merijn> bi_functor: no
2021-01-08 22:06:55 +0100shf(~sheaf@2a01:cb19:80cc:7e00:85b4:a3a3:cabb:438d)
2021-01-08 22:07:17 +0100 <bi_functor> then, if i can't generate the instance for a newtype, could i generate a newtype to use that particular instance?
2021-01-08 22:07:20 +0100 <kupi> what's the best comonad guide?
2021-01-08 22:07:22 +0100 <merijn> bi_functor: Also, you can trivially rewrite anything that accepts your proposed WrappedOrd into something that, just, takes "a -> a -> Ordering" as argument instead like sortBy
2021-01-08 22:07:38 +0100 <merijn> bi_functor: Well, that, or just don't use a typeclass :p
2021-01-08 22:07:55 +0100 <bi_functor> merijn: I was thinking of how to make sortBy less clumsy, actually :p
2021-01-08 22:07:57 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 22:07:58 +0100raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-08 22:08:03 +0100 <merijn> How is it clumsy?
2021-01-08 22:08:07 +0100 <merijn> :t sortBy
2021-01-08 22:08:09 +0100 <lambdabot> (a -> a -> Ordering) -> [a] -> [a]
2021-01-08 22:08:16 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 22:08:19 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-08 22:08:24 +0100 <bi_functor> i meant in the definition! just speculating :)
2021-01-08 22:08:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2021-01-08 22:09:05 +0100 <merijn> bi_functor: Even if you hypothetically could improve the definition using newtypes that's never happening anyway
2021-01-08 22:10:18 +0100 <merijn> sortBy is in Prelude, getting uncontroversial changes into Prelude is already a nigh impossible task with a bunch of naysayers. Incompatibly redefining a commonly used Prelude function is "when pigs fly" territory :p
2021-01-08 22:10:58 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 22:11:16 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 22:11:33 +0100 <hpc> it was bad enough when State became StateT, and that's not even in base
2021-01-08 22:12:06 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
2021-01-08 22:12:35 +0100 <hpc> that was around when i was learning haskell, and it made a lot of examples stop compiling
2021-01-08 22:13:21 +0100 <merijn> hpc: It took well over a decade to overrule the naysayers and make sum strict
2021-01-08 22:14:17 +0100 <hpc> look at how long it took to add unsigned Integer too
2021-01-08 22:14:27 +0100mirrorbird(~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
2021-01-08 22:14:28 +0100justsomeguy(~justsomeg@216.186.218.241)
2021-01-08 22:14:28 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2021-01-08 22:14:28 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-01-08 22:14:31 +0100 <hpc> that one should have been obvious from the beginning
2021-01-08 22:15:09 +0100shaprhops cheerfully
2021-01-08 22:15:14 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2021-01-08 22:15:35 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2021-01-08 22:17:23 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2021-01-08 22:18:13 +0100srk(~sorki@gateway/tor-sasl/sorki) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-08 22:18:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-08 22:19:14 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2021-01-08 22:19:22 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-01-08 22:19:24 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-01-08 22:19:28 +0100knupfer(~Thunderbi@200116b82c8bca008807cefffee21155.dip.versatel-1u1.de)
2021-01-08 22:19:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2021-01-08 22:19:44 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2021-01-08 22:20:23 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-01-08 22:20:33 +0100knupfer(~Thunderbi@200116b82c8bca008807cefffee21155.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-08 22:20:47 +0100knupfer(~Thunderbi@200116b82c8bca00044d4676b93175a0.dip.versatel-1u1.de)
2021-01-08 22:20:58 +0100spopejoy(~stuart@ool-44c5f8c9.dyn.optonline.net) (Quit: spopejoy)
2021-01-08 22:21:08 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-08 22:23:33 +0100niekvandepas(~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
2021-01-08 22:23:53 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net)
2021-01-08 22:24:13 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds)
2021-01-08 22:24:47 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net) ()
2021-01-08 22:26:25 +0100Jd007(~Jd007@d154-5-83-24.bchsia.telus.net)
2021-01-08 22:28:37 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-01-08 22:30:03 +0100knupfer(~Thunderbi@200116b82c8bca00044d4676b93175a0.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-08 22:31:11 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-08 22:33:18 +0100 <__monty__> Why can't the monad and the transformer coexist?
2021-01-08 22:33:53 +0100 <merijn> __monty__: They can
2021-01-08 22:33:56 +0100 <hpc> it went from data State s a = ... to type State s a = StateT s Identity a
2021-01-08 22:34:01 +0100 <merijn> __monty__: But they used to be different datatypes
2021-01-08 22:37:21 +0100 <__monty__> Ah, misunderstood. Why did that cause examples to break though?
2021-01-08 22:37:30 +0100christo(~chris@81.96.113.213)
2021-01-08 22:37:34 +0100 <merijn> __monty__: Because the State constructor stopped existing
2021-01-08 22:38:46 +0100 <__monty__> Ah
2021-01-08 22:40:27 +0100geekosaur(ac3a8f61@172.58.143.97) (Remote host closed the connection)
2021-01-08 22:41:04 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-01-08 22:41:52 +0100christo(~chris@81.96.113.213) (Ping timeout: 246 seconds)
2021-01-08 22:44:16 +0100acidjnk_new(~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de)
2021-01-08 22:44:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-08 22:49:19 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-01-08 22:53:23 +0100ubert(~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-08 22:53:43 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net)
2021-01-08 22:53:50 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds)
2021-01-08 22:55:20 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-08 22:57:16 +0100 <monochrom> But easy fix: change "S" to "s".
2021-01-08 22:58:28 +0100kayvan(~user@52-119-115-160.PUBLIC.monkeybrains.net) (Quit: ERC (IRC client for Emacs 28.0.50))
2021-01-08 23:01:28 +0100nrh^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-01-08 23:02:25 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-01-08 23:03:46 +0100 <ski> % let State f = replicateM_ 5 (modify (2 *)) in f 1
2021-01-08 23:03:46 +0100 <yahb> ski: ((),32)
2021-01-08 23:04:20 +0100Rudd0(~Rudd0@185.189.115.108)
2021-01-08 23:04:30 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-08 23:04:36 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
2021-01-08 23:09:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
2021-01-08 23:10:15 +0100fradet(~pi@216.252.75.247)
2021-01-08 23:10:16 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-01-08 23:10:54 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2021-01-08 23:12:34 +0100re6(5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net)
2021-01-08 23:12:40 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 246 seconds)
2021-01-08 23:13:43 +0100 <re6> How is it possible for modify to do anything in the State monad if it returns a "m ()"
2021-01-08 23:14:25 +0100 <koala_man> try implementing it yourself and see
2021-01-08 23:14:28 +0100 <merijn> re6: Why would that make it impossible?
2021-01-08 23:14:53 +0100Tops2(~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de)
2021-01-08 23:15:07 +0100 <merijn> And yeah, implementing it yourself is good practice, see: https://gist.github.com/merijn/098106abd45c940dab09
2021-01-08 23:15:41 +0100 <re6> Ok, I'll try that
2021-01-08 23:16:08 +0100 <Franciman> does anybody use arrows nowadays?
2021-01-08 23:16:18 +0100 <merijn> Franciman: "no"
2021-01-08 23:16:32 +0100 <merijn> Franciman: They're pretty much a historical relic at this point
2021-01-08 23:16:37 +0100 <Franciman> sad!
2021-01-08 23:16:44 +0100 <Franciman> did monads take over totally?
2021-01-08 23:16:47 +0100 <merijn> Superceded by a mix of Category, Applicative, and Profunctor
2021-01-08 23:16:52 +0100 <Franciman> oh
2021-01-08 23:16:58 +0100 <Franciman> arrows are categories in disguise?
2021-01-08 23:17:29 +0100 <merijn> Arrows are category theory inspired, by the class makes it hard to make any of the interesting members
2021-01-08 23:17:45 +0100 <merijn> Category and Profunctor have a lot of similarities to Arrow while being overall more useful
2021-01-08 23:18:12 +0100 <Franciman> I remember that some of the coolnes of Arrows was that you had static inputs, and do preprocessing
2021-01-08 23:18:23 +0100 <Franciman> I mean you couldn't alter the flow of code at runtime
2021-01-08 23:18:34 +0100 <merijn> Franciman: Right, but Applicative has that too :p
2021-01-08 23:18:38 +0100 <Franciman> yes!
2021-01-08 23:18:41 +0100BuboBubo(~BuboBubo@rezo-mtrg2-17.ens.fr) ()
2021-01-08 23:18:49 +0100 <Franciman> what do we use profunctor to?
2021-01-08 23:18:55 +0100 <merijn> Lens? :p
2021-01-08 23:18:55 +0100 <Franciman> apart from lens :S
2021-01-08 23:18:57 +0100 <Franciman> lewl
2021-01-08 23:19:11 +0100 <Franciman> and categories?
2021-01-08 23:19:49 +0100 <merijn> Not sure, tbh, I'm just parroting the gospel of edwardk and some others :p
2021-01-08 23:20:43 +0100 <Franciman> thanks
2021-01-08 23:20:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
2021-01-08 23:20:54 +0100 <Franciman> for now I think about CT as a tool to think about the structure of my programs
2021-01-08 23:21:10 +0100 <Franciman> if something fits into a CT framework, I can get a lot of theorems about my programs
2021-01-08 23:21:18 +0100 <Franciman> not sure what y'all use categories for, if you do
2021-01-08 23:21:45 +0100christo(~chris@81.96.113.213)
2021-01-08 23:25:46 +0100 <maralorn> Franciman: I think the question "what do you people use categories for" is a bit like "so what do you people do with these 'molecules' any practical advantages in using them?"
2021-01-08 23:26:06 +0100 <Franciman> nono
2021-01-08 23:26:11 +0100 <Franciman> I don't mean pratical advantages
2021-01-08 23:26:18 +0100christo(~chris@81.96.113.213) (Ping timeout: 256 seconds)
2021-01-08 23:26:22 +0100 <Franciman> I just want to know what you have used categorical understanding for
2021-01-08 23:26:25 +0100 <Franciman> plain curiosity
2021-01-08 23:26:30 +0100 <Franciman> I don't want to buy anything :P
2021-01-08 23:26:32 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-08 23:27:46 +0100 <maralorn> Well, I think I mostly use categorical understanding to understand what a function does when it‘s named like something from ct.^^
2021-01-08 23:28:45 +0100 <Franciman> :D
2021-01-08 23:28:59 +0100Lowl3v3l(~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) (Quit: Leaving.)
2021-01-08 23:30:56 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-01-08 23:34:32 +0100nucranium(~nucranium@2a02:8010:6173:0:34f4:f022:f40c:bc2c)
2021-01-08 23:37:09 +0100 <pie_> i dont know C, structs and unions are like product and sum types but worse somehow? (how? no tags?)
2021-01-08 23:38:21 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-01-08 23:39:08 +0100 <Uniaika> yes, C has untagged unions
2021-01-08 23:39:41 +0100 <monochrom> And uses more space, asymptotically.
2021-01-08 23:39:59 +0100 <pie_> oh right, no pattern matching
2021-01-08 23:40:34 +0100 <pie_> im just wondering if i have to rething kings, because my criteria for "good" language roughly starts with having ADTs
2021-01-08 23:40:44 +0100 <monochrom> union { one-byte-struct here; 10000-byte struct here } always uses 10000 bytes, even when you're in case #1.
2021-01-08 23:40:46 +0100 <pie_> *rethink things
2021-01-08 23:41:01 +0100ulidtko|k(~ulidtko@193.111.48.79) (Ping timeout: 246 seconds)
2021-01-08 23:41:16 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-08 23:41:22 +0100 <monochrom> "data X = C1 one-word-here | C2 10000-bytes-here" uses 2 words in case #1.
2021-01-08 23:41:56 +0100 <monochrom> I wouldn't have "good language" in my vocab.
2021-01-08 23:43:44 +0100 <monochrom> except very casually and undefinedly.
2021-01-08 23:44:16 +0100 <pie_> yeah
2021-01-08 23:44:26 +0100fendor_(~fendor@77.119.128.254.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-08 23:44:38 +0100 <pie_> ok, so lets say, "language I would want to work with"
2021-01-08 23:45:06 +0100 <pie_> and by ADTs half of what I mean is probably even just "enums that arent shit"
2021-01-08 23:46:18 +0100ph88(~ph88@2a02:8109:9e00:7e5c:4c51:83e:647e:c991)
2021-01-08 23:46:26 +0100 <monochrom> Let me see if I can probe your boundary.
2021-01-08 23:46:38 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds)
2021-01-08 23:46:38 +0100 <pie_> hm I guess you actually have to put the union's tag in the struct, which seems a little funky
2021-01-08 23:47:09 +0100 <ph88> does anyone know how to make instead of ['a'..] after z make it go to "aa" like excel ?
2021-01-08 23:47:13 +0100 <monochrom> Imagine I have a language that "does not have" sum types, but it has really good record/product types, and really good support for higher-order functions, maybe even rank-n functions.
2021-01-08 23:47:13 +0100eruditass(uid248673@gateway/web/irccloud.com/x-qhjyzbcwmhhifert) (Quit: Connection closed for inactivity)
2021-01-08 23:47:32 +0100 <pie_> Im not very gung-ho about my skills so my boundaries are probabyl fuzzy and clueless :P
2021-01-08 23:48:13 +0100 <pie_> I dont know my way around the rank N stuff
2021-01-08 23:48:14 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-01-08 23:48:48 +0100 <merijn> RankN stuff is ununderstandable, until you need it for something, then you go "ooooh!"
2021-01-08 23:48:50 +0100 <pie_> I need to find time to have another go at isov*ctors book at some point...
2021-01-08 23:49:15 +0100 <merijn> pie_: See also https://gist.github.com/merijn/77e3fa9757658e59b01d
2021-01-08 23:49:29 +0100 <pie_> my intervals between using things are way too long and i forget :I
2021-01-08 23:51:08 +0100 <pie_> merijn: surely there's more to it than putting foralls in the right place?
2021-01-08 23:51:28 +0100 <merijn> pie_: It's not about "putting foralls in the right place"
2021-01-08 23:51:37 +0100 <pie_> if rank2 has anything to do with rankn, wouldnt rank2 be enough
2021-01-08 23:51:49 +0100 <merijn> It's about *who* gets to decide what type is used for type variables
2021-01-08 23:52:04 +0100pie_looks harder
2021-01-08 23:52:04 +0100 <merijn> pie_: You know how every haskell function has an implicit forall?
2021-01-08 23:52:10 +0100 <pie_> yeah vaguely
2021-01-08 23:52:17 +0100 <merijn> i.e. "id :: forall a . a -> a"
2021-01-08 23:52:29 +0100 <merijn> the rank just refers to "how much do you nest"
2021-01-08 23:52:40 +0100 <pie_> all the type variables get a top level forall right?
2021-01-08 23:52:46 +0100 <pie_> righ tthat
2021-01-08 23:53:04 +0100 <merijn> "forall x . (forall a . a -> a) -> Foo x -> Foo x" is Rank2, another nesting is rank 3, etc.
2021-01-08 23:53:20 +0100 <merijn> So RankN is just generalised Rank2
2021-01-08 23:53:28 +0100eyenx(~eyenxeyen@unaffiliated/eye/x-1653358) (Remote host closed the connection)
2021-01-08 23:53:49 +0100 <pie_> ok
2021-01-08 23:53:50 +0100eyenx(~eyenxeyen@unaffiliated/eye/x-1653358)
2021-01-08 23:54:02 +0100 <merijn> pie_: Note that the reason you need the Rank2 type in my gist is because the "mangle" function (internally) gets to pick whether you call the function on Int or on Double
2021-01-08 23:54:45 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2021-01-08 23:54:45 +0100 <merijn> Whereas with the non-Rank2 version the *user* of "mangle" gets to pick what type is used. i.e. without rank2 passing "Int -> Int" is valid, because Int is an instance of Num, but that's not what you need
2021-01-08 23:55:05 +0100 <merijn> What you need isn't a function that works *a* instance of Num. You need a function that works on *all* instances of Num
2021-01-08 23:58:47 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-01-08 23:59:07 +0100 <monochrom> So my language doesn't allow "data X = C1 Int | C2 Bool", but it allows "data XE = forall r. {c1 :: Int -> r, c2 :: Bool -> r}". Or maybe "data XE r = {c1 :: Int -> r, c2 :: Bool -> r}" if rank-n is not supported.
2021-01-08 23:59:56 +0100 <monochrom> err no.