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.