2022-06-04 00:00:57 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8199:e7da:e3d1:110) (Remote host closed the connection) |
2022-06-04 00:01:48 +0200 | dcoutts__ | (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
2022-06-04 00:03:07 +0200 | slack1256 | (~slack1256@186.11.9.106) (Ping timeout: 240 seconds) |
2022-06-04 00:07:17 +0200 | lottaquestions | (~nick@2607:fa49:5041:a200:3daf:9139:3014:7a17) (Quit: Konversation terminated!) |
2022-06-04 00:08:27 +0200 | dcleonarski | (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 260 seconds) |
2022-06-04 00:08:41 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-06-04 00:09:07 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-06-04 00:10:53 +0200 | lottaquestions | (~nick@2607:fa49:5041:a200:a394:e3c:d4d7:cf13) |
2022-06-04 00:11:05 +0200 | zeenk | (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) |
2022-06-04 00:18:54 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-06-04 00:19:34 +0200 | acidjnk | (~acidjnk@p200300d0c7068b54b0b45aacebca8e8e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-06-04 00:20:52 +0200 | jgeerds | (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 248 seconds) |
2022-06-04 00:24:07 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) |
2022-06-04 00:25:41 +0200 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-06-04 00:27:44 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8199:e7da:e3d1:110) |
2022-06-04 01:00:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 01:08:27 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-06-04 01:14:17 +0200 | spacenautx | (~spacenaut@user/spacenautx) (Quit: WeeChat 3.0) |
2022-06-04 01:23:26 +0200 | <Bulby[m]> | <dsal> "Bulby: updating like that is..." <- what are you refering to |
2022-06-04 01:23:36 +0200 | <Bulby[m]> | sorry for the irc mess 😭 |
2022-06-04 01:24:25 +0200 | <dsal> | Bulby[m]: lens has stateful update things. |
2022-06-04 01:24:25 +0200 | <Bulby[m]> | you mean record update with fmap? |
2022-06-04 01:24:29 +0200 | <dsal> | :t (+=) |
2022-06-04 01:24:31 +0200 | <lambdabot> | (MonadState s m, Num a) => ASetter' s a -> a -> m () |
2022-06-04 01:24:59 +0200 | <dsal> | > flip execState (2,4) $ do { _1 += 11; _2 *= 6 } |
2022-06-04 01:25:02 +0200 | <lambdabot> | (13,24) |
2022-06-04 01:25:58 +0200 | <Bulby[m]> | :t execState |
2022-06-04 01:26:00 +0200 | <lambdabot> | State s a -> s -> s |
2022-06-04 01:26:32 +0200 | <Bulby[m]> | polysemy has basically that |
2022-06-04 01:26:34 +0200 | <Bulby[m]> | function |
2022-06-04 01:26:57 +0200 | <dsal> | I don't know polysemy, but I was talking mostly about `+=` and family. |
2022-06-04 01:27:02 +0200 | <dsal> | :t (%=) |
2022-06-04 01:27:04 +0200 | <lambdabot> | MonadState s m => ASetter s s a b -> (a -> b) -> m () |
2022-06-04 01:28:00 +0200 | <Bulby[m]> | It doesn't implement monad state, but it should be fairly easy to implement |
2022-06-04 01:28:23 +0200 | <Bulby[m]> | given it's almost the same interface as StateT |
2022-06-04 01:29:26 +0200 | _xor | (~xor@72.49.198.103) |
2022-06-04 01:30:21 +0200 | <dsal> | I realize telling someone working within a polysemy bonfire to throw in some lens accelerant might be a destructive, but it sounded like what you were asking for. |
2022-06-04 01:30:46 +0200 | <Bulby[m]> | ... bonfire, accelerant? in what way? |
2022-06-04 01:31:22 +0200 | <dsal> | Like polysemy is nearly another language on Haskell, lens is another language on haskell. |
2022-06-04 01:31:33 +0200 | zeenk | (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!) |
2022-06-04 01:31:57 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-06-04 01:32:01 +0200 | <Bulby[m]> | polysemy plugin is fun, it's nearly mandatory if you don't want verbose polysemy code |
2022-06-04 01:32:03 +0200 | <dsal> | And is slightly controversial. So it might be a struggle to wrap your brain around, but it's a pretty easy way in, for example, a state monad to do some deep manipulations. |
2022-06-04 01:32:55 +0200 | <dsal> | You can do weird stuff like this: |
2022-06-04 01:32:57 +0200 | <dsal> | > flip execState (2, Just (4, 27)) $ do { _1 += 11; _2 . _Just . _1 *= 6 } |
2022-06-04 01:32:59 +0200 | <Bulby[m]> | if you know a lot about this, is there a more sane way to "return" in an interpreter other than throwing and catching |
2022-06-04 01:33:00 +0200 | <lambdabot> | (13,Just (24,27)) |
2022-06-04 01:33:12 +0200 | <dsal> | I'm using tuples which makes it a little uglier. |
2022-06-04 01:33:28 +0200 | <dsal> | There's stuff like ContT. |
2022-06-04 01:33:47 +0200 | <dsal> | In general, that's what a bind does. They short-circuit by either continuing or aborting at every decision point. |
2022-06-04 01:35:37 +0200 | <Bulby[m]> | I really need to write a test suite |
2022-06-04 01:36:24 +0200 | <dsal> | That's basically what happens when you do something like this: |
2022-06-04 01:36:26 +0200 | <dsal> | > do { a <- readMaybe "1"; b <- readMaybe "2"; pure (a + b) } :: Maybe Int |
2022-06-04 01:36:28 +0200 | <lambdabot> | Just 3 |
2022-06-04 01:36:31 +0200 | <dsal> | > do { a <- readMaybe "one"; b <- readMaybe "2"; pure (a + b) } :: Maybe Int |
2022-06-04 01:36:33 +0200 | <lambdabot> | Nothing |
2022-06-04 01:36:56 +0200 | <dsal> | The bind itself moves considers `b` in the first case, and doesn't in the second because it already knows it's gone. |
2022-06-04 01:37:08 +0200 | <dsal> | `ExceptT` is one easy way to do this in mtl. Or ContT if you're fancy. |
2022-06-04 01:41:17 +0200 | TonyStone31 | (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) (Ping timeout: 255 seconds) |
2022-06-04 01:51:53 +0200 | <EvanR> | an interpreter loop could also just use recursion at every step |
2022-06-04 01:52:20 +0200 | <EvanR> | then moving ahead one statement, jumping out of a loop, and returning would be the same |
2022-06-04 01:52:43 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-06-04 01:53:24 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 244 seconds) |
2022-06-04 01:54:18 +0200 | TonyStone31 | (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) |
2022-06-04 01:54:45 +0200 | stackdroid18 | (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!) |
2022-06-04 01:54:48 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-06-04 02:09:43 +0200 | mixfix41 | (~sdenynine@user/mixfix41) |
2022-06-04 02:20:40 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2022-06-04 02:23:01 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection) |
2022-06-04 02:23:02 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2022-06-04 02:24:02 +0200 | TonyStone31 | (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) (Ping timeout: 255 seconds) |
2022-06-04 02:36:34 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-06-04 02:37:24 +0200 | TonyStone31 | (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) |
2022-06-04 02:41:05 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2022-06-04 02:41:57 +0200 | nahcetan | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-06-04 02:43:29 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-06-04 02:43:46 +0200 | nahcetan | (~nate@98.45.169.16) |
2022-06-04 02:45:11 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2022-06-04 02:45:54 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-06-04 02:54:39 +0200 | stackdroid18 | (~stackdroi@user/stackdroid) |
2022-06-04 02:54:50 +0200 | stackdroid18 | (~stackdroi@user/stackdroid) (Client Quit) |
2022-06-04 02:55:02 +0200 | julian | (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian))) |
2022-06-04 02:55:05 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds) |
2022-06-04 02:59:08 +0200 | TonyStone31 | (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) (Ping timeout: 255 seconds) |
2022-06-04 03:03:32 +0200 | julian | (~julian@20.83.116.49) |
2022-06-04 03:10:17 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-06-04 03:13:34 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2022-06-04 03:16:23 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-06-04 03:17:47 +0200 | <Bulby[m]> | is there an expandable way of doing uncurry... I have a fun `a -> b -> c -> d` that I want to change to `(a, b, c) -> d`. is there a way to do this without using lambdas |
2022-06-04 03:20:52 +0200 | <EvanR> | :t uncurry3 |
2022-06-04 03:20:54 +0200 | <lambdabot> | error: |
2022-06-04 03:20:54 +0200 | <lambdabot> | • Variable not in scope: uncurry3 |
2022-06-04 03:20:54 +0200 | <lambdabot> | • Perhaps you meant ‘uncurry’ (imported from Data.Tuple) |
2022-06-04 03:21:03 +0200 | <Bulby[m]> | ... |
2022-06-04 03:21:12 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 03:21:20 +0200 | <EvanR> | well anyway |
2022-06-04 03:21:28 +0200 | <EvanR> | you can define it without a lambda |
2022-06-04 03:21:28 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2022-06-04 03:22:03 +0200 | <Bulby[m]> | how so |
2022-06-04 03:22:03 +0200 | <EvanR> | @hoogle uncurry3 |
2022-06-04 03:22:04 +0200 | <lambdabot> | Data.Tuple.Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d |
2022-06-04 03:22:04 +0200 | <lambdabot> | Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d |
2022-06-04 03:22:04 +0200 | <lambdabot> | Control.Functor.HT uncurry3 :: Functor f => (f a -> f b -> f c -> g) -> f (a, b, c) -> g |
2022-06-04 03:22:26 +0200 | <EvanR> | uncurry3 f (x,y,z) = f x y z |
2022-06-04 03:22:41 +0200 | <Bulby[m]> | that's basically what my lambda does |
2022-06-04 03:22:56 +0200 | <Bulby[m]> | i was hoping for some applicative sorcery |
2022-06-04 03:23:02 +0200 | <EvanR> | it's precisely what your lambda does, and probably doesn't make a difference to performance |
2022-06-04 03:26:33 +0200 | <EvanR> | what you ask for is probably one step before the galaxy brain move of saying `uncurry3' |
2022-06-04 03:26:55 +0200 | gentauro | (~gentauro@user/gentauro) |
2022-06-04 03:27:03 +0200 | <EvanR> | (or rewriting everything to not use triples) |
2022-06-04 03:30:23 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
2022-06-04 03:35:02 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
2022-06-04 03:44:02 +0200 | <Bulby[m]> | probably better choice - i made more data types instead 😁 |
2022-06-04 03:50:04 +0200 | neurodivergent | (~neurodive@S01069050ca4e3573.cg.shawcable.net) |
2022-06-04 03:51:52 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2022-06-04 03:52:00 +0200 | andrey_ | (~andrey@p200300dbcf301a00a39cb4b6a4c691d0.dip0.t-ipconnect.de) |
2022-06-04 03:52:44 +0200 | liz_ | liz |
2022-06-04 03:54:18 +0200 | andrey__ | (~andrey@p200300dbcf0c6600f65a5485c0e2d33f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2022-06-04 03:55:48 +0200 | bliminse | (~bliminse@host86-164-169-5.range86-164.btcentralplus.com) (Ping timeout: 246 seconds) |
2022-06-04 03:57:56 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) |
2022-06-04 03:59:19 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-04 03:59:34 +0200 | liz | (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal) |
2022-06-04 04:05:12 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-06-04 04:07:23 +0200 | qwedfg | (~qwedfg@user/qwedfg) (Read error: Connection reset by peer) |
2022-06-04 04:07:51 +0200 | img | (~img@user/img) |
2022-06-04 04:12:56 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 04:14:23 +0200 | qwedfg | (~qwedfg@user/qwedfg) |
2022-06-04 04:16:31 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 244 seconds) |
2022-06-04 04:17:47 +0200 | <Bulby[m]> | half of my type errors are from using `$` |
2022-06-04 04:17:48 +0200 | <Bulby[m]> | wtf |
2022-06-04 04:20:23 +0200 | neurodivergent | (~neurodive@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed) |
2022-06-04 04:20:26 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-04 04:20:49 +0200 | echoreply | (~echoreply@45.32.163.16) (Ping timeout: 256 seconds) |
2022-06-04 04:21:10 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-06-04 04:21:14 +0200 | echoreply | (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) |
2022-06-04 04:23:50 +0200 | td_ | (~td@muedsl-82-207-238-121.citykom.de) (Ping timeout: 240 seconds) |
2022-06-04 04:24:10 +0200 | <dsal> | $ is the root of all evil |
2022-06-04 04:24:30 +0200 | neurodivergent | (~neurodive@S01069050ca4e3573.cg.shawcable.net) |
2022-06-04 04:24:49 +0200 | neurodivergent | (~neurodive@S01069050ca4e3573.cg.shawcable.net) (Client Quit) |
2022-06-04 04:25:05 +0200 | MsNeurodivergent | (~MsNeurodi@S01069050ca4e3573.cg.shawcable.net) |
2022-06-04 04:25:07 +0200 | Topsi | (~Topsi@dyndsl-095-033-023-128.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-06-04 04:25:55 +0200 | td_ | (~td@94.134.91.175) |
2022-06-04 04:28:35 +0200 | Benzi-Junior | (~BenziJuni@dsl-149-64-179.hive.is) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-04 04:32:33 +0200 | nahcetan | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-06-04 04:34:21 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 04:37:32 +0200 | <MsNeurodivergent> | hola. |
2022-06-04 04:39:12 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-06-04 04:47:24 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-06-04 04:47:24 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-06-04 04:47:24 +0200 | finn_elija | FinnElija |
2022-06-04 04:47:25 +0200 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-06-04 04:47:29 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2022-06-04 04:48:42 +0200 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-06-04 04:49:22 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-06-04 04:51:08 +0200 | alp | (~alp@user/alp) (Ping timeout: 244 seconds) |
2022-06-04 04:54:04 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 258 seconds) |
2022-06-04 04:57:11 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 05:02:43 +0200 | Macbethwin | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-06-04 05:03:24 +0200 | Macbethwin | EdwinV |
2022-06-04 05:20:34 +0200 | nahcetan | (~nate@98.45.169.16) |
2022-06-04 05:22:12 +0200 | <Bulby[m]> | hm, I still am having issues with recursive functions in my interpreter |
2022-06-04 05:22:43 +0200 | <Bulby[m]> | I can't define the function in the closure as the function itself holds the closure |
2022-06-04 05:25:03 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds) |
2022-06-04 05:25:10 +0200 | nahcetan | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-06-04 05:37:33 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-06-04 05:39:57 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::ba9a) |
2022-06-04 05:40:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 05:46:50 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 05:51:51 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 05:53:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 05:55:04 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2022-06-04 05:57:10 +0200 | <EvanR> | why the hell not |
2022-06-04 05:58:14 +0200 | <Bulby[m]> | i don't know 😭 |
2022-06-04 06:01:03 +0200 | calleum_ | (~calleum@user/calleum) |
2022-06-04 06:01:33 +0200 | notzmv | (~zmv@user/notzmv) |
2022-06-04 06:08:43 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-06-04 06:09:06 +0200 | <Axman6> | Bulby[m]: if you don't share code, we can;t help you |
2022-06-04 06:10:35 +0200 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L34-L38 |
2022-06-04 06:11:16 +0200 | <Bulby[m]> | I define the name, then assign it... however that assignment fetches the env that still has it as null |
2022-06-04 06:13:16 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-06-04 06:17:00 +0200 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer) |
2022-06-04 06:18:30 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 276 seconds) |
2022-06-04 06:19:27 +0200 | <Bulby[m]> | it's midnight where I live |
2022-06-04 06:19:30 +0200 | <Bulby[m]> | i need sleep |
2022-06-04 06:21:25 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-06-04 06:22:38 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-06-04 06:24:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 06:31:04 +0200 | vysn | (~vysn@user/vysn) |
2022-06-04 06:31:32 +0200 | EdwinV | dorment |
2022-06-04 06:36:55 +0200 | mbuf | (~Shakthi@223.190.209.89) |
2022-06-04 06:40:48 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-06-04 06:48:19 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-06-04 06:50:51 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-06-04 06:53:28 +0200 | odnes | (~odnes@5-203-183-6.pat.nym.cosmote.net) |
2022-06-04 07:01:41 +0200 | raym | (~raym@user/raym) (Ping timeout: 255 seconds) |
2022-06-04 07:02:27 +0200 | raym | (~raym@user/raym) |
2022-06-04 07:06:22 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 07:09:22 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-06-04 07:14:22 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) (Ping timeout: 258 seconds) |
2022-06-04 07:19:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 07:22:21 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 07:31:08 +0200 | MsNeurodivergent | (~MsNeurodi@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed) |
2022-06-04 07:32:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 07:32:47 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 07:46:38 +0200 | agumonkey | (~user@88.163.231.79) |
2022-06-04 07:52:40 +0200 | dorment | (~chargen@D964062A.static.ziggozakelijk.nl) (Quit: suicide) |
2022-06-04 07:54:04 +0200 | coot | (~coot@213.134.190.95) |
2022-06-04 07:55:01 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-06-04 07:56:02 +0200 | califax | (~califax@user/califx) |
2022-06-04 07:59:45 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds) |
2022-06-04 08:09:34 +0200 | vglfr | (~vglfr@46.96.133.194) |
2022-06-04 08:11:27 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-06-04 08:11:59 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-06-04 08:15:00 +0200 | agumonkey | (~user@88.163.231.79) (Remote host closed the connection) |
2022-06-04 08:15:31 +0200 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) |
2022-06-04 08:16:23 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds) |
2022-06-04 08:19:21 +0200 | acidjnk | (~acidjnk@p200300d0c7068b53cc85b297155bdc13.dip0.t-ipconnect.de) |
2022-06-04 08:26:28 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 08:29:56 +0200 | trisolaran | (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-06-04 08:31:41 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
2022-06-04 08:35:48 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds) |
2022-06-04 08:38:53 +0200 | bilegeek | (~bilegeek@2600:1008:b01f:31f8:a3e:b12c:dd8e:8844) (Ping timeout: 255 seconds) |
2022-06-04 08:43:35 +0200 | bilegeek | (~bilegeek@130.sub-174-208-235.myvzw.com) |
2022-06-04 08:51:11 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-06-04 09:01:07 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-06-04 09:03:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 09:08:08 +0200 | trisolaran | (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds) |
2022-06-04 09:09:24 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-06-04 09:12:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 09:14:06 +0200 | Guest65 | (~Guest65@2401:4900:1cc8:d1a4:12b1:2835:4df7:99b6) |
2022-06-04 09:14:26 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2022-06-04 09:17:06 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 09:19:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 09:24:53 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 09:25:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 09:27:53 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 09:28:50 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-06-04 09:31:48 +0200 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-04 09:32:40 +0200 | rembo10 | (~rembo10@main.remulis.com) |
2022-06-04 09:44:57 +0200 | Guest65 | (~Guest65@2401:4900:1cc8:d1a4:12b1:2835:4df7:99b6) (Quit: Guest65) |
2022-06-04 09:45:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 09:47:56 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.5) |
2022-06-04 09:55:10 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 09:57:06 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:8199:e7da:e3d1:110) (Remote host closed the connection) |
2022-06-04 10:03:39 +0200 | jinsun__ | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-04 10:06:29 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 10:07:05 +0200 | benin2 | (~benin@183.82.178.172) |
2022-06-04 10:08:35 +0200 | benin | (~benin@183.82.27.240) (Ping timeout: 252 seconds) |
2022-06-04 10:08:36 +0200 | benin2 | benin |
2022-06-04 10:11:25 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 10:13:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 10:23:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 10:25:13 +0200 | bilegeek | (~bilegeek@130.sub-174-208-235.myvzw.com) (Quit: Leaving) |
2022-06-04 10:26:25 +0200 | _xor | (~xor@72.49.198.103) (Quit: brb) |
2022-06-04 10:27:32 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-06-04 10:29:32 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 10:36:26 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
2022-06-04 10:37:40 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) |
2022-06-04 10:38:29 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-04 10:38:30 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds) |
2022-06-04 10:38:51 +0200 | acidjnk | (~acidjnk@p200300d0c7068b53cc85b297155bdc13.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2022-06-04 10:39:41 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 10:40:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 10:40:16 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 10:43:18 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-04 10:44:33 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 10:44:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 10:44:51 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-06-04 10:50:25 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 10:56:58 +0200 | dcoutts__ | (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
2022-06-04 10:57:28 +0200 | _xor | (~xor@72.49.198.103) |
2022-06-04 10:57:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
2022-06-04 10:59:09 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-04 11:00:09 +0200 | abastro[m] | (~abastroma@2001:470:69fc:105::1:e119) (Quit: You have been kicked for being idle) |
2022-06-04 11:00:14 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-06-04 11:00:47 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-06-04 11:01:48 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 250 seconds) |
2022-06-04 11:03:13 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-06-04 11:10:20 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-06-04 11:14:29 +0200 | chomwitt | (~chomwitt@2a02:587:dc0e:3e00:a7b6:b006:4748:1da9) |
2022-06-04 11:31:26 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
2022-06-04 11:48:12 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-06-04 11:48:18 +0200 | vglfr | (~vglfr@46.96.133.194) (Ping timeout: 246 seconds) |
2022-06-04 11:52:11 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 11:52:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 11:57:16 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 11:57:20 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
2022-06-04 12:06:56 +0200 | frost | (~frost@user/frost) (Ping timeout: 252 seconds) |
2022-06-04 12:11:17 +0200 | Igloo | (~ian@matrix.chaos.earth.li) (Ping timeout: 255 seconds) |
2022-06-04 12:11:24 +0200 | Igloo | (~ian@matrix.chaos.earth.li) |
2022-06-04 12:12:51 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Ping timeout: 256 seconds) |
2022-06-04 12:15:20 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer) |
2022-06-04 12:21:13 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-179.du.xdsl.is) |
2022-06-04 12:24:42 +0200 | Igloo | (~ian@matrix.chaos.earth.li) (Ping timeout: 246 seconds) |
2022-06-04 12:25:43 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) |
2022-06-04 12:25:52 +0200 | fetsorn | (~fetsorn@46.71.112.209) |
2022-06-04 12:33:20 +0200 | fetsorn | (~fetsorn@46.71.112.209) (Ping timeout: 255 seconds) |
2022-06-04 12:33:25 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-04 12:39:22 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-06-04 12:46:00 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2022-06-04 12:55:50 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-06-04 12:55:53 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f) |
2022-06-04 12:58:45 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-06-04 12:59:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 12:59:50 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-06-04 13:01:42 +0200 | Igloo | (~ian@matrix.chaos.earth.li) |
2022-06-04 13:01:59 +0200 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection) |
2022-06-04 13:04:23 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2022-06-04 13:04:59 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 13:05:40 +0200 | hubvu_ | (sid495858@id-495858.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2022-06-04 13:10:17 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 13:11:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 13:16:19 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 256 seconds) |
2022-06-04 13:16:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 13:17:51 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 13:17:56 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) |
2022-06-04 13:22:35 +0200 | __monty__ | (~toonn@user/toonn) |
2022-06-04 13:23:03 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 13:23:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 13:28:48 +0200 | alp | (~alp@user/alp) |
2022-06-04 13:30:32 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 260 seconds) |
2022-06-04 13:32:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 13:34:05 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 255 seconds) |
2022-06-04 13:34:25 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
2022-06-04 13:35:41 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-06-04 13:35:51 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2022-06-04 13:36:23 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-06-04 13:39:27 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 13:39:37 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
2022-06-04 13:39:50 +0200 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) |
2022-06-04 13:43:28 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-04 13:47:39 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
2022-06-04 13:48:09 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-06-04 13:53:38 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 13:58:48 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-06-04 14:03:19 +0200 | truckasaurus | (sid457088@id-457088.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-06-04 14:09:38 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-06-04 14:10:32 +0200 | alp | (~alp@user/alp) (Ping timeout: 255 seconds) |
2022-06-04 14:10:44 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-04 14:15:18 +0200 | xff0x | (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 246 seconds) |
2022-06-04 14:17:57 +0200 | odnes | (~odnes@5-203-183-6.pat.nym.cosmote.net) (Quit: Leaving) |
2022-06-04 14:24:07 +0200 | ente | (~daemon@inferno.barfooze.de) (Ping timeout: 244 seconds) |
2022-06-04 14:27:13 +0200 | agumonkey | (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection) |
2022-06-04 14:31:46 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 14:37:48 +0200 | xff0x | (~xff0x@b133147.ppp.asahi-net.or.jp) |
2022-06-04 14:42:53 +0200 | zincy | (~zincy@2a00:23c8:970c:4801:10b4:e123:1cab:7458) |
2022-06-04 14:43:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 14:46:50 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2022-06-04 14:47:01 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-04 14:48:47 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 14:50:08 +0200 | calleum_ | (~calleum@user/calleum) (Ping timeout: 255 seconds) |
2022-06-04 14:53:57 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 14:57:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 15:00:40 +0200 | zincy | (~zincy@2a00:23c8:970c:4801:10b4:e123:1cab:7458) (Remote host closed the connection) |
2022-06-04 15:01:51 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
2022-06-04 15:01:53 +0200 | robertm | (robertm@lattice.rojoma.com) (Quit: WeeChat 3.0) |
2022-06-04 15:04:22 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-06-04 15:06:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 255 seconds) |
2022-06-04 15:07:19 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 15:11:04 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 15:11:54 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f) |
2022-06-04 15:14:12 +0200 | robertm | (robertm@lattice.rojoma.com) |
2022-06-04 15:14:28 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-06-04 15:16:30 +0200 | <juri_> | hey, how do i use pendingWith from hspec with a property test executed by 'property' from quickcheck? |
2022-06-04 15:16:56 +0200 | <juri_> | they have different return types, so i can't just use a do block... |
2022-06-04 15:20:53 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 15:21:21 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-06-04 15:22:23 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-06-04 15:24:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 15:37:03 +0200 | oo_miguel | (~pi@77.252.47.226) (Quit: WeeChat 3.0) |
2022-06-04 15:39:11 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 15:40:11 +0200 | ente | (~daemon@inferno.barfooze.de) |
2022-06-04 15:44:39 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
2022-06-04 15:48:47 +0200 | <shapr> | Heffalump: I dreamed you were doing a world tour visiting Haskellers and you came to visit me. |
2022-06-04 15:49:41 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-06-04 15:50:52 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-06-04 15:53:05 +0200 | <juri_> | isovector still owes me a dropby. next time he goes exploring the world. |
2022-06-04 15:53:13 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-06-04 16:01:26 +0200 | benin | (~benin@183.82.178.172) (Quit: The Lounge - https://thelounge.chat) |
2022-06-04 16:26:08 +0200 | Topsi | (~Topsi@dyndsl-095-033-091-150.ewe-ip-backbone.de) |
2022-06-04 16:28:41 +0200 | raym | (~raym@user/raym) (Ping timeout: 255 seconds) |
2022-06-04 16:32:00 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2022-06-04 16:32:42 +0200 | cheater | (~Username@user/cheater) |
2022-06-04 16:35:12 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2022-06-04 16:37:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-06-04 16:56:18 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-06-04 16:59:24 +0200 | raym | (~raym@user/raym) |
2022-06-04 17:03:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
2022-06-04 17:07:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 244 seconds) |
2022-06-04 17:07:59 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-06-04 17:09:30 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-04 17:12:42 +0200 | jafarlihi | (~user@185.30.89.104) |
2022-06-04 17:12:51 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-04 17:13:10 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
2022-06-04 17:17:29 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2022-06-04 17:17:34 +0200 | <unit73e> | hello |
2022-06-04 17:18:41 +0200 | <unit73e> | can't find the differente between a sprite and frame and I'm doing an animation module lol |
2022-06-04 17:20:14 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 17:23:34 +0200 | andrey__ | (~andrey@p508d5c0f.dip0.t-ipconnect.de) |
2022-06-04 17:25:59 +0200 | andrey_ | (~andrey@p200300dbcf301a00a39cb4b6a4c691d0.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2022-06-04 17:28:33 +0200 | julian | (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian))) |
2022-06-04 17:29:12 +0200 | jafarlihi | (~user@185.30.89.104) (Quit: WeeChat 3.5) |
2022-06-04 17:32:03 +0200 | nahcetan | (~nate@98.45.169.16) |
2022-06-04 17:34:22 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-04 17:34:36 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
2022-06-04 17:39:02 +0200 | chomwitt | (~chomwitt@2a02:587:dc0e:3e00:a7b6:b006:4748:1da9) (Ping timeout: 260 seconds) |
2022-06-04 17:41:14 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 17:43:53 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f) (Read error: Connection reset by peer) |
2022-06-04 17:44:01 +0200 | fendor_ | (~fendor@178.165.192.249.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2022-06-04 17:46:41 +0200 | <Bulby[m]> | i am awake... what sorcery do I need to support recursive functions |
2022-06-04 17:46:51 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
2022-06-04 17:47:23 +0200 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L34-L38 |
2022-06-04 17:47:28 +0200 | user1 | (~user@185.30.89.104) |
2022-06-04 17:48:46 +0200 | fendor | (~fendor@178.115.68.102.wireless.dyn.drei.com) |
2022-06-04 17:49:27 +0200 | user1 | (~user@185.30.89.104) (Client Quit) |
2022-06-04 17:52:00 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-06-04 17:52:09 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-06-04 17:52:20 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-06-04 18:00:23 +0200 | Guest|77 | (~Guest|77@net-93-70-51-195.cust.vodafonedsl.it) |
2022-06-04 18:00:46 +0200 | Guest|77 | (~Guest|77@net-93-70-51-195.cust.vodafonedsl.it) (Client Quit) |
2022-06-04 18:03:07 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2022-06-04 18:03:16 +0200 | cyanide4dinner | (~cyanide4d@27.57.130.136) |
2022-06-04 18:03:19 +0200 | cyanide4dinner | (~cyanide4d@27.57.130.136) (Client Quit) |
2022-06-04 18:06:35 +0200 | <unit73e> | Bulby[m], I don't get your question |
2022-06-04 18:06:53 +0200 | julian | (~julian@20.83.116.49) |
2022-06-04 18:07:13 +0200 | <Bulby[m]> | I want the `LxEnv` I get to contain a reference to the function itself |
2022-06-04 18:07:25 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-06-04 18:07:38 +0200 | <unit73e> | ok. for what? |
2022-06-04 18:07:55 +0200 | <Bulby[m]> | an interpreter function value |
2022-06-04 18:08:27 +0200 | <unit73e> | which function reference? |
2022-06-04 18:08:40 +0200 | <unit73e> | because you can just store a function |
2022-06-04 18:08:40 +0200 | <geekosaur> | the one being defined at that point |
2022-06-04 18:08:47 +0200 | <Bulby[m]> | ^ |
2022-06-04 18:09:00 +0200 | <Bulby[m]> | a reference to `LvFun` |
2022-06-04 18:09:07 +0200 | <geekosaur> | you might look at "tying the knot" |
2022-06-04 18:09:18 +0200 | <Bulby[m]> | ? |
2022-06-04 18:09:24 +0200 | <Bulby[m]> | fix? |
2022-06-04 18:09:29 +0200 | coot | (~coot@213.134.190.95) |
2022-06-04 18:09:30 +0200 | <geekosaur> | sort of |
2022-06-04 18:09:51 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat) |
2022-06-04 18:09:54 +0200 | <geekosaur> | https://wiki.haskell.org/Tying_the_Knot |
2022-06-04 18:10:12 +0200 | <geekosaur> | it's a trick using laziness to achieve recursive definitions or values |
2022-06-04 18:10:56 +0200 | <geekosaur> | so you can in effect reference a value before it's been defined, which is what you want here |
2022-06-04 18:10:58 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:3f95:8a9b:686:c147) |
2022-06-04 18:11:33 +0200 | <Bulby[m]> | interesting |
2022-06-04 18:11:46 +0200 | mjs2600_ | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-04 18:12:12 +0200 | <Bulby[m]> | so i would first get a reference to one that isn't cyclical, then record update with a reference' |
2022-06-04 18:13:25 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2022-06-04 18:13:27 +0200 | <Bulby[m]> | record update wouldn't work how I want because it's in a monad |
2022-06-04 18:13:32 +0200 | coot | (~coot@213.134.190.95) (Client Quit) |
2022-06-04 18:14:01 +0200 | <Bulby[m]> | so I will do stupid sort of update |
2022-06-04 18:17:30 +0200 | desklamp[m] | (~desklampm@2001:470:69fc:105::77b8) |
2022-06-04 18:18:13 +0200 | <Bulby[m]> | 1. does binding in do statement work like let and 2. can you use the name being defined |
2022-06-04 18:20:04 +0200 | <geekosaur> | let bindings are still recursive. binding with <- is actually a lambda binding, so is not recursive but instead defines a new scope |
2022-06-04 18:21:09 +0200 | <Bulby[m]> | so i'll use a let binding then bind with <- later |
2022-06-04 18:21:32 +0200 | <geekosaur> | this means in `x <- expr_using_x`, it's not recursive because it translates to `expr_using_x >>= \x ->` |
2022-06-04 18:22:08 +0200 | <Bulby[m]> | wait, i'm using Data.HashMap.Strict to store it] |
2022-06-04 18:22:13 +0200 | <geekosaur> | there's an extension for a recursive do (mdo) iirc |
2022-06-04 18:22:17 +0200 | <Bulby[m]> | hope that doesn't cause any issues |
2022-06-04 18:23:36 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:3f95:8a9b:686:c147) (Quit: The Lounge - https://thelounge.chat) |
2022-06-04 18:23:40 +0200 | <geekosaur> | https://downloads.haskell.org/ghc/9.0.2/docs/html/users_guide/exts/recursive_do.html |
2022-06-04 18:24:00 +0200 | <geekosaur> | (I used the 9.0.2 manual but it's been around for a long time) |
2022-06-04 18:24:04 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 18:24:10 +0200 | <geekosaur> | back to 6.8 |
2022-06-04 18:24:33 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-06-04 18:25:47 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-04 18:33:11 +0200 | alp | (~alp@user/alp) |
2022-06-04 18:33:36 +0200 | nahcetan | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-06-04 18:35:11 +0200 | mixfix41 | (~sdenynine@user/mixfix41) (Excess Flood) |
2022-06-04 18:36:16 +0200 | <Bulby[m]> | The implementation of mfix for IO. If the function passed to fixIO inspects its argument, the resulting action will throw FixIOException. |
2022-06-04 18:36:26 +0200 | <Bulby[m]> | does recursive do mess with this at all |
2022-06-04 18:36:56 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.254) |
2022-06-04 18:37:31 +0200 | sander | (~sander@user/sander) (Quit: So long! :)) |
2022-06-04 18:41:24 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 18:41:24 +0200 | <c_wraith> | no. recursive do is syntactic sugar for a call to mfix |
2022-06-04 18:41:48 +0200 | <Bulby[m]> | haha i'll just run it and see if it crashes 🙂 |
2022-06-04 18:42:32 +0200 | <c_wraith> | if the function passed to fixIO inspects its arguments, you have a causality violation anyway. :P |
2022-06-04 18:42:49 +0200 | <Bulby[m]> | i don't understand what that means |
2022-06-04 18:42:58 +0200 | hueso | (~root@user/hueso) (Ping timeout: 244 seconds) |
2022-06-04 18:43:56 +0200 | <c_wraith> | it means you've set something up so that its input depends on its output in a paradoxical way. |
2022-06-04 18:44:14 +0200 | mixfix41 | (~sdenynine@user/mixfix41) |
2022-06-04 18:44:25 +0200 | <c_wraith> | I really like knot-tying. I've used both explicit knot-tying and recursive do a lot |
2022-06-04 18:44:38 +0200 | <c_wraith> | But you have to be careful that real progress can happen |
2022-06-04 18:44:53 +0200 | <c_wraith> | If it can't, you're just creating an infinite loop |
2022-06-04 18:45:11 +0200 | <c_wraith> | (except IO is nice enough to break the loop with an exception when you use mfix) |
2022-06-04 18:46:28 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-06-04 18:47:38 +0200 | zebrag | (~chris@user/zebrag) |
2022-06-04 18:47:55 +0200 | hueso | (~root@user/hueso) |
2022-06-04 18:54:19 +0200 | <c_wraith> | huh.. breaking the loop in IO is quite slow. Oh, right. because it's using an MVar behind the scenes, so it needs to wait on the MVar indefinitely blocked exception, which means it needs to wait for a GC to detect that |
2022-06-04 18:54:41 +0200 | sander | (~sander@user/sander) |
2022-06-04 18:58:51 +0200 | raym | (~raym@user/raym) (Remote host closed the connection) |
2022-06-04 18:59:16 +0200 | raym | (~raym@user/raym) |
2022-06-04 19:01:17 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-04 19:03:55 +0200 | raym | (~raym@user/raym) (Ping timeout: 258 seconds) |
2022-06-04 19:04:10 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
2022-06-04 19:04:15 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-04 19:04:39 +0200 | raym | (~raym@user/raym) |
2022-06-04 19:06:30 +0200 | <Bulby[m]> | ok, now I realize there is a second problem - I need to update the closure when the function is run to allow this example to wokr |
2022-06-04 19:06:31 +0200 | <Bulby[m]> | https://craftinginterpreters.com/functions.html#local-functions-and-closures |
2022-06-04 19:06:53 +0200 | <Bulby[m]> | current, it prints 1 twice in a row |
2022-06-04 19:08:37 +0200 | <Bulby[m]> | i think I know how - i'll tell you if it works out |
2022-06-04 19:11:58 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-06-04 19:18:25 +0200 | raym | (~raym@user/raym) (Ping timeout: 260 seconds) |
2022-06-04 19:21:19 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-04 19:25:42 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-04 19:27:04 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 19:31:23 +0200 | mbuf | (~Shakthi@223.190.209.89) (Quit: Leaving) |
2022-06-04 19:34:19 +0200 | raym | (~raym@user/raym) |
2022-06-04 19:36:27 +0200 | Macbethwin | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-06-04 19:40:42 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-06-04 19:43:38 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds) |
2022-06-04 19:45:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-06-04 19:46:09 +0200 | <Bulby[m]> | hm, my return throws the state, so i am trying to replace the closure with the thrown one, but that closure seems to lack the recursive definition |
2022-06-04 19:48:06 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-06-04 19:48:10 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-04 19:49:29 +0200 | califax | (~califax@user/califx) |
2022-06-04 19:54:50 +0200 | zaquest | (~notzaques@5.130.79.72) (Ping timeout: 240 seconds) |
2022-06-04 19:55:49 +0200 | <Bulby[m]> | would there be a reason for this? |
2022-06-04 19:56:04 +0200 | <Bulby[m]> | is it impossible to pass around recursive defs |
2022-06-04 19:57:46 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-06-04 19:57:56 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-06-04 19:59:00 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2022-06-04 19:59:24 +0200 | econo | (uid147250@user/econo) |
2022-06-04 19:59:30 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 258 seconds) |
2022-06-04 20:03:01 +0200 | causal | (~user@50.35.83.177) |
2022-06-04 20:03:32 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-06-04 20:04:22 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-06-04 20:05:04 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-06-04 20:09:49 +0200 | <unit73e> | I only figured now that where clause can have function signatures lol |
2022-06-04 20:09:52 +0200 | <EvanR> | a recursive let block is a cromulent syntactic construction |
2022-06-04 20:10:04 +0200 | <EvanR> | Bulby[m] |
2022-06-04 20:12:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 20:12:28 +0200 | <EvanR> | if you were doing things with a functional hat on you could desugar whatever it is to recursive let |
2022-06-04 20:13:15 +0200 | alp | (~alp@user/alp) (Ping timeout: 260 seconds) |
2022-06-04 20:13:19 +0200 | kwshi | (~kwshi@096-040-102-060.biz.spectrum.com) |
2022-06-04 20:15:06 +0200 | <unit73e> | were can I buy a functional hat? |
2022-06-04 20:15:25 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2022-06-04 20:16:13 +0200 | <unit73e> | oh no there's actually an haskell hat lol I search for it. it's €16 |
2022-06-04 20:16:41 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-06-04 20:16:41 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-06-04 20:16:44 +0200 | allbery_b | geekosaur |
2022-06-04 20:17:50 +0200 | <[exa]> | oh no *money disappears* |
2022-06-04 20:17:56 +0200 | <dsal> | A functional hat casts no shadow. |
2022-06-04 20:20:26 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-06-04 20:21:37 +0200 | <hpc> | a functional hat is always in head normal form |
2022-06-04 20:21:54 +0200 | <EvanR> | here are some https://i.imgur.com/MYdn2DC.png |
2022-06-04 20:21:55 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-06-04 20:22:19 +0200 | <EvanR> | in case you wanted to know what kind of hat it was |
2022-06-04 20:23:53 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-06-04 20:24:06 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 20:24:35 +0200 | <[exa]> | well, now I'm looking at the eval/apply globe from the picture and an empty spot on a cupboard here |
2022-06-04 20:25:06 +0200 | <Bulby[m]> | Printing it out, my native function gets recursive |
2022-06-04 20:25:08 +0200 | <Bulby[m]> | which is not good |
2022-06-04 20:25:13 +0200 | <Bulby[m]> | gonna fix that |
2022-06-04 20:26:41 +0200 | Macbethwin | Chargen |
2022-06-04 20:27:00 +0200 | <int-e> | EvanR: Uh, "apply" ends in an upside-down lambda, it must be the work of the devil. |
2022-06-04 20:27:50 +0200 | <int-e> | (that picture is weird) |
2022-06-04 20:27:57 +0200 | <EvanR> | apply seemingly has no reasonable type signature so yeah |
2022-06-04 20:33:08 +0200 | <Bulby[m]> | is this (a possible reason) why haxe was written in ocaml and not haskell or a non objective ml? because objective makes some things of interpreting easier? |
2022-06-04 20:34:10 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-06-04 20:35:32 +0200 | alp | (~alp@user/alp) |
2022-06-04 20:36:51 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection) |
2022-06-04 20:37:44 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
2022-06-04 20:38:28 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
2022-06-04 20:44:08 +0200 | <tabemann> | I have a stupid question which has arisen from a discussion in another channel: is GHC Haskell (not Haskell 2010)'s type system Turing complete? |
2022-06-04 20:44:25 +0200 | vicfred | (~vicfred@user/vicfred) |
2022-06-04 20:44:35 +0200 | nahcetan | (~nate@98.45.169.16) |
2022-06-04 20:45:26 +0200 | <[exa]> | tabemann: likely not with default extensions but certainly if you add a few language pragmas |
2022-06-04 20:46:05 +0200 | <[exa]> | tabemann: c.f. https://aphyr.com/posts/342-typing-the-technical-interview |
2022-06-04 20:47:44 +0200 | Chargen | (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection) |
2022-06-04 20:48:03 +0200 | Chargen | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-06-04 20:48:39 +0200 | <EvanR> | Bulby[m], considering the "write yourself a scheme in 24 hours" haskell tutorial, I'm not sure what the issue is |
2022-06-04 20:48:57 +0200 | <EvanR> | other than maybe doing things the hard way :tm: |
2022-06-04 20:50:06 +0200 | <tabemann> | [exa], I was reading something on doing Turing-complete stuff with the Haskell type system, but it involved things like type families combined with data kinds |
2022-06-04 20:50:26 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
2022-06-04 20:50:27 +0200 | fendor | (~fendor@178.115.68.102.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
2022-06-04 20:50:56 +0200 | <Bulby[m]> | 😓 |
2022-06-04 20:51:07 +0200 | nahcetan | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-06-04 20:52:12 +0200 | <EvanR> | when using the type system as logic to guarantee things about your code, you do NOT want it to be turing complete |
2022-06-04 20:52:19 +0200 | fendor | (~fendor@178.115.32.249.wireless.dyn.drei.com) |
2022-06-04 20:52:39 +0200 | <EvanR> | because then the type checker may sometimes not terminate |
2022-06-04 20:52:54 +0200 | <[exa]> | tabemann: ah so. very roughly, you can encode a decent subset of prolog into multiparameter type classes that is able to multiply a simple encoding of numbers ⇒ arbitrary functions can be enumerated ⇒ t-complete ⇒ undecidable |
2022-06-04 20:53:44 +0200 | <EvanR> | type families can't be partially applied for this reason |
2022-06-04 20:54:27 +0200 | <[exa]> | tabemann: that blogpost, although partially funny/obscure, is the best demonstration on how to do that that I know :] |
2022-06-04 20:54:51 +0200 | <Bulby[m]> | I am doing things the hard way ig... reading a tutorial about writing something in java |
2022-06-04 20:55:07 +0200 | <[exa]> | Bulby[m]: oh no, java, stop right there! :D |
2022-06-04 20:55:10 +0200 | fendor | (~fendor@178.115.32.249.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2022-06-04 20:55:16 +0200 | <EvanR> | so you're doing things the java way in haskell |
2022-06-04 20:55:24 +0200 | <[exa]> | Bulby[m]: btw do you have any snapshot of the problematic code we can look at? |
2022-06-04 20:55:29 +0200 | fendor | (~fendor@178.115.32.249.wireless.dyn.drei.com) |
2022-06-04 20:55:59 +0200 | <geekosaur> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L34-L38 from earlier |
2022-06-04 20:56:15 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-06-04 20:56:24 +0200 | <Bulby[m]> | and I just pushed the newest changes |
2022-06-04 20:56:55 +0200 | <tabemann> | back |
2022-06-04 20:59:08 +0200 | <Bulby[m]> | https://craftinginterpreters.com/functions.html#local-functions-and-closures the example provided here when entered into the REPL prints 1.0 then says Undefined variable count |
2022-06-04 20:59:40 +0200 | <Bulby[m]> | before I started editing the closure with newClosure in lxCall, it printed 1.0 twice |
2022-06-04 21:00:00 +0200 | <EvanR> | an interpreter for programs in expression form is a lot easier than java form |
2022-06-04 21:00:29 +0200 | <Bulby[m]> | well the language has statements |
2022-06-04 21:00:31 +0200 | <Bulby[m]> | ¯\_(ツ)_/¯ |
2022-06-04 21:00:33 +0200 | <EvanR> | actually it's really nice when all your data takes the form of expressions |
2022-06-04 21:01:21 +0200 | <EvanR> | a statement and a sequence of statements can be one form of expression in your language (to be distinguished from e.g. arithmetic expressions or whatever makes up statements) |
2022-06-04 21:01:23 +0200 | <Bulby[m]> | it is, but i'm implementing this language right now |
2022-06-04 21:02:06 +0200 | <Bulby[m]> | an expression that returns nil... |
2022-06-04 21:02:39 +0200 | <EvanR> | no... imagine statements don't return anything because that's not applicable to interpreting statements |
2022-06-04 21:03:08 +0200 | <Bulby[m]> | well that have to return something for it to make sense |
2022-06-04 21:03:11 +0200 | <EvanR> | unlike arithmetic expressions etc |
2022-06-04 21:03:15 +0200 | <Bulby[m]> | in haskell, i mean |
2022-06-04 21:03:22 +0200 | <EvanR> | now you're mixing levels |
2022-06-04 21:03:53 +0200 | <EvanR> | which you can do but that's like, advanced mode |
2022-06-04 21:04:26 +0200 | <Bulby[m]> | in haskell, what do lox statements return when evaluated? |
2022-06-04 21:04:36 +0200 | <EvanR> | what is lox |
2022-06-04 21:04:46 +0200 | <Bulby[m]> | the language i'm working on |
2022-06-04 21:05:25 +0200 | <EvanR> | in a hypothetical imperative language with statements I propose the interpretation of statements is effects |
2022-06-04 21:05:44 +0200 | <Bulby[m]> | ... which is what I am doing with them? |
2022-06-04 21:06:11 +0200 | <EvanR> | cool |
2022-06-04 21:07:50 +0200 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Types.hs#L85-L102 is how I represent types |
2022-06-04 21:08:04 +0200 | <Bulby[m]> | statements and expressions |
2022-06-04 21:09:34 +0200 | <EvanR> | FunDecl is a statement so you are dynamically generating function objects or |
2022-06-04 21:09:49 +0200 | <Bulby[m]> | yes, dynamically generating them |
2022-06-04 21:10:02 +0200 | <Bulby[m]> | in the earlier link |
2022-06-04 21:10:26 +0200 | <Bulby[m]> | well it got borked due to my push |
2022-06-04 21:10:45 +0200 | <Bulby[m]> | but basically the right location |
2022-06-04 21:11:53 +0200 | <EvanR> | and the function value is implemented as a haskell function it seems |
2022-06-04 21:12:09 +0200 | <Bulby[m]> | yes |
2022-06-04 21:12:35 +0200 | <EvanR> | looks complicated xD |
2022-06-04 21:12:43 +0200 | <Bulby[m]> | ☹️ |
2022-06-04 21:15:07 +0200 | <Bulby[m]> | so what did you suggest to make this more sane? |
2022-06-04 21:15:29 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-06-04 21:18:40 +0200 | <EvanR> | I mean it seems like you're doing it in an advanced way. Which suggests you have a plan and are not winging it |
2022-06-04 21:19:22 +0200 | <int-e> | . o O ( not having empty lines between declarations is hurting me more than I thought it would ) |
2022-06-04 21:19:48 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-04 21:20:48 +0200 | <EvanR> | and no I don't think object oriented would make it easier |
2022-06-04 21:20:53 +0200 | <int-e> | But... those type look relatively sane; semantically though, if local functions can capture variables from the enclosing ones this is nontrivial to implement. |
2022-06-04 21:21:16 +0200 | <int-e> | (they become closures in that case) |
2022-06-04 21:21:35 +0200 | <Bulby[m]> | i didn't really have a plan, I just started reading and implemented as I went |
2022-06-04 21:21:46 +0200 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
2022-06-04 21:22:05 +0200 | <EvanR> | does your language have a type system |
2022-06-04 21:22:09 +0200 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-06-04 21:22:14 +0200 | <Bulby[m]> | no 🤣 |
2022-06-04 21:22:18 +0200 | <EvanR> | nice |
2022-06-04 21:22:24 +0200 | <int-e> | looks dynamically typed so far |
2022-06-04 21:22:35 +0200 | <Bulby[m]> | which is why it's `LoxValue` instead of seperate newtypes |
2022-06-04 21:22:49 +0200 | <int-e> | (I imagine LoxValue is also used at runtime.) |
2022-06-04 21:23:09 +0200 | chomwitt | (~chomwitt@2a02:587:dc0e:3e00:5006:194c:376f:fb2e) |
2022-06-04 21:23:18 +0200 | <int-e> | (not just for literals.) |
2022-06-04 21:23:23 +0200 | <EvanR> | well the values are runtime and type system comes before that, if you do it like haskel |
2022-06-04 21:23:33 +0200 | <Bulby[m]> | yes, it is. ParseLoxValue is used for literals |
2022-06-04 21:24:03 +0200 | <EvanR> | so you could conceivably add one to make sure the values don't collide in weird ways |
2022-06-04 21:24:17 +0200 | <EvanR> | but otherwise the runtime goes unchanged |
2022-06-04 21:25:29 +0200 | <int-e> | Ah. Right, I misremembered that detail (how literals are represented) and didn't verify. It's not my code :P |
2022-06-04 21:26:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 21:26:18 +0200 | <Bulby[m]> | well right now I am just worried about my closure failing - I started asking about how the env thrown by the return statement doesn't include the function |
2022-06-04 21:27:30 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-06-04 21:27:59 +0200 | <Bulby[m]> | (yes, I use throwing for returning |
2022-06-04 21:28:05 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-06-04 21:28:13 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-06-04 21:28:16 +0200 | <EvanR> | jeez... |
2022-06-04 21:28:26 +0200 | <int-e> | Anyway. You need to think about scoping for the inner functions and variables... and that'll inform how to treat environments when a function definition is encountered. (Plural because I think you may want to associate an environment with local functions) |
2022-06-04 21:28:58 +0200 | <Bulby[m]> | I do scope 😅 |
2022-06-04 21:29:22 +0200 | <int-e> | There are design choices for scoping. Mainly: static or dynamic. |
2022-06-04 21:29:41 +0200 | <Bulby[m]> | oh, the book went over static scoping but I wasn't in the mood |
2022-06-04 21:29:45 +0200 | <int-e> | (the latter is insane for programming with but easier to implement in an interpreter?) |
2022-06-04 21:30:06 +0200 | <EvanR> | might as well do dynamic scope xD |
2022-06-04 21:30:13 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-06-04 21:30:34 +0200 | <int-e> | The thing is this: If you have a global function a, and a local function a, and then call a third function that calls a, dynamic scoping will pick the second a. |
2022-06-04 21:31:02 +0200 | <Bulby[m]> | I probably should do static scoping |
2022-06-04 21:31:12 +0200 | <EvanR> | (I don't see how that's easier to implement though) |
2022-06-04 21:31:23 +0200 | <int-e> | but, if you do static scoping you have to deal with the second a going out of scope when the third function is called. |
2022-06-04 21:31:43 +0200 | <int-e> | EvanR: it's easier if you track functions in a single environment that gets reset on function returns |
2022-06-04 21:32:03 +0200 | <Bulby[m]> | the Lox "specification" says it is lexically scoped |
2022-06-04 21:32:11 +0200 | <EvanR> | weird |
2022-06-04 21:32:17 +0200 | <EvanR> | (single environment) |
2022-06-04 21:32:54 +0200 | <Bulby[m]> | I skipped that chapter because I managed to hack a solution |
2022-06-04 21:33:06 +0200 | <int-e> | Well, I think. TBH that's the only excuse I see for dynamic scoping being a thing in the first place. |
2022-06-04 21:33:18 +0200 | <Bulby[m]> | haha |
2022-06-04 21:33:32 +0200 | <int-e> | "that" being "it's easier to implement" |
2022-06-04 21:33:53 +0200 | <int-e> | it's also *not* easier when writing a compiler. |
2022-06-04 21:35:08 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Ping timeout: 255 seconds) |
2022-06-04 21:35:33 +0200 | <int-e> | Bulby[m]: Anyway, mainly I'm suggesting that you'd benegit from a bit of planning for how you're representing the program state and in particular how local function definitions and function calls affect that state before actually diving into the implementation. |
2022-06-04 21:36:07 +0200 | <int-e> | Otherwise you may well end up in a total mess that has to be rewritten. Though I suppose you can get lucky. |
2022-06-04 21:36:46 +0200 | <Bulby[m]> | yes, I am going to do static scope |
2022-06-04 21:36:51 +0200 | <Bulby[m]> | javaism away! |
2022-06-04 21:37:15 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-06-04 21:37:56 +0200 | <Bulby[m]> | well, I am not doing visitor because I've written an implementation before in haxe, which has ADTs |
2022-06-04 21:38:42 +0200 | <geekosaur> | I admit I was confused about why you were having problems with the current function being in scope, because were I writing a language I'd have a scope stack |
2022-06-04 21:38:58 +0200 | <Bulby[m]> | hahaha |
2022-06-04 21:39:09 +0200 | <Bulby[m]> | yeah, I'll fix my mess that I made |
2022-06-04 21:39:12 +0200 | <geekosaur> | definitions always go into the top of the stack, references are searched in each stacked environment in order |
2022-06-04 21:39:27 +0200 | <Bulby[m]> | I do that dynamically |
2022-06-04 21:39:37 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2022-06-04 21:39:39 +0200 | <int-e> | I'm not saying that this is *hard*, just that it's kind of easy to go wrong, and planning wil pay off. |
2022-06-04 21:39:42 +0200 | <geekosaur> | the cxurrent function would be in a different environment but on the scope stack so it would be found unless shadowed by a local definition |
2022-06-04 21:39:51 +0200 | <int-e> | *will |
2022-06-04 21:40:13 +0200 | <Bulby[m]> | I will do Static scoping, as it will probably prevent headaches |
2022-06-04 21:40:28 +0200 | <int-e> | I approve :P |
2022-06-04 21:41:08 +0200 | <Bulby[m]> | my haxe one isn't to the letter, it goes the way of "everything is an expression" |
2022-06-04 21:41:31 +0200 | <int-e> | geekosaur: "single environment"... of course since this is Haskell, there'd be copies made whenever it's updated, and "resetting the environment" would just revert to an older copy. |
2022-06-04 21:41:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-06-04 21:41:57 +0200 | <Bulby[m]> | what does polysemy's `State` do? |
2022-06-04 21:42:06 +0200 | <Bulby[m]> | because that's where I store my env |
2022-06-04 21:42:39 +0200 | <int-e> | geekosaur: but this is irrelevant anyway since we're doing static scoping... and for that a stack (with one level per static nesting) is definitely looking good |
2022-06-04 21:43:00 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-06-04 21:43:31 +0200 | <geekosaur> | I'd expect it to not be too different from mtl State. the only difference is I'd have [Env] instead of Env, push a new Env when entering a function, pop on leaving it |
2022-06-04 21:43:46 +0200 | <geekosaur> | s/function/scope/ |
2022-06-04 21:44:14 +0200 | <Bulby[m]> | ah, I remember why I made everything an expression - haxe itself has macros that make everything an expression |
2022-06-04 21:45:35 +0200 | nate3 | (~nate@98.45.169.16) |
2022-06-04 21:46:01 +0200 | <Bulby[m]> | yuck, I used haxe's `Dynamic` |
2022-06-04 21:46:21 +0200 | <Bulby[m]> | even tho Haxe has adts and could have done what I am doing in haskell |
2022-06-04 21:48:36 +0200 | <Bulby[m]> | I guess haskell has changed me to be more typesafe |
2022-06-04 21:51:03 +0200 | nate3 | (~nate@98.45.169.16) (Ping timeout: 258 seconds) |
2022-06-04 21:51:54 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-06-04 21:55:37 +0200 | <EvanR> | the main difference (type system-wise) for me between haskell and dynamic languages is I do all the type checking |
2022-06-04 21:55:44 +0200 | pavonia | (~user@user/siracusa) |
2022-06-04 21:55:45 +0200 | <EvanR> | in the latter |
2022-06-04 22:02:30 +0200 | <Bulby[m]> | the book uses ` private final Map<Expr, Integer> locals = new HashMap<>();` to store it's scopes and says that each expression is it's own java object... which isn't true in haskell - it's pure data |
2022-06-04 22:04:14 +0200 | <Bulby[m]> | so how do I represent the depth of each expression |
2022-06-04 22:05:24 +0200 | <Bulby[m]> | my mind is telling me "use unique" |
2022-06-04 22:06:12 +0200 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 276 seconds) |
2022-06-04 22:09:54 +0200 | <[exa]> | Bulby[m]: btw what does LoxFunction actually represent? |
2022-06-04 22:10:59 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-06-04 22:11:05 +0200 | <Bulby[m]> | a function that takes a list of LoxValue and returns `()` in a monad that can run statements |
2022-06-04 22:13:36 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 22:15:24 +0200 | <EvanR> | you can compute the depth of subexpressions pretty easily |
2022-06-04 22:15:33 +0200 | jgeerds | (~jgeerds@55d45f48.access.ecotel.net) |
2022-06-04 22:15:44 +0200 | <Bulby[m]> | I think this is more static scope |
2022-06-04 22:16:34 +0200 | <EvanR> | oh using expression objects with identity as the literal key into a map... for some reason |
2022-06-04 22:17:01 +0200 | <Bulby[m]> | is there a better way to represent it? |
2022-06-04 22:17:08 +0200 | <EvanR> | wouldn't locals be a map from variable name to values |
2022-06-04 22:17:11 +0200 | <EvanR> | (not expressions) |
2022-06-04 22:19:39 +0200 | <[exa]> | Bulby[m]: so it takes LixValue, doesn't need to do anything to return (), and requests a monad that can run statements for it? |
2022-06-04 22:19:43 +0200 | <[exa]> | *Lux |
2022-06-04 22:19:49 +0200 | <[exa]> | *Lox |
2022-06-04 22:20:10 +0200 | <[exa]> | (the keyboard is wiggly today, sorry) |
2022-06-04 22:20:40 +0200 | <Bulby[m]> | well, it's guarenteed to run a `LxReturn` statement which will throw back to `lxCall` |
2022-06-04 22:23:25 +0200 | <EvanR> | .oO(is it really guaranteed to return) |
2022-06-04 22:23:40 +0200 | <[exa]> | ah so basically you want to interpret all your functions to this form and then just let it run, right? |
2022-06-04 22:23:53 +0200 | <Bulby[m]> | yes, while parsing I append a `return nil` |
2022-06-04 22:24:14 +0200 | <EvanR> | .oO(what if it never reaches that return nil) |
2022-06-04 22:24:31 +0200 | <Bulby[m]> | how would it not do that |
2022-06-04 22:24:49 +0200 | <EvanR> | if your language guarantees that, I will be mildly impressed |
2022-06-04 22:24:54 +0200 | fendor | (~fendor@178.115.32.249.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-06-04 22:25:18 +0200 | <Bulby[m]> | the parser guarantees that |
2022-06-04 22:25:19 +0200 | <EvanR> | e.g. C doesn't have that guarantee: for(;;){} return NIL; |
2022-06-04 22:25:58 +0200 | <Bulby[m]> | oh |
2022-06-04 22:25:58 +0200 | <Bulby[m]> | well it hangs then |
2022-06-04 22:25:58 +0200 | <Bulby[m]> | let me see |
2022-06-04 22:26:40 +0200 | <Bulby[m]> | yep, it hangs |
2022-06-04 22:27:33 +0200 | <Bulby[m]> | I mean like, if there is no explicit return then it returns nil |
2022-06-04 22:29:34 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Ping timeout: 240 seconds) |
2022-06-04 22:30:14 +0200 | <[exa]> | in the interpreted function (LoxFunction), are the calls to other functions already interpreted to LoxFunction or are they represented as some kind of action/effect? |
2022-06-04 22:31:04 +0200 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L37-L43 |
2022-06-04 22:31:14 +0200 | <Bulby[m]> | this is how they are interpreted |
2022-06-04 22:31:24 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
2022-06-04 22:31:24 +0200 | <Bulby[m]> | it runs the statements inside |
2022-06-04 22:31:51 +0200 | CoolerX | (~user@user/coolerx) |
2022-06-04 22:31:52 +0200 | <CoolerX> | Hi |
2022-06-04 22:31:55 +0200 | <[exa]> | ok, you're splitting the actual evaluation into 2 there |
2022-06-04 22:32:04 +0200 | <Bulby[m]> | huh? |
2022-06-04 22:32:10 +0200 | <CoolerX> | How do you use a local package? give it to ghc |
2022-06-04 22:32:29 +0200 | <CoolerX> | I am looking at https://stackoverflow.com/questions/59232514/using-local-packages-with-haskell-stack |
2022-06-04 22:33:05 +0200 | <CoolerX> | did stack sdist to create a tarball and put it in the same folder as the main project |
2022-06-04 22:33:15 +0200 | <[exa]> | CoolerX: it's relatively easy if you use cabal (you literally write the path to it to a project file, or afaik even doing `cabal install subdirectory/` works) |
2022-06-04 22:33:22 +0200 | <[exa]> | not sure about stack tho |
2022-06-04 22:33:26 +0200 | <CoolerX> | did stack init and updated stack.yaml |
2022-06-04 22:33:44 +0200 | <CoolerX> | I don't have a package.yaml so I can't updatee it |
2022-06-04 22:34:18 +0200 | <[exa]> | Bulby[m]: yeah, you are interpreting the recursive structure, creating an (unevaluated) infinite tree before the function is already executed |
2022-06-04 22:34:33 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-06-04 22:34:49 +0200 | <[exa]> | Bulby[m]: why not have a special effect for calling functions that manages the stacky stuff? |
2022-06-04 22:35:12 +0200 | <Bulby[m]> | you mean write a polysemy effect? |
2022-06-04 22:35:27 +0200 | acidjnk | (~acidjnk@p200300d0c7068b53096e2035e81feaf4.dip0.t-ipconnect.de) |
2022-06-04 22:36:18 +0200 | <[exa]> | yeah, literally have a piece of your DSL that is called e.g. `callFnWithArgs yourfunction [arg1, arg2, ...]` |
2022-06-04 22:37:01 +0200 | <[exa]> | then you don't have to pre-evaluate the recursion |
2022-06-04 22:37:12 +0200 | <Bulby[m]> | oh right I can literally store the statements |
2022-06-04 22:38:08 +0200 | <[exa]> | not sure what type for `yourFuncition` above would be best, depending on the language design you might choose either an identifier or a code representation for the function |
2022-06-04 22:38:11 +0200 | <EvanR> | hence... your data is a tangible expression you can do stuff with |
2022-06-04 22:38:23 +0200 | <CoolerX> | [exa]: yeah I did that, works with stack too |
2022-06-04 22:38:46 +0200 | <Bulby[m]> | yeah, haskell function is kinda stupid |
2022-06-04 22:38:47 +0200 | <CoolerX> | had to put packages: ['libs/MyPackage-0.1.0'] in stack.yaml |
2022-06-04 22:38:56 +0200 | <CoolerX> | and then stack build |
2022-06-04 22:38:57 +0200 | <Bulby[m]> | for representing lox function, i mean |
2022-06-04 22:39:15 +0200 | <EvanR> | a haskell function would potentially have better performance and potentially less total code, but possibly be more confusing |
2022-06-04 22:39:17 +0200 | <[exa]> | Bulby[m]: I'd say that's the main intuition about _functions_, you can't look into them |
2022-06-04 22:39:38 +0200 | <[exa]> | Bulby[m]: so best keep it as data until you're perfectly sure that you'll just evaluate stuff |
2022-06-04 22:39:49 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-04 22:40:18 +0200 | <Bulby[m]> | that would also fix my https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Types.hs#L118-L120 |
2022-06-04 22:40:50 +0200 | <[exa]> | Bulby[m]: anyway, your "function call effect" may be able to perfectly keep track of how many calls are currently stacked etc., hopefully giving some solution to your earlier depth-checking trouble (I didn't read the scrollback completely tho, sorry :D ) |
2022-06-04 22:41:11 +0200 | <[exa]> | re Show, yes, you gain representability |
2022-06-04 22:41:25 +0200 | <[exa]> | there's actually another way to kinda solve this |
2022-06-04 22:42:11 +0200 | <[exa]> | if you manually tag entrypoints for all functions, you may break the recursion in case you detect that you enter a function that you already entered somewhere higher in the expression tree |
2022-06-04 22:42:53 +0200 | <Bulby[m]> | I think I should just work on static scope for now |
2022-06-04 22:43:16 +0200 | <CoolerX> | ok nvm that doesn't do what I think it does |
2022-06-04 22:43:21 +0200 | <CoolerX> | it just builds the library |
2022-06-04 22:43:28 +0200 | <CoolerX> | but doesn't build my main.hs |
2022-06-04 22:43:48 +0200 | <[exa]> | CoolerX: your MyPackage is a library or a program? |
2022-06-04 22:44:23 +0200 | <[exa]> | s/program/executable/ youknowwhatImeant |
2022-06-04 22:44:33 +0200 | <[exa]> | Bulby[m]: what's your scoping right now btw? |
2022-06-04 22:44:50 +0200 | <CoolerX> | stack ghc main.hs gives an error |
2022-06-04 22:44:54 +0200 | <Bulby[m]> | hacked together :rofl |
2022-06-04 22:45:20 +0200 | <Bulby[m]> | I think dynamic scoping, as it's determined at runtime |
2022-06-04 22:45:28 +0200 | <CoolerX> | deriving instance ToJSON Token |
2022-06-04 22:45:29 +0200 | <CoolerX> | hmm |
2022-06-04 22:45:31 +0200 | trisolaran | (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-06-04 22:45:37 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-06-04 22:45:46 +0200 | <CoolerX> | https://bpa.st/4M7Q |
2022-06-04 22:45:57 +0200 | <CoolerX> | some error on that line |
2022-06-04 22:46:05 +0200 | <CoolerX> | [exa]: it's both |
2022-06-04 22:46:29 +0200 | <Bulby[m]> | it's not a grabify link, checked with wheregoes |
2022-06-04 22:46:39 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-06-04 22:46:55 +0200 | <Bulby[m]> | sorry, i get scared of anything ending with random letters now because of grabify |
2022-06-04 22:47:02 +0200 | <[exa]> | Bulby[m]: ah I see, basically execution trace scope |
2022-06-04 22:47:27 +0200 | <Bulby[m]> | it was hacked together |
2022-06-04 22:47:27 +0200 | <CoolerX> | Bulby[m]: it's a pastebin |
2022-06-04 22:47:32 +0200 | <Bulby[m]> | I should have done what the book said |
2022-06-04 22:47:50 +0200 | califax | (~califax@user/califx) |
2022-06-04 22:48:15 +0200 | <geekosaur> | formerly known as bpaste |
2022-06-04 22:48:22 +0200 | <[exa]> | Bulby[m]: I wouldn't worry about grabify when already sitting on IRC giving your v6 to the general publics :] |
2022-06-04 22:48:33 +0200 | <Bulby[m]> | my WHAT |
2022-06-04 22:48:55 +0200 | <CoolerX> | IPv6 address |
2022-06-04 22:48:59 +0200 | <geekosaur> | mm, the address being exposed is a matrix bridge address |
2022-06-04 22:49:17 +0200 | <CoolerX> | [exa]: help? |
2022-06-04 22:49:30 +0200 | <[exa]> | ah okay *lowers the hackgun* |
2022-06-04 22:49:38 +0200 | <Bulby[m]> | i didn't know irc does that |
2022-06-04 22:50:06 +0200 | <geekosaur> | you can ask for a cloak |
2022-06-04 22:50:13 +0200 | <[exa]> | it's pretty normal to report network details here because that's the prime way to ban abusers |
2022-06-04 22:50:23 +0200 | <Bulby[m]> | is that a joke or a technical term |
2022-06-04 22:50:32 +0200 | <geekosaur> | although since what's being exposed is an address of the matrix bridge, not sure it would do much |
2022-06-04 22:50:37 +0200 | <geekosaur> | it's a technical term |
2022-06-04 22:50:45 +0200 | <CoolerX> | [exa]: but you can ban with a cloak too so what's the point of exposing by default? |
2022-06-04 22:50:50 +0200 | <geekosaur> | try looking at my address with /whois geekosaur |
2022-06-04 22:51:11 +0200 | <[exa]> | CoolerX: that error is in the library or the main.hs or in the "root" slack project? |
2022-06-04 22:51:14 +0200 | <Bulby[m]> | i don't think matrix lets you do that |
2022-06-04 22:51:19 +0200 | <Bulby[m]> | \/whois geekosaur |
2022-06-04 22:51:35 +0200 | <CoolerX> | [exa]: the error is in my code |
2022-06-04 22:51:36 +0200 | <Bulby[m]> | more likely nheko is eating my slash command |
2022-06-04 22:51:40 +0200 | <[exa]> | anyway you can ban a registered user, but registrations are kinda rate-limited and if you just want to spam, you don't bother about registering :D |
2022-06-04 22:51:41 +0200 | <CoolerX> | line 47: deriving instance ToJSON Token |
2022-06-04 22:51:45 +0200 | <geekosaur> | you added a backslash, that won't work |
2022-06-04 22:52:09 +0200 | <Bulby[m]> | I can't input /whois geekosaur in a single message |
2022-06-04 22:52:20 +0200 | <Bulby[m]> | /whois geekosaur |
2022-06-04 22:52:30 +0200 | <Bulby[m]> | without spaces or something |
2022-06-04 22:52:35 +0200 | <geekosaur> | oh right, you're on matrix and it handles /-commands itself or passes them through as messages |
2022-06-04 22:52:51 +0200 | <geekosaur> | you'd have to join irc directly |
2022-06-04 22:53:03 +0200 | <CoolerX> | geekosaur: is a matrix the same as a bouncer? |
2022-06-04 22:53:06 +0200 | <[exa]> | kinda |
2022-06-04 22:53:08 +0200 | <Bulby[m]> | not with my new knowledge 😱 |
2022-06-04 22:53:12 +0200 | <geekosaur> | anyway it shows me as ~geekosaur!geekosaur@user/geekosaur |
2022-06-04 22:53:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-06-04 22:53:34 +0200 | Alleria | (~textual@user/alleria) |
2022-06-04 22:53:50 +0200 | <CoolerX> | Bulby[m]: knawlidge |
2022-06-04 22:53:58 +0200 | Alleria_ | (~AllahuAkb@68.65.161.35) |
2022-06-04 22:54:04 +0200 | <geekosaur> | sorry, geekosaur!~geekosaur@user/geekosaur |
2022-06-04 22:54:24 +0200 | <[exa]> | CoolerX: which one of your codes btw? might need more detail |
2022-06-04 22:54:27 +0200 | fetsorn | (~fetsorn@46.71.112.209) |
2022-06-04 22:54:29 +0200 | <Bulby[m]> | that's cool |
2022-06-04 22:54:30 +0200 | <CoolerX> | Tai Lopez ruined that word for me |
2022-06-04 22:54:32 +0200 | <Bulby[m]> | anyway |
2022-06-04 22:54:35 +0200 | <geekosaur> | nick ! username @ address , except that becuase I have a cloak it shows the cloak instead of my address |
2022-06-04 22:55:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 22:55:14 +0200 | <CoolerX> | [exa]: I am trying to build this https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/gener… |
2022-06-04 22:55:17 +0200 | <CoolerX> | locally |
2022-06-04 22:55:26 +0200 | <CoolerX> | they use a Dockerfile https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/gener… |
2022-06-04 22:55:36 +0200 | <CoolerX> | ghc /build/app.hs |
2022-06-04 22:55:40 +0200 | <geekosaur> | not sure if it'll work on matrix but join #libera-cloak:libera.chat and it should assign a cloak to your bridge address |
2022-06-04 22:55:46 +0200 | <Bulby[m]> | i'll ask in matrix chat because I don't want two convos at onces |
2022-06-04 22:56:00 +0200 | <CoolerX> | it's not clear to me where GHC looks for modules/packages |
2022-06-04 22:56:05 +0200 | <CoolerX> | especially local packages |
2022-06-04 22:56:16 +0200 | <CoolerX> | what is the module resolution algo? |
2022-06-04 22:56:40 +0200 | <[exa]> | CoolerX: ghc is usually configured by stack to look at precise places (you may have a look at ghc-pkg binary) |
2022-06-04 22:56:44 +0200 | <[exa]> | (same for cabal btw) |
2022-06-04 22:57:13 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 22:57:14 +0200 | <CoolerX> | [exa]: they use ghc directly there |
2022-06-04 22:57:17 +0200 | <geekosaur> | you wrapped it in "stack ghc" so stack is controlling module resolution using your local package's stack.yaml resolver and any additional packages |
2022-06-04 22:57:24 +0200 | <CoolerX> | not through stack |
2022-06-04 22:57:24 +0200 | fetsorn | (~fetsorn@46.71.112.209) (Remote host closed the connection) |
2022-06-04 22:57:27 +0200 | Dorkside69 | (~dorkside@208.190.197.222) |
2022-06-04 22:57:35 +0200 | <geekosaur> | if you use ghc directly it won't see anything installed by stack |
2022-06-04 22:57:36 +0200 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-06-04 22:57:44 +0200 | <CoolerX> | cool |
2022-06-04 22:57:55 +0200 | <Bulby[m]> | hm, it looks like another method is to store it directly on expressions |
2022-06-04 22:58:06 +0200 | <[exa]> | for "pure" ghc, ghc-pkg is the way to go I'd say |
2022-06-04 22:58:07 +0200 | <CoolerX> | geekosaur: so what's the error message mean? https://bpa.st/4M7Q |
2022-06-04 22:58:54 +0200 | <[exa]> | CoolerX: the message means that the instance for `ToJSON InnerToken` is missing, so it can't derive ToJSON instances for stuff that contains InnerToken |
2022-06-04 22:59:01 +0200 | <geekosaur> | ^ |
2022-06-04 22:59:13 +0200 | <geekosaur> | \and presumably a Token contains an InnerToken |
2022-06-04 22:59:23 +0200 | <[exa]> | sounds like that, right? :] |
2022-06-04 22:59:45 +0200 | <[exa]> | CoolerX: you might fix it by copying the 2 lines that derive Generic and ToJSON for Token, and rewrite Token to InnerToken |
2022-06-04 23:00:08 +0200 | <[exa]> | unless InnerToken contains some heavy magic which I doubt |
2022-06-04 23:01:30 +0200 | <[exa]> | ICSE is the "software engineering" conference? |
2022-06-04 23:01:47 +0200 | <geekosaur> | or is simply not exported beyond its type |
2022-06-04 23:03:29 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.5) |
2022-06-04 23:04:45 +0200 | causal | (~user@50.35.83.177) |
2022-06-04 23:04:55 +0200 | <CoolerX> | [exa]: ICSE https://conf.researchr.org/home/icse-2022 |
2022-06-04 23:05:20 +0200 | <CoolerX> | "[exa]> CoolerX: the message means that the instance for `ToJSON InnerToken` is missing, so it can't derive ToJSON instances for stuff that contains InnerToken" this sounds liks a tautology |
2022-06-04 23:05:41 +0200 | <CoolerX> | can't derive the instance because the instance is missing? |
2022-06-04 23:05:50 +0200 | <CoolerX> | isn't that the point of deriving something? |
2022-06-04 23:05:55 +0200 | cosimone | (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) |
2022-06-04 23:06:32 +0200 | user1 | (~user@194.135.153.200) |
2022-06-04 23:07:46 +0200 | <CoolerX> | hmm https://hackage.haskell.org/package/aeson-2.0.3.0/docs/Data-Aeson.html#t:ToJSON |
2022-06-04 23:08:06 +0200 | <geekosaur> | the instance of Token is what you're tryuing to derive, the instance of InnerToken is what needs to (also) be derived |
2022-06-04 23:10:18 +0200 | <CoolerX> | you mean instance of 'ToJSON Token' ? |
2022-06-04 23:11:25 +0200 | <geekosaur> | yes |
2022-06-04 23:11:36 +0200 | <geekosaur> | ToJSON Token needs ToJSON InnerToken |
2022-06-04 23:12:10 +0200 | <CoolerX> | Token is a concrete type that already exists https://github.com/koalaman/shellcheck/blob/master/src/ShellCheck/AST.hs#L40 |
2022-06-04 23:12:16 +0200 | <geekosaur> | or ToJSON (InnerToken Token) to be more precise. problem being that the repeated use ot `Token` makes me suspect `InnerToken` may be a type family |
2022-06-04 23:13:32 +0200 | <geekosaur> | okay, that looks fine to me |
2022-06-04 23:13:56 +0200 | <geekosaur> | so before deriving ToJSON Token you need to derive ToJSON (InnerToken Token) |
2022-06-04 23:14:46 +0200 | user1 | (~user@194.135.153.200) (Quit: WeeChat 3.5) |
2022-06-04 23:15:29 +0200 | <geekosaur> | actually just ToJSON (InnerToken t) should be fine, so it's not recursive |
2022-06-04 23:16:02 +0200 | <geekosaur> | deriving instance Generic (InnerToken t); deriving instance ToJSON (InnerToken t) |
2022-06-04 23:16:15 +0200 | <geekosaur> | deriving instance Generic Token; deriving instance ToJSON Token |
2022-06-04 23:18:46 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-06-04 23:19:17 +0200 | <CoolerX> | Illegal instance declaration for ‘ToJSON (InnerToken Token)’ |
2022-06-04 23:19:32 +0200 | <CoolerX> | \(All instance types must be of the form (T a1 ... an) where a1 ... an are *distinct type variables*, |
2022-06-04 23:19:49 +0200 | <geekosaur> | that's part of why I said use InnerToken t |
2022-06-04 23:20:06 +0200 | <CoolerX> | hmm? |
2022-06-04 23:20:08 +0200 | <CoolerX> | deriving instance ToJSON (InnerToken Token) |
2022-06-04 23:20:12 +0200 | <CoolerX> | that should work right? |
2022-06-04 23:20:20 +0200 | <geekosaur> | no |
2022-06-04 23:20:31 +0200 | <CoolerX> | why? |
2022-06-04 23:20:53 +0200 | <CoolerX> | • No instance for (Generic (InnerToken t)) arising from a use of ‘aeson-2.0.3.0:Data.Aeson.Types.ToJSON.$dmtoJSON’ |
2022-06-04 23:21:01 +0200 | <geekosaur> | that's what it's complaining about. you need an extension to say the concrete type `Token` there instead of a type variable, because it's not standard Haskell |
2022-06-04 23:21:07 +0200 | <CoolerX> | hmm deriving instance ToJSON (InnerToken t) |
2022-06-04 23:21:29 +0200 | <geekosaur> | in addition, it would be recursive because you would need to derive for Token to derive for InnerToken, but you need to derive for InnerToken to derive for Token |
2022-06-04 23:21:41 +0200 | <geekosaur> | I already gave you what you need |
2022-06-04 23:21:51 +0200 | <geekosaur> | [04 21:16:02] <geekosaur> deriving instance Generic (InnerToken t); deriving instance ToJSON (InnerToken t) |
2022-06-04 23:21:51 +0200 | <geekosaur> | [04 21:16:15] <geekosaur> deriving instance Generic Token; deriving instance ToJSON Token |
2022-06-04 23:22:00 +0200 | <hpc> | deriving instance ToJSON t => ToJSON (InnerToken t)? |
2022-06-04 23:22:09 +0200 | <CoolerX> | ah |
2022-06-04 23:22:11 +0200 | <geekosaur> | yeh, sorry |
2022-06-04 23:22:21 +0200 | <hpc> | and maybe the same for Generic |
2022-06-04 23:22:25 +0200 | <geekosaur> | and same for Generic needs the constraint for T to have Gneneric |
2022-06-04 23:22:29 +0200 | <geekosaur> | *Generic |
2022-06-04 23:23:15 +0200 | fetsorn | (~fetsorn@46.71.112.209) |
2022-06-04 23:23:46 +0200 | <CoolerX> | • No instance for (ToJSON t) |
2022-06-04 23:23:46 +0200 | <CoolerX> | arising from a use of ‘aeson-2.0.3.0:Data.Aeson.Types.ToJSON.$dmtoJSON’ |
2022-06-04 23:23:52 +0200 | <CoolerX> | deriving instance Generic (InnerToken t); deriving instance ToJSON (InnerToken t) |
2022-06-04 23:23:57 +0200 | <CoolerX> | for that line |
2022-06-04 23:24:06 +0200 | <geekosaur> | hpc just gave you the correction |
2022-06-04 23:24:15 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-06-04 23:24:42 +0200 | <CoolerX> | hpc: wha? |
2022-06-04 23:24:51 +0200 | <CoolerX> | deriving instance ToJSON t |
2022-06-04 23:24:53 +0200 | <CoolerX> | weird |
2022-06-04 23:25:12 +0200 | <CoolerX> | deriving for an abstract type t? |
2022-06-04 23:25:46 +0200 | <CoolerX> | Illegal instance declaration for ‘ToJSON t’ |
2022-06-04 23:25:47 +0200 | <CoolerX> | (All instance types must be of the form (T a1 ... an) |
2022-06-04 23:26:47 +0200 | <geekosaur> | deriving instance ToJSON t => ToJSON (InnerToken t) |
2022-06-04 23:26:57 +0200 | fetsorn | (~fetsorn@46.71.112.209) (Client Quit) |
2022-06-04 23:27:10 +0200 | <CoolerX> | oh what'x => ? lambda function? |
2022-06-04 23:27:14 +0200 | <geekosaur> | "if t has a ToJSON instance, make an instance for ToJSON (InnerToken)" |
2022-06-04 23:27:27 +0200 | <CoolerX> | oh right |
2022-06-04 23:27:30 +0200 | <CoolerX> | type constraint |
2022-06-04 23:27:50 +0200 | ashln | (~ashln@98.38.236.123) (Ping timeout: 240 seconds) |
2022-06-04 23:28:10 +0200 | <geekosaur> | yes. although if reading it out I susually read it as "implies" |
2022-06-04 23:28:13 +0200 | <geekosaur> | *usually |
2022-06-04 23:29:04 +0200 | <CoolerX> | yeah that worked |
2022-06-04 23:29:15 +0200 | <CoolerX> | geekosaur: yes |
2022-06-04 23:34:29 +0200 | ashln | (~ashln@98.38.236.123) |
2022-06-04 23:34:30 +0200 | <CoolerX> | hmm |
2022-06-04 23:34:53 +0200 | <CoolerX> | where are all the "contents" coming from? https://bpa.st/WV6Q |
2022-06-04 23:35:49 +0200 | <CoolerX> | I can't find the string "contents" in this file https://github.com/koalaman/shellcheck/blob/master/src/ShellCheck/AST.hs#L42-L145 |
2022-06-04 23:37:19 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-06-04 23:37:56 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-06-04 23:39:35 +0200 | <geekosaur> | that's how it's representing the Haskell values |
2022-06-04 23:40:16 +0200 | <geekosaur> | specifically an InnerToken is a JSON object with a tag and a contents |
2022-06-04 23:44:44 +0200 | CoolerX | (~user@user/coolerx) (Ping timeout: 255 seconds) |
2022-06-04 23:45:25 +0200 | CoolerX | (~user@user/coolerx) |
2022-06-04 23:47:01 +0200 | trisolaran | (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
2022-06-04 23:49:50 +0200 | CoolerX | (~user@user/coolerx) (Ping timeout: 240 seconds) |
2022-06-04 23:51:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-04 23:57:13 +0200 | fetsorn | (~fetsorn@46.71.112.209) |
2022-06-04 23:57:55 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-04 23:59:04 +0200 | fetsorn | (~fetsorn@46.71.112.209) (Remote host closed the connection) |