Home liberachat/#haskell: Logs Calendar

Logs on 2022-08-14 (liberachat/#haskell)

00:00:48 <darkling> It was one of the design goals of my meta-assembler that it would support things like 9- or 18-bit bytes.
00:01:19 <darkling> I had plenty of other fish to fry in getting the Z80N stuff working first, but at least I know where it was trying to go. :)
00:04:19 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
00:10:35 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
00:11:17 × liz quits (~liz@host86-157-124-38.range86-157.btcentralplus.com) (Quit: Lost terminal)
00:12:00 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:12:20 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
00:18:02 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
00:18:15 × Batzy_ quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
00:18:48 Batzy joins (~quassel@user/batzy)
00:20:53 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
00:21:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
00:22:06 Pickchea joins (~private@user/pickchea)
00:22:07 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
00:24:33 luffy joins (~chenqisu1@183.217.201.23)
00:27:43 Maxdamantus joins (~Maxdamant@user/maxdamantus)
00:32:08 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
00:33:32 × E23[m] quits (~mkomlofsk@2001:470:69fc:105::2:4224) (Quit: User was banned)
00:36:50 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:37:44 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
00:38:08 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:38:19 × Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds)
00:43:25 matthewmosior joins (~matthewmo@173.170.253.91)
00:45:39 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
00:50:10 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
00:51:22 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Read error: Connection reset by peer)
01:02:12 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
01:04:10 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
01:04:34 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
01:06:42 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
01:09:50 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
01:10:19 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:11:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
01:11:44 × ryantrinkle quits (~ryan@2607:f00:3:14c0:7c6b:7160:d1ff:3f7) (Ping timeout: 255 seconds)
01:16:26 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:20:34 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
01:23:21 ryantrinkle joins (~ryan@209.91.209.121)
01:24:47 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
01:43:35 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:43:35 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:43:36 wroathe joins (~wroathe@user/wroathe)
01:45:21 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
01:46:36 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:47:31 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
01:52:43 matthewmosior joins (~matthewmo@173.170.253.91)
01:53:00 Feuermagier joins (~Feuermagi@user/feuermagier)
01:53:54 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
01:58:00 nilradical joins (~nilradica@user/naso)
01:58:22 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
02:07:02 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
02:07:19 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
02:09:13 Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.253)
02:12:29 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:12:29 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:12:29 finn_elija is now known as FinnElija
02:21:33 <Bulby[m]> is vector what you use for random access containers
02:28:51 × td_ quits (~td@muedsl-82-207-238-051.citykom.de) (Ping timeout: 268 seconds)
02:30:35 td_ joins (~td@94.134.91.250)
02:31:26 <Bulby[m]> mood
02:33:32 kavvadias joins (~kavvadias@2001:9e8:630d:e200:2032:f506:e11d:b38d)
02:34:15 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
02:35:29 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
02:36:52 <kavvadias> hello everyone im having some problems with trying to print a list of tuples on a terminal game im trying to do, is anyone able to help out a bit?
02:37:04 <kavvadias> where im struggling looks like that
02:37:41 <kavvadias>  let aliens (a:as) = lift . lift $ setCursorPosition a >>= putChar '@' >>= aliens a
02:38:19 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
02:39:44 <kavvadias> also the github is here https://github.com/Astodialo/space_inv
02:45:50 <ski> what's the problem ?
02:46:24 <kavvadias> well im lost in types tbh
02:46:29 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
02:46:41 <ski> type error(s) ?
02:46:47 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:46:54 <kavvadias> yes
02:47:00 <ski> specifically ?
02:47:55 <ski> (should `randomRIO (0, mCol)' be `randomRIO (0,mCol - 1)' ?)
02:49:12 <kavvadias> yes
02:49:16 <kavvadias> thanks
02:49:59 <ski> i'm still missing the type error messages
02:50:40 <kavvadias> Couldn't match expected type ‘IO () -> Int -> a’
02:50:40 <kavvadias>                   with actual type ‘IO ()’
02:51:04 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
02:51:42 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 264 seconds)
02:51:43 <ski> however, `aliens' does look incorrect. `lift . lift $ setCursorPosition a' probably would be better as `(lift . lift) (setCursorPosition a)' (because `foo $ blah >>= bleh' is read as `foo $ (blah >>= bleh)', rather than `(foo $ blah) >>= bleh')
02:52:15 <ski> also, `... >>= aliens a' presumably ought to be `... >>= aliens as'
02:52:37 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:52:46 <ski> also, `>>=' looks like you meant to say `>>' (or you could use `do'-notation)
02:53:00 <c_wraith> I'm getting the feeling the whole thing should be a mapM_
02:53:11 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
02:53:15 <ski> (and there's no base case)
02:55:29 <ski> if you make a `newtype' for `ReaderT Config (StateT Game IO)', and derive `Functor',`Applicative',`Monad',`MonadReader Config',`MonadState Game',`MonadIO', you could use `liftIO' rather than `lift . lift'. and if you decide you need another layer, you don't need to change (again) the type signatures of `play' and `renderGame'
02:57:19 <kavvadias> would the base case return () ?
02:57:41 <ski> i don't know. depends on what you want `aliens' to do ?
02:58:31 <ski> (and in such a case, c_wraith's suggestion would be appropriate)
02:59:03 <ski> oh, you're also shadowing the earlier `aliens' by the function definition
02:59:35 <ski> is `N' only used initially ?
02:59:38 <kavvadias> have never used mapM
02:59:44 <kavvadias> ill read up on it
03:00:09 <ski> try something like `mapM_ print [2,3,5,7]'
03:00:31 <energizer> in python if mymod.py does `from collections import *` then the mymod.OrderedDict binding is created. is the same true in haskell?
03:00:51 <ski> or `forM_ [2,3,5,7] $ \n -> do print n'
03:01:48 <ski> `OrderedDict' being what, in the Haskell case ?
03:02:40 <energizer> ski: just some name in the collections module.
03:02:46 <energizer> i'm asking about scope rules
03:03:55 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:04:33 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:05:29 <Bulby[m]> writing haskell makes me miss langs that have braces lol
03:05:55 <energizer> like, is import the same as assigning here.name = there.name, or is there something else going on
03:06:50 <c_wraith> there's something else going on, in that importing the same name unqualified from multiple modules isn't an error unless you try to use that name.
03:07:21 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
03:07:23 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
03:07:32 <ski> energizer : if you do `import Collections' and `Collections' exports `OrderedDict', then `OrderedDict' is in scope inside `MyMod.hs', but is not exported from it. you could put `foo' in the export list of `MyMod', though
03:07:44 <DigitalKiwi> i thought you can use braces
03:07:48 <ski> Bulby[m] : you know you can use braces and semicolons in Haskell too, right ?
03:07:53 <Bulby[m]> you can technically
03:08:12 nilradical joins (~nilradica@user/naso)
03:08:16 <DigitalKiwi> iirc spj style uses them
03:09:19 <Bulby[m]> > Haskell can be written using braces and semi-
03:09:20 <Bulby[m]> colons, just like C.
03:09:20 <Bulby[m]> lol
03:09:21 <lambdabot> <hint>:1:46: error:
03:09:21 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
03:09:24 <energizer> thanks c_wraith ski
03:09:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
03:09:27 <Bulby[m]> > However, no one does.
03:09:29 <lambdabot> <hint>:1:8: error: parse error on input ‘,’
03:09:38 <Bulby[m]> oh
03:14:24 sympt joins (~sympt@user/sympt)
03:16:51 nate4 joins (~nate@98.45.169.16)
03:17:55 <Bulby[m]> it complains when I try to use a brace
03:17:56 <Bulby[m]> oh
03:17:56 <Bulby[m]> nvm
03:18:12 × _xor quits (~xor@74.215.182.83) (Quit: WeeChat 3.0)
03:19:13 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
03:20:32 × etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss)
03:21:17 etoast joins (~exaltedto@user/exaltedtoast)
03:22:43 <kavvadias> well hello again, tried to use mapM_ and came up with something like this
03:22:45 <kavvadias> lift . lift $ mapM_ setCursorPosition >>= putChar '@' aliens
03:23:08 <kavvadias> it still dont work
03:23:19 <kavvadias> Couldn't match expected type ‘Aliens -> a0 -> IO a1’
03:23:20 <kavvadias>                   with actual type ‘IO ()’
03:23:52 <kavvadias> would i have to lift mapM_ ?
03:25:32 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
03:28:55 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
03:35:03 <ski> kavvadias : you still should not use `$' like that
03:35:20 <ski> (in my mind, you shouldn't use `$' at all, mostly)
03:35:44 <ski> and you should pass two parameters to `mapM_'
03:36:03 <ski> (did you check its type signature ?)
03:37:02 <kavvadias> to be honest right now im kind of trying everything because my head is gone
03:37:08 <kavvadias> mapM_ setCursorPosition aliens
03:37:16 <ski> (you seem to be using `>>=' without no clear understanding what it's doing, or how it's meant to be called. perhaps you should stick with `do', for now ?)
03:37:50 <ski> forM_ aliens \alien -> do
03:37:56 <ski> setCursorPosition alien
03:38:05 <ski> liftIO (putChar '@')
03:38:42 <ski> well, you need `.. aliens $ \alien -> do ..', if you don't enable `BlockArguments'
03:41:42 × kimjetwav quits (~user@2607:fea8:235e:b600:10e5:8f0a:fe7a:2725) (Quit: sigh, reboot time)
03:41:45 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
03:44:14 <kavvadias> instead of $ then use (), okay i was thinking that it was basically a substitute for it
03:44:30 <Bulby[m]> old versions of minecraft use unaligned bytereads
03:44:31 <Bulby[m]> why
03:45:48 <kavvadias> still getting a type error
03:45:49 <kavvadias> Couldn't match expected type ‘ReaderT Config (StateT Game IO) a0’
03:45:49 <kavvadias>                   with actual type ‘Int -> IO ()’
03:46:22 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
03:47:59 <ski> kavvadias : for the most part, i'd be happy with `$' being purged (at least given `BlockArguments')
03:48:30 <ski> kavvadias : and you forgot to provide the current code which is being flagged for that error
03:48:53 <kavvadias> Couldn't match expected type ‘ReaderT Config (StateT Game IO) a0’
03:48:53 <kavvadias>                   with actual type ‘Int -> IO ()’
03:49:15 <kavvadias> oh wait, sorry
03:49:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
03:49:41 <kavvadias> Probable cause: ‘setCursorPosition’ is applied to too few arguments
03:49:42 <kavvadias>       In a stmt of a 'do' block: setCursorPosition alien
03:49:42 <kavvadias>       In the expression:
03:49:43 <kavvadias>         do setCursorPosition alien
03:49:43 <kavvadias>            liftIO (putChar '@')
03:49:44 <kavvadias>       In the second argument of ‘($)’, namely
03:49:44 <kavvadias>         ‘\ alien
03:49:45 <kavvadias>            -> do setCursorPosition alien
03:49:45 <kavvadias>                  liftIO (putChar '@')’
03:49:46 <kavvadias>    |
03:49:46 <kavvadias> 60 | setCursorPosition alien
03:50:22 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:51:02 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
03:51:59 <ski> well, what's the signature of `System.Console.ANSI.setCursorPosition' ? maybe it does want another argument ?
03:52:19 <ski> (oh, and it probably also needs to be `liftIO'ed)
03:54:27 <kavvadias> its Int -> Int -> IO ()
03:54:52 <ski> there you go
03:55:07 etoast joins (~exaltedto@user/exaltedtoast)
03:55:41 × kitty4 quits (~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 252 seconds)
03:55:42 <kavvadias> alien is a list of tuples tho
03:55:55 <ski> so use `\(row,col) -> do setCursorPosition row col; ...' (or maybe the other way around, depending on how `setCursorPosition' wants it)
03:55:58 kitty4 joins (~kitty@096-039-147-043.res.spectrum.com)
03:56:08 <kavvadias> oh ok
03:56:35 <ski> (and probably best to move the `liftIO' outside of the `forM_')
03:56:56 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
03:59:36 <kavvadias>  liftIO forM_ aliens \(row, col) -> do
03:59:37 <kavvadias>     setCursorPosition row col
03:59:37 <kavvadias>     putChar '@'
03:59:57 <kavvadias> Couldn't match expected type ‘IO
03:59:58 <kavvadias>                                       (((Int, Int) -> IO ()) -> ReaderT Config (StateT Game IO) a1)’
03:59:58 <kavvadias>                   with actual type ‘t0 a0 -> (a0 -> m0 b0) -> m0 ()’
03:59:59 <kavvadias>     • Probable cause: ‘forM_’ is applied to too few arguments
03:59:59 <kavvadias>       In the first argument of ‘liftIO’, namely ‘forM_’
04:00:00 <kavvadias>       In the expression: liftIO forM_ aliens
04:00:00 <kavvadias>       In a stmt of a 'do' block:
04:00:01 <kavvadias>         liftIO forM_ aliens
04:00:01 <kavvadias>           $ \ (row, col)
04:00:02 <kavvadias>               -> do setCursorPosition row col
04:00:02 <kavvadias>                     putChar '@'
04:00:03 <kavvadias>    |
04:00:03 <kavvadias> 60 | liftIO forM_ aliens $ \(row, col) -> do
04:00:04 <kavvadias>    | ^^^^^
04:00:21 <kavvadias> ive put BLockArguments btw
04:00:48 etoast joins (~exaltedto@user/exaltedtoast)
04:00:49 <kavvadias> oh i forgot the $ in there
04:01:02 <kavvadias> oh no i didnt
04:01:08 <kavvadias> :w
04:01:58 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
04:02:57 <ski> (liftIO . forM_ aliens) \(row,col) -> do ...
04:03:04 × Typedfern quits (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
04:03:04 etoast joins (~exaltedto@user/exaltedtoast)
04:03:09 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
04:03:25 etoast joins (~exaltedto@user/exaltedtoast)
04:03:30 <ski> (or `liftIO (forM_ aliens \(row,col) -> do ...)')
04:05:34 <DigitalKiwi> you forgot to use a pastebin is what you did
04:06:29 <kavvadias> im forgetting how to function aswell so long im on this :)
04:06:34 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
04:06:47 <kavvadias> but yeah, sorry about that
04:08:32 Typedfern joins (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net)
04:08:40 etoast joins (~exaltedto@user/exaltedtoast)
04:10:19 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
04:10:23 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
04:10:49 ChaiTRex joins (~ChaiTRex@user/chaitrex)
04:10:59 <Bulby[m]> k, I have a list of tuples that hold an index for items to be placed and a list of those items
04:11:08 <Bulby[m]> is there a neat way of assembling the overall list
04:11:40 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds)
04:11:54 <Bulby[m]> it's fairly large
04:12:13 <kavvadias> im still getting type errors https://pastebin.com/Z6JqBJDA
04:13:48 × nattiestnate quits (~nate@180.243.14.16) (Quit: WeeChat 3.6)
04:16:42 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
04:16:52 <ski> kavvadias : insert `_getAliens' somewhere
04:17:19 <ski> Bulby[m] : that's rather vague
04:17:26 <Bulby[m]> true
04:17:59 <Bulby[m]> trying to connect up this https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Chunk.java#L307 without using mutable data
04:18:59 <Bulby[m]> i got to a `[(Int, [BlockData])]`
04:20:15 <ski> if you have say input `[(2,"abc"),(8,"de")]', what output are you looking for ?
04:20:30 <ski> (or maybe you'll be able to come up with a better example yourself)
04:21:08 <Bulby[m]> with some default value `"_"` `"__abc___de"`
04:21:29 × Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.253) (Quit: Leaving)
04:21:35 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds)
04:21:48 <ski> and in case of overlap ?
04:22:13 <Bulby[m]> i'm not sure the data will allow that, but if it does i guess the later one wins
04:22:24 <kavvadias> getting this type error https://pastebin.com/ggDW2i66
04:22:34 <ski> and you have a fixed size you want ?
04:22:43 <Bulby[m]> 4096
04:22:45 <Bulby[m]> yes
04:22:53 <Bulby[m]> for each segment
04:22:55 <Bulby[m]> not overall
04:23:26 <ski> kavvadias : no, don't replace `aliens' by `_getAliens'. *use* `_getAliens' to extract the `[Point]' from the `Aliens'
04:24:13 <ski> @type (//) -- might be useful, in case you use `Array's
04:24:15 <lambdabot> Ix i => Array i e -> [(i, e)] -> Array i e
04:24:16 × etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss)
04:24:32 matthewmosior joins (~matthewmo@173.170.253.91)
04:24:48 etoast joins (~exaltedto@user/exaltedtoast)
04:26:06 <ski> > elems (listArray (0,9) (replicate 10 '_') // zip [2 ..] "abc" // zip [8 ..] "de")
04:26:07 <lambdabot> "__abc___de"
04:26:40 <Bulby[m]> what
04:26:44 <ski> (well, better to just use `//' once)
04:26:46 <Bulby[m]> that's odd
04:27:24 <Bulby[m]> i feel like if this data has no defaults that implies that either 1. java is using nulls again or 2. the data is fully contiguous
04:27:27 <Bulby[m]> i hope it's the former
04:28:02 ski didn't look too closely at the Java
04:28:03 <Bulby[m]> no
04:28:05 <Bulby[m]> latter
04:28:12 × myme1 quits (~myme@2a01:799:d5a:cd00:e0d6:bd5d:e9e6:2667) (Ping timeout: 244 seconds)
04:28:14 <Bulby[m]> but it's the former ☹️
04:28:24 <ski> which is it ?
04:28:27 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
04:28:34 <Bulby[m]> that java is using nulls
04:28:45 <Bulby[m]> i already made the thing storing it a list of maybe
04:28:55 <Bulby[m]> so I can transform this into a maybe list and zip from there
04:29:31 myme1 joins (~myme@2a01:799:d5a:cd00:24c9:1211:1023:461b)
04:29:37 king_gs joins (~Thunderbi@2806:103e:29:da7a:d5d4:589a:91e6:9b54)
04:30:10 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:30:10 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:30:10 wroathe joins (~wroathe@user/wroathe)
04:30:27 etoast joins (~exaltedto@user/exaltedtoast)
04:32:25 <kavvadias> ski sorry but i really dont get it right now, my brain is a compost
04:34:32 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
04:34:48 <ski> kavvadias : currently, `aliens' is an `Aliens', not a `[Point]', so you can't pass it to `forM_'. either insert `_getAliens' in the definition of `aliens', or around the use of it
04:35:07 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds)
04:37:14 × etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss)
04:37:34 etoast joins (~exaltedto@user/exaltedtoast)
04:39:24 <kavvadias> ski thank you so much for your help <3
04:41:09 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
04:48:04 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
04:48:11 cynomys joins (~cynomys@user/cynomys)
04:48:22 × cynomys quits (~cynomys@user/cynomys) (Client Quit)
04:48:50 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
04:51:43 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:52:49 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Quit: brb)
04:53:00 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
04:57:55 Maxdamantus joins (~Maxdamant@user/maxdamantus)
05:00:04 etoast joins (~exaltedto@user/exaltedtoast)
05:00:54 nate4 joins (~nate@98.45.169.16)
05:04:08 × king_gs quits (~Thunderbi@2806:103e:29:da7a:d5d4:589a:91e6:9b54) (Ping timeout: 268 seconds)
05:07:03 <Bulby[m]> https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Chunk.java#L399-L411
05:07:04 <Bulby[m]> wtf
05:12:03 × kavvadias quits (~kavvadias@2001:9e8:630d:e200:2032:f506:e11d:b38d) (Quit: Client closed)
05:13:21 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
05:19:08 tomgus1_ joins (~tomgus1@bcdc7f39.skybroadband.com)
05:19:13 × tomgus1 quits (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3) (Read error: Connection reset by peer)
05:19:34 tomgus1_ is now known as tomgus1
05:28:39 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
05:32:04 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
05:34:34 mbuf joins (~Shakthi@122.165.55.71)
05:35:00 Pickchea joins (~private@user/pickchea)
05:37:54 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
05:38:23 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
05:41:07 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
05:41:10 matthewmosior joins (~matthewmo@173.170.253.91)
05:41:43 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
05:42:11 hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
05:55:35 × zebrag quits (~chris@user/zebrag) (Remote host closed the connection)
05:58:06 × obabo quits (~obabo@20014C4C1C5409000000000000001000.catv.pool.telekom.hu) (Quit: WeeChat 3.6)
05:58:35 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
05:59:00 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
05:59:09 gmg joins (~user@user/gehmehgeh)
06:06:04 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
06:07:28 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:07:37 × etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss)
06:07:48 etoast joins (~exaltedto@user/exaltedtoast)
06:08:33 acidjnk joins (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de)
06:09:01 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6)
06:09:53 × etoast quits (~exaltedto@user/exaltedtoast) (Client Quit)
06:10:03 etoast joins (~exaltedto@user/exaltedtoast)
06:10:43 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
06:11:32 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
06:12:27 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
06:13:39 Sgeo joins (~Sgeo@user/sgeo)
06:17:45 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
06:24:28 coot joins (~coot@213.134.176.158)
06:25:55 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
06:26:35 gaff joins (~gaff@49.207.204.135)
06:26:40 × gaff quits (~gaff@49.207.204.135) (Client Quit)
06:29:54 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
06:30:10 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:39:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:45:14 chomwitt joins (~chomwitt@2a02:587:dc15:5e00:4394:5e3a:258b:d8da)
06:45:38 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
06:47:51 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
06:48:34 king_gs joins (~Thunderbi@2806:103e:29:da7a:8e16:45ff:feeb:cfcf)
06:48:46 nilradical joins (~nilradica@user/naso)
06:50:10 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:51:29 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
06:52:05 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:55:07 kenran joins (~kenran@200116b82b3c10003fa4637885f3f4a2.dip.versatel-1u1.de)
06:55:52 × kenran quits (~kenran@200116b82b3c10003fa4637885f3f4a2.dip.versatel-1u1.de) (Client Quit)
06:59:13 matthewmosior joins (~matthewmo@173.170.253.91)
07:00:09 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
07:00:54 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
07:01:53 gmg joins (~user@user/gehmehgeh)
07:02:18 hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
07:04:47 × nilradical quits (~nilradica@user/naso) ()
07:06:03 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
07:07:19 × jargon quits (~jargon@184.101.168.117) (Remote host closed the connection)
07:09:09 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
07:09:45 vysn joins (~vysn@user/vysn)
07:11:11 Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi)
07:12:38 gmg joins (~user@user/gehmehgeh)
07:13:01 × king_gs quits (~Thunderbi@2806:103e:29:da7a:8e16:45ff:feeb:cfcf) (Ping timeout: 268 seconds)
07:13:14 × coot quits (~coot@213.134.176.158) (Quit: coot)
07:14:53 × ec quits (~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer)
07:14:53 × gmg quits (~user@user/gehmehgeh) (Write error: Connection reset by peer)
07:15:35 gmg joins (~user@user/gehmehgeh)
07:15:57 ec joins (~ec@gateway/tor-sasl/ec)
07:18:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:19:28 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:19:55 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 252 seconds)
07:21:17 vglfr joins (~vglfr@145.224.94.75)
07:25:25 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 244 seconds)
07:26:19 vglfr joins (~vglfr@93.170.4.33)
07:30:54 × sander quits (~sander@user/sander) (Ping timeout: 268 seconds)
07:31:52 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
07:34:53 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
07:34:57 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 252 seconds)
07:36:24 vglfr joins (~vglfr@93.170.4.33)
07:39:22 sander joins (~sander@user/sander)
07:45:25 jargon joins (~jargon@184.101.168.117)
07:46:18 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
07:46:54 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
07:47:15 vglfr joins (~vglfr@93.170.4.33)
07:47:35 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:54:18 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
07:57:52 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:58:17 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
07:58:18 × califax quits (~califax@user/califx) (Read error: Connection reset by peer)
07:58:18 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
07:58:18 × ec quits (~ec@gateway/tor-sasl/ec) (Read error: Connection reset by peer)
07:58:51 ChaiTRex joins (~ChaiTRex@user/chaitrex)
07:58:52 × Vajb quits (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
07:58:54 jpds joins (~jpds@gateway/tor-sasl/jpds)
07:58:57 ec joins (~ec@gateway/tor-sasl/ec)
07:59:35 Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
07:59:39 califax joins (~califax@user/califx)
08:01:44 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
08:04:09 vglfr joins (~vglfr@93.170.4.33)
08:04:20 zxx7529 joins (~Thunderbi@user/zxx7529)
08:07:20 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
08:07:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
08:09:15 jpds joins (~jpds@gateway/tor-sasl/jpds)
08:10:31 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 252 seconds)
08:11:55 vglfr joins (~vglfr@93.170.4.33)
08:16:23 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 252 seconds)
08:16:48 vglfr joins (~vglfr@93.170.4.33)
08:18:17 coot joins (~coot@213.134.176.158)
08:23:26 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
08:23:55 califax joins (~califax@user/califx)
08:27:32 causal joins (~user@50.35.83.177)
08:28:51 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
08:28:59 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
08:29:48 vglfr joins (~vglfr@93.170.4.33)
08:30:05 × sander quits (~sander@user/sander) (Quit: So long! :))
08:31:47 × zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 252 seconds)
08:34:29 zaquest joins (~notzaques@5.130.79.72)
08:37:20 matthewmosior joins (~matthewmo@173.170.253.91)
08:37:35 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:39:19 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
08:39:33 vglfr joins (~vglfr@93.170.4.33)
08:41:05 nattiestnate joins (~nate@180.243.14.16)
08:41:10 sander joins (~sander@user/sander)
08:43:18 × acidjnk quits (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
08:44:15 × vglfr quits (~vglfr@93.170.4.33) (Ping timeout: 268 seconds)
08:44:46 vglfr joins (~vglfr@145.224.94.75)
08:45:40 kenran joins (~kenran@200116b82b3c1000ed052833c39b3b7b.dip.versatel-1u1.de)
08:45:57 × kenran quits (~kenran@200116b82b3c1000ed052833c39b3b7b.dip.versatel-1u1.de) (Client Quit)
08:46:21 luffy joins (~chenqisu1@183.217.201.23)
08:48:10 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:52:53 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
09:11:01 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
09:11:28 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
09:12:42 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:13:48 stiell joins (~stiell@gateway/tor-sasl/stiell)
09:23:13 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
09:27:52 × zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 244 seconds)
09:30:26 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:38:17 benin0 joins (~benin@183.82.206.125)
09:40:04 nate4 joins (~nate@98.45.169.16)
09:41:49 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
09:44:45 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
09:47:06 ddellaco1 joins (~ddellacos@89.45.90.27)
09:52:05 × ddellaco1 quits (~ddellacos@89.45.90.27) (Ping timeout: 268 seconds)
09:53:26 ddellaco1 joins (~ddellacos@89.45.90.118)
09:54:06 × vysn quits (~vysn@user/vysn) (Ping timeout: 264 seconds)
09:54:11 matthewmosior joins (~matthewmo@173.170.253.91)
09:58:00 yvan-sraka joins (~yvan-srak@105.67.7.32)
09:59:05 × coot quits (~coot@213.134.176.158) (Quit: coot)
09:59:34 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
10:01:22 jpds joins (~jpds@gateway/tor-sasl/jpds)
10:02:33 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
10:03:24 ec joins (~ec@gateway/tor-sasl/ec)
10:06:46 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:07:44 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:09:46 img joins (~img@user/img)
10:10:18 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
10:14:44 perdent joins (~perdent@124.188.233.11)
10:15:40 nilradical joins (~nilradica@user/naso)
10:17:49 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:20:34 × martin02 quits (~silas@141.84.69.76) (Ping timeout: 244 seconds)
10:20:42 img joins (~img@user/img)
10:21:06 × Jonno_FTW quits (~come@user/jonno-ftw/x-0835346) (Ping timeout: 268 seconds)
10:21:22 MajorBiscuit joins (~MajorBisc@46-229-126.internethome.cytanet.com.cy)
10:24:46 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:25:10 Jonno_FTW joins (~come@api.carswap.me)
10:25:10 × Jonno_FTW quits (~come@api.carswap.me) (Changing host)
10:25:10 Jonno_FTW joins (~come@user/jonno-ftw/x-0835346)
10:26:15 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 244 seconds)
10:27:03 × Jonno_FTW quits (~come@user/jonno-ftw/x-0835346) (Remote host closed the connection)
10:29:07 Jonno_FTW joins (~come@user/jonno-ftw/x-0835346)
10:30:58 × nattiestnate quits (~nate@180.243.14.16) (Quit: WeeChat 3.6)
10:31:42 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
10:33:04 nate4 joins (~nate@98.45.169.16)
10:34:19 martin02 joins (~silas@141.84.69.76)
10:36:05 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
10:38:20 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
10:43:16 × yvan-sraka quits (~yvan-srak@105.67.7.32) (Remote host closed the connection)
10:53:59 × pt_owl quits (~noone@p200300e277470aa2231dde224d8a36df.dip0.t-ipconnect.de) (Remote host closed the connection)
10:54:17 pt_owl joins (~noone@p200300e277470a30a3f9c068e1d96a44.dip0.t-ipconnect.de)
11:00:34 coot joins (~coot@213.134.176.158)
11:01:09 × MajorBiscuit quits (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Ping timeout: 268 seconds)
11:01:51 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
11:10:46 stiell joins (~stiell@gateway/tor-sasl/stiell)
11:10:54 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
11:17:12 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6)
11:17:13 × Jonno_FTW quits (~come@user/jonno-ftw/x-0835346) (Ping timeout: 268 seconds)
11:17:38 Jonno_FTW joins (~come@api.carswap.me)
11:17:38 × Jonno_FTW quits (~come@api.carswap.me) (Changing host)
11:17:38 Jonno_FTW joins (~come@user/jonno-ftw/x-0835346)
11:17:41 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
11:26:42 zxx7529 joins (~Thunderbi@user/zxx7529)
11:29:04 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
11:29:13 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
11:30:10 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Ping timeout: 268 seconds)
11:32:36 × nilradical quits (~nilradica@user/naso) ()
11:36:16 <carbolymer> can I distinguish on a type level between `a -> f b` and `a -> b -> f c` where `f` is a Functor? I feel that I don't because `(->) b` is a functor too...
11:36:30 <carbolymer> s/don't/can't/
11:38:04 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:39:37 <[exa]> carbolymer: if you'd want to substitute into `a -> f b` so that you get `x -> y -> g z`, you'd need to substitute `g z` for `b` if you'd instantiate `f` as functor `(->) y`... which would probably require another functor constraint there
11:41:18 <[exa]> still I don't really think these two would unify very easily
11:42:28 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
11:44:31 <ski> @type let foo :: a -> f b; bar :: x -> y -> g z; (foo,bar) = undefined in [foo,bar]
11:44:32 <lambdabot> forall k a y (g :: k -> *) (z :: k). [a -> y -> g z]
11:45:14 <ski> carbolymer : you probably need to detail more how/where you're trying to distinguish
11:47:14 <[exa]> oh wow it even unifies nicer with the actual Functor constraints
11:47:31 <ski> hm ?
11:47:58 <[exa]> @type let foo :: Functor f => a -> f b; bar :: Functor g => x -> y -> g z; (foo,bar) = undefined in [foo,bar]
11:47:59 <lambdabot> Functor g => [a -> y -> g z]
11:48:35 <ski> (what does the `Functor' constraints have to do with it ?)
11:48:55 <ski> looks the same to me (except for some reason the `forall' was implicit now)
11:49:10 <[exa]> well not much, but it was in the original question and I somehow thought it would get in the way
11:49:27 <[exa]> cool.
11:52:05 vglfr joins (~vglfr@145.224.94.75)
11:54:40 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
11:55:22 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
11:55:35 <carbolymer> [exa]: yeah so that's kind-of my point, that I think it's impossible (?)
11:55:36 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
11:55:47 <carbolymer> ski: lemme produce minimal example of my problem
11:55:58 vysn joins (~vysn@user/vysn)
11:57:43 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
11:59:44 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
12:00:50 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
12:02:45 yvan-sraka joins (~yvan-srak@105.67.7.32)
12:03:42 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
12:05:53 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
12:07:23 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
12:11:38 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
12:12:19 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
12:12:43 <carbolymer> ok, here's an example of my problem: https://bpa.st/GSVA - so basically, `r -> a -> m b` seems to capture `r -> a -> b -> m c` too and everything breaks
12:12:48 <carbolymer> ski: ^
12:13:27 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds)
12:13:36 × Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
12:14:15 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
12:14:54 Vajb joins (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
12:15:14 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:17:04 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
12:18:10 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
12:19:55 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
12:20:28 matthewmosior joins (~matthewmo@173.170.253.91)
12:21:22 <ski> this looks confusing, to me
12:21:29 acidjnk joins (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de)
12:21:53 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
12:22:27 gehmehgeh joins (~user@user/gehmehgeh)
12:22:27 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:23:03 × m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Client Quit)
12:23:21 <ski> i wonder if there's a reason why you don't just have `RdType2 (r -> a) = r' and `RetType2 (r -> m a) = m a' (or even `RetType2 (r -> a) = a')
12:24:29 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
12:26:00 <carbolymer> yeah, that RdType2 should be enough, but RetType2 ~ m a won't capture all cases for variable number of arguments
12:26:09 <carbolymer> and I would like to have access to m in `m a`
12:26:13 <carbolymer> to be able to `join` in the end
12:28:29 <carbolymer> the problem is that:
12:28:29 <carbolymer> `asks f1 :: MonadReader SomeEnv m, Functor f => m (Int -> String -> f ())`
12:28:29 <carbolymer> and getting to f isn't easy
12:30:28 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:30:50 Batzy joins (~quassel@user/batzy)
12:31:00 × perdent quits (~perdent@124.188.233.11) (Quit: Client closed)
12:31:19 <jackdk> is it `fmap . fmap . fmap`?
12:32:49 luffy joins (~chenqisu1@183.217.201.23)
12:38:44 × luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds)
12:39:33 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
12:40:36 × kraftwerk28 quits (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in)
12:44:07 m1dnight joins (~christoph@78-22-0-121.access.telenet.be)
12:49:45 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
12:49:46 kavvadias joins (~kavvadias@2001:9e8:630d:e200:c5c8:e88c:6eff:1a7e)
12:50:29 waldo joins (~waldo@user/waldo)
12:51:04 <kavvadias> hello , ifm trying to use mapSecond function but i get variable not in scope error, do i have to import something?
12:51:29 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:52:12 gehmehgeh joins (~user@user/gehmehgeh)
12:52:55 <[exa]> kavvadias: you may search for libraries that would provide it with hoogle, but since it doesn't seem standard at all I'd suggest just copying the definition from somewhere
12:53:25 <[exa]> such as here: https://hackage.haskell.org/package/haskell-gi-base-0.26.1/docs/src/Data.GI.Base.Utils.html#mapSecond
12:54:40 <kavvadias> ok thank you
12:55:23 <[exa]> yw :]
12:56:23 <carbolymer> jackdk: yeah but no
12:56:40 pzq-alex joins (~pzq-alex@211-22-180-9.hinet-ip.hinet.net)
12:56:55 × Typedfern quits (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (Remote host closed the connection)
12:57:55 Typedfern joins (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net)
12:59:42 mmhat joins (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de)
13:01:37 hippoid joins (~idris@d53-64-120-188.nap.wideopenwest.com)
13:05:15 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:06:40 perdent joins (~perdent@124.188.233.11)
13:08:26 orgonau joins (~nikola@77-46-243-191.dynamic.isp.telekom.rs)
13:09:43 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
13:13:54 nilradical joins (~nilradica@user/naso)
13:14:03 <qrpnxz> let's gooo https://hackage.haskell.org/package/base-4.17.0.0/changelog
13:14:06 <qrpnxz> i think this just came out
13:15:27 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
13:20:01 hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
13:20:22 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 244 seconds)
13:27:20 Milan joins (~Milan@46.245.109.131)
13:27:45 × Milan quits (~Milan@46.245.109.131) (Client Quit)
13:31:55 × coot quits (~coot@213.134.176.158) (Quit: coot)
13:33:58 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
13:34:21 <kavvadias> hello, im trying to apply - 1 to the second of a list of tuples in inside a state monad and having some type errors
13:34:22 <kavvadias> https://pastebin.com/CS0MR3Py
13:34:47 <kavvadias> some help would be appreciated, because im losing it
13:36:25 odnes joins (~odnes@109-178-179-120.pat.ren.cosmote.net)
13:37:56 <ski> kavvadias> :t (.=)
13:38:03 <ski> `moveAl' is a `map'
13:38:04 × hippoid quits (~idris@d53-64-120-188.nap.wideopenwest.com) (Quit: WeeChat 3.5)
13:38:23 <ski> did you mean `noaliens [] = return ()' ?
13:38:48 <ski> where is `aliens' coming from (and what's its type) ?
13:38:57 × odnes quits (~odnes@109-178-179-120.pat.ren.cosmote.net) (Read error: Connection reset by peer)
13:39:36 odnes joins (~odnes@109-178-179-120.pat.ren.cosmote.net)
13:39:44 <albet70> is there any simple article to introduce how to write a DSL or a simple language?
13:39:55 <ski> you have an unreachable defining equation in `noaliens' .. i suspect the first defining equation should not be part of the definition of `noaliens' (`x' and `xs' are unused in it)
13:41:15 <kavvadias> https://github.com/Astodialo/space_inv/blob/main/app/Main.hs
13:41:32 <kavvadias> i wanted a map for the second item of the tupple basically
13:42:45 <kavvadias> newtype Aliens = Aliens { _getAliens :: [Point] }
13:42:56 <ski> @type (map . second) (subtract 1) :: [Point] -> [Point]
13:42:58 <lambdabot> [Point] -> [Point]
13:43:34 <ski> i know about `Aliens' .. i was asking about `aliens', in the definition of `moveAliens'
13:43:55 × Typedfern quits (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (Remote host closed the connection)
13:44:09 <kavvadias> ahhh its a lense
13:44:20 <ski> ah, i just saw that myself, yes
13:44:49 Typedfern joins (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net)
13:46:47 <ski> it looks more to me like you'd like to do `aliens .= noaliens (game # aliens . getAliens)', or somesuch
13:47:07 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
13:47:19 <ski> hm, anyway, i don't think you want to use `do' in `noaliens' .. `:' seems more like what you wanted (?)
13:47:21 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:47:30 <kavvadias> how would i use @type (map . second) (subtract 1) :: [Point] -> [Point] btw thats kinf of new to me
13:47:35 odnes_ joins (~odnes@5-203-145-49.pat.nym.cosmote.net)
13:48:41 <ski> oh, actually, the `_getAliens' field is already a list of `Point's (not a list of list of `Point's .. so either traverse the list in `moveAl', or in `noaliens' .. but not both (since you have just one list level, not two)
13:48:59 <ski> )
13:50:07 × juri_ quits (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 268 seconds)
13:50:36 odnes__ joins (~odnes@109-178-147-112.pat.ren.cosmote.net)
13:50:40 <ski> aliens .= Aliens (moveAl (game # aliens . getAliens)) -- try this (removing `naliens') ?
13:50:44 × pt_owl quits (~noone@p200300e277470a30a3f9c068e1d96a44.dip0.t-ipconnect.de) (Quit: Leaving)
13:50:53 juri_ joins (~juri@84-19-175-179.pool.ovpn.com)
13:51:08 <ski> (also i just noticed i was misreading `naliens' as `noaliens' .. but it doesn't change what i said)
13:51:21 × odnes quits (~odnes@109-178-179-120.pat.ren.cosmote.net) (Ping timeout: 268 seconds)
13:51:58 <ski> moveAl xys = map (\(x,y) -> (x,y - 1)) xys
13:52:06 <ski> moveAl = map (\(x,y) -> (x,y - 1)) -- shorter
13:52:15 × odnes__ quits (~odnes@109-178-147-112.pat.ren.cosmote.net) (Remote host closed the connection)
13:52:35 odnes__ joins (~odnes@109-178-147-112.pat.ren.cosmote.net)
13:52:40 <ski> moveAl = map (second (subtract 1)) -- more abstracted (possibly less readable)
13:53:08 <ski> moveAl = (map . second) (subtract 1) -- slightly more abstracted
13:53:28 <ski> if you don't like the lambda, you could name it
13:53:43 <kavvadias> moveAliens :: (MonadState Game m) => m ()
13:53:43 <kavvadias> moveAliens = do
13:53:44 <kavvadias>   game <- get
13:53:44 <kavvadias>   aliens .= Aliens (moveAl (game # aliens . getAliens))
13:53:48 <ski> moveAl = map decrY
13:53:50 <ski> where
13:53:57 <ski> decrY (x,y) = (x,y - 1)
13:54:05 × odnes_ quits (~odnes@5-203-145-49.pat.nym.cosmote.net) (Ping timeout: 252 seconds)
13:54:14 <kavvadias> i get an error on get now, couldnt match type Game
13:54:14 <ski> kavvadias : does it pass the type-checker ?
13:55:04 <ski> kavvadias : expecting which type ?
13:55:36 × odnes__ quits (~odnes@109-178-147-112.pat.ren.cosmote.net) (Client Quit)
13:55:38 <kavvadias> https://pastebin.com/yD7P136H
13:56:25 × orgonau quits (~nikola@77-46-243-191.dynamic.isp.telekom.rs) (Quit: leaving)
13:59:02 son0p joins (~ff@181.136.122.143)
14:01:25 × dcoutts_ quits (~duncan@host86-153-135-25.range86-153.btcentralplus.com) (Ping timeout: 252 seconds)
14:01:52 <kavvadias> https://pastebin.com/CzMMwPpE this seems to work
14:01:59 <kavvadias> ski thanks for the help agtain
14:02:24 <ski> hm, i think i meant `^.' in place of `#'
14:04:10 <ski> but i think you ought to be able to say `aliens . getAliens .= moveAl naliens' (or `aliens . getAliens .= moveAl (game ^. aliens . getAliens)', if i recalled correctly)
14:05:36 <ski> or `aliens . getAliens %= moveAl' .. i think
14:06:11 <ski> kavvadias : try any of those ?
14:06:22 <kavvadias> give me a sec
14:07:10 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
14:07:14 <ski> (the middle one wouldn't need `naliens'. the last one wouldn't need `game' either)
14:07:56 nilradical joins (~nilradica@user/naso)
14:08:39 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:09:30 <ski> (`.=' is "set monadic state". `%=' is "update/modify monadic state" (with a function))
14:09:47 crazazy joins (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903)
14:12:35 <kavvadias> aliens . getAliens %= moveAl
14:12:46 <kavvadias> that one runs and thats really cool
14:13:33 <ski> and the other two ?
14:13:33 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
14:16:33 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:19:13 × pzq-alex quits (~pzq-alex@211-22-180-9.hinet-ip.hinet.net) (Quit: Client closed)
14:19:51 <kavvadias> i have to be in a class i can let you know in a couple hours
14:19:52 kraftwerk28 joins (~kraftwerk@178.62.210.83)
14:20:13 ski . o O ( class on a sunday )
14:22:25 <kavvadias> yeah
14:22:39 <kavvadias> the middle one works aswell
14:22:49 <ski> good
14:23:26 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:24:18 <kavvadias> first one works aswell
14:25:08 ski . o O ( those were short hours )
14:25:25 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
14:25:33 <ski> btw, there's also `gets', when you just want a part of the state
14:25:40 <ski> @type get
14:25:42 <lambdabot> MonadState s m => m s
14:25:42 <ski> @type gets
14:25:44 <lambdabot> MonadState s m => (s -> a) -> m a
14:26:12 <ski> (in your case, `naliens <- gets (_getAliens . _aliens)')
14:26:38 <ski> (and similarly there's `asks' for `ask')
14:27:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
14:28:35 <qrpnxz> upgrading GHC gave me a nice speed boost :)
14:29:59 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
14:31:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:31:18 <[exa]> albet70: haskell eDSLs are kinda implied by knowing how to write your own monad, then it should be moreless clear. By "simple language" you mean "a small interpreter" or so?
14:34:15 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
14:34:37 nate4 joins (~nate@98.45.169.16)
14:35:31 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
14:36:31 <albet70> [exa] , yes
14:36:58 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (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)
14:36:59 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
14:37:19 <[exa]> albet70: there is "write yourself a scheme" somewhere on githubs, that's a pretty nice resource
14:37:22 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
14:37:26 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
14:37:33 <albet70> ok
14:37:50 severen joins (~severen@202.36.179.72)
14:38:17 <[exa]> o it has a second version here https://wespiser.com/writings/wyas/00_overview.html
14:38:40 <[exa]> not sure about quality&quantity overload, but at least it links to the first one
14:39:00 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
14:39:00 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
14:39:00 wroathe joins (~wroathe@user/wroathe)
14:39:10 stiell joins (~stiell@gateway/tor-sasl/stiell)
14:40:06 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
14:40:49 <albet70> what's the whole procedure? read, parse, tokenize, eval?
14:41:40 × off^ quits (~off@206.85.120.17) (Remote host closed the connection)
14:42:06 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:42:50 <[exa]> 99% of the whole language implementation is 1] how to convert text into something interpretable (use a megaparsec tutorial) and 2] how to actually interpret it (in haskell you can get away with just StateT over IO in most cases, so a State tutorial will do) 3] resist the temptation and keep the language compact, to avoid a complexity explosion at some point that results in something that isn't finishable
14:44:36 <[exa]> re procedure, tokenization usually goes before parsing but you can quite successfully do both at once with parsecs
14:45:25 matthewmosior joins (~matthewmo@173.170.253.91)
14:45:36 <[exa]> if you want a REPL, have a look at `haskeline` library, that one's magic
14:46:55 <DigitalKiwi> i enjoyed the wespiser.com one when i did it
14:47:30 × waldo quits (~waldo@user/waldo) (Quit: quit)
14:47:53 <severen> Funny, I'm just lurking but that haskeline recommendation is quite helpful because I'm writing a lambda calculus interpreter atm
14:48:19 <DigitalKiwi> https://twitter.com/ArchKiwi/status/1259203512766017542
14:48:28 <severen> My megaparsec parser is nearly finished so I'm about to start thinking about the REPL/evaluation
14:48:50 <[exa]> \o/
14:49:50 <[exa]> `StateT TopLevelDefs (InputT IO)` and go :]
14:52:55 <ski> for Scheme you'd probably also need `ContT' in there .. at least if you're implementing `call-with-current-continuation'
14:53:53 <albet70> https://jsdw.me/posts/haskell-cont-monad/
14:53:56 <Lears> Speaking of haskeline, did y'all know you can set 'editMode: Vi' in ~/.haskeline and get vi-style line editing in ghci? I really wish I'd discovered that fact about a decade earlier...
14:54:18 <geekosaur> a decade earlier it was unimplemented
14:54:28 <albet70> I saw this `goto' using fixed-point inside 'callCC' to implement a loop, which is not easy to understand
14:54:34 <Lears> That might explain why I couldn't find it. <.<
14:58:24 <ski> @hackage managed
14:58:24 <lambdabot> https://hackage.haskell.org/package/managed
14:58:33 <ski> albet70 : ^ might be interesting
14:59:01 lisbeths joins (uid135845@2a03:5180:f:2::2:12a5)
14:59:33 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6)
15:02:59 gehmehgeh is now known as gmgm
15:03:02 gmgm is now known as gmg
15:06:17 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds)
15:07:16 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:12:45 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
15:17:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
15:21:28 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:25:41 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:25:43 <kavvadias> well im back with more type problems https://pastebin.com/Q0CeXND3
15:26:03 <kavvadias> trying to get a new tupple and put it in a list of tupples
15:28:59 <ski> you need to use `gets' with `<-', not `let'
15:32:32 Pickchea joins (~private@user/pickchea)
15:33:43 <kavvadias> oh okay, still have the same type error
15:34:51 <kavvadias> https://pastebin.com/5HBJ7kZN
15:36:55 <ski> kavvadias> :t moveSh
15:37:21 <kavvadias> [Point] -> [Point]
15:37:44 <qrpnxz> a byte has only 256 possible values. I've tried two ways now of getting GHC to just reuse the same 256 objects, but no, it really wants to allocate a bunch of useless memory. Oh well.
15:38:21 <ski> kavvadias : use `++' in place of `:' ?
15:39:21 <kavvadias> oh wow, 30 minutes well spent for me
15:39:29 <kavvadias> thank you ski
15:40:24 <ski> ccraft <- use (craft . getCraft)
15:41:21 <ski> cshots <- use (shots . getShots)
15:41:29 <ski> shots . getShots .= moveSh [ccraft] ++ cshots
15:41:31 <ski> or
15:41:32 <ski> ccraft <- use (craft . getCraft)
15:41:49 <ski> shots . getShots %= (moveSh [ccraft] ++)
15:42:59 × Kaiepi quits (~Kaiepi@142.68.249.28) (Ping timeout: 252 seconds)
15:44:05 <ski> (oh, and you're already not using `game')
15:45:22 waldo joins (~waldo@user/waldo)
15:45:27 <kavvadias> oh true
15:48:47 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
15:52:01 <pavonia> Is there a package for huge integers with sparse bit occurences that implements Eq, Ord and Bits?
15:53:05 <pavonia> Huge as in billions of bits, but only a few dozens of bits are sets/unset
15:53:36 Franciman joins (~Franciman@mx1.fracta.dev)
15:54:19 MoC joins (~moc@user/moc)
15:54:51 matthewmosior joins (~matthewmo@173.170.253.91)
15:55:47 <geekosaur> https://hackage.haskell.org/package/bitvec-1.1.3.0/docs/Data-Bit.html ?
15:56:29 <geekosaur> there are also some bit-set packages but I doubt those have Bits instances
15:56:58 <pavonia> This doesn't seem to support sparse bitsets
15:57:03 <geekosaur> I strongly suspect "sparse occurrences" and "Bits instance" don't go together
15:57:30 × MoC quits (~moc@user/moc) (Client Quit)
15:57:41 stef204 joins (~stef204@user/stef204)
15:57:55 MajorBiscuit joins (~MajorBisc@46-229-126.internethome.cytanet.com.cy)
15:58:32 <pavonia> What operation could not be implemented efficiently for such sets?
15:58:57 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:58:58 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:58:58 wroathe joins (~wroathe@user/wroathe)
15:59:20 <int-e> one could start with data Bits = Pos IntSet | Neg IntSet
15:59:24 <geekosaur> complement
16:00:04 <pavonia> That would be O(1) by just setting an internal flag
16:01:02 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:01:08 <pavonia> Also we can assume only operations are performed that lead to sparse bitsets again
16:01:21 <int-e> Though if you actually want integers, big shifts will be problematic, since those produce long runs of zeros. So "sparse" would translate into "small number of alternations" rather than "small number of set bits, or small number of unset bits"
16:04:16 <pavonia> Hhm, why would that be problematic? Shifting should only map the set of set/unset bits to new indices
16:04:27 <geekosaur> right, int-e is seeing what I'm seeing. yes, you can make any given operation quick, but the more of that you do the more likely that intermediate results will have lots of set bits
16:04:58 <geekosaur> or worse, lots of alternations
16:06:42 <pavonia> I imaginge xor could be a bit tricky
16:06:49 <pavonia> *imagine
16:07:52 <geekosaur> as for shifts, consider you have a bigint with all bits set, then you shift it so now you have a large number of unset bits on one end
16:08:43 <int-e> > let f n x = (x `shiftL` n) .|. x in printf "%x" . f 32 . f 16 . f 8 . f 4 . f 2 $ 1 :: String
16:08:45 <lambdabot> "5555555555555555"
16:09:00 zebrag joins (~chris@user/zebrag)
16:09:22 <int-e> (you can get a lot of alternations in just a few operations if you want to)
16:10:21 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
16:11:42 <pavonia> But those are not sparse operations. I mean it would be okay if the operations become less efficient if you do operations that introduce a lot of flipped bits
16:12:00 matthewmosior joins (~matthewmo@173.170.253.91)
16:16:57 × acidjnk quits (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
16:18:00 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.6)
16:18:26 coot joins (~coot@213.134.176.158)
16:20:05 jinsun__ joins (~jinsun@user/jinsun)
16:20:05 × jinsun quits (~jinsun@user/jinsun) (Killed (lithium.libera.chat (Nickname regained by services)))
16:20:05 jinsun__ is now known as jinsun
16:21:43 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
16:21:46 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:22:28 tharmas joins (~nikola@77-46-243-191.dynamic.isp.telekom.rs)
16:26:17 × coot quits (~coot@213.134.176.158) (Remote host closed the connection)
16:27:20 × waldo quits (~waldo@user/waldo) (Quit: quit)
16:28:39 <int-e> Here's something that kind of comes close... https://hackage.haskell.org/package/diet-0.1.0.0/docs/Data-Diet-Set-Lifted.html
16:29:27 <int-e> ("interval tree" is a viable keyword here)
16:30:37 <int-e> And what I mean by "comes close" is that it has reasonably efficient difference, from which you can create all boolean operations.
16:31:10 <qrpnxz> Data.Text.Foreign.fromPtr oh yeah baby here we go
16:39:10 Kaiepi joins (~Kaiepi@142.68.249.28)
16:40:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:47:24 <pavonia> int-e: thanks
16:51:41 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 244 seconds)
16:59:57 × mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving)
17:01:21 riverside joins (~riverside@213.205.241.175)
17:02:21 <riverside> hey, was wondering if anyone had had any thoughts about this idea about language primatives for graphs - i was about to read into STG
17:03:43 <riverside> i think i can basically hack it by using a type level symbol annotation to a datatype so that it can record not only positional data, but something like a unique object identifier (eg, third position in the list called "this list")
17:04:08 <riverside> basically im saying i think the haskell type system is developed enough to support it *without* language primatives
17:04:55 <riverside> and that it gives identifies this "this" identifier as a possible candidate for a language primative
17:05:00 <riverside> over
17:07:18 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
17:08:45 <riverside> perhaps someone could comment wrt the "this object" concept from OOP (which im not familiar with at all)
17:08:50 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
17:09:20 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds)
17:09:41 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
17:10:01 Colere joins (~colere@about/linux/staff/sauvin)
17:10:05 <riverside> i can recall edkmett had done some quite elaborate work in doing OOP style programming in haskell, though maybe its not even the same idea
17:11:06 <c_wraith> there's nothing special about "this".
17:11:25 Furor joins (~colere@about/linux/staff/sauvin)
17:11:34 <c_wraith> If you've ever used python, it sort of forces you to admit it.
17:12:25 <c_wraith> In every other language, it's hiding the first parameter to the function call syntactically, then giving you access to it via a keyword.
17:12:26 <riverside> i have unfortunately used python, but not enough to know what you mean. maybe java
17:12:44 <c_wraith> In python, it doesn't hide the parameter - you need to list it explicitly
17:13:22 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:14:15 <riverside> do you think it would make much difference if we could say "this" datatype when defining a recursive datatype?
17:14:33 <riverside> without having to hack it by using a symbol annotation?
17:14:51 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds)
17:14:58 <c_wraith> I'm not aware of any such problems in the first place
17:15:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
17:15:25 <riverside> i guess i dont have enough experience of using OOP languages to understand what "this" is actually used for, and what it brings to those languages
17:16:07 <geekosaur> most of the time it's implicit. rarely you need to refer to the whole object instead of just a method or attribute, and then you need `this`
17:16:47 <c_wraith> and there's literally *nothing* of theoretical interest. It's just a hidden function parameter.
17:17:17 <c_wraith> like, that explains 100% of both semantics and implementation
17:17:30 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 255 seconds)
17:18:38 <riverside> c_wraith. data ThisCyclicList (thisList :: symbol) (pos :: Nat) a where Empty :: ThisCyclicList thisList 0 a; Cons :: a -> ThisCyclicList thisList n a -> ThisCyclicList thisList (n+1) a; Cycle :: a -> ThisCyclicList thisList (i havent thought how this actually works) a -> ThisCyclicList thisList (etc.) a
17:19:04 <severen> woah
17:19:06 <c_wraith> I still don't understand what the problem is.
17:19:40 <riverside> so you cant just add on "another (not "this")" list... since the cycle is supposed to refer to the same object
17:20:18 <geekosaur> sure you can, you make it a parameter like in any other language
17:20:25 <geekosaur> this may be clearer using gadt syntax
17:20:59 <geekosaur> :t (:)
17:21:01 <lambdabot> a -> [a] -> [a]
17:21:07 <geekosaur> takes another list
17:22:10 <riverside> which is to be precluded
17:23:05 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:23:17 <riverside> i guess the point of having it as a primitive instead of using the symbol annotated version above, is that it saves the user having to think of unique names for all their values
17:23:26 <riverside> like some kind of hash
17:23:52 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:23:52 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:23:52 wroathe joins (~wroathe@user/wroathe)
17:23:56 × kavvadias quits (~kavvadias@2001:9e8:630d:e200:c5c8:e88c:6eff:1a7e) (Quit: Client closed)
17:23:57 <riverside> "thats not a cycle, thats just any old list"
17:24:00 <c_wraith> you seem to be conflating types and values
17:24:07 <riverside> nope
17:24:11 × crazazy quits (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903) (Ping timeout: 255 seconds)
17:24:13 <[exa]> yes.
17:24:48 <riverside> well you would provide it using @, but it is the construction of a value
17:26:23 <geekosaur> if I can get at it using @ then I can get at it without
17:26:26 econo joins (uid147250@user/econo)
17:26:37 Furor is now known as Colere
17:26:39 <geekosaur> just use a seoarate case toi do the rest
17:26:43 <riverside> a keyword like "object" instead of datatype, so that in the GADT syntax a "this" reference could be made, without the user having to provide an actual symobl, using @ during the construction of their list values
17:27:42 <[exa]> riverside: you can get pretty close using literally just CPP or a tiny bit of templatehaskell
17:27:59 <riverside> geekosuar: i guess you could use Proxy, but i prefer to use AllowAmbiguousTypes
17:28:24 <geekosaur> what?
17:28:30 <riverside> no.
17:28:38 <riverside> im to go i suppose
17:28:45 <riverside> adios
17:28:45 <geekosaur> types have nothing to do with accessing a value you are working with
17:28:54 <qrpnxz> anyone every use `Monoid` for default values? It's like applicative pure but for values haha.
17:29:10 <ski> riverside : would `this' refer to a type, or to a value ? something else ?
17:29:23 <geekosaur> it's fairly common to require Monoid and use mempty in a case where you need a default value, yes
17:29:27 <qrpnxz> sometimes i need to pull a value out of no where, so i just stick a monoid constraint on there
17:29:35 <qrpnxz> a neat
17:29:44 <geekosaur> and much more principled than Data.Default
17:29:53 matthewmosior joins (~matthewmo@173.170.253.91)
17:30:17 [exa] foresees `(<>) = error "sorry not that kind of monoid :')"`
17:30:38 <ski> there was some blag i recently saw which talked about using lists of monoid elements, versus a monoid element
17:30:41 <qrpnxz> using monoid remind me of Go a bit. In Go every type has a "zero" which is used like for example if i allocate a slice, it will be filled with the zero of that type. Monoids mempty is basically a types "zero" so i like using it for that kind of thing
17:31:23 <ski> iirc Cryptol has a polymorphic `zero', belonging to every type .. but it has no empty types
17:31:53 <[exa]> qrpnxz: in monoid the zero is meant relatively to the <>, a bit of abuse is okay but for production code please certainly go with Default
17:32:15 <ski> (for functions, it's the constantly zero function. for arrays (of a given size), it's the zero-filled array. &c.)
17:33:39 <qrpnxz> [exa]: an example use case to provide some context: I have a type that i want to parse that is a functor. Instead of defining an instance for (F ()) i wanna do Monoid m => (F m) that way it can be used more places instead having to replace the () with a maybe expensive (<$)
17:34:01 <riverside> ok, a joke. "used to work as of gofur, go for this, go for that, etc."
17:34:03 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
17:34:31 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
17:34:52 <qrpnxz> :)
17:36:40 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
17:37:43 <qrpnxz> well i guess a Default type class makes more sense in that use case if i think about it a bit
17:40:38 × benin0 quits (~benin@183.82.206.125) (Quit: The Lounge - https://thelounge.chat)
17:41:03 × Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds)
17:41:17 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
17:42:04 <qrpnxz> geekosaur: what are your personal gripes with Default?
17:43:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
17:46:14 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:48:27 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
17:55:37 × vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds)
17:56:26 <geekosaur> qrpnxz, https://github.com/xmonad/xmonad/commit/383ffb772e4a
17:56:44 <geekosaur> you have no control over instances someone else picked behind your back
17:57:01 <geekosaur> I can't even override it without forcing an overlapping instance
17:58:56 ianayl joins (~ian@cpef81d0fadc403-cmf81d0fadc400.sdns.net.rogers.com)
18:02:31 matthewmosior joins (~matthewmo@173.170.253.91)
18:03:55 <qrpnxz> i mean, what about a newtype? If i want a different monoid i have to newtype too
18:05:05 <qrpnxz> and it seems in the spirit of default to have a default Default instance as well
18:05:55 <geekosaur> sure, break 10 years' worth of configs because someone thought Default was a good idea
18:06:46 <geekosaur> (I still think we never should have permitted it into the codebase but the other 3 admins like it 😞 )
18:07:55 <Lears> The problem is that `def` is too polymorphic, even though there's little use for that polymorphism beyond saving names. When someone puts it in the wrong place they generally won't get a type error, just weird runtime behaviour with no clear source. You can't solve this with newtypes.
18:09:08 Midjak joins (~Midjak@82.66.147.146)
18:09:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
18:09:35 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
18:09:43 nate4 joins (~nate@98.45.169.16)
18:09:55 <qrpnxz> wym too polymorphic? def should work for any type i want, so i don't see how it could be any less poly than it is
18:10:22 × Midjak quits (~Midjak@82.66.147.146) (Remote host closed the connection)
18:11:09 <Lears> I mean what I already said; it turns type errors into runtime errors.
18:11:11 <geekosaur> but you can't stop it from also working for any type you *don't* want
18:11:11 <ski> i believe Lears is not talking about situations that you want, but situations that you don't want (but which happen anyway)
18:11:13 <qrpnxz> For my use case i put above, the alternative would be to have the type class have another special snowflake method that accepts a default value, which seems insane
18:11:19 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:11:21 <geekosaur> and producing garbage
18:11:56 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:11:59 Midjak joins (~Midjak@82.66.147.146)
18:13:27 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
18:13:27 Lord_of_Life_ is now known as Lord_of_Life
18:14:19 <qrpnxz> i feel like that's more a problem with how Default was used than default itself. How come `def` can get you garbage, but `pure` cannot? both are picking up a default state, so it seems like what you could say about one you could say about the other.
18:14:22 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
18:14:52 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
18:15:08 <geekosaur> but that's how Default is *supposed* to be used: as a bomb waiting to go off on you
18:15:21 <geekosaur> all those instances came from the standard Data.Default instances
18:15:46 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
18:15:52 <qrpnxz> to me the purpose of a default is of course a sane default. A benign valid value. A bomb default value would be `undefined`
18:16:03 <geekosaur> and no, it is not viable that I am forced to newtype around Default producing garbage on me
18:16:16 <geekosaur> but it is not always a sane default
18:17:06 <Lears> pure is like mempty, they're principled because they actually *mean* something that's coherent across all instances. def is fundamentally ad hoc.
18:17:09 <qrpnxz> so then the issue seems to lie more with the instances then
18:17:32 <ski> @type pure
18:17:33 <lambdabot> Applicative f => a -> f a
18:17:58 <ski> `pure' is bound together with `(<*>)', and constrained by the neutral element laws
18:18:04 <geekosaur> and I do not get to opt out of a default that is not sane
18:18:09 <geekosaur> for my use
18:18:14 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
18:18:26 <geekosaur> which is the real problem: there is no way to constrain Default by use case
18:18:31 <ski> (and likewise for `empty' and `mappend'/`(<>)')
18:19:05 <Lears> qrpnxz: Re your actual problem, rather than "adding another special snowflake method", the version that takes a default value as an argument can be the sole method, then versions taking () or mempty or def can be written outside for convenience.
18:19:11 <qrpnxz> why not? Like if i need a default value to put in an array, the elements of the array are something in my problem domain, so the type is one of my problem domain. I can pick that type to be a thing with all the properties i want, including its default.
18:19:31 <Lears> To my eye, that's easily the most sane approach.
18:19:38 <geekosaur> sure, if you're happy to newtype all over the place because someone else picked a different default
18:20:13 <ski> (s/empty/mempty/)
18:20:26 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
18:20:55 aku_ is now known as aku
18:21:24 <qrpnxz> Lears: yeah that makes sense. But what to have for the canonical class instance? To me it makes sense to be the one with default constraint, and if you don't wanna mess with Default, then use the non class function that explicitly takes a value.
18:21:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:21:52 gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net)
18:22:57 <geekosaur> but I did take a value.
18:23:12 <qrpnxz> geekosaur: if it were Monoid it be the same but a bit worse i think, because it could only be monoids and you still have to newtype to get a different mempty
18:23:18 <geekosaur> someone decided to use `def` and the type system did not stop them
18:23:51 <geekosaur> and I do not get to opt in only for `defaultConfig` and not for `CLong`
18:24:32 × bob quits (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Ping timeout: 268 seconds)
18:24:34 × geranim0 quits (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Ping timeout: 268 seconds)
18:25:00 <geekosaur> never mind, you clearly think it's fine because you didn't get screwed over by it, I did.
18:25:28 <geekosaur> and it's on the victim to deal when that happens
18:25:29 zer0bitz joins (~zer0bitz@2001:2003:f748:2000:7d51:3be7:af35:67eb)
18:25:29 <qrpnxz> I do appreciate your POV thanks. I def keep that in mind and not make users dependent on def
18:25:39 <qrpnxz> *definitely lol
18:26:23 <geekosaur> the point remains: `def` was not supposed to be used there. the type system did not prevent it because `def` has instances for practically everything
18:27:02 <geekosaur> so I have to hack around misuses of it one way or another, either by newtypes or by detecting its fail and substituting something sane (which is what I ended up doing)
18:27:09 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
18:28:59 × aku quits (~aku@163.172.137.34) (Remote host closed the connection)
18:29:33 <geekosaur> and I can't wrap every single type with a newtype to avoid `def` subverting the type system
18:31:06 <geekosaur> (worse, the default there is sane only there. What if I want a different key sequence to be the default somewhere else? Can't even use an overlapping type for that.)
18:31:36 <qrpnxz> Lears: reason being that the vast majority of instances will not need to accept a default value. It's a more special case to need a default value, so i rather get it from a constraint, and then have a side function that takes a default for that particular type.
18:32:25 <qrpnxz> geekosaur: you'd create a different type in that case. Different behaviour, different type.
18:32:39 <geekosaur> they are all key sequences.
18:32:42 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
18:32:47 <geekosaur> they can't be different types
18:32:55 <qrpnxz> Though i think i see what you are getting at yeah. It's really the same type, just a different default for a different context.
18:33:04 <geekosaur> the user is not doing something completely different to type that sequence
18:33:08 <qrpnxz> in that case it makes more sense to accept a default than to use the constraints
18:33:36 kenran joins (~kenran@200116b82b3c100072f1c9de10c8d6d9.dip.versatel-1u1.de)
18:33:47 <geekosaur> and even if I somehow admit that, there's the fact that NoSymbol is only a viable default in some contexts; it's not even valid in others
18:34:47 × riverside quits (~riverside@213.205.241.175) (Remote host closed the connection)
18:36:15 <qrpnxz> though in the situation you are describing, you are not even polymorphic on the type if i understand correctly, so really the function should just use the appropriate default, be it it happens to be `def` or another value, no?
18:36:53 <geekosaur> that's what it's doing. but I have no control over the default and it is wrong as is
18:36:59 × lisbeths quits (uid135845@2a03:5180:f:2::2:12a5) (Quit: Connection closed for inactivity)
18:37:05 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
18:37:06 <geekosaur> it's producing `const (0,0)`
18:38:59 <geekosaur> it should be extracting the default modMask from the parameter and tupling it with `xK_b`, but I can't make it do that without an overlapping instance with the one that produces `const def`
18:39:38 <geekosaur> which also means changing the default for the mask and key, even if viable, wouldn't prevent this overlap
18:42:24 aku joins (~aku@163.172.137.34)
18:45:20 <geekosaur> we don't document that as accepting `def` but distrotube's been telling people to use it and the type system doesn't stop them because it found a set of instances that fit but produce garbage
18:45:48 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection)
18:47:46 <qrpnxz> hmm yeah, instances for non-unit tuples seem harmful. the one for function instance also hard to justify.
18:50:18 <Bulby[m]> https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Chunk.java#L399-L411 nightmare code
18:50:24 <Bulby[m]> probably fairly trivial lol
18:51:00 <qrpnxz> is xmonad accepting many defaultable types from users? Why not just have it's own typeclass with better defaults? (heh)
18:51:03 <qrpnxz> geekosaur:
18:51:33 × aeka quits (~aeka@user/hiruji) (Ping timeout: 244 seconds)
18:51:34 aeka` joins (~aeka@2606:6080:1002:8:3285:30e:de43:8809)
18:51:58 aeka` is now known as aeka
18:53:49 <qrpnxz> Bulby[m]: doesn't look particularly nightmare, though those linked lists make me raise an eyebrow
18:54:27 <Bulby[m]> oh
18:54:28 <Bulby[m]> wait
18:54:42 <Bulby[m]> is it like multiple generators in a comprehensiion
18:56:02 <Bulby[m]> yes
18:56:56 <Bulby[m]> it looks like how they iterate it should generate in order
18:56:57 tomboy64 joins (~tomboy64@user/tomboy64)
18:57:03 <Bulby[m]> wait
18:57:21 <Bulby[m]> will it?
18:57:25 <geekosaur> I would be okay with our having our own `def` which only applied to various `defaultx` things, although I'd have to convince our other maintainers that it's a good idea. Sadly they're the ones that dragged Data.Default into it
18:59:27 <qrpnxz> well, good luck :)
19:00:42 <geekosaur> and yes, there are contribs that use it (XMonad.Prompt and XMonad.Layout.Decoration come to mind — and that one has its own time bomb because XMonad.Layout.ImageButtonDecoration passed Decoration's `def` will render incorrectly)
19:01:13 <Bulby[m]> `(z/4)*4`
19:01:16 <Bulby[m]> i don't even
19:01:18 <geekosaur> defaults have a certain tendency to depend on context, and there's no way to make any form of Data.Default sensitive to context because that requires runtime awareness
19:04:43 talismanick joins (~talismani@2601:200:c100:3850::dd64)
19:07:09 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
19:07:15 <geekosaur> Bulby[m], that makes a certain sense iff z is integral
19:07:33 <Bulby[m]> yeah it's an integral
19:07:42 <geekosaur> although I don't recall off the top of my head whether it'll use integer division in that case
19:07:55 <geekosaur> thereby dropping a remainder to give a multiple of 4
19:11:42 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
19:12:36 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
19:12:40 × zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds)
19:12:41 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
19:14:03 <Bulby[m]> it truncates
19:14:11 <Bulby[m]> `biome = tagBiomes.data[x/4 + (z/4)*4 + (y/4)*4*4];`
19:14:26 <geekosaur> right, makes sense
19:15:09 <geekosaur> and you might think z-(4-z%4) but that's the same number of divisions as the other and one more subtractionb
19:15:14 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
19:15:54 <geekosaur> and possible considerations with respect to sign, although if used in an array context presumably that doesn't come up
19:17:08 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
19:17:54 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
19:34:54 pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl)
19:35:14 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:38:21 Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.223)
19:39:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:41:04 mastarija joins (~mastarija@2a05:4f46:e03:6000:fe12:1d1c:1857:ccc4)
19:41:51 <geekosaur> oh, and if the compiler's worth its salt it turns that into (z & 0xfffffffc) which would make you wtf even more if written out
19:42:51 <geekosaur> or 0x7ffffffc if it's signed
19:42:53 × biberu quits (~biberu@user/biberu) (Ping timeout: 268 seconds)
19:43:33 <geekosaur> no, I guess it'd still be f instead of 7
19:46:38 × mmhat quits (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
19:47:01 mmhat joins (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de)
19:52:15 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
19:52:30 <Bulby[m]> invalid stored block lengths
19:52:32 <Bulby[m]> amazing
19:52:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
19:52:38 matthewmosior joins (~matthewmo@173.170.253.91)
19:53:03 kilolympus joins (~kilolympu@90.206.106.191)
19:53:22 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
19:53:40 <Bulby[m]> wait I'm using raw compression
19:53:43 <Bulby[m]> why is it
19:53:50 <Bulby[m]> why is it in the normal module
19:54:02 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
19:54:36 pavonia joins (~user@user/siracusa)
19:54:42 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:55:11 califax joins (~califax@user/califx)
19:55:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:59:45 ddellacosta joins (~ddellacos@89.45.90.144)
20:02:30 Pickchea joins (~private@user/pickchea)
20:02:35 × ddellaco1 quits (~ddellacos@89.45.90.118) (Ping timeout: 268 seconds)
20:06:12 <Bulby[m]> the rfcs java docs and haskell docs link to are the same
20:07:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
20:07:40 matthewmosior joins (~matthewmo@173.170.253.91)
20:12:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
20:14:53 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:15:03 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
20:19:51 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
20:20:08 × nate4 quits (~nate@98.45.169.16) (Read error: Connection reset by peer)
20:20:26 nate4 joins (~nate@98.45.169.16)
20:24:25 matthewmosior joins (~matthewmo@173.170.253.91)
20:26:43 × califax quits (~califax@user/califx) (Ping timeout: 268 seconds)
20:27:13 califax joins (~califax@user/califx)
20:28:03 acidjnk joins (~acidjnk@p200300d6e7137a1040029d0042753765.dip0.t-ipconnect.de)
20:29:43 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
20:29:51 × bjobjo quits (~bjobjo@user/bjobjo) (Quit: leaving)
20:34:38 × kenran quits (~kenran@200116b82b3c100072f1c9de10c8d6d9.dip.versatel-1u1.de) (Quit: WeeChat info:version)
20:37:57 bjobjo joins (~bjobjo@user/bjobjo)
20:42:44 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:44:42 jgeerds joins (~jgeerds@55d46bad.access.ecotel.net)
20:56:56 nate4 joins (~nate@98.45.169.16)
20:58:03 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
20:58:19 × severen quits (~severen@202.36.179.72) (Ping timeout: 252 seconds)
21:00:09 × yvan-sraka quits (~yvan-srak@105.67.7.32) (Remote host closed the connection)
21:01:20 × MajorBiscuit quits (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Quit: WeeChat 3.5)
21:01:47 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
21:01:47 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
21:01:47 wroathe joins (~wroathe@user/wroathe)
21:01:53 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
21:01:54 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
21:03:02 MajorBiscuit joins (~MajorBisc@46-229-126.internethome.cytanet.com.cy)
21:04:56 × pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
21:05:51 justache joins (~justache@user/justache)
21:07:16 crazazy joins (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903)
21:10:08 ski . o O ( "* autrijus stares at type Eval x = forall r. ContT r (ReaderT x IO) (ReaderT x IO x) and feels very lost","<shapr> Didn't you write that code?","<autrijus> yeah. and it works","<autrijus> I just don't know what it means." )
21:11:09 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
21:12:56 <geekosaur> nice to know thta happened even to audrey…
21:13:51 kannon joins (~NK@192-184-132-215.fiber.dynamic.sonic.net)
21:14:39 geekosaur can recognize the parts and how they fit together, but not what the result is supposed to do
21:15:16 <hpc> @unmtl ContT r (ReaderT x IO) (ReaderT x IO x)
21:15:16 <lambdabot> ((x -> IO x) -> x -> IO r) -> x -> IO r
21:15:36 <monochrom> Ah two levels of ReaderT IO? :)
21:15:44 <geekosaur> yeh
21:15:58 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
21:16:36 <monochrom> Err no that's not the hard part.
21:16:54 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
21:17:12 <geekosaur> right, that's the easy part since Reader's simple
21:18:17 × kannon quits (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
21:18:23 <ski> it looks maybe `fix'y, to me
21:18:29 <monochrom> No, not 2 levels of ReaderT. Instead, ContT r (ReaderT x IO) Codomain. Oh but today we feel like returning a procedure that's of a ReaderT-x-IO nature.
21:19:16 <monochrom> This is "just" M (N x) where M and N are monads.
21:19:18 × crazazy quits (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903) (Ping timeout: 264 seconds)
21:19:27 <ski> @unmtl StateT x (ContT r IO) (ReaderT x IO x)
21:19:27 <lambdabot> x -> ((x -> IO x) -> x -> IO r) -> IO r
21:19:53 <monochrom> OK, that still counts as 2 levels, but not the transformer stack kind of 2 levels.
21:20:07 <monochrom> "Just" the functor composition kind.
21:20:16 Mr-Ski joins (~MrSki@134.101.170.4.dynamic-pppoe.dt.ipv4.wtnet.de)
21:20:36 × etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss)
21:20:47 etoast joins (~exaltedto@user/exaltedtoast)
21:26:33 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
21:26:38 <qrpnxz> hmm, i can't interpret an `effectful` Effect into an arbitrary monad, but `freer-simple` can't unliftio. Trade-offs!
21:29:00 yvan-sraka joins (~yvan-srak@105.67.7.32)
21:30:16 nate4 joins (~nate@98.45.169.16)
21:30:57 <qrpnxz> which means i can interpret a freer effect into an effectful effect lol. Then I can either interpret directly in freer, or interpret into effectful and then interpret again there.
21:34:00 × ianayl quits (~ian@cpef81d0fadc403-cmf81d0fadc400.sdns.net.rogers.com) (Ping timeout: 268 seconds)
21:34:23 × Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds)
21:34:28 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
21:35:46 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
21:40:51 matthewmosior joins (~matthewmo@173.170.253.91)
21:43:23 × zer0bitz quits (~zer0bitz@2001:2003:f748:2000:7d51:3be7:af35:67eb) (Read error: Connection reset by peer)
21:44:38 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
21:49:15 nate4 joins (~nate@98.45.169.16)
21:49:53 × ddellacosta quits (~ddellacos@89.45.90.144) (Ping timeout: 268 seconds)
21:51:18 ddellacosta joins (~ddellacos@static-198-54-129-54.cust.tzulo.com)
21:53:09 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:53:10 × Mr-Ski quits (~MrSki@134.101.170.4.dynamic-pppoe.dt.ipv4.wtnet.de) (Quit: The Lounge - https://thelounge.chat)
21:57:34 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:59:10 × ddellacosta quits (~ddellacos@static-198-54-129-54.cust.tzulo.com) (Ping timeout: 268 seconds)
22:00:06 severen joins (~severen@202.36.179.72)
22:00:39 ddellacosta joins (~ddellacos@89.45.90.196)
22:03:32 Guest94 joins (~Guest94@212.87.13.102)
22:08:16 × yvan-sraka quits (~yvan-srak@105.67.7.32) (Remote host closed the connection)
22:12:06 × acidjnk quits (~acidjnk@p200300d6e7137a1040029d0042753765.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
22:14:29 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:18:15 × ddellacosta quits (~ddellacos@89.45.90.196) (Ping timeout: 268 seconds)
22:20:01 ddellacosta joins (~ddellacos@89.45.90.222)
22:23:55 × tharmas quits (~nikola@77-46-243-191.dynamic.isp.telekom.rs) (Quit: leaving)
22:25:57 <Guest94> hi
22:26:18 <qrpnxz> hi
22:26:52 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:27:28 <Bulby[m]> https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Region.java#L217 i can't comprehend why this is defined just to be overriden
22:29:26 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
22:31:17 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
22:34:45 × Guest94 quits (~Guest94@212.87.13.102) (Quit: Client closed)
22:36:49 ianayl joins (~ian@cpef81d0fadc403-cmf81d0fadc400.sdns.net.rogers.com)
22:38:48 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:41:32 × Tuplanolla quits (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.)
22:46:25 <Bulby[m]> what
22:46:31 <Bulby[m]> apparently it doesn't use raw zlib
22:46:33 <Bulby[m]> just zlib
22:47:17 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
22:49:07 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
22:49:44 × chomwitt quits (~chomwitt@2a02:587:dc15:5e00:4394:5e3a:258b:d8da) (Ping timeout: 268 seconds)
22:50:38 <Bulby[m]> hm, blocks ends up with too large of a list
22:52:01 <Bulby[m]> to print, anyway
22:53:15 <Bulby[m]> why is Vector complaining with prelude !!
22:53:16 <Bulby[m]> something is wrong
22:54:15 <Bulby[m]> oh i have an idea
22:54:29 × mastarija quits (~mastarija@2a05:4f46:e03:6000:fe12:1d1c:1857:ccc4) (Ping timeout: 255 seconds)
22:54:53 <monochrom> Prelude !! is for [], not Vector.
22:55:11 <Bulby[m]> yes, i know where it's probably messing up
22:55:21 <geekosaur> sounds to me like a stream fusion RULE is failing
22:55:28 <Bulby[m]> probably calculated indexes wrong, and lazyness means it's delayed
22:55:58 <geekosaur> or that, I suppose, but I don't know the code
22:57:23 <geekosaur> mm, right, a fusion/streaming rule shouldn't involve !!
22:57:31 <geekosaur> if anything that should prevent fusion
22:59:41 <qrpnxz> (!!) is random access, pretty much the opposite of streaming 😬
23:00:58 <Bulby[m]> what's the equivilant of `>>>`? `rotateR` ?
23:01:21 matthewmosior joins (~matthewmo@173.170.253.91)
23:03:54 <qrpnxz> the equivalent of >>> is flip (.)
23:04:28 <Bulby[m]> ... from java 😅
23:05:10 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
23:05:20 <qrpnxz> idk that operator in java, sorry
23:05:24 <qrpnxz> if you can describe what it does
23:05:29 <qrpnxz> then i can tell you what function maybe
23:05:40 <Bulby[m]> unsigned shift right
23:05:58 <qrpnxz> sounds like shiftR
23:06:18 <Bulby[m]> really? shiftR does sign extension
23:07:05 <qrpnxz> if you want unsigned you need an unsigned type afaik
23:08:02 <Bulby[m]> pain
23:09:48 <qrpnxz> just gotta do fromIntegral
23:09:55 <Bulby[m]> and the implementation uses wizardry
23:09:56 <Bulby[m]> oh
23:09:58 <Bulby[m]> um
23:10:06 <Bulby[m]> one of the numbers is actually -1
23:11:19 pomod joins (~pomod@212.87.13.102)
23:14:13 ph88 joins (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de)
23:17:14 <Bulby[m]> yeah that was the issue
23:17:16 <Bulby[m]> rotate is obviously incorrect
23:19:08 luffy joins (~chenqisu1@183.217.201.23)
23:24:07 pomod parts (~pomod@212.87.13.102) ()
23:26:05 × MajorBiscuit quits (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Ping timeout: 268 seconds)
23:27:30 Sgeo joins (~Sgeo@user/sgeo)
23:29:44 × mmhat quits (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
23:30:40 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:32:31 × ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving)
23:39:59 × ianayl quits (~ian@cpef81d0fadc403-cmf81d0fadc400.sdns.net.rogers.com) (Quit: WeeChat 3.6)
23:43:57 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:44:37 × jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
23:47:23 vysn joins (~vysn@user/vysn)
23:48:02 × etoast quits (~exaltedto@user/exaltedtoast) (Quit: Tschüss)
23:48:12 etoast joins (~exaltedto@user/exaltedtoast)
23:48:14 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
23:48:14 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
23:48:14 wroathe joins (~wroathe@user/wroathe)
23:51:27 × kilolympus quits (~kilolympu@90.206.106.191) (Remote host closed the connection)
23:58:09 × severen quits (~severen@202.36.179.72) (Ping timeout: 268 seconds)
23:58:27 kilolympus joins (~kilolympu@90.206.106.191)
23:58:53 × xff0x_ quits (~xff0x@2405:6580:b080:900:d617:1bf4:887a:1487) (Ping timeout: 255 seconds)
23:59:30 xff0x_ joins (~xff0x@2405:6580:b080:900:7e16:9a75:cc78:bd9a)

All times are in UTC on 2022-08-14.