2021-06-23 00:00:00 +0200 | <Boarders> | is there anywhere that lists which flag -O2 turns on? |
2021-06-23 00:00:34 +0200 | x_kuru | (~xkuru@user/xkuru) |
2021-06-23 00:00:48 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 00:01:48 +0200 | <geekosaur> | "The easiest way to see what -O (etc.) “really mean” is to run with -v, then stand back in amazement. |
2021-06-23 00:01:48 +0200 | <geekosaur> | " |
2021-06-23 00:02:11 +0200 | <geekosaur> | presumably it's listed in the source code somewhere |
2021-06-23 00:02:30 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-23 00:02:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 00:03:04 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-06-23 00:03:18 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 258 seconds) |
2021-06-23 00:10:16 +0200 | <Cale> | Boarders: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Driver/Session.hs#L3850 |
2021-06-23 00:11:58 +0200 | <Cale> | also https://downloads.haskell.org/ghc/latest/docs/html/users_guide/flags.html#options-f-compact |
2021-06-23 00:14:17 +0200 | SoF | (~skius@user/skius) (Read error: Connection reset by peer) |
2021-06-23 00:14:39 +0200 | SoF | (~skius@user/skius) |
2021-06-23 00:16:05 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 00:18:20 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-06-23 00:21:32 +0200 | SoF | (~skius@user/skius) (Ping timeout: 252 seconds) |
2021-06-23 00:23:40 +0200 | SoF | (~skius@user/skius) |
2021-06-23 00:25:37 +0200 | derelict | (~derelict@user/derelict) |
2021-06-23 00:26:47 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 00:27:34 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Quit: Leaving) |
2021-06-23 00:29:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2021-06-23 00:29:50 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 00:34:35 +0200 | Morrow_ | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 268 seconds) |
2021-06-23 00:36:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-23 00:41:56 +0200 | GIANTWORLDKEEPER | (~pjetcetal@2.95.227.207) (Quit: EXIT) |
2021-06-23 00:43:20 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) |
2021-06-23 00:45:55 +0200 | GIANTWORLDKEEPER | (~pjetcetal@2.95.227.207) |
2021-06-23 00:47:46 +0200 | o1lo01ol1o | (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 258 seconds) |
2021-06-23 00:52:13 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:c14c:3118:b974:8ae3) (Quit: Leaving) |
2021-06-23 00:52:44 +0200 | <dminuoso> | Boarders: There's also a bunch of things that get activated simply based on optimization level without any more granular flags. |
2021-06-23 00:54:41 +0200 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/StgToCmm/Layout.hs#L215 |
2021-06-23 00:55:07 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 00:56:01 +0200 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Cmm/Pipeline.hs#L146 |
2021-06-23 00:56:04 +0200 | <dminuoso> | And few others |
2021-06-23 00:57:41 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-06-23 00:58:22 +0200 | tzar_bomba | (~tzar_bomb@78-56-41-78.static.zebra.lt) (Quit: Client closed) |
2021-06-23 00:59:58 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-06-23 01:01:27 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) |
2021-06-23 01:01:29 +0200 | <safinaskar> | https://paste.debian.net/1202082/ |
2021-06-23 01:01:33 +0200 | <safinaskar> | why this doesn't compile? |
2021-06-23 01:03:29 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-23 01:04:16 +0200 | shutdown_-h_now | (~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) (Ping timeout: 268 seconds) |
2021-06-23 01:05:06 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 01:06:57 +0200 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-06-23 01:09:07 +0200 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) |
2021-06-23 01:09:20 +0200 | mpt | (~tom@2a02:908:1862:49e0::3) |
2021-06-23 01:09:34 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-06-23 01:09:44 +0200 | alex3 | (~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 268 seconds) |
2021-06-23 01:09:45 +0200 | <eggplantade> | Perhaps it doesn't instantiate parameteric types under @ |
2021-06-23 01:10:00 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 258 seconds) |
2021-06-23 01:10:23 +0200 | shutdown_-h_now | (~arjan@82-75-187-100.cable.dynamic.v4.ziggo.nl) |
2021-06-23 01:10:31 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 01:10:38 +0200 | <eggplantade> | oh, it went the other way |
2021-06-23 01:11:54 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-23 01:12:18 +0200 | <eggplantade> | From the error message, it instantiated `IId` as `k -> k` for some new type variable k |
2021-06-23 01:14:04 +0200 | <eggplantade> | This is the same as how when you use the function `id`, the type is `a -> a` for some new type variable a. The type is not `forall a. a -> a` |
2021-06-23 01:14:12 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-06-23 01:19:05 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 252 seconds) |
2021-06-23 01:21:53 +0200 | <Axman6> | is there a way to get cabal to build docs for all dependencies of a package locally? |
2021-06-23 01:22:34 +0200 | alex3 | (~alex3@bsn-77-82-41.static.siol.net) |
2021-06-23 01:22:41 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-06-23 01:23:28 +0200 | mpt | (~tom@2a02:908:1862:49e0::3) (Ping timeout: 244 seconds) |
2021-06-23 01:25:45 +0200 | <safinaskar> | eggplantade: the error persists even if I write xx @(IId :: (forall (k :: Type). k -> k)) |
2021-06-23 01:31:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2021-06-23 01:34:11 +0200 | henninb | (~henninb@63.226.174.157) |
2021-06-23 01:40:40 +0200 | chisui | (~chisui@200116b866492700f0ddc72238639ee4.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
2021-06-23 01:42:08 +0200 | <eggplantade> | I just noticed you defined IId as a type synonym |
2021-06-23 01:42:54 +0200 | <eggplantade> | a type family |
2021-06-23 01:44:03 +0200 | <eggplantade> | I think that is the problem. There are restrictions on how you can apply type families to arguments |
2021-06-23 01:44:07 +0200 | <janus> | Axman6: i know you said cabal, but seems like stack can do it: https://www.reddit.com/r/haskell/comments/3glp5v/how_to_download_a_set_of_packages_and/ctz9mw4/ |
2021-06-23 01:44:08 +0200 | <eggplantade> | Can you use a newtype family instead |
2021-06-23 01:44:21 +0200 | trent2 | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-06-23 01:44:45 +0200 | <janus> | another person in the thread claims that cabal can do it if you pass --reinstall |
2021-06-23 01:45:44 +0200 | <safinaskar> | eggplantade: this is type synonym, not type family |
2021-06-23 01:46:06 +0200 | <safinaskar> | eggplantade: i don't want newtype family. i want type synonym (or type family) |
2021-06-23 01:46:30 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
2021-06-23 01:47:28 +0200 | zeenk | (~zeenk@2a02:2f04:a00e:6e00:d401:4c92:fecc:16f9) (Quit: Konversation terminated!) |
2021-06-23 01:47:34 +0200 | <eggplantade> | hmm. I haven't seen that syntax with type synonyms before |
2021-06-23 01:48:09 +0200 | <eggplantade> | The way you are using IId looks like you are trying to use a type-level function. However, you can't do that. |
2021-06-23 01:49:12 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 268 seconds) |
2021-06-23 01:52:00 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-23 01:53:12 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 01:53:15 +0200 | chisui | (~chisui@200116b866492700342cdc4d594c896c.dip.versatel-1u1.de) |
2021-06-23 01:55:02 +0200 | <safinaskar> | eggplantade: yes, i want this |
2021-06-23 01:55:09 +0200 | <safinaskar> | eggplantade: why i cannot do this? |
2021-06-23 01:55:33 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 01:55:53 +0200 | <eggplantade> | The type checker's job is to decide whether types are equal, but it is undecidable whether two functions are equal |
2021-06-23 01:55:58 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 01:56:41 +0200 | <safinaskar> | eggplantade: please give some link about this |
2021-06-23 01:59:33 +0200 | <janus> | if you can't know whether an arbitrary recursive function terminates, how would you know if it is equal? i wonder if it follows from the Entscheidungsproblem |
2021-06-23 01:59:56 +0200 | hounded | (~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving) |
2021-06-23 02:00:58 +0200 | <chisui> | Even if you assume that the function terminates, the domain of `forall x. x -> x` is infinitely large. |
2021-06-23 02:02:54 +0200 | <janus> | right, but why even talk about forall if it is even undecidable to answer the question for "the general first-order theory of the natural numbers expressed in Peano's axioms". wouldn't that have better literature? |
2021-06-23 02:03:05 +0200 | trufas | (~trufas@177.240.218.218) (Ping timeout: 252 seconds) |
2021-06-23 02:03:32 +0200 | <Axman6> | janus: thanks, I'll give that a go |
2021-06-23 02:03:45 +0200 | trufas | (~trufas@177.240.218.218) |
2021-06-23 02:04:26 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Ping timeout: 265 seconds) |
2021-06-23 02:04:29 +0200 | <eggplantade> | I think this paper explains the restriction. The paper is quite technical, though. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.142.4166 |
2021-06-23 02:04:52 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-06-23 02:05:52 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-23 02:06:21 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 258 seconds) |
2021-06-23 02:08:25 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-06-23 02:08:48 +0200 | <eggplantade> | safinaskar: https://ryanglscott.github.io/2019/05/26/on-the-arity-of-type-families/ |
2021-06-23 02:09:11 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 02:09:30 +0200 | <safinaskar> | ok, thanks everybody |
2021-06-23 02:09:34 +0200 | <safinaskar> | i will read links |
2021-06-23 02:12:14 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 02:13:15 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 268 seconds) |
2021-06-23 02:16:18 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-23 02:18:56 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 265 seconds) |
2021-06-23 02:19:18 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2021-06-23 02:20:57 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 02:21:07 +0200 | pottsy | (~pottsy@2400:4050:b560:3700:d9ad:59b1:5f34:93cd) (Quit: Leaving) |
2021-06-23 02:25:49 +0200 | Deide | (~Deide@user/deide) (Quit: Seeee yaaaa) |
2021-06-23 02:26:52 +0200 | renzhi | (~xp@2607:fa49:6501:9500:5589:4dab:9f77:1a6b) |
2021-06-23 02:29:30 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2021-06-23 02:31:06 +0200 | henninb | (~henninb@63.226.174.157) (Remote host closed the connection) |
2021-06-23 02:32:05 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Quit: Leaving) |
2021-06-23 02:33:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 02:34:29 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-23 02:35:39 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-23 02:37:23 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-23 02:37:24 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 258 seconds) |
2021-06-23 02:40:08 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-06-23 02:40:56 +0200 | hmmmas | (~chenqisu1@183.217.200.246) |
2021-06-23 02:43:14 +0200 | shimin | (~liushimin@2409:893c:d32:97:28d4:25fe:fcfb:1863) |
2021-06-23 02:43:26 +0200 | argento | (~argent0@168-227-96-26.ptr.westnet.com.ar) (Quit: leaving) |
2021-06-23 02:45:45 +0200 | hmmmas | (~chenqisu1@183.217.200.246) (Client Quit) |
2021-06-23 02:46:44 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 02:49:06 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) () |
2021-06-23 02:52:06 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 268 seconds) |
2021-06-23 02:53:07 +0200 | hmmmas | (~chenqisu1@183.217.200.246) |
2021-06-23 02:56:24 +0200 | stevenxl_ | (~stevenlei@174.128.182.212) |
2021-06-23 02:59:21 +0200 | <chisui> | Hey, why is this error occurring https://paste.debian.net/1202086/ ? As far as I can tell the quantified constraint doesn't imply that the instance is user provided. |
2021-06-23 02:59:30 +0200 | stevenxl | (~stevenlei@174.128.182.215) (Ping timeout: 268 seconds) |
2021-06-23 03:01:44 +0200 | phma | (phma@2001:5b0:210d:d028:dead:9920:575e:b71e) (Read error: Connection reset by peer) |
2021-06-23 03:02:14 +0200 | <qrpnxz> | how do i turn a float into an integer? I've tried like fromInteger . fromIntegral . floor and stuff and gotten nowhere |
2021-06-23 03:04:27 +0200 | <Clint> | qrpnxz: what's wrong with floor |
2021-06-23 03:04:46 +0200 | <qrpnxz> | doesn't work idk let me get the error message |
2021-06-23 03:05:02 +0200 | <Clint> | > floor 5.5 |
2021-06-23 03:05:04 +0200 | <lambdabot> | 5 |
2021-06-23 03:05:24 +0200 | <Clint> | > round 5.5 |
2021-06-23 03:05:26 +0200 | <lambdabot> | 6 |
2021-06-23 03:05:34 +0200 | <qrpnxz> | https://termbin.com/fyi2 |
2021-06-23 03:06:11 +0200 | <Clint> | get rid of "fromIntegral ." |
2021-06-23 03:06:36 +0200 | <qrpnxz> | wtf lmao |
2021-06-23 03:06:41 +0200 | <Clint> | and what do you mean for take (floor 2.0) [1..] to do? |
2021-06-23 03:06:58 +0200 | <qrpnxz> | i thought i tried that but guess not |
2021-06-23 03:07:10 +0200 | <qrpnxz> | i mean it for it to take 2 ofc since the floor of 2.0 is 2 |
2021-06-23 03:07:15 +0200 | <Clint> | ok, just checking |
2021-06-23 03:07:17 +0200 | <geekosaur> | qrpnxz, you want to apply it not compose it, but it would be doing nothing |
2021-06-23 03:07:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-23 03:08:46 +0200 | <qrpnxz> | oh, the real error in my code is that function will apply more tightly than multiplication rip |
2021-06-23 03:11:03 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-23 03:11:44 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 03:13:09 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-23 03:13:49 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-06-23 03:14:01 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 03:15:05 +0200 | stevenxl_ | (~stevenlei@174.128.182.212) (Quit: leaving) |
2021-06-23 03:16:06 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 244 seconds) |
2021-06-23 03:21:07 +0200 | chisui | (~chisui@200116b866492700342cdc4d594c896c.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
2021-06-23 03:21:44 +0200 | howdy` | (~user@2001:8003:2432:d501:1ea:381d:5464:1a19) (Ping timeout: 252 seconds) |
2021-06-23 03:21:46 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-06-23 03:22:26 +0200 | howdy` | (~user@2001:8004:1d00:2409:685e:a149:f33:6c38) |
2021-06-23 03:23:27 +0200 | haskl | (~haskeller@user/haskl) |
2021-06-23 03:25:09 +0200 | howdy`` | (~user@2001:8003:2432:d501:7c9a:6d35:e5a2:fb9c) |
2021-06-23 03:27:20 +0200 | howdy` | (~user@2001:8004:1d00:2409:685e:a149:f33:6c38) (Ping timeout: 268 seconds) |
2021-06-23 03:28:55 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 03:32:00 +0200 | pfurla_ | (~pfurla@216.131.82.46) |
2021-06-23 03:34:49 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 265 seconds) |
2021-06-23 03:37:34 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:7821:4ac6:7f63:f8) (Remote host closed the connection) |
2021-06-23 03:40:04 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-06-23 03:44:43 +0200 | ukari | (~ukari@user/ukari) |
2021-06-23 03:47:37 +0200 | trent2 | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 244 seconds) |
2021-06-23 03:48:08 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-06-23 03:48:25 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-06-23 03:48:32 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-23 03:51:54 +0200 | shimin | (~liushimin@2409:893c:d32:97:28d4:25fe:fcfb:1863) (Ping timeout: 264 seconds) |
2021-06-23 03:51:55 +0200 | mikail_ | (~mikail@90.212.77.3) (Ping timeout: 268 seconds) |
2021-06-23 03:52:49 +0200 | <qrpnxz> | there a syntax to do like half open ranges on lists like `[0...l]` or smth like that? |
2021-06-23 03:54:51 +0200 | <glguy> | qrpnxz, [0..l-1] |
2021-06-23 03:54:52 +0200 | <geekosaur> | no, and in fact Haskell's story there is a bit strange for some types |
2021-06-23 03:55:32 +0200 | <geekosaur> | notably Double can run past the end of the range under some circumstances |
2021-06-23 03:56:57 +0200 | <boxscape> | > [1.1, 1.31..4] |
2021-06-23 03:56:58 +0200 | <lambdabot> | [1.1,1.31,1.52,1.73,1.94,2.15,2.36,2.57,2.78,2.9899999999999998,3.1999999999... |
2021-06-23 03:57:18 +0200 | <boxscape> | somewhat anticlimactic when lambdabot doesn't show the whole list |
2021-06-23 03:58:08 +0200 | <qrpnxz> | glguy, 😭️ |
2021-06-23 03:58:12 +0200 | <qrpnxz> | alright thanks guys |
2021-06-23 03:58:38 +0200 | <c_wraith> | > [1, 2.5 .. 3.5] |
2021-06-23 03:58:39 +0200 | <lambdabot> | [1.0,2.5,4.0] |
2021-06-23 03:58:42 +0200 | <ChaiTRex> | > last [1.1, 1.31..4] |
2021-06-23 03:58:44 +0200 | <lambdabot> | 4.039999999999999 |
2021-06-23 03:59:14 +0200 | <glguy> | qrpnxz, I find the languages that do that just make a confusing mess with it |
2021-06-23 03:59:41 +0200 | <glguy> | like Rust's .. and ..= |
2021-06-23 03:59:43 +0200 | <qrpnxz> | i think one language does .. and ..=, which is perfectly legible |
2021-06-23 03:59:54 +0200 | <qrpnxz> | lol |
2021-06-23 04:00:09 +0200 | <geekosaur> | de gustibus… |
2021-06-23 04:02:05 +0200 | xff0x | (~xff0x@2001:1a81:5218:4800:ee:cf49:8e18:79e1) (Ping timeout: 244 seconds) |
2021-06-23 04:03:50 +0200 | xff0x | (~xff0x@2001:1a81:5256:f800:ed61:c578:88bf:885a) |
2021-06-23 04:05:41 +0200 | <boxscape> | I think with syntax like [1,2...n] or anything similar it clearly seems to suggest that n is inside the list |
2021-06-23 04:07:11 +0200 | <qrpnxz> | .. vs ... is kind of anybodies guess, but .. vs ..= is obvious |
2021-06-23 04:08:13 +0200 | <glguy> | If you're going to have both, then ..< and ..= at least |
2021-06-23 04:08:26 +0200 | <boxscape> | ^ |
2021-06-23 04:10:11 +0200 | <boxscape> | it's strange that [n..m] gets desugared into enumFromTo but `if c then a else b` doesn't get desugared into ifThenElse without RebindableSyntax |
2021-06-23 04:14:25 +0200 | GoodbyeVincent | (~GoodbyeVi@55.15.95.92.rev.sfr.net) |
2021-06-23 04:16:36 +0200 | <boxscape> | (It's also strange that RebindableSyntax/OverloadedLists doesn't let you supply your own enumFromTo, I suppose) |
2021-06-23 04:17:06 +0200 | outoftime | (~ruslan@46.227.138.42) |
2021-06-23 04:19:35 +0200 | ddellacosta | (~ddellacos@ool-44c73aff.dyn.optonline.net) |
2021-06-23 04:35:20 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-06-23 04:35:20 +0200 | FinnElija | Guest3314 |
2021-06-23 04:35:20 +0200 | Guest3314 | (~finn_elij@user/finn-elija/x-0085643) (Killed (cadmium.libera.chat (Nickname regained by services))) |
2021-06-23 04:35:20 +0200 | finn_elija | FinnElija |
2021-06-23 04:36:54 +0200 | alx741 | (~alx741@181.196.68.156) (Quit: alx741) |
2021-06-23 04:41:07 +0200 | Topsi | (~Tobias@dyndsl-095-033-016-151.ewe-ip-backbone.de) |
2021-06-23 04:43:06 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-06-23 04:43:11 +0200 | ddellacosta | (~ddellacos@ool-44c73aff.dyn.optonline.net) (Remote host closed the connection) |
2021-06-23 04:44:46 +0200 | <outoftime> | Does Haskell have an arbitrary precision fraction data type? I can not loose precision been working with values of +-10^128. |
2021-06-23 04:45:09 +0200 | <glguy> | outoftime, it has Rational |
2021-06-23 04:45:57 +0200 | <Axman6> | > 2^255 % 3^127 |
2021-06-23 04:45:59 +0200 | <lambdabot> | 5789604461865809771178549250434395392663499233282028201972879200395656481996... |
2021-06-23 04:46:14 +0200 | <Axman6> | :t 2^255 % 3^127 |
2021-06-23 04:46:15 +0200 | <lambdabot> | Integral a => Ratio a |
2021-06-23 04:48:06 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 04:52:55 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-23 04:53:50 +0200 | pieguy128 | (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-06-23 04:54:09 +0200 | pieguy128 | (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) |
2021-06-23 04:54:54 +0200 | renzhi | (~xp@2607:fa49:6501:9500:5589:4dab:9f77:1a6b) (Ping timeout: 268 seconds) |
2021-06-23 04:55:48 +0200 | td_ | (~td@94.134.91.59) (Ping timeout: 252 seconds) |
2021-06-23 04:57:13 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 04:57:42 +0200 | td_ | (~td@muedsl-82-207-238-055.citykom.de) |
2021-06-23 05:00:52 +0200 | <Cale> | Axman6: Ah yes, the just interval between C and an F♭♭♭♭♭♭♭♭♭♭♭♭♭♭♭♭♭♭ 53 octaves above it |
2021-06-23 05:01:50 +0200 | phma | (phma@2001:5b0:210d:d028:4f8f:d565:65bb:29c2) |
2021-06-23 05:01:53 +0200 | <peddie> | outoftime: you can use a library like `hmpfr` or `qd` to get a higher precision floating-point type |
2021-06-23 05:03:50 +0200 | <qrpnxz> | but why, it's built in |
2021-06-23 05:04:10 +0200 | <qrpnxz> | hey, does type Name = Int actually create a new type or is this an alias? |
2021-06-23 05:04:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 05:04:17 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-06-23 05:04:48 +0200 | <peddie> | qrpnxz: you mean Rational is built in? yes, but it represents exact rational numbers, and sometimes you want a floating-point approximate reals and/or IEEE754 semantics |
2021-06-23 05:05:06 +0200 | <qrpnxz> | there is also bigfloat, i forget what it's called tho |
2021-06-23 05:05:39 +0200 | <peddie> | qrpnxz: there are bindings to libbf, but they don't include many functions right now |
2021-06-23 05:06:10 +0200 | trent2 | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-06-23 05:06:52 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 05:06:52 +0200 | <peddie> | qrpnxz: `type Name = Int` is an alias; you can use `newtype` to create a new type |
2021-06-23 05:06:57 +0200 | <qrpnxz> | ty |
2021-06-23 05:07:10 +0200 | pfurla_ | (~pfurla@216.131.82.46) (Ping timeout: 252 seconds) |
2021-06-23 05:07:53 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 252 seconds) |
2021-06-23 05:09:47 +0200 | <qrpnxz> | ah, there's no bigfloat, ig you can just use Integer then |
2021-06-23 05:11:29 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-06-23 05:12:42 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-06-23 05:12:51 +0200 | <monochrom> | Haha Cale you have abstract perfect pitch. |
2021-06-23 05:12:56 +0200 | juhp | (~juhp@128.106.188.66) |
2021-06-23 05:13:35 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-06-23 05:13:57 +0200 | pottsy | (~pottsy@2400:4050:b560:3700:f364:dfb7:d56f:99c4) |
2021-06-23 05:14:06 +0200 | <outoftime> | I have never used Haskell before and I want to solve `Zn = Z_{n-1}^2 + C` wich gives cicle of length 6 for Z0 and C in range -100..100 (it has no solution in N) |
2021-06-23 05:15:07 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-06-23 05:15:18 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
2021-06-23 05:15:31 +0200 | talismanick | (~user@2601:644:8502:d700::94c9) |
2021-06-23 05:15:57 +0200 | <outoftime> | I had idea to implement `Fraction a b` but I've read "Learn You a Haskell for Great Good!" to the point when I could do it. That is why asked, maybe there is some type I can start using right now. |
2021-06-23 05:16:29 +0200 | <outoftime> | *Fraction (Integer a) (Integer b) |
2021-06-23 05:16:39 +0200 | <ChaiTRex> | outoftime: Data.Ratio |
2021-06-23 05:17:04 +0200 | <talismanick> | Cabal v3.* uses the new commands by default, right? |
2021-06-23 05:17:12 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 05:17:30 +0200 | <talismanick> | e.g. "cabal install" is the same as "cabal v2-install" or "cabal new-install" in Cabal v2.* |
2021-06-23 05:17:49 +0200 | bone-baboon | (~bone-babo@37.19.198.11) |
2021-06-23 05:18:09 +0200 | <talismanick> | Please tell me I haven't been priming my system for Cabal Hell |
2021-06-23 05:21:12 +0200 | <peddie> | outoftime: that's the Rational type |
2021-06-23 05:21:13 +0200 | <monochrom> | Yes, v2- is the default. |
2021-06-23 05:22:12 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 05:22:55 +0200 | <outoftime> | ChaiTRex: thank you! |
2021-06-23 05:25:50 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-06-23 05:26:27 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 05:26:39 +0200 | <ChaiTRex> | No problem. |
2021-06-23 05:26:42 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 264 seconds) |
2021-06-23 05:26:50 +0200 | Morrow_ | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 05:27:33 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 05:30:24 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 05:30:33 +0200 | justBull | justK |
2021-06-23 05:31:20 +0200 | hmmmas | (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
2021-06-23 05:32:14 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-06-23 05:33:12 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds) |
2021-06-23 05:33:12 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds) |
2021-06-23 05:33:29 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-23 05:33:44 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds) |
2021-06-23 05:33:51 +0200 | x_kuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-06-23 05:34:17 +0200 | Morrow_ | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 268 seconds) |
2021-06-23 05:35:44 +0200 | JSharp | JSharp_ |
2021-06-23 05:35:48 +0200 | JSharp_ | JSharp__ |
2021-06-23 05:35:51 +0200 | JSharp__ | jaesharp |
2021-06-23 05:35:54 +0200 | jaesharp | jaesharp_ |
2021-06-23 05:35:59 +0200 | jaesharp_ | jaesharp__ |
2021-06-23 05:36:35 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-06-23 05:37:13 +0200 | jaesharp__ | JSharp |
2021-06-23 05:38:18 +0200 | JSharp | Rachel |
2021-06-23 05:38:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-06-23 05:38:38 +0200 | Rachel | Rachel_ |
2021-06-23 05:38:40 +0200 | Rachel_ | Rachel__ |
2021-06-23 05:38:43 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2021-06-23 05:38:43 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-06-23 05:38:52 +0200 | Rachel__ | JSharp |
2021-06-23 05:39:14 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-06-23 05:40:22 +0200 | <guest61> | JSharp please stop flooding |
2021-06-23 05:43:21 +0200 | <bone-baboon> | Can lambdabot be used to help answer FAQ that repeatedly come up in a IRC channel? |
2021-06-23 05:44:06 +0200 | <JSharp> | guest61: I thought I parted all of my channels :/ - sorry about that! |
2021-06-23 05:45:48 +0200 | sekun | (~sekun@180.190.208.125) |
2021-06-23 05:46:17 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-23 05:48:47 +0200 | <boxscape> | @where TAPL |
2021-06-23 05:48:47 +0200 | <lambdabot> | "Types and Programming Languages" by Benjamin C. Pierce in 2002-02-01 at <https://www.cis.upenn.edu/~bcpierce/tapl/> |
2021-06-23 05:49:00 +0200 | <boxscape> | bone-baboon: you can have it remember things for arbitrary keywords ^ |
2021-06-23 05:50:16 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 05:52:36 +0200 | Morrow | (~MorrowM_@147.161.13.60) |
2021-06-23 05:52:54 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-23 05:53:16 +0200 | MorrowM | (~MorrowM_@147.161.13.60) |
2021-06-23 05:53:48 +0200 | <qrpnxz> | there a way to derive the number typeclasses for things like newtype X a = X Float? |
2021-06-23 05:54:30 +0200 | Morrow_ | (~MorrowM_@147.161.13.60) |
2021-06-23 05:54:50 +0200 | <bone-baboon> | boxscape: Thanks |
2021-06-23 05:56:10 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-06-23 05:57:01 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-06-23 05:57:01 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-06-23 05:57:01 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-23 05:57:02 +0200 | Morrow | (~MorrowM_@147.161.13.60) (Ping timeout: 252 seconds) |
2021-06-23 05:58:57 +0200 | MorrowM | (~MorrowM_@147.161.13.60) (Ping timeout: 268 seconds) |
2021-06-23 05:59:27 +0200 | <boxscape> | % :set -XGeneralizedNewtypeDeriving |
2021-06-23 05:59:27 +0200 | <yahb> | boxscape: |
2021-06-23 05:59:34 +0200 | <boxscape> | % newtype X a = X Float deriving Num |
2021-06-23 05:59:34 +0200 | <yahb> | boxscape: |
2021-06-23 05:59:36 +0200 | <boxscape> | qrpnxz: ^ |
2021-06-23 06:00:02 +0200 | <boxscape> | qrpnxz: these days it's good practice to also enable -XDerivingStrategies and write `deriving newtype Num` to make it clear that you're using newtype deriving to derive it |
2021-06-23 06:00:53 +0200 | Topsi | (~Tobias@dyndsl-095-033-016-151.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-06-23 06:11:42 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-06-23 06:15:07 +0200 | <sekun> | thyriaen: Lazy evaluation means you don't have to specify how many times you want it to cycle. Just take `n` elements from the list, and GHC will only evaluate what you take. `take 3 $ cycle [1, 2]`. |
2021-06-23 06:18:10 +0200 | <sm[m]> | why do some people dislike Data.Default (def) ? Is it because it's harder for IDEs to show the definition ? |
2021-06-23 06:19:30 +0200 | <JSharp> | boxscape: I saw that yesterday on TweagIO's YouTube video - *very cool* - it's so easy to miss super useful extensions. |
2021-06-23 06:19:37 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-23 06:23:49 +0200 | <glguy> | sm[m], it generally only makes code more complicated |
2021-06-23 06:24:05 +0200 | <glguy> | for everyone put the person who got to save some keystrokes when writing that bit of code |
2021-06-23 06:24:11 +0200 | <glguy> | but the* |
2021-06-23 06:24:43 +0200 | <sm[m]> | glguy: I see |
2021-06-23 06:24:53 +0200 | <sm[m]> | I'm getting the feeling it's the same with lenses, but the benefits are a bit more |
2021-06-23 06:24:59 +0200 | <glguy> | To know what 'def' is in some code I have to de type inference to work out its type and then hunt down the instance that was used |
2021-06-23 06:25:04 +0200 | TranquilEcho | (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
2021-06-23 06:25:17 +0200 | <sm[m]> | both these break IDE code navigation |
2021-06-23 06:25:43 +0200 | <glguy> | You mean if you use TH to generate them? |
2021-06-23 06:25:51 +0200 | <sm[m]> | yes |
2021-06-23 06:25:59 +0200 | <sm[m]> | if we avoid TH I guess they are navigable then |
2021-06-23 06:26:25 +0200 | <glguy> | the definition of lenses can be guessed correctly, at least |
2021-06-23 06:26:36 +0200 | <glguy> | for the kinds of things TH can generate |
2021-06-23 06:26:44 +0200 | <sm[m]> | I might be getting finally dragged into the world of lens... |
2021-06-23 06:27:57 +0200 | <glguy> | What're you lensing? |
2021-06-23 06:28:01 +0200 | <sm[m]> | it feels like they both giveth and taketh away. The code can be easier to understand superficially, but is harder to understand completely |
2021-06-23 06:28:05 +0200 | <glguy> | which implementation are you using? |
2021-06-23 06:28:14 +0200 | <sm[m]> | glguy: I'm reviewing a PR adding lenses to lots of hledger types |
2021-06-23 06:28:32 +0200 | <sm[m]> | microlens, classy lenses made with TH |
2021-06-23 06:30:43 +0200 | <sm[m]> | (https://github.com/simonmichael/hledger/pull/1545) |
2021-06-23 06:30:55 +0200 | <boxscape> | JSharp: yeah, I spend some time a while ago just taking a quick look at every extension listed in https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts.html |
2021-06-23 06:31:03 +0200 | <boxscape> | s/spend/spent |
2021-06-23 06:31:30 +0200 | Morrow_ | (~MorrowM_@147.161.13.60) (Ping timeout: 252 seconds) |
2021-06-23 06:31:40 +0200 | <boxscape> | JSharp: oh, better link: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/table.html |
2021-06-23 06:32:05 +0200 | <JSharp> | boxscape: cheers! I tried doing that a while ago and one issue I had was just the lack of guidance around what using certain extensions does to the language itself - sometimes it's really quite subtle; and a number of extensions are completely broken/deprecated. |
2021-06-23 06:33:05 +0200 | <boxscape> | yeah the docs could probably be better here and there |
2021-06-23 06:35:30 +0200 | <glguy> | sm[m], that's sure a lot to review |
2021-06-23 06:36:12 +0200 | <JSharp> | Well, the docs are pretty good - they just don't really include best practices (they're not constructed like, say, the docs for the APT package manager - where the documentation is almost entirely intertwined with Debian (the project which built and uses APT for package management) Project Policy on its use. |
2021-06-23 06:36:47 +0200 | <JSharp> | and that's fine, of course - but it does present a challenge for onboarding, as it were. |
2021-06-23 06:37:18 +0200 | <outoftime> | How to improve speed of https://pastebin.ubuntu.com/p/kdjHGFT3tG/ ? |
2021-06-23 06:37:31 +0200 | <JSharp> | I doubt that I'm making any sort of a novel observation here |
2021-06-23 06:38:59 +0200 | <JSharp> | outoftime: https://blog.jez.io/profiling-in-haskell/ |
2021-06-23 06:39:41 +0200 | tusko | (~yeurt@user/tusko) |
2021-06-23 06:39:51 +0200 | <tusko> | how does one learn haskell? |
2021-06-23 06:40:24 +0200 | <glguy> | mostly by writing programs in it |
2021-06-23 06:40:30 +0200 | <siraben> | practice |
2021-06-23 06:40:34 +0200 | <dsal> | tusko: depends on which one. I alternate between solving problems in haskell and reading about other people solving problems in haskell |
2021-06-23 06:40:36 +0200 | <JSharp> | tusko: what's your experience with programming in general? |
2021-06-23 06:41:04 +0200 | <tusko> | C, C++, Python, Java, Tcl, Lisp, some Scala |
2021-06-23 06:41:13 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-06-23 06:41:26 +0200 | <tusko> | I've done various things |
2021-06-23 06:42:18 +0200 | <JSharp> | tsuko - ok - well, you might start with http://dev.stephendiehl.com/hask/ and use http://learnyouahaskell.com/chapters to fill in any gaps and for the exercises |
2021-06-23 06:42:20 +0200 | <dsal> | I'm `foldM`ing over `some parser` -- is there a thing that's a sort of combination of `foldM` and `some` that would let me do these things together? |
2021-06-23 06:42:37 +0200 | <dsal> | In my parser, it basically consumes all the stuff into a list and then folds it, which defers failures. |
2021-06-23 06:43:22 +0200 | <boxscape> | JSharp tusko : I don't think LYAH has exercises. https://www.seas.upenn.edu/~cis194/spring13/lectures.html for example does, though |
2021-06-23 06:44:15 +0200 | <JSharp> | boxscape tusko ... *chuckles* ... actually you may be right about that lack of exercises; I coded along with it, which is probably why I misremembered that. |
2021-06-23 06:44:46 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 265 seconds) |
2021-06-23 06:47:19 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-06-23 06:47:44 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-23 06:47:45 +0200 | lavaman | (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
2021-06-23 06:48:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-23 06:49:24 +0200 | <sm[m]> | glguy: is it ? I'm.. getting used to it. IntelliJ IDEA or VS Code helps (neither is perfect, alas) |
2021-06-23 06:49:46 +0200 | <glguy> | I just mean that it touches a lot of files is all |
2021-06-23 06:49:59 +0200 | <glguy> | Do either of those IDEs help you keep track of what you've reviewed so far? |
2021-06-23 06:50:32 +0200 | <sm[m]> | it does indeed, the changes are mostly simple in this case fortunately. Yes, at least one of them lets you mark files as seen |
2021-06-23 06:51:01 +0200 | <sm[m]> | VS Code |
2021-06-23 06:51:32 +0200 | <sm[m]> | VS Code doesn't let you add code comments when reviewing by commit though; only if you review all file changes at once |
2021-06-23 06:51:33 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 06:52:11 +0200 | <sm[m]> | also it doesn't let you collapse unchanged parts of files for a compact view of diffs. That's a nice feature in IDEA |
2021-06-23 06:52:33 +0200 | <sm[m]> | but, Code can navigate your code with hls. I wish IDEA could |
2021-06-23 06:52:51 +0200 | <glguy> | yeah, hls makes a big difference |
2021-06-23 06:53:09 +0200 | <sm[m]> | IDEAs find is so good it almost doesn't matter, but.. |
2021-06-23 06:54:00 +0200 | <boxscape> | can hls show you usage sites of names? |
2021-06-23 06:54:29 +0200 | <sm[m]> | yes, I believe that's a normal feature now |
2021-06-23 06:54:32 +0200 | <boxscape> | ah, nice |
2021-06-23 06:55:00 +0200 | <sm[m]> | oh, maybe the thing that doesn't work yet is usage sites in other packages within your project. Not sure |
2021-06-23 06:55:13 +0200 | <boxscape> | ah, well, understandable |
2021-06-23 06:55:29 +0200 | <sm[m]> | bah :) |
2021-06-23 07:02:31 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.) |
2021-06-23 07:07:29 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 265 seconds) |
2021-06-23 07:08:27 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 07:09:57 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-06-23 07:10:01 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-06-23 07:12:30 +0200 | Morrow_ | (~MorrowM_@147.161.13.60) |
2021-06-23 07:13:01 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds) |
2021-06-23 07:13:32 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 07:14:51 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (WeeChat 3.0.1) |
2021-06-23 07:17:10 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-06-23 07:18:26 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 252 seconds) |
2021-06-23 07:22:53 +0200 | jneira | (~jneira@212.8.115.226) |
2021-06-23 07:24:45 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
2021-06-23 07:25:44 +0200 | <outoftime> | sm[m]: aren't you using emacs/vim? |
2021-06-23 07:26:37 +0200 | gentauro_ | (~gentauro@taa-cgn11.kviknet.dk) |
2021-06-23 07:27:17 +0200 | <sm[m]> | outoftime: emacs too, yes |
2021-06-23 07:27:56 +0200 | <sm[m]> | I fire up code or IDEA for some coding and especially for reviewing PRs |
2021-06-23 07:28:28 +0200 | deshalb | (~deshalb@user/deshalb) |
2021-06-23 07:28:41 +0200 | gzj | (~GZJ0X@96.45.188.88.16clouds.com) |
2021-06-23 07:29:21 +0200 | <sm[m]> | is there a way to automatically generate the non-TH boilerplate code for lenses ? |
2021-06-23 07:30:12 +0200 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 265 seconds) |
2021-06-23 07:33:24 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) |
2021-06-23 07:34:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 07:36:33 +0200 | <outoftime> | `liftM2 (,) [0..12000] [0..12000]` can this be improved in terms of speed? |
2021-06-23 07:37:12 +0200 | <Axman6> | not really |
2021-06-23 07:40:26 +0200 | <jophish> | <outoftime "`liftM2 (,) [0..12000] [0..12000"> What are you trying to do with this though? |
2021-06-23 07:45:18 +0200 | <outoftime> | jophish: https://pastebin.ubuntu.com/p/kdjHGFT3tG/ |
2021-06-23 07:46:08 +0200 | Xnuk | (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
2021-06-23 07:46:22 +0200 | jneira_ | (~jneira_@131.red-79-155-1.dynamicip.rima-tde.net) (Ping timeout: 258 seconds) |
2021-06-23 07:46:26 +0200 | Xnuk | (~xnuk@45.76.202.58) |
2021-06-23 07:46:27 +0200 | killsushi | (~killsushi@user/killsushi) |
2021-06-23 07:46:50 +0200 | <outoftime> | JSharp: I have no idea why, but executable made with stack take 12 seconds to finish with -O2 option passed, but when I'm building same code with GHC in my system, executable take 5 seconds to finnish |
2021-06-23 07:48:29 +0200 | <Axman6> | outoftime: that's probably because you're sorting them. what you can do is, numerator each numerator, generate each in value in order by using [abs, abs-1 .. 1, and then writing a merge function which merged sorted lists |
2021-06-23 07:48:37 +0200 | <outoftime> | Maybe it is because stack has separate lib module. Anyway, profiling didn't help. |
2021-06-23 07:48:54 +0200 | <outoftime> | Axman6: genRange is like instant |
2021-06-23 07:49:06 +0200 | TheCoffeMaker_ | (~TheCoffeM@125-121-245-190.fibertel.com.ar) (Quit: So long and thanks for all the fish) |
2021-06-23 07:49:19 +0200 | <Axman6> | is last genRange instance? |
2021-06-23 07:49:27 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-06-23 07:50:11 +0200 | <Axman6> | I think you might actually get better performance if you use liftM2 (,) (genRange abs) (genRange abs) rather than forcing them to point ot the same value |
2021-06-23 07:50:20 +0200 | <outoftime> | `where normalized = genRange abs` this should not be executed multiple times, am I wrong? |
2021-06-23 07:50:47 +0200 | <Axman6> | it will cause the whole list to be retained in memory though |
2021-06-23 07:51:26 +0200 | <jophish> | keeping that product in memory is also like 3GB, perhaps there's a way you can stream it to whatever's consuming it |
2021-06-23 07:51:30 +0200 | <jophish> | (maybe you're doing that already) |
2021-06-23 07:52:09 +0200 | <Axman6> | hmm, actually I think both ways will force it to be retained anyway |
2021-06-23 07:52:16 +0200 | <outoftime> | jophish: right now I'm just taking length of that list, no processing done... |
2021-06-23 07:52:31 +0200 | <jophish> | ah, k |
2021-06-23 07:52:46 +0200 | <outoftime> | I mean it gets consumed |
2021-06-23 07:53:00 +0200 | <jophish> | <Axman6 "hmm, actually I think both ways "> yeah, the little lists, but they're only 12001 elements long right? |
2021-06-23 07:53:23 +0200 | <Axman6> | depends on abs |
2021-06-23 07:53:29 +0200 | <outoftime> | 12500 or so |
2021-06-23 07:53:49 +0200 | <outoftime> | total 146M elements |
2021-06-23 07:56:36 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-06-23 07:57:19 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 07:58:48 +0200 | <qrpnxz> | i was able to derive num, fractional, and floating, but not real |
2021-06-23 08:01:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-06-23 08:02:28 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 258 seconds) |
2021-06-23 08:04:36 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 08:05:58 +0200 | Morrow_ | (~MorrowM_@147.161.13.60) (Ping timeout: 265 seconds) |
2021-06-23 08:06:48 +0200 | <outoftime> | Axman6: I'm confused. Does `normalized` get reevaluated on each iteration of `foldM2` or it is just clonned? Profiler says that `main` took 7% time, while `initials` 92%, doesn't looks like `getRage` have any noticable execution time. |
2021-06-23 08:07:15 +0200 | <outoftime> | Do you know any way to make parallel execution? |
2021-06-23 08:07:23 +0200 | <Axman6> | no, normalised basically gives a name for a single object in the heap that both uses reference |
2021-06-23 08:08:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-23 08:10:18 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 268 seconds) |
2021-06-23 08:10:19 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 08:12:06 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-06-23 08:12:32 +0200 | aman | (~aman@user/aman) |
2021-06-23 08:12:46 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 08:14:21 +0200 | CookE[] | (~thedawn@user/thedawn) |
2021-06-23 08:15:13 +0200 | <qrpnxz> | what is the purpose of the GHC hierarchy? |
2021-06-23 08:17:42 +0200 | <Axman6> | it |
2021-06-23 08:17:48 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 08:18:08 +0200 | <Axman6> | it's where definitions specific to GHC live, many of which are reexported in standard modules like Prelude, Data.List etc. |
2021-06-23 08:18:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 08:23:10 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-06-23 08:23:29 +0200 | <Axman6> | they often contain functions which aren't part of what is required from a haskell compiler according to the report, for example things like powModSecInteger is something provided by integer-gmp, which provides timing safe exponentiation of integers modulo another integer https://hackage.haskell.org/package/integer-gmp-1.0.3.0/docs/GHC-Integer-GMP-Internals.html#v:powM… |
2021-06-23 08:25:04 +0200 | mud | (~mud@user/kadoban) (Ping timeout: 244 seconds) |
2021-06-23 08:25:26 +0200 | awth13 | (~user@user/awth13) |
2021-06-23 08:26:53 +0200 | mud | (~mud@user/kadoban) |
2021-06-23 08:29:02 +0200 | michalz | (~michalz@185.246.204.125) |
2021-06-23 08:29:56 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-23 08:30:49 +0200 | leeb_ | (~leeb@KD111239153068.au-net.ne.jp) |
2021-06-23 08:31:18 +0200 | CookE[] | fef |
2021-06-23 08:34:00 +0200 | leeb | (~leeb@KD111239153143.au-net.ne.jp) (Ping timeout: 265 seconds) |
2021-06-23 08:34:31 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-06-23 08:35:05 +0200 | harry | (~harry@92.234.0.237) (Ping timeout: 272 seconds) |
2021-06-23 08:35:27 +0200 | mud | (~mud@user/kadoban) (Ping timeout: 265 seconds) |
2021-06-23 08:36:27 +0200 | mud | (~mud@user/kadoban) |
2021-06-23 08:36:47 +0200 | berberman | (~berberman@user/berberman) |
2021-06-23 08:38:06 +0200 | berberman_ | (~berberman@user/berberman) (Ping timeout: 264 seconds) |
2021-06-23 08:42:42 +0200 | mud | (~mud@user/kadoban) (Ping timeout: 265 seconds) |
2021-06-23 08:43:36 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-06-23 08:44:18 +0200 | tcard | (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
2021-06-23 08:45:42 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:d7c7:704e:32f2:af10) |
2021-06-23 08:47:10 +0200 | michalz | (~michalz@185.246.204.125) (Remote host closed the connection) |
2021-06-23 08:49:40 +0200 | michalz | (~michalz@185.246.204.114) |
2021-06-23 08:50:46 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 258 seconds) |
2021-06-23 08:52:08 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 08:53:06 +0200 | tcard | (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
2021-06-23 08:54:52 +0200 | <talismanick> | Is it worth using vabal nowadays? Ironically, I had to go back in versions with ghcup manually to install it. |
2021-06-23 08:55:39 +0200 | <dminuoso> | talismanick: Perhaps there's some issue with ghcup or the way you use it. |
2021-06-23 08:55:57 +0200 | <dminuoso> | cabal-install is not better or worse than the alternatives like stack |
2021-06-23 08:56:21 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-23 08:56:28 +0200 | <dminuoso> | Id say the community is largely split 47/47/6 on cabal/stack/nix |
2021-06-23 08:57:15 +0200 | <talismanick> | dminuoso: Nothing wrong here. It's just that vabal depends on base base > 4.11.0 and < 4.13.0 |
2021-06-23 08:57:17 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 258 seconds) |
2021-06-23 08:57:34 +0200 | <dminuoso> | Hold on, vabal? |
2021-06-23 08:57:40 +0200 | <tomsmeding> | https://github.com/vabal/vabal |
2021-06-23 08:57:42 +0200 | <talismanick> | so I used ghcup to fetch 4.12.0 and installed vabal |
2021-06-23 08:57:42 +0200 | tomsmeding | thinks |
2021-06-23 08:57:52 +0200 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 268 seconds) |
2021-06-23 08:57:58 +0200 | <dminuoso> | Okay, I really thought that was just a typo and you meant cabal |
2021-06-23 08:58:00 +0200 | mpt | (~tom@2a02:908:1862:49e0::3) |
2021-06-23 08:58:14 +0200 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) |
2021-06-23 08:58:31 +0200 | <talismanick> | I have befuddled once again |
2021-06-23 08:58:45 +0200 | <dminuoso> | tomsmeding: vabal hasnt been updated in close to 2 years it seems |
2021-06-23 08:58:50 +0200 | <dminuoso> | Or talismanick. |
2021-06-23 08:58:54 +0200 | <dminuoso> | Two nicks with t is hard. |
2021-06-23 08:59:00 +0200 | <tomsmeding> | yes |
2021-06-23 08:59:09 +0200 | <tomsmeding> | we befuddle once more |
2021-06-23 08:59:26 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 08:59:32 +0200 | <dminuoso> | vabal does indeed look like a nice thing. |
2021-06-23 08:59:51 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-06-23 09:00:26 +0200 | <talismanick> | I came across it while trying to build clckwrks (which itself appears to have languished for a time and needs an older version of GHC) |
2021-06-23 09:00:34 +0200 | <dminuoso> | So I guess vabal just does constraint solving, and then ghcup's me into the most recent ghc that works with the build plan? |
2021-06-23 09:00:45 +0200 | <dminuoso> | (constraint solving by presumably calling into Cabal-lib) |
2021-06-23 09:01:43 +0200 | <talismanick> | Speaking of which, are there maintained alternatives to LambdaCMS and clckwrks? Once I get it to compile, clckwrks looks promising. |
2021-06-23 09:02:03 +0200 | <talismanick> | (It has recent commits, but it seems to be in "maintenance mode" AFAICT) |
2021-06-23 09:03:23 +0200 | chele | (~chele@user/chele) |
2021-06-23 09:04:24 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 252 seconds) |
2021-06-23 09:05:04 +0200 | <talismanick> | I could set the GHC version manually via ghcup and be on my way, but aren't we in the 21st century? |
2021-06-23 09:06:47 +0200 | <dminuoso> | talismanick: Just remember that ghcup manipulates global state |
2021-06-23 09:06:54 +0200 | Morrow | (~MorrowM_@147.161.13.60) |
2021-06-23 09:08:42 +0200 | <cdsmith> | 0 |
2021-06-23 09:08:52 +0200 | <talismanick> | dminuoso: That's what I mean. I feel like a caveman, peeking into the cabalfile for this and setting the GHC version for each project, one at a time. |
2021-06-23 09:09:00 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 09:10:51 +0200 | <dminuoso> | talismanick: I dont mean to sway you away from vabal, but you could also use nix-shell to do the same thing |
2021-06-23 09:10:58 +0200 | <lortabac> | IIRC there was this idea of integrating vabal's functionality into ghcup, not sure if it's still the case |
2021-06-23 09:11:04 +0200 | <dminuoso> | At least for that I could help you, as I have no experience with vabal |
2021-06-23 09:11:05 +0200 | talismanick | summons his courage and tries "vabal configure" |
2021-06-23 09:11:08 +0200 | <lortabac> | https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/99 |
2021-06-23 09:11:19 +0200 | <talismanick> | already regretting this |
2021-06-23 09:11:45 +0200 | <dminuoso> | talismanick: nix-shell has the unique benefit that this doesnt need any rely on global state management of "the active version" |
2021-06-23 09:11:56 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-06-23 09:11:58 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-06-23 09:12:26 +0200 | <dminuoso> | It doesnt do the "figure out a matching GHC version" part, but it lets you easily keep different cabal/ghc/(any dependency) versions across different projects |
2021-06-23 09:12:26 +0200 | <talismanick> | dminuoso: I once tried to configure Nix (atop Void Linux). Never again. No hard feelings, but "nope". |
2021-06-23 09:12:40 +0200 | sekun | (~sekun@180.190.208.125) (Ping timeout: 265 seconds) |
2021-06-23 09:12:41 +0200 | <talismanick> | Seems cool, gave me a migraine |
2021-06-23 09:12:50 +0200 | dminuoso | shrugs |
2021-06-23 09:13:49 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-06-23 09:15:54 +0200 | sheepduck | (~sheepduck@user/sheepduck) (Remote host closed the connection) |
2021-06-23 09:16:04 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-06-23 09:16:31 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 09:17:06 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 240 seconds) |
2021-06-23 09:18:33 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-06-23 09:20:52 +0200 | leah2 | (~leah@vuxu.org) |
2021-06-23 09:23:06 +0200 | vpan | (~vilius@212.117.1.172) |
2021-06-23 09:23:35 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 09:24:04 +0200 | trcc | (~trcc@users-1190.st.net.au.dk) |
2021-06-23 09:25:59 +0200 | fendor | (~fendor@178.115.129.107.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-06-23 09:28:05 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Ping timeout: 268 seconds) |
2021-06-23 09:29:08 +0200 | trent2 | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 244 seconds) |
2021-06-23 09:30:07 +0200 | trent2 | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-06-23 09:30:29 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-23 09:31:14 +0200 | <talismanick> | Actually... |
2021-06-23 09:32:11 +0200 | <talismanick> | nvm |
2021-06-23 09:34:05 +0200 | mpt | (~tom@2a02:908:1862:49e0::3) (Ping timeout: 252 seconds) |
2021-06-23 09:39:14 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-23 09:41:26 +0200 | tusko | (~yeurt@user/tusko) (Remote host closed the connection) |
2021-06-23 09:41:43 +0200 | tusko | (~yeurt@user/tusko) |
2021-06-23 09:45:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 09:46:55 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 09:47:06 +0200 | euandreh_ | (~euandreh@2804:14c:33:9fe5:3fd5:92e4:b3b4:44e0) (Ping timeout: 240 seconds) |
2021-06-23 09:48:08 +0200 | euandreh_ | (~euandreh@2804:14c:33:9fe5:a60:af0:9ad8:d1f7) |
2021-06-23 09:52:04 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 252 seconds) |
2021-06-23 09:52:04 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds) |
2021-06-23 09:53:01 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-23 09:54:30 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 09:55:37 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Remote host closed the connection) |
2021-06-23 09:58:37 +0200 | bone-baboon | (~bone-babo@37.19.198.11) (Ping timeout: 258 seconds) |
2021-06-23 09:59:33 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 265 seconds) |
2021-06-23 10:11:07 +0200 | <outoftime> | How to move from [Maybe a] to Maybe [a], disgard Nothing and collect Just a values? `sequence` returns Nothing if some of elements is nothing. |
2021-06-23 10:11:09 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-06-23 10:11:59 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-06-23 10:12:35 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-23 10:14:03 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 10:14:20 +0200 | trent2 | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 268 seconds) |
2021-06-23 10:14:23 +0200 | <maerwald> | talismanick: I believe Franciman is vabal maintainer |
2021-06-23 10:15:02 +0200 | <peddie> | outoftime: catMaybes |
2021-06-23 10:15:31 +0200 | <peddie> | :t catMaybe |
2021-06-23 10:15:32 +0200 | <lambdabot> | error: |
2021-06-23 10:15:32 +0200 | <lambdabot> | • Variable not in scope: catMaybe |
2021-06-23 10:15:32 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2021-06-23 10:15:41 +0200 | <merijn> | :t catMaybes |
2021-06-23 10:15:42 +0200 | <lambdabot> | [Maybe a] -> [a] |
2021-06-23 10:15:45 +0200 | <merijn> | Alternatively |
2021-06-23 10:15:52 +0200 | <merijn> | Don't make a list of Maybe a to begin with |
2021-06-23 10:15:54 +0200 | <merijn> | :t mapMaybe |
2021-06-23 10:15:56 +0200 | <lambdabot> | (a -> Maybe b) -> [a] -> [b] |
2021-06-23 10:16:59 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 252 seconds) |
2021-06-23 10:16:59 +0200 | <maerwald> | talismanick: also, feel free to provide patches for https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/99 |
2021-06-23 10:17:09 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 10:17:32 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-06-23 10:17:32 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-06-23 10:18:13 +0200 | xff0x | (~xff0x@2001:1a81:5256:f800:ed61:c578:88bf:885a) (Ping timeout: 244 seconds) |
2021-06-23 10:18:53 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 265 seconds) |
2021-06-23 10:19:02 +0200 | xff0x | (~xff0x@port-92-193-228-27.dynamic.as20676.net) |
2021-06-23 10:19:56 +0200 | Morrow | (~MorrowM_@147.161.13.60) (Ping timeout: 252 seconds) |
2021-06-23 10:28:56 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-23 10:33:30 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-06-23 10:37:51 +0200 | Nak50 | (~Nak@2604:3d08:2678:cc00::4b6a) |
2021-06-23 10:40:30 +0200 | gentauro_ | (~gentauro@taa-cgn11.kviknet.dk) (Changing host) |
2021-06-23 10:40:30 +0200 | gentauro_ | (~gentauro@user/gentauro) |
2021-06-23 10:42:08 +0200 | Guest25 | (~Guest25@l37-195-240-36.novotelecom.ru) |
2021-06-23 10:45:54 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-06-23 10:47:36 +0200 | __monty__ | (~toonn@user/toonn) |
2021-06-23 10:54:18 +0200 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) |
2021-06-23 10:54:34 +0200 | <phaazon> | just wrote a bunch of linear functions… it felt good |
2021-06-23 10:55:39 +0200 | Guest25 | (~Guest25@l37-195-240-36.novotelecom.ru) (Quit: Client closed) |
2021-06-23 10:56:01 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 10:57:13 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) |
2021-06-23 10:59:08 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:5796:3b40:5569:c90) |
2021-06-23 11:00:18 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 240 seconds) |
2021-06-23 11:01:58 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 11:04:15 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-06-23 11:08:43 +0200 | Nak50 | (~Nak@2604:3d08:2678:cc00::4b6a) (Ping timeout: 246 seconds) |
2021-06-23 11:10:00 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 11:10:47 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-06-23 11:11:23 +0200 | jneira | (~jneira@212.8.115.226) |
2021-06-23 11:12:32 +0200 | azeem | (~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) (Ping timeout: 265 seconds) |
2021-06-23 11:14:03 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 11:17:47 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-23 11:23:56 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2021-06-23 11:29:51 +0200 | azeem | (~azeem@176.201.6.138) (Ping timeout: 258 seconds) |
2021-06-23 11:32:00 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-23 11:33:05 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 11:33:07 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-23 11:36:13 +0200 | <outoftime> | May I ask what you think about this code https://pastebin.ubuntu.com/p/Z9ZQs9k84s/ ? |
2021-06-23 11:36:18 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:70b4:9739:defc:32cb) |
2021-06-23 11:38:15 +0200 | killsushi | (~killsushi@user/killsushi) (Quit: Leaving) |
2021-06-23 11:43:54 +0200 | azeem | (~azeem@176.201.6.138) (Ping timeout: 252 seconds) |
2021-06-23 11:43:56 +0200 | curiousggay_ | (~curiousgg@178.217.208.8) (Remote host closed the connection) |
2021-06-23 11:48:42 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 11:49:08 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2021-06-23 11:49:20 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:e6b3:18ff:fe83:8f33) |
2021-06-23 11:49:36 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-06-23 11:49:57 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
2021-06-23 11:56:22 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-06-23 11:56:38 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-23 11:57:24 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 11:58:28 +0200 | azeem | (~azeem@176.201.6.138) (Ping timeout: 268 seconds) |
2021-06-23 11:58:36 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Read error: Connection reset by peer) |
2021-06-23 11:58:53 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-23 11:59:14 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 12:00:38 +0200 | <dminuoso> | outoftime: A bunch of small typical mistakes |
2021-06-23 12:00:46 +0200 | <dminuoso> | `[x] ++ ...` is better written as `x : ...` |
2021-06-23 12:00:56 +0200 | <dminuoso> | `putStrLn . show` is better written as `print` |
2021-06-23 12:01:12 +0200 | <dminuoso> | You seem to be overly using ($), consider using composition or parens perhaps |
2021-06-23 12:01:55 +0200 | <merijn> | Looks mostly fine |
2021-06-23 12:02:03 +0200 | <merijn> | some style differences from how I'd write it |
2021-06-23 12:02:23 +0200 | <dminuoso> | Things like mapM_ or liftM2 are a bit odd, Id just use the applicative versions instead out of habit |
2021-06-23 12:02:34 +0200 | <dminuoso> | (the monadic ones should be thrown out IMO) |
2021-06-23 12:02:44 +0200 | <merijn> | last is probably a bad one too use |
2021-06-23 12:02:47 +0200 | dhil | (~dhil@195.213.192.47) |
2021-06-23 12:03:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 252 seconds) |
2021-06-23 12:03:27 +0200 | xkuru | (~xkuru@user/xkuru) (Quit: Unvirtualizing) |
2021-06-23 12:03:30 +0200 | <merijn> | partial and inefficient, but whether it can be easily replaced depends on the algorithm and I'm too lazy to understand that :p |
2021-06-23 12:03:53 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-23 12:04:08 +0200 | <merijn> | I feel 'f' can be rewritten into a helper + iterate too |
2021-06-23 12:04:15 +0200 | <boxscape> | you can replace (head . group) by the versions from Data.List.NonEmpty if you want to avoid using head (which many people do since it's partial) |
2021-06-23 12:04:20 +0200 | <merijn> | :t iterate |
2021-06-23 12:04:21 +0200 | <lambdabot> | (a -> a) -> a -> [a] |
2021-06-23 12:04:22 +0200 | <dminuoso> | The amount of group/sort suggests you might perhaps want to use a map instead. |
2021-06-23 12:04:28 +0200 | qbt | (~edun@user/edun) |
2021-06-23 12:04:34 +0200 | <dminuoso> | From containers |
2021-06-23 12:04:39 +0200 | <merijn> | boxscape: it's not partial there, since group never returns empty lists |
2021-06-23 12:04:48 +0200 | <merijn> | > iterate (+1) 0 |
2021-06-23 12:04:50 +0200 | <lambdabot> | [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2... |
2021-06-23 12:05:16 +0200 | <boxscape> | merijn: sure, but a mistake down the line could transform it into a partial use. Not sure how likely that is, I just like not having head in my code at all. |
2021-06-23 12:05:35 +0200 | <boxscape> | (er, also I meant (map head . group)) |
2021-06-23 12:06:53 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:70b4:9739:defc:32cb) (Quit: Leaving) |
2021-06-23 12:07:02 +0200 | <boxscape> | personally I'd probably write `pair@(z, c)` instead of pattern matching on pair in the where block |
2021-06-23 12:07:08 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:70b4:9739:defc:32cb) |
2021-06-23 12:08:16 +0200 | talismanick | (~user@2601:644:8502:d700::94c9) (Ping timeout: 244 seconds) |
2021-06-23 12:10:01 +0200 | fendor | (~fendor@178.115.129.107.wireless.dyn.drei.com) |
2021-06-23 12:10:49 +0200 | <Ariakenom> | this head is cute |
2021-06-23 12:10:49 +0200 | <Ariakenom> | allSame xs = all (head xs ==) xs |
2021-06-23 12:10:55 +0200 | howdy`` | howdy |
2021-06-23 12:11:08 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-06-23 12:11:44 +0200 | brandonh | (~brandonh@151.34.105.205) |
2021-06-23 12:11:57 +0200 | brandonh | (~brandonh@151.34.105.205) (Client Quit) |
2021-06-23 12:15:00 +0200 | <boxscape> | allSame = and . (zipWith (==) <*> tail) -- I might do this to avoid head but yeah yours reads nicer |
2021-06-23 12:15:06 +0200 | <boxscape> | wait |
2021-06-23 12:15:08 +0200 | <boxscape> | % tail [] |
2021-06-23 12:15:08 +0200 | <yahb> | boxscape: *** Exception: Prelude.tail: empty list |
2021-06-23 12:15:12 +0200 | <boxscape> | whoops |
2021-06-23 12:15:30 +0200 | raoul | (~raoul@nomnomnomnom.co.uk) (Remote host closed the connection) |
2021-06-23 12:15:30 +0200 | f0c1s | (~f0c1s@136.185.130.32) |
2021-06-23 12:15:55 +0200 | <__monty__> | Tail is no better than head? |
2021-06-23 12:16:06 +0200 | <boxscape> | yeah that's what I just realized |
2021-06-23 12:16:08 +0200 | <boxscape> | I guess I would use drop 1 |
2021-06-23 12:16:09 +0200 | <__monty__> | You seem kinda obsessed with head for no reason. |
2021-06-23 12:16:13 +0200 | <boxscape> | wait that doesn't help |
2021-06-23 12:16:18 +0200 | <boxscape> | oh no it does |
2021-06-23 12:16:29 +0200 | <__monty__> | > drop 1 [] |
2021-06-23 12:16:29 +0200 | <boxscape> | __monty__: I just like to not have any partial functions, period |
2021-06-23 12:16:31 +0200 | <lambdabot> | [] |
2021-06-23 12:16:43 +0200 | <__monty__> | It does not help. |
2021-06-23 12:16:48 +0200 | <boxscape> | why not? |
2021-06-23 12:16:51 +0200 | <__monty__> | tail [] |
2021-06-23 12:16:56 +0200 | <__monty__> | > tail [] |
2021-06-23 12:16:57 +0200 | <lambdabot> | *Exception: Prelude.tail: empty list |
2021-06-23 12:17:13 +0200 | <__monty__> | Oh, nvm, I'm wrong this time. |
2021-06-23 12:20:12 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-06-23 12:21:00 +0200 | f0c1s_ | (~f0c1s@106.197.230.212) |
2021-06-23 12:22:44 +0200 | Morrow | (~MorrowM_@147.161.13.60) |
2021-06-23 12:23:35 +0200 | f0c1s | (~f0c1s@136.185.130.32) (Ping timeout: 265 seconds) |
2021-06-23 12:24:33 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 265 seconds) |
2021-06-23 12:24:52 +0200 | DNH | (~textual@8.44.0.30) |
2021-06-23 12:27:42 +0200 | dunkeln | (~dunkeln@188.71.193.140) |
2021-06-23 12:28:41 +0200 | dunkeln | (~dunkeln@188.71.193.140) (Client Quit) |
2021-06-23 12:28:57 +0200 | dunkeln | (~dunkeln@188.71.193.140) |
2021-06-23 12:29:52 +0200 | qbt | (~edun@user/edun) (Ping timeout: 265 seconds) |
2021-06-23 12:35:47 +0200 | azeem | (~azeem@176.201.6.138) (Ping timeout: 258 seconds) |
2021-06-23 12:36:26 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 12:37:19 +0200 | dunkeln | (~dunkeln@188.71.193.140) (Ping timeout: 258 seconds) |
2021-06-23 12:37:47 +0200 | pie__bnc | pie_ |
2021-06-23 12:38:04 +0200 | pie_ | __ |
2021-06-23 12:38:06 +0200 | __ | pie_ |
2021-06-23 12:38:22 +0200 | pie_ | pie__ |
2021-06-23 12:38:23 +0200 | pie__ | pie_ |
2021-06-23 12:38:32 +0200 | MorrowM | (~MorrowM_@147.161.9.12) |
2021-06-23 12:39:02 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-23 12:39:09 +0200 | pie_ | the |
2021-06-23 12:39:12 +0200 | the | pie_ |
2021-06-23 12:41:38 +0200 | Morrow | (~MorrowM_@147.161.13.60) (Ping timeout: 268 seconds) |
2021-06-23 12:42:06 +0200 | mpt | (~tom@2a02:908:1862:49e0::3) |
2021-06-23 12:42:16 +0200 | dunkeln | (~dunkeln@188.71.193.140) |
2021-06-23 12:45:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-06-23 12:46:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 12:47:41 +0200 | chisui | (~chisui@200116b866efc300342cdc4d594c896c.dip.versatel-1u1.de) |
2021-06-23 12:49:02 +0200 | DNH | (~textual@8.44.0.30) (Ping timeout: 268 seconds) |
2021-06-23 12:50:07 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-23 12:50:42 +0200 | kuribas | (~user@ptr-25vy0ia3kl0vdl4qmg0.18120a2.ip6.access.telenet.be) |
2021-06-23 12:51:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-23 12:52:01 +0200 | GIANTWORLDKEEPER | (~pjetcetal@2.95.227.207) (Remote host closed the connection) |
2021-06-23 12:52:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 12:56:14 +0200 | DNH | (~DNH@8.43.122.6) |
2021-06-23 12:56:26 +0200 | MorrowM | (~MorrowM_@147.161.9.12) (Ping timeout: 268 seconds) |
2021-06-23 12:56:31 +0200 | raoul | (~raoul@nomnomnomnom.co.uk) |
2021-06-23 12:57:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-06-23 12:57:50 +0200 | hseg | (~gesh@195.192.229.14) |
2021-06-23 12:57:56 +0200 | <chisui> | Hey, has someone any clue why ghc produces this error? https://gist.github.com/chisui/7b558c2d63e3a7fcffc67ae714b69714 |
2021-06-23 12:57:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 12:58:56 +0200 | <chisui> | The QuantifiedConstraint shouldn't imply that the instance of Typeable is user defined or am I missing something? This looks like a bug to me. |
2021-06-23 12:59:55 +0200 | mekeor | (~user@2001:a61:3430:c01:f86:cca7:c1fe:e2b4) |
2021-06-23 13:02:04 +0200 | mpt | (~tom@2a02:908:1862:49e0::3) (Ping timeout: 268 seconds) |
2021-06-23 13:03:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-23 13:03:21 +0200 | juhp | (~juhp@128.106.188.66) (Remote host closed the connection) |
2021-06-23 13:03:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 13:03:50 +0200 | pbrisbin | (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-23 13:05:50 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-23 13:05:54 +0200 | <boxscape> | chisui: that does look weird, from a quick look at the GHC source code I can only find that error message used in relation to checking instance heads |
2021-06-23 13:06:42 +0200 | <int-e> | chisui: https://paste.debian.net/1202126/ may be a viable workaround |
2021-06-23 13:07:06 +0200 | MorrowM | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 13:07:25 +0200 | <int-e> | but yeah, it does look like a bug |
2021-06-23 13:07:53 +0200 | <chisui> | Thanks. |
2021-06-23 13:08:04 +0200 | mekeor | (~user@2001:a61:3430:c01:f86:cca7:c1fe:e2b4) (Remote host closed the connection) |
2021-06-23 13:10:25 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 13:13:28 +0200 | <boxscape> | chisui: FWIW unless there really is a reason to not allow this it looks like `not quantified_constraint` is missing in this guard https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Tc/Validity.hs#L1539-1542 |
2021-06-23 13:14:47 +0200 | <chisui> | boxscape: I'll mention that in the issue. |
2021-06-23 13:15:05 +0200 | <boxscape> | 👍️ |
2021-06-23 13:15:18 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-06-23 13:16:59 +0200 | <merijn> | Achievement unlocked: GHC bug ;) |
2021-06-23 13:18:58 +0200 | hmmmas | (~chenqisu1@183.217.200.246) |
2021-06-23 13:21:35 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-06-23 13:25:07 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) |
2021-06-23 13:27:23 +0200 | hseg | (~gesh@195.192.229.14) (Ping timeout: 265 seconds) |
2021-06-23 13:27:52 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-06-23 13:29:27 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-06-23 13:30:00 +0200 | <chisui> | If someones interested: https://gitlab.haskell.org/ghc/ghc/-/issues/20033 |
2021-06-23 13:31:54 +0200 | hmmmas | (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
2021-06-23 13:31:54 +0200 | Franciman | (~francesco@openglass.it) |
2021-06-23 13:32:06 +0200 | <Franciman> | maerwald: you available? |
2021-06-23 13:32:33 +0200 | <maerwald> | barely |
2021-06-23 13:32:49 +0200 | <Franciman> | ok np I wanted to talk to you about ghcup satisfy |
2021-06-23 13:32:56 +0200 | <Franciman> | it can wait |
2021-06-23 13:33:43 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Quit: WeeChat 3.2) |
2021-06-23 13:33:59 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 13:34:19 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-06-23 13:34:40 +0200 | <maerwald> | there is #haskell-ghcup |
2021-06-23 13:35:01 +0200 | <Franciman> | great |
2021-06-23 13:36:43 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-06-23 13:36:49 +0200 | f0c1s_ | (~f0c1s@106.197.230.212) (Quit: Leaving) |
2021-06-23 13:37:47 +0200 | f0c1s | (~f0c1s@136.185.130.32) |
2021-06-23 13:37:51 +0200 | f0c1s_ | (~f0c1s@136.185.130.32) |
2021-06-23 13:37:55 +0200 | f0c1s_ | (~f0c1s@136.185.130.32) (Remote host closed the connection) |
2021-06-23 13:38:29 +0200 | finsternis | (~X@23.226.237.192) (Remote host closed the connection) |
2021-06-23 13:41:22 +0200 | Axman6 | (~Axman6@user/axman6) (Remote host closed the connection) |
2021-06-23 13:42:00 +0200 | Axman6 | (~Axman6@user/axman6) |
2021-06-23 13:43:16 +0200 | jakzale | (uid499518@id-499518.charlton.irccloud.com) |
2021-06-23 13:46:17 +0200 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 256 seconds) |
2021-06-23 13:46:22 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds) |
2021-06-23 13:46:28 +0200 | xff0x_ | (~xff0x@2001:1a81:5270:f300:fe1c:5171:b5b6:4cc4) |
2021-06-23 13:48:37 +0200 | xff0x | (~xff0x@port-92-193-228-27.dynamic.as20676.net) (Ping timeout: 258 seconds) |
2021-06-23 13:51:23 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 13:51:31 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-23 13:52:41 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-23 13:59:57 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 14:00:30 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-06-23 14:00:54 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-06-23 14:01:46 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 14:03:58 +0200 | <shane> | I'm looking for a thing, but I don't know what it's called. I guess I'm looking for a "category", that's kind of like (->), except the output is always solely a "subproduct" of the input? |
2021-06-23 14:04:31 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 244 seconds) |
2021-06-23 14:05:42 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:e6b3:18ff:fe83:8f33) (Ping timeout: 264 seconds) |
2021-06-23 14:07:52 +0200 | <shane> | So like, if we were to call this thing ~>, the only two valid implementations of `(a, a) -> a` would be `fst` and `snd` |
2021-06-23 14:08:35 +0200 | <shane> | I suppose that's true by parametricity if `a` is polymorphic |
2021-06-23 14:08:46 +0200 | <dminuoso> | shane: Mmm, Lens definitely fits that description. |
2021-06-23 14:08:47 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 14:08:54 +0200 | Axman6 | (~Axman6@user/axman6) |
2021-06-23 14:09:18 +0200 | <dminuoso> | i.e. `Lens' S T` gives you T as a sub-part of S |
2021-06-23 14:09:35 +0200 | <shane> | I suppose, if it's a law abiding lens |
2021-06-23 14:09:54 +0200 | <shane> | Actually it doesn't even have to be law breaking |
2021-06-23 14:10:16 +0200 | <dminuoso> | Well I guess its not entirely true |
2021-06-23 14:10:30 +0200 | <dminuoso> | Try and find a precise way of saying what "subproduct" exactly means |
2021-06-23 14:10:36 +0200 | <shane> | Yes, I'm trying :) |
2021-06-23 14:10:40 +0200 | <dminuoso> | Because one could argue that: |
2021-06-23 14:10:44 +0200 | <dminuoso> | split :: a -> (a, a) |
2021-06-23 14:10:48 +0200 | <chisui> | shane: do you mean a cartesian category? |
2021-06-23 14:10:53 +0200 | <dminuoso> | gives you a subproduct |
2021-06-23 14:11:03 +0200 | <dminuoso> | this gets a bit more interesting with impredicativity in the mix |
2021-06-23 14:11:12 +0200 | <shane> | chisui: Maybe, that sounds promising |
2021-06-23 14:12:01 +0200 | <dminuoso> | Mmm, come to think of it I think chisui is right. This is just a cartesian category |
2021-06-23 14:12:22 +0200 | <shane> | Let's forget about the `(a, a) ~> a` example, because that's true by parametricity. If you specialise it to `(Int, Int) ~> Int`, I want it to be such that the output `Int` has to be one of the two given ones. It can never just be `1` or `2` etc. Or even `negate a` or `a + 1` |
2021-06-23 14:12:37 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-06-23 14:12:42 +0200 | <shane> | Okay, I will look up cartesian category |
2021-06-23 14:12:50 +0200 | <shane> | Are there any Haskell libraries that implement something like that? |
2021-06-23 14:12:55 +0200 | <dminuoso> | Or actually a precartesian category |
2021-06-23 14:12:57 +0200 | <dminuoso> | Yes |
2021-06-23 14:12:59 +0200 | <dminuoso> | https://hackage.haskell.org/package/category-extras-0.52.0/docs/Control-Category-Cartesian.html#t:… |
2021-06-23 14:13:05 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 14:13:36 +0200 | <shane> | Okay, thanks! |
2021-06-23 14:16:00 +0200 | hseg | (~gesh@195.192.229.14) |
2021-06-23 14:16:24 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-23 14:16:31 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 14:16:50 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-23 14:17:13 +0200 | <chisui> | shane: what do you mean by "can never just be `1` or `2` etc. Or even `negate a` or `a + 1`"? wouldn't `fst (1, 2)` give you `1` in your example? |
2021-06-23 14:17:41 +0200 | dunkeln_1 | (~dunkeln@94.129.65.28) |
2021-06-23 14:17:49 +0200 | <dminuoso> | Well I guess he just wants a categorical product |
2021-06-23 14:18:07 +0200 | <dminuoso> | Such that this commutes https://upload.wikimedia.org/wikipedia/commons/thumb/8/89/CategoricalProduct-03.svg/560px-Categori… |
2021-06-23 14:18:08 +0200 | dunkeln | (~dunkeln@188.71.193.140) (Ping timeout: 265 seconds) |
2021-06-23 14:18:31 +0200 | <dminuoso> | maybe cartesian category was too strong, even |
2021-06-23 14:19:28 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 14:19:30 +0200 | <chisui> | what throws me off a little is that he wants `(a, a)` a categoriacal product would be `(a, b)` |
2021-06-23 14:19:31 +0200 | <shane> | chisui: I suppose I mean `const 1` or `const 2`. |
2021-06-23 14:19:54 +0200 | shapr | (~user@2601:7c0:8180:89d0:e21a:92b8:d08a:508f) |
2021-06-23 14:20:16 +0200 | <dminuoso> | shane: Look into what a product is in category theory. |
2021-06-23 14:20:33 +0200 | <dminuoso> | I suspect you're chasing the commuting diagram I linked above |
2021-06-23 14:20:56 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-23 14:21:12 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Ping timeout: 252 seconds) |
2021-06-23 14:26:09 +0200 | euandreh_ | euandreh |
2021-06-23 14:31:10 +0200 | hueso | (~root@user/hueso) (Ping timeout: 258 seconds) |
2021-06-23 14:32:33 +0200 | GIANTWORLDKEEPER | (~pjetcetal@2.95.227.207) |
2021-06-23 14:33:36 +0200 | dunkeln_1 | (~dunkeln@94.129.65.28) (Ping timeout: 265 seconds) |
2021-06-23 14:36:42 +0200 | egoist | (~egoist@186.235.85.100) |
2021-06-23 14:38:34 +0200 | hueso | (~root@user/hueso) |
2021-06-23 14:40:03 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-06-23 14:40:17 +0200 | TranquilEcho | (~grom@user/tranquilecho) |
2021-06-23 14:40:22 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 265 seconds) |
2021-06-23 14:40:53 +0200 | azeem | (~azeem@176.201.6.138) (Read error: Connection reset by peer) |
2021-06-23 14:42:17 +0200 | azeem | (~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) |
2021-06-23 14:44:26 +0200 | pbrisbin | (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) |
2021-06-23 14:44:43 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-23 14:45:03 +0200 | xff0x_ | (~xff0x@2001:1a81:5270:f300:fe1c:5171:b5b6:4cc4) (Ping timeout: 268 seconds) |
2021-06-23 14:46:40 +0200 | xff0x_ | (~xff0x@2001:1a81:5271:d900:c621:6547:99a4:fbb5) |
2021-06-23 14:47:23 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 14:49:30 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-23 14:50:54 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 252 seconds) |
2021-06-23 14:54:15 +0200 | dunkeln_ | (~dunkeln@94.129.65.28) |
2021-06-23 14:54:56 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 258 seconds) |
2021-06-23 14:55:49 +0200 | juhp | (~juhp@128.106.188.66) |
2021-06-23 14:55:59 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-23 14:56:01 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-06-23 14:56:02 +0200 | xff0x_ | (~xff0x@2001:1a81:5271:d900:c621:6547:99a4:fbb5) (Ping timeout: 250 seconds) |
2021-06-23 14:56:48 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-23 14:57:44 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-06-23 14:57:44 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-06-23 14:57:44 +0200 | turlando | (~turlando@user/turlando) |
2021-06-23 14:58:40 +0200 | xff0x_ | (~xff0x@port-92-193-138-158.dynamic.as20676.net) |
2021-06-23 15:00:02 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-06-23 15:00:58 +0200 | jneira | (~jneira@212.8.115.226) (Quit: Client closed) |
2021-06-23 15:01:09 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-06-23 15:01:13 +0200 | alx741 | (~alx741@181.196.68.156) |
2021-06-23 15:03:49 +0200 | hueso | (~root@user/hueso) (Read error: Connection reset by peer) |
2021-06-23 15:04:34 +0200 | hueso | (~root@user/hueso) |
2021-06-23 15:04:50 +0200 | sekun | (~sekun@180.190.208.125) |
2021-06-23 15:05:11 +0200 | xff0x | (~xff0x@2001:1a81:5272:1d00:a8b6:9f02:264b:fce) |
2021-06-23 15:06:52 +0200 | xff0x_ | (~xff0x@port-92-193-138-158.dynamic.as20676.net) (Ping timeout: 250 seconds) |
2021-06-23 15:07:26 +0200 | hseg | (~gesh@195.192.229.14) (Ping timeout: 265 seconds) |
2021-06-23 15:08:21 +0200 | dunkeln_ | (~dunkeln@94.129.65.28) (Ping timeout: 258 seconds) |
2021-06-23 15:08:50 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-06-23 15:09:14 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-23 15:10:20 +0200 | xff0x | (~xff0x@2001:1a81:5272:1d00:a8b6:9f02:264b:fce) (Ping timeout: 250 seconds) |
2021-06-23 15:10:56 +0200 | f0c1s | (~f0c1s@136.185.130.32) (Remote host closed the connection) |
2021-06-23 15:12:00 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 15:12:33 +0200 | kayprish | (~kayprish@46.240.143.86) |
2021-06-23 15:12:54 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer) |
2021-06-23 15:13:02 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 15:13:02 +0200 | xff0x | (~xff0x@2001:1a81:5272:4100:c2fe:5e6:247e:dd00) |
2021-06-23 15:13:29 +0200 | CookE[] | (~thedawn@user/thedawn) |
2021-06-23 15:13:42 +0200 | f0c1s | (~f0c1s@136.185.130.32) |
2021-06-23 15:13:43 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 265 seconds) |
2021-06-23 15:14:06 +0200 | Nahra` | (~user@static.161.95.99.88.clients.your-server.de) |
2021-06-23 15:14:21 +0200 | lambdap6 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2021-06-23 15:15:06 +0200 | kmein | (~weechat@user/kmein) (Ping timeout: 252 seconds) |
2021-06-23 15:15:06 +0200 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 252 seconds) |
2021-06-23 15:15:16 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 15:15:28 +0200 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 252 seconds) |
2021-06-23 15:15:28 +0200 | lambdap6 | lambdap |
2021-06-23 15:15:37 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 15:15:49 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Ping timeout: 246 seconds) |
2021-06-23 15:17:34 +0200 | chisui | (~chisui@200116b866efc300342cdc4d594c896c.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
2021-06-23 15:18:30 +0200 | kmein | (~weechat@user/kmein) |
2021-06-23 15:22:22 +0200 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-06-23 15:22:27 +0200 | fluffyballoon | (~fluffybal@199.204.58.62) |
2021-06-23 15:23:58 +0200 | azeem | (~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-23 15:24:08 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 15:24:09 +0200 | chisui | (~chisui@200116b866efc300342cdc4d594c896c.dip.versatel-1u1.de) |
2021-06-23 15:24:19 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-23 15:24:29 +0200 | azeem | (~azeem@176.201.6.138) (Read error: Connection reset by peer) |
2021-06-23 15:24:42 +0200 | azeem | (~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) |
2021-06-23 15:24:57 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
2021-06-23 15:24:57 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-06-23 15:26:58 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-23 15:27:13 +0200 | allbery_b | geekosaur |
2021-06-23 15:29:55 +0200 | DNH | (~DNH@8.43.122.6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-23 15:30:07 +0200 | zebrag | (~chris@user/zebrag) (Read error: Connection reset by peer) |
2021-06-23 15:34:41 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-23 15:34:44 +0200 | dunkeln_ | (~dunkeln@188.71.193.140) |
2021-06-23 15:41:42 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection) |
2021-06-23 15:41:54 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 15:42:50 +0200 | dunkeln_ | (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds) |
2021-06-23 15:43:14 +0200 | DNH | (~DNH@8.43.122.6) |
2021-06-23 15:44:51 +0200 | ystael | (~ystael@user/ystael) |
2021-06-23 15:44:53 +0200 | DNH | (~DNH@8.43.122.6) (Read error: Connection reset by peer) |
2021-06-23 15:48:18 +0200 | f0c1s | (~f0c1s@136.185.130.32) (Quit: Leaving) |
2021-06-23 15:54:00 +0200 | nerdypepper | (~nerdypepp@user/nerdypepper) (Quit: bye) |
2021-06-23 15:54:53 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-06-23 15:58:10 +0200 | nerdypepper | (~nerdypepp@user/nerdypepper) |
2021-06-23 15:58:44 +0200 | remexre | (~nathan@user/remexre) (Read error: Connection reset by peer) |
2021-06-23 15:59:52 +0200 | smarton | (~smarton@2a01:4f9:c010:4e92::1) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-06-23 16:00:39 +0200 | DNH | (~DNH@2a09:bac0:48::82b:7a06) |
2021-06-23 16:01:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 16:02:29 +0200 | remexre | (~nathan@user/remexre) |
2021-06-23 16:02:41 +0200 | smarton | (~smarton@121407.xyz) |
2021-06-23 16:03:00 +0200 | jakzale | (uid499518@id-499518.charlton.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-23 16:04:23 +0200 | sayola | (~vekto@dslb-088-078-152-192.088.078.pools.vodafone-ip.de) |
2021-06-23 16:05:32 +0200 | trcc_ | (~trcc@eduroam09.au.dk) |
2021-06-23 16:06:18 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 264 seconds) |
2021-06-23 16:07:02 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) |
2021-06-23 16:07:06 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Ping timeout: 250 seconds) |
2021-06-23 16:07:17 +0200 | <safinaskar> | is it true that "forall a." always means "forall a :: Type."? |
2021-06-23 16:07:21 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-06-23 16:08:50 +0200 | trcc | (~trcc@users-1190.st.net.au.dk) (Ping timeout: 268 seconds) |
2021-06-23 16:10:03 +0200 | <lortabac> | safinaskar: no, sometimes a different kind can be infered |
2021-06-23 16:10:15 +0200 | <dminuoso> | % :set -XPolyKinds |
2021-06-23 16:10:15 +0200 | <yahb> | dminuoso: |
2021-06-23 16:10:16 +0200 | trcc_ | (~trcc@eduroam09.au.dk) (Ping timeout: 265 seconds) |
2021-06-23 16:10:30 +0200 | <safinaskar> | lortabac: thanks |
2021-06-23 16:11:42 +0200 | fendor_ | (~fendor@178.165.189.179.wireless.dyn.drei.com) |
2021-06-23 16:12:14 +0200 | <dminuoso> | % f :: forall a b. a -> Const a b; f = Const |
2021-06-23 16:12:14 +0200 | <yahb> | dminuoso: |
2021-06-23 16:12:16 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 16:12:18 +0200 | <dminuoso> | % :t f -- safinaskar |
2021-06-23 16:12:18 +0200 | <yahb> | dminuoso: forall {k} {a} {b :: k}. a -> Const a b |
2021-06-23 16:13:49 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-06-23 16:14:17 +0200 | fendor | (~fendor@178.115.129.107.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-06-23 16:14:50 +0200 | fendor_ | fendor |
2021-06-23 16:15:03 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 258 seconds) |
2021-06-23 16:15:05 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 16:15:21 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) () |
2021-06-23 16:19:05 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) |
2021-06-23 16:20:38 +0200 | <safinaskar> | is it true that "singletons" library is limited compared to hypothetical future dependent haskell (dh), because with singletons (as opposed to true dh) you cannot have types depending on runtime values? |
2021-06-23 16:21:57 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-06-23 16:22:18 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) |
2021-06-23 16:22:18 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 16:22:18 +0200 | jneira_ | (~jneira_@131.red-79-155-1.dynamicip.rima-tde.net) |
2021-06-23 16:22:32 +0200 | hounded | (~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) |
2021-06-23 16:22:39 +0200 | hounded_woodstoc | (~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) |
2021-06-23 16:22:39 +0200 | hounded_woodstoc | (~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Client Quit) |
2021-06-23 16:23:42 +0200 | <merijn> | "probably"? |
2021-06-23 16:23:52 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 16:24:12 +0200 | <merijn> | It's also probably true that Dependent Haskell will always suck, even in the future |
2021-06-23 16:24:15 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 258 seconds) |
2021-06-23 16:24:18 +0200 | shapr | (~user@2601:7c0:8180:89d0:e21a:92b8:d08a:508f) (Ping timeout: 264 seconds) |
2021-06-23 16:24:28 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-23 16:26:24 +0200 | <safinaskar> | merijn: i didn't say "probably" |
2021-06-23 16:29:03 +0200 | <dminuoso> | To be fair, singletons gives you a good approximating for lightweight dependently typed programming. |
2021-06-23 16:29:12 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 250 seconds) |
2021-06-23 16:29:22 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 16:30:16 +0200 | <merijn> | safinaskar: Probably was my answer |
2021-06-23 16:30:28 +0200 | <merijn> | "is this true?" probably, yes |
2021-06-23 16:31:26 +0200 | <safinaskar> | well, my question is about current state |
2021-06-23 16:31:44 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds) |
2021-06-23 16:31:46 +0200 | <safinaskar> | is it true that currently you cannot pass runtime values as arguments to types? |
2021-06-23 16:32:14 +0200 | <chisui> | What's the status of the Unsaturated Type Families proposal anyways? |
2021-06-23 16:32:32 +0200 | <merijn> | That depends on what you're opinion on "faking something that looks like passing runtime values to types" is |
2021-06-23 16:32:41 +0200 | <merijn> | Can you do it? No. |
2021-06-23 16:32:52 +0200 | <merijn> | Does singletons let you fake the ability to do it? Yes. |
2021-06-23 16:34:12 +0200 | <safinaskar> | ok, thanks |
2021-06-23 16:34:14 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) () |
2021-06-23 16:34:30 +0200 | <dminuoso> | What an odd fella. |
2021-06-23 16:35:05 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 16:35:59 +0200 | <davean> | There was so much left unsaid in their question I struggled to come up with a question that would narrow down what they were asking enough to make it worth asking to try to get to an answer |
2021-06-23 16:37:23 +0200 | <maerwald[m]> | Maybe this is an assignment and they just needed *any* answer |
2021-06-23 16:37:32 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 16:37:38 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 16:38:09 +0200 | egoist | (~egoist@186.235.85.100) (Quit: WeeChat 3.1) |
2021-06-23 16:38:40 +0200 | <chisui> | ... or win an argument :D |
2021-06-23 16:39:02 +0200 | <maerwald> | Yeah, that's even more important and requires our support |
2021-06-23 16:39:23 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-23 16:39:57 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-06-23 16:40:08 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-23 16:43:39 +0200 | <davean> | I mean, I guess core to the problem is types don't exist along side runtime values in any sense |
2021-06-23 16:43:52 +0200 | <davean> | so the question is, on the face of it, nonsensicle |
2021-06-23 16:44:09 +0200 | <davean> | but many type-looking things do exist |
2021-06-23 16:45:10 +0200 | CookE[] | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 16:45:58 +0200 | <dminuoso> | Snarky opinion: Python is dependently typed: x if (type(o) is str) else y |
2021-06-23 16:46:40 +0200 | <dminuoso> | Type checking your program amounts to running it and see if its well behaved. |
2021-06-23 16:47:25 +0200 | ystael | (~ystael@user/ystael) (Read error: Connection reset by peer) |
2021-06-23 16:48:12 +0200 | ystael | (~ystael@user/ystael) |
2021-06-23 16:49:04 +0200 | hammock | (~Hammock@2600:1700:19a1:3330::625) |
2021-06-23 16:49:29 +0200 | <maerwald> | It's well behaved by definition no? |
2021-06-23 16:49:30 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 264 seconds) |
2021-06-23 16:49:49 +0200 | <davean> | yah the thing maerwald said |
2021-06-23 16:51:19 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 16:54:09 +0200 | <nshepperd> | it passes type checking if it does what you want |
2021-06-23 16:54:18 +0200 | <nshepperd> | The most powerful type system on earth! |
2021-06-23 16:55:44 +0200 | <maerwald> | We just need a confogurable type system |
2021-06-23 16:56:05 +0200 | <maerwald> | confoguration... |
2021-06-23 16:56:24 +0200 | maerwald | signs off lol |
2021-06-23 16:58:38 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 16:59:40 +0200 | <gentauro_> | maerwald: sign off? Is that a certificate? :P |
2021-06-23 16:59:46 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 17:00:05 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-23 17:00:12 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:01:10 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-23 17:01:48 +0200 | gentauro_ | gentauro |
2021-06-23 17:03:02 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:04:35 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:04:38 +0200 | <carbolymer> | is there a function `PersistEntity r => r -> Key r` in "persistent" library? I'm trying to get key of my entity |
2021-06-23 17:06:37 +0200 | <merijn> | carbolymer: I *think* I'm using one somewhere in my code |
2021-06-23 17:06:42 +0200 | <merijn> | So I think so |
2021-06-23 17:06:58 +0200 | <merijn> | but, eh, it can be hard to dig up the right stuff :p |
2021-06-23 17:07:21 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:08:25 +0200 | <sekun> | do people actually use the haskell packages from nixpkgs? |
2021-06-23 17:08:35 +0200 | <sekun> | for projects |
2021-06-23 17:08:54 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:08:57 +0200 | <Taneb> | sekun: yes |
2021-06-23 17:09:10 +0200 | <dminuoso> | sekun: Yes. |
2021-06-23 17:10:54 +0200 | <sekun> | alright cool. does it improve compile times at all compared to just cabal/stack? or there's no difference? |
2021-06-23 17:11:24 +0200 | <sekun> | i'm not sure if the packages on there are also binaries |
2021-06-23 17:11:38 +0200 | <davean> | sekun: hahaha, people try |
2021-06-23 17:11:44 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:11:54 +0200 | <davean> | sekun: there are some binary, sure, but cabal already caches in the same way |
2021-06-23 17:12:07 +0200 | <davean> | sekun: so, "marginal" at best and the nixos stuff is very limited in what it can handle |
2021-06-23 17:12:14 +0200 | <Taneb> | sekun: nixpkgs has a binary cache |
2021-06-23 17:12:51 +0200 | <davean> | sekun: it only helps at all the first compile |
2021-06-23 17:12:59 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection) |
2021-06-23 17:13:03 +0200 | tv | (~tv@user/tv) (Ping timeout: 268 seconds) |
2021-06-23 17:13:04 +0200 | <sekun> | davean: limited in what way? sorry i'm just trying to get an idea |
2021-06-23 17:13:04 +0200 | <davean> | and it will have issues |
2021-06-23 17:13:18 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:13:23 +0200 | <dminuoso> | sekun: The primary motivation for nix is getting deterministic output. |
2021-06-23 17:13:24 +0200 | <sekun> | Taneb: I see |
2021-06-23 17:13:51 +0200 | tv | (~tv@user/tv) |
2021-06-23 17:14:06 +0200 | <davean> | sekun: well it only supports a single version of a package at all, which falls flat on its face immedately, if you compile with flags for debugging and such, you're in a worse place than just using cabal, its always behind, historically nixos broke packages silently. .. |
2021-06-23 17:14:29 +0200 | <dminuoso> | sekun: In haskell+nix for actual building, it's generally a bit slower for various reasons. |
2021-06-23 17:14:30 +0200 | ystael | (~ystael@user/ystael) (Read error: Connection reset by peer) |
2021-06-23 17:15:02 +0200 | <dminuoso> | And the problems davean points out are addressed in haskell.nix |
2021-06-23 17:15:10 +0200 | ystael | (~ystael@user/ystael) |
2021-06-23 17:15:13 +0200 | <davean> | dminuoso: Yah, haskell.nix is WAY better |
2021-06-23 17:15:33 +0200 | <davean> | Ok, haskell.nix isn't actively detremental |
2021-06-23 17:15:37 +0200 | <davean> | which I'd claim nix is |
2021-06-23 17:15:46 +0200 | <dminuoso> | davean: To be fair, I think of nix a bit more like stackage wrt to versions. |
2021-06-23 17:15:53 +0200 | <dminuoso> | But in a way that you can transitively switch out dependencies easily |
2021-06-23 17:15:57 +0200 | <dminuoso> | Or modify their flags |
2021-06-23 17:16:01 +0200 | <davean> | dminuoso: stackage never ripped out dependency requirements |
2021-06-23 17:16:06 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 17:16:08 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:16:11 +0200 | <dminuoso> | Of course not, neither has nix |
2021-06-23 17:16:16 +0200 | <davean> | dminuoso: YES YES nix HAS |
2021-06-23 17:16:19 +0200 | <davean> | Seriously |
2021-06-23 17:16:26 +0200 | <davean> | they actively jail broke packages as THE STANDARD |
2021-06-23 17:16:32 +0200 | <davean> | It lead me to SERIOUS issues |
2021-06-23 17:16:44 +0200 | <davean> | No, absolutely seriously this is a nix thing historically |
2021-06-23 17:16:52 +0200 | <Taneb> | dminuoso: yeah, that was (is?) a comman thing in nixpkgs' haskell package set |
2021-06-23 17:17:01 +0200 | <davean> | they had a set of packages they directly removed depencency requirements on |
2021-06-23 17:17:14 +0200 | <dminuoso> | Maybe I misunderstand what you mean by "ripping out dependency requirements" then |
2021-06-23 17:17:15 +0200 | <davean> | dminuoso: Seriously, this is a huge fucking deal |
2021-06-23 17:17:35 +0200 | <dminuoso> | Ah |
2021-06-23 17:17:37 +0200 | <davean> | dminuoso: ok,. so if I have a package that says "directory >= 1.4.1 && < 1.5" nix would rewrite it to "directory" |
2021-06-23 17:17:42 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:17:50 +0200 | <davean> | and build it against 1.4 |
2021-06-23 17:17:57 +0200 | <Taneb> | Ctrl-F in https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/configuration-common… for "doJailbreak" |
2021-06-23 17:17:58 +0200 | <davean> | I lost data in production because of this shit |
2021-06-23 17:18:09 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:d7c7:704e:32f2:af10) (Quit: WeeChat 2.8) |
2021-06-23 17:18:30 +0200 | <dminuoso> | Mmm, what happened here? I recall that jailbreak was a really rare thing to do |
2021-06-23 17:18:32 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-06-23 17:18:50 +0200 | <davean> | dminuoso: they at least at one point *always* jailbroke for what they considered the "base" package set |
2021-06-23 17:18:56 +0200 | <davean> | Universally |
2021-06-23 17:19:32 +0200 | <davean> | which things like directory were in that set |
2021-06-23 17:20:14 +0200 | <dminuoso> | This is strange, so the first 10ish examples I went through are all jailbroken just to get the right quickcheck and run tests.. |
2021-06-23 17:20:20 +0200 | <dminuoso> | Shouldn't that be a case of dontCheck? |
2021-06-23 17:20:22 +0200 | dminuoso | stares |
2021-06-23 17:20:33 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:20:43 +0200 | <davean> | dminuoso: and this is the "less scary" future |
2021-06-23 17:20:56 +0200 | <nshepperd> | i thought the point of nix was to not need to do those things... |
2021-06-23 17:21:05 +0200 | <davean> | dminuoso: they seriously use to UNIVERSALLY do it for some packages, and jailbreaking was something more |
2021-06-23 17:21:12 +0200 | <davean> | nshepperd: yah well |
2021-06-23 17:21:19 +0200 | <davean> | nshepperd: its SPECIFICLY the *haskell* stuff in nix |
2021-06-23 17:21:31 +0200 | <dminuoso> | davean: From what I can tell, its definitely not universal behavior. It seems to be the sledgehammer to massage bounds. |
2021-06-23 17:21:40 +0200 | <dminuoso> | For the odd package that wouldnt otherwise build |
2021-06-23 17:21:45 +0200 | <davean> | dminuoso: no, as I keep tell you, this is the "future" where they tried to back off it |
2021-06-23 17:21:54 +0200 | <dminuoso> | I find that hard to believe |
2021-06-23 17:21:57 +0200 | <davean> | dminuoso: but they did it to *every* package for certain dependencies |
2021-06-23 17:22:03 +0200 | <davean> | dminuoso: well its true so uh? |
2021-06-23 17:22:05 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:22:31 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:e6b3:18ff:fe83:8f33) |
2021-06-23 17:22:49 +0200 | <davean> | directory was one of them |
2021-06-23 17:22:59 +0200 | <davean> | it would NEVER enforce a dependency requirement on directory, AT ALL |
2021-06-23 17:24:51 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:25:46 +0200 | <maerwald> | Nix bashing? Lemme get popcorn first |
2021-06-23 17:26:24 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:27:07 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-06-23 17:28:42 +0200 | <sekun> | Ah I checked haskell.nix and found this https://input-output-hk.github.io/haskell.nix/motivation/. I think I'll start from here and see how it goes. |
2021-06-23 17:29:12 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:29:37 +0200 | azeem | (~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) (Ping timeout: 268 seconds) |
2021-06-23 17:30:05 +0200 | azeem | (~azeem@176.201.6.138) |
2021-06-23 17:30:43 +0200 | <sekun> | davean: is the issue you mentioned also present in haskell.nix? or is it only an issue if you just use nix + nixpkgs |
2021-06-23 17:30:45 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:31:17 +0200 | <davean> | sekun: no, haskell.nix at least tries to address all the above issues and make a more honest compilation of Haskell code |
2021-06-23 17:31:35 +0200 | <davean> | sekun: It still won't really help your build times other than the first time, but |
2021-06-23 17:31:43 +0200 | <davean> | it doesn't cause you active issues :) |
2021-06-23 17:31:55 +0200 | <davean> | and it might even solve some problems! |
2021-06-23 17:32:36 +0200 | <sekun> | davean: i see that's good to hear. i guess there's really no temporary workaround for haskell's build times :( |
2021-06-23 17:33:33 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:33:33 +0200 | CookE[] | (~thedawn@user/thedawn) |
2021-06-23 17:33:46 +0200 | <davean> | sekun: I mean there is directly addressing the issue |
2021-06-23 17:33:58 +0200 | <davean> | why are your build times long? |
2021-06-23 17:34:31 +0200 | <davean> | if what you care about is that clean build's build time, haskell.nix does help |
2021-06-23 17:34:56 +0200 | <davean> | But you only build dependencies once per configuration of said dependency with cabal |
2021-06-23 17:35:03 +0200 | <davean> | so you probably care about YOUR code's compile time in practice |
2021-06-23 17:35:08 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:35:10 +0200 | <davean> | So why is your code not compiling fast? |
2021-06-23 17:35:20 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-23 17:36:19 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.1) |
2021-06-23 17:38:00 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:38:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-06-23 17:39:33 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:39:35 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-06-23 17:40:10 +0200 | mikail_ | (~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) |
2021-06-23 17:40:12 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 17:42:25 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:42:59 +0200 | chisui | (~chisui@200116b866efc300342cdc4d594c896c.dip.versatel-1u1.de) (Quit: Client closed) |
2021-06-23 17:43:36 +0200 | MorrowM | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 258 seconds) |
2021-06-23 17:44:01 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:44:20 +0200 | chisui | (~chisui@200116b866efc30078bec775310a636c.dip.versatel-1u1.de) |
2021-06-23 17:45:04 +0200 | sekun | (~sekun@180.190.208.125) (Ping timeout: 252 seconds) |
2021-06-23 17:45:25 +0200 | chomwitt | (~Pitsikoko@athedsl-16082.home.otenet.gr) |
2021-06-23 17:46:51 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:48:25 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:50:01 +0200 | opv | (~opv@methodsofcontrol.com) |
2021-06-23 17:50:15 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-06-23 17:51:12 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:52:45 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:53:13 +0200 | arjun_ | (~arjun@160.202.37.101) |
2021-06-23 17:53:27 +0200 | <chisui> | I came across a library that redefined some categorical typeclasses in a more categorical way, like `Functor (c0 :: k0 -> k0 -> Type) (c1 :: k1 -> k1 -> Type) (f :: k0 -> k1)` , but I forgot the name. Does anyone know how that package is called? |
2021-06-23 17:54:45 +0200 | azeem | (~azeem@176.201.6.138) (Read error: Connection reset by peer) |
2021-06-23 17:55:06 +0200 | azeem | (~azeem@dynamic-adsl-84-220-246-231.clienti.tiscali.it) |
2021-06-23 17:55:28 +0200 | <c_wraith> | I think there are actually several packages that explore that direction |
2021-06-23 17:55:32 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 17:55:50 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) |
2021-06-23 17:56:57 +0200 | <chisui> | do you have the name of some? they don't seem to be indexed by hoggle |
2021-06-23 17:57:02 +0200 | pfurla_ | (~pfurla@216.131.82.16) |
2021-06-23 17:57:07 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 17:57:59 +0200 | <chisui> | *hoogle |
2021-06-23 17:58:30 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Client Quit) |
2021-06-23 17:59:23 +0200 | <c_wraith> | https://hackage.haskell.org/package/hask is one, though I don't think it's the one you saw |
2021-06-23 17:59:44 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-06-23 18:00:32 +0200 | finsternis | (~X@23.226.237.192) |
2021-06-23 18:01:21 +0200 | CookE[] | fef |
2021-06-23 18:01:21 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-23 18:01:50 +0200 | <c_wraith> | https://hackage.haskell.org/package/data-category is another, though probably still not the one you're looking for |
2021-06-23 18:02:58 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 18:03:54 +0200 | <chisui> | Thank you c_wraith but none of those are what I was looking for |
2021-06-23 18:04:23 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 18:05:02 +0200 | trcc | (~trcc@eduroam09.au.dk) |
2021-06-23 18:05:03 +0200 | trcc | (~trcc@eduroam09.au.dk) (Remote host closed the connection) |
2021-06-23 18:05:38 +0200 | trcc | (~trcc@users-1190.st.net.au.dk) |
2021-06-23 18:05:59 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection) |
2021-06-23 18:06:16 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:e6b3:18ff:fe83:8f33) (Ping timeout: 250 seconds) |
2021-06-23 18:07:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 268 seconds) |
2021-06-23 18:08:57 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-06-23 18:09:02 +0200 | <chisui> | The package is called "category" *facepalm* |
2021-06-23 18:09:18 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-06-23 18:11:03 +0200 | <carbolymer> | davean: wait how did you lost your data? Your package incorporated version with a bug, outside of cabal bounds , or what happened? |
2021-06-23 18:14:20 +0200 | dunkeln | (~dunkeln@188.71.193.140) |
2021-06-23 18:14:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 18:15:25 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 258 seconds) |
2021-06-23 18:17:49 +0200 | <c_wraith> | chisui: well, if I helped you at least figure out what to search for, I'm calling that a win. :) |
2021-06-23 18:18:04 +0200 | hgolden | (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Remote host closed the connection) |
2021-06-23 18:19:32 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds) |
2021-06-23 18:19:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-06-23 18:20:59 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 18:21:03 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection) |
2021-06-23 18:23:05 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-06-23 18:23:10 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 18:23:17 +0200 | Guest3175 | (~Guest31@176.41.31.219) |
2021-06-23 18:23:45 +0200 | <davean> | carbolymer: yah, I specificly said "I require directory that has a bug fixed because that bug affects me", and the nixpkg approach said "haha, we don't believe you" |
2021-06-23 18:26:21 +0200 | pfurla_ | (~pfurla@216.131.82.16) (Ping timeout: 268 seconds) |
2021-06-23 18:28:23 +0200 | zyklotomic | (~ethan@2604:a880:800:10::79f:8001) (WeeChat 2.8) |
2021-06-23 18:29:01 +0200 | dhil | (~dhil@80.208.56.181) |
2021-06-23 18:29:08 +0200 | <c_wraith> | yikes. Overriding version bounds without explicit instructions to do so is scary. |
2021-06-23 18:32:42 +0200 | vpan | (~vilius@212.117.1.172) (Quit: Leaving.) |
2021-06-23 18:33:17 +0200 | derelict | (~derelict@user/derelict) |
2021-06-23 18:33:32 +0200 | <maerwald> | That's why I usually avoid 'directory' and reimplemented everything myself, lol. But I'm missing windows support. AFPP etc... grml |
2021-06-23 18:34:23 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .) |
2021-06-23 18:34:32 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2021-06-23 18:35:26 +0200 | <maerwald> | Cross platform functions are the worst. Purely functional and "local reasoning" goes out the window and laughs at you |
2021-06-23 18:37:15 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-23 18:38:24 +0200 | <c_wraith> | "purely functional" goes out the window when working with filesystems anyway |
2021-06-23 18:39:04 +0200 | <maerwald> | How would a functionsl filesystem look like? |
2021-06-23 18:40:43 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-06-23 18:43:10 +0200 | <monochrom> | It would support undo. |
2021-06-23 18:43:47 +0200 | <monochrom> | Imagine you're back to the 2000's and you got yourself into cabal hell. Don't you wish you could undo? |
2021-06-23 18:43:56 +0200 | <c_wraith> | it would look like a log-based filesystem |
2021-06-23 18:44:41 +0200 | mikail__ | (~mikail@90.212.77.3) |
2021-06-23 18:45:35 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-23 18:45:38 +0200 | <sclv> | If in imagining im in the 2000s im not thinking about cabal i’m remembering when britney was on the radio, the housing market was good, and i could still buy a large coke for 1.25 |
2021-06-23 18:45:41 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 18:45:47 +0200 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2021-06-23 18:46:23 +0200 | <monochrom> | That would be "how would a functional society look like?" >:) |
2021-06-23 18:46:29 +0200 | ubert | (~Thunderbi@p200300ecdf259deac0d59fca0b69df22.dip0.t-ipconnect.de) |
2021-06-23 18:46:43 +0200 | <c_wraith> | oh no, we've switched meanings of "functional"! |
2021-06-23 18:47:30 +0200 | mikail_ | (~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 240 seconds) |
2021-06-23 18:47:30 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-06-23 18:47:58 +0200 | <monochrom> | I'm great at puns. That "functional" could still mean you have undo. |
2021-06-23 18:49:36 +0200 | <monochrom> | I just gave out an assignment to students yesterday, it's coding up iterative deepening in Haskell, taking advantage of lazy lists and lazy evaluation. I began with "this assignment deepens (pun intended, just you wait) your experience with lazy evaluation" |
2021-06-23 18:49:52 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection) |
2021-06-23 18:51:21 +0200 | <c_wraith> | Laziness and iterative deepening seem like a weird mix. the big benefit to iterative deepening it (usually) uses way less memory than a breadth-first search. |
2021-06-23 18:51:35 +0200 | <c_wraith> | +is |
2021-06-23 18:53:28 +0200 | <monochrom> | Breadth-first search still takes up much memory under lazy evaluation. |
2021-06-23 18:54:52 +0200 | <c_wraith> | I suppose you could apply laziness to things like generating a list of all paths examined by iterative deepening without blowing up its memory use |
2021-06-23 18:55:05 +0200 | dhil | (~dhil@80.208.56.181) (Ping timeout: 265 seconds) |
2021-06-23 18:56:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 18:57:32 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-06-23 18:58:21 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 18:58:23 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Quit: Must not waste too much time here...) |
2021-06-23 18:58:34 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 19:03:03 +0200 | Guest3175 | (~Guest31@176.41.31.219) (Quit: Client closed) |
2021-06-23 19:03:04 +0200 | ystael | (~ystael@user/ystael) |
2021-06-23 19:03:10 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-06-23 19:03:38 +0200 | kuribas | (~user@ptr-25vy0ia3kl0vdl4qmg0.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-06-23 19:04:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 19:04:35 +0200 | <norias> | yeah, to be honest, coming from imperative programming |
2021-06-23 19:04:41 +0200 | <norias> | i'm 1 day in to haskell |
2021-06-23 19:04:56 +0200 | <norias> | and i can't imagine how programs that do things happen in functional programming |
2021-06-23 19:05:07 +0200 | <norias> | not saying it can't / doesn't happen |
2021-06-23 19:05:20 +0200 | <norias> | just my brain hasn't reached comprehension, yet |
2021-06-23 19:05:29 +0200 | <norias> | but it looks cool as hell |
2021-06-23 19:07:44 +0200 | <ski> | you compute a series of intput/output interactions with the external world (everything outside of the process running the Haskell program) |
2021-06-23 19:08:14 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 19:08:38 +0200 | <ski> | the simplest possible model of this is to view a program as a function that, given input text (standard input), computes output text (standard output) |
2021-06-23 19:08:45 +0200 | dhil | (~dhil@195.213.192.47) |
2021-06-23 19:08:53 +0200 | <ski> | @type interact |
2021-06-23 19:08:54 +0200 | <lambdabot> | (String -> String) -> IO () |
2021-06-23 19:09:18 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Ping timeout: 264 seconds) |
2021-06-23 19:09:40 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-06-23 19:09:50 +0200 | <ski> | can be used, to play with this idea. e.g. passing a function that divides up the input `String' into lives, reversing each line, then concatenating them together into a `String' again |
2021-06-23 19:10:24 +0200 | <ski> | @type interact (unlines . map reverse . lines) |
2021-06-23 19:10:25 +0200 | <lambdabot> | IO () |
2021-06-23 19:10:57 +0200 | <ski> | > (unlines . map reverse . lines) "foo\nbar\nbaz\n" |
2021-06-23 19:10:58 +0200 | <lambdabot> | "oof\nrab\nzab\n" |
2021-06-23 19:11:55 +0200 | <ski> | however, when you want to do more sophisticated (text-based) interactions, or when you start to want to do other things (open files, network connections, spawn other processes, &c.), this simplistic model shows its limitations |
2021-06-23 19:13:17 +0200 | <ski> | and so we have a richer ((embedded) domain-specific) language for specifying exactly what I/O interactions to do, in which order. which is the `IO' (abstract data) type |
2021-06-23 19:13:22 +0200 | <ski> | @type getLine |
2021-06-23 19:13:23 +0200 | <lambdabot> | IO String |
2021-06-23 19:15:41 +0200 | aman | (~aman@user/aman) (Ping timeout: 268 seconds) |
2021-06-23 19:16:41 +0200 | <ski> | a value of type `IO String' describes interactions to perform, so as to (hopefully) compute a `String' in the end, as result |
2021-06-23 19:18:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) |
2021-06-23 19:18:37 +0200 | <ski> | (in any case, the `IO String' does not (in general) "contain" any `String'. the `String' will be computed, as a result of actually performing the series of instructions specified by the value of type `IO String' (the "action"). performing/running it again, will quite possibly result in a different `String' being produced. but it's still the same action, the same value of type `IO String', that's being run) |
2021-06-23 19:20:42 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-23 19:20:45 +0200 | <ski> | norias : so, by using basic "action" building blocks, like `getLine', one can combine them into larger, more complicated actions, using `(>>)' or `(>>=)', which constructs an action from two smaller ones, that, when later executed, will first execute the first "su-action", then the second one |
2021-06-23 19:20:56 +0200 | <ski> | (>>) :: IO a -> IO b -> IO b |
2021-06-23 19:21:09 +0200 | <ski> | (>>=) :: IO a -> (a -> IO b) -> IO b |
2021-06-23 19:21:26 +0200 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection) |
2021-06-23 19:22:02 +0200 | MorrowM | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 19:22:11 +0200 | <ski> | `actA >> actB' will, when executed, first execute `actA' (throwing away its result value), then execute `actB' (whose result value will be the result value of the execution of the whole `actA >> actB') |
2021-06-23 19:22:43 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) |
2021-06-23 19:23:43 +0200 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) |
2021-06-23 19:23:52 +0200 | <ski> | the second combinator is to not throw away the intermediate result, but rather allow the second action to depend on which value resulted from executing the first action. so the second one is actually a function that is fed the intermediate result, and (possibly) uses that to construct the second action to perform |
2021-06-23 19:24:02 +0200 | involans | (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-06-23 19:25:35 +0200 | <ski> | so, `act >>= cont' will, when executed, first execute `act', getting its result back (call it `res'); then execute `cont res' (passing the intermediate result to the function ("continuation") that then computes the second action to execute). as before, the result of the second action is the result of the whole |
2021-06-23 19:26:19 +0200 | <ski> | so, one very simple program now is `getLine >>= putStrLn'. a slightly more complicated one is `getLine >>= (putStrLn . reverse)' |
2021-06-23 19:26:23 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-06-23 19:26:25 +0200 | <ski> | @type putStrLn |
2021-06-23 19:26:26 +0200 | <lambdabot> | String -> IO () |
2021-06-23 19:27:01 +0200 | thyriaen | (~thyriaen@45.178.75.13) |
2021-06-23 19:27:12 +0200 | <ski> | `putStrLn str' is action that, when executed, will output `str' (on standard output) (and then give back an uninteresting result (of type `()') from the execution) |
2021-06-23 19:28:36 +0200 | DNH | (~DNH@2a09:bac0:48::82b:7a06) (Ping timeout: 250 seconds) |
2021-06-23 19:28:38 +0200 | <ski> | next step up in complexity is to start to put conditionals, or `case' distinctions, into the second action (after `>>='), so that you decide to respond in different ways, depending on the intermediate result from the first action |
2021-06-23 19:28:40 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) |
2021-06-23 19:29:35 +0200 | <ski> | norias : that's a very quick sketch of the very basics of Haskell I/O .. to get a better feel for this, you'd have to play around with it, and try to build larger things |
2021-06-23 19:29:37 +0200 | <safinaskar> | is it possible to pass runtime values as arguments to types? i asked this question today, and got answer that this is possible to fake somehow. please, give me some examples |
2021-06-23 19:30:22 +0200 | thyriaen | (~thyriaen@45.178.75.13) (Client Quit) |
2021-06-23 19:30:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-06-23 19:30:39 +0200 | <carbolymer> | davean: that's fucked up. It's the opposite what's nix promises |
2021-06-23 19:31:11 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 19:31:15 +0200 | <safinaskar> | for example, I want "head" with this prototype: head :: forall a. foreach (x :: [a]). (null x ~ False) -> a |
2021-06-23 19:31:17 +0200 | <ski> | safinaskar : that's dependent types |
2021-06-23 19:31:27 +0200 | <safinaskar> | is it possible to fake this "head" using singletons? |
2021-06-23 19:31:56 +0200 | <ixlun> | Hi all. I've got this code: https://termbin.com/r17ge . I'm reading in a binary file that's approx 700Mb of floats. It takes a long time to run (in the order of minutes). I would have thought with lazy bytestrings this would have been pretty quick. |
2021-06-23 19:32:43 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-23 19:34:20 +0200 | <monochrom> | "(runGet $ many getFloatle)" kills laziness. |
2021-06-23 19:35:00 +0200 | <monochrom> | Building a long list also takes up much memory therefore time. |
2021-06-23 19:35:37 +0200 | <ski> | safinaskar : singletons allow you to associate a value with a corresponding type, "of the same shape". but the value is of a new type, specifically made for this. e.g. `data Nat = Zero | Succ Nat', then `data NatIs :: Nat -> * where IsZero :: NatIs Zero; IsSucc :: NatIs n -> NatIs (Succ n)'. so, given an input of type `NatIs n', you automatically get a corresponding type `n' |
2021-06-23 19:36:33 +0200 | <ski> | safinaskar : but i'm not aware of a way to do this generically (for your arbitrary element type `a', say) |
2021-06-23 19:36:48 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 19:37:18 +0200 | <ixlun> | monochrom: Right, I presume it's the runGet function that's killing laziness? If so, is there a way around it? |
2021-06-23 19:37:51 +0200 | MoC | (~moc@user/moc) |
2021-06-23 19:38:19 +0200 | <monochrom> | "many" kills laziness. |
2021-06-23 19:38:34 +0200 | mikail__ | (~mikail@90.212.77.3) (Ping timeout: 250 seconds) |
2021-06-23 19:38:57 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-23 19:43:17 +0200 | <safinaskar> | ski: it seems i understand. and this means that we can have, say, list of such naturals using existential types, right? i. e. we can define "data Foo = forall (n :: Nat). Foo (NatIs n)", and then we can have "someList :: [Foo]". right? |
2021-06-23 19:44:32 +0200 | <ixlun> | monochrom: Right. Do you think I need to do some kind of incremental reads? |
2021-06-23 19:44:58 +0200 | <monochrom> | Use runGetOrFail on one single getFloatle. Or use conduit or pipes. |
2021-06-23 19:45:38 +0200 | MorrowM | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-06-23 19:45:56 +0200 | MorrowM | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-06-23 19:45:56 +0200 | Guest33 | (~Guest33@104.246.145.85) |
2021-06-23 19:46:41 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 19:47:54 +0200 | kayprish | (~kayprish@46.240.143.86) (Remote host closed the connection) |
2021-06-23 19:48:59 +0200 | sleblanc | (~sleblanc@user/sleblanc) (Ping timeout: 268 seconds) |
2021-06-23 19:50:36 +0200 | <qrpnxz> | is there a way to just import everything in the std lib in one go? |
2021-06-23 19:51:50 +0200 | <ski> | safinaskar : yes, but that seems fairly useless, since `exists n. NatIs n' would simply be isomorphic to a plain (value-level) `Nat' |
2021-06-23 19:52:06 +0200 | <ixlun> | monochrom: okay I'll take a look at that. Thanks! |
2021-06-23 19:52:19 +0200 | <ski> | the sole point of `NatIs n' would be to mention `n' elsewhere |
2021-06-23 19:52:55 +0200 | Guest33 | (~Guest33@104.246.145.85) (Quit: Client closed) |
2021-06-23 19:53:00 +0200 | <safinaskar> | ski: i think i will able to somehow extract "n" from this "exists n. NatIs n" and pass it somewhere |
2021-06-23 19:57:17 +0200 | <ski> | consider something like `zipWith :: forall a b c n. (a -> b -> c) -> (Vec a n -> Vec b n -> Vec c n)'. the point of using the `n' index here is to mention it multiple times in the type, linking the lengths of the three vectors together. if you instead go `zipWith :: forall a b c. (a -> b -> c) -> ((exists n. Vec a n) -> (exists n. Vec b n) -> (exists n. Vec c n))', you can do that, but that's not really any |
2021-06-23 19:57:23 +0200 | <ski> | better than `zipWith :: forall a b c. (a -> b -> c) -> ([a] -> [b] -> [c])' in the first place |
2021-06-23 19:58:35 +0200 | mikail__ | (~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) |
2021-06-23 19:58:46 +0200 | <ski> | similarly, someList :: [exists n. NatIs n]' isn't really any better than `someList :: [Nat]'. if you ever want to perform such a conversion, you can always use a function `toSingNat :: Nat -> exists n. NatIs n' |
2021-06-23 19:59:51 +0200 | arjun_ | (~arjun@160.202.37.101) (Ping timeout: 265 seconds) |
2021-06-23 20:00:06 +0200 | <jumper149> | I am currently trying to fix my usage of MonadBaseControl, because I was missing some `restoreM`s. So instead I came up with this: https://github.com/jumper149/blucontrol/blob/fix-control/src/Blucontrol/Main/Control.hs#L54 |
2021-06-23 20:00:58 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-06-23 20:01:02 +0200 | <jumper149> | The problem is, that I need to call `unsafeCoerce` right here. But when HLS tells me the type of `unsafeCoerce` is just like `id` here. |
2021-06-23 20:01:11 +0200 | <safinaskar> | ski: i will show example |
2021-06-23 20:01:17 +0200 | <jumper149> | When trying to run the program everything works fine. |
2021-06-23 20:01:28 +0200 | ski | will have to leave rather soon |
2021-06-23 20:01:38 +0200 | <jumper149> | So why can't GHC just infer type equality here. I guess it has to do with type families somehow. |
2021-06-23 20:02:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 20:03:02 +0200 | <jumper149> | This is the error without `unsafeCoerce`: http://ix.io/3qU1 |
2021-06-23 20:03:53 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) |
2021-06-23 20:07:03 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
2021-06-23 20:08:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-06-23 20:09:15 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-06-23 20:09:20 +0200 | <safinaskar> | ski: here is example: https://paste.debian.net/1202170/ |
2021-06-23 20:09:50 +0200 | <safinaskar> | ski: as you can see, i was able to actually use existential "Foo". and as you can see, Foo is better than just Nat |
2021-06-23 20:09:54 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 252 seconds) |
2021-06-23 20:10:30 +0200 | <safinaskar> | ski: i was able to pattern match on Foo value and then (if it greater than zero) pass it as second argument to division |
2021-06-23 20:10:54 +0200 | <safinaskar> | thus, compiler proved that at calling point of "divide" its second argument is not zero |
2021-06-23 20:11:22 +0200 | <safinaskar> | this way we can finally remove partial functions, such as division, "head", etc |
2021-06-23 20:14:06 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 20:15:17 +0200 | chisui | (~chisui@200116b866efc30078bec775310a636c.dip.versatel-1u1.de) (Quit: Client closed) |
2021-06-23 20:16:10 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 258 seconds) |
2021-06-23 20:17:33 +0200 | mikail__ | (~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Quit: Leaving) |
2021-06-23 20:22:04 +0200 | involans | (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) |
2021-06-23 20:25:53 +0200 | tusko | (~yeurt@user/tusko) (Farewell) |
2021-06-23 20:26:07 +0200 | chisui | (~chisui@200116b866efc300e1478aa720ae1876.dip.versatel-1u1.de) |
2021-06-23 20:27:07 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 20:27:46 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Quit: Leaving.) |
2021-06-23 20:31:09 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 20:32:30 +0200 | safinaskar97 | (~safinaska@109.252.90.89) |
2021-06-23 20:35:10 +0200 | econo | (uid147250@user/econo) |
2021-06-23 20:35:43 +0200 | safinaskar | (~safinaska@109-252-90-89.nat.spd-mgts.ru) (Ping timeout: 246 seconds) |
2021-06-23 20:38:01 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) (Quit: ERC (IRC client for Emacs 28.0.50)) |
2021-06-23 20:40:19 +0200 | xsperry | (~as@user/xsperry) (Ping timeout: 258 seconds) |
2021-06-23 20:42:20 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-06-23 20:43:30 +0200 | mcglk | (~mcglk@131.191.49.120) (Quit: (seeya)) |
2021-06-23 20:43:54 +0200 | mcglk | (~mcglk@131.191.49.120) |
2021-06-23 20:44:19 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-06-23 20:45:53 +0200 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Read error: Connection reset by peer) |
2021-06-23 20:46:27 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 258 seconds) |
2021-06-23 20:47:18 +0200 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) |
2021-06-23 20:48:48 +0200 | fef | (~thedawn@user/thedawn) |
2021-06-23 20:52:26 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 252 seconds) |
2021-06-23 20:53:35 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-06-23 20:53:35 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-06-23 20:54:38 +0200 | dunkeln | (~dunkeln@188.71.193.140) (Ping timeout: 252 seconds) |
2021-06-23 20:55:31 +0200 | fef | (~thedawn@user/thedawn) (Quit: Leaving) |
2021-06-23 20:55:31 +0200 | jespada | (~jespada@90.254.247.46) |
2021-06-23 21:00:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 21:01:44 +0200 | allbery_b | geekosaur |
2021-06-23 21:04:18 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-06-23 21:04:50 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 21:04:51 +0200 | dunkeln_ | (~dunkeln@188.71.193.140) |
2021-06-23 21:05:14 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
2021-06-23 21:05:35 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 265 seconds) |
2021-06-23 21:06:37 +0200 | myShoggoth | (~myShoggot@75.164.29.44) |
2021-06-23 21:07:05 +0200 | safinaskar97 | (~safinaska@109.252.90.89) () |
2021-06-23 21:08:49 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-06-23 21:08:49 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-06-23 21:08:49 +0200 | turlando | (~turlando@user/turlando) |
2021-06-23 21:11:44 +0200 | ubert | (~Thunderbi@p200300ecdf259deac0d59fca0b69df22.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-06-23 21:12:03 +0200 | ubert | (~Thunderbi@p200300ecdf259dc2c0d59fca0b69df22.dip0.t-ipconnect.de) |
2021-06-23 21:18:40 +0200 | ubert | (~Thunderbi@p200300ecdf259dc2c0d59fca0b69df22.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-06-23 21:22:58 +0200 | Deide | (~Deide@wire.desu.ga) |
2021-06-23 21:22:58 +0200 | Deide | (~Deide@wire.desu.ga) (Changing host) |
2021-06-23 21:22:58 +0200 | Deide | (~Deide@user/deide) |
2021-06-23 21:25:27 +0200 | turlando | (~turlando@user/turlando) (Read error: Connection reset by peer) |
2021-06-23 21:27:05 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-06-23 21:28:14 +0200 | Guest9 | (~Guest9@43.241.144.49) |
2021-06-23 21:32:02 +0200 | <Guest9> | i like a book called pragmatic programmer , which books do you like/recommend? |
2021-06-23 21:32:05 +0200 | <Guest9> | in general/specific |
2021-06-23 21:32:34 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 21:34:06 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-23 21:37:34 +0200 | <opv> | Hi all. I am trying to build elm bc I need it on aarch64, and am failing miserably. I am very confused. Is this the right place to ask about cabal? |
2021-06-23 21:38:54 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 21:39:44 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 258 seconds) |
2021-06-23 21:43:11 +0200 | tzar_bomba | (~tzar_bomb@78-56-41-78.static.zebra.lt) |
2021-06-23 21:45:56 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-23 21:46:24 +0200 | <monochrom> | Yes. |
2021-06-23 21:47:05 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-23 21:54:52 +0200 | <maerwald> | Great question. |
2021-06-23 21:55:11 +0200 | turlando | (~turlando@user/turlando) |
2021-06-23 21:56:43 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-23 21:59:08 +0200 | Guest9 | (~Guest9@43.241.144.49) (Quit: Connection closed) |
2021-06-23 22:00:08 +0200 | hseg | (~gesh@195.192.229.14) |
2021-06-23 22:01:08 +0200 | dunkeln_ | (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds) |
2021-06-23 22:01:46 +0200 | <dminuoso> | davean: Okay, so in hindsight, I was aware doJailbreak did exist. I did some research, it's possible you're perhaps thinking of a relatively recent idea to automatically jailbreak on hackage2nix, but from everything I gather not unconditionally, only if it leads to buildable plans. But it is indeed a very sorrow thing if nix breaks cabal bound induced boundaries. |
2021-06-23 22:02:13 +0200 | <davean> | Its not recent, this happened to me in 2016 |
2021-06-23 22:02:30 +0200 | <dminuoso> | Yeah, and I can already see how this on directory can cause really issues |
2021-06-23 22:02:39 +0200 | <dminuoso> | Even when its a transitive dependency |
2021-06-23 22:02:45 +0200 | <dminuoso> | This starts breaking other packages promises as well |
2021-06-23 22:02:49 +0200 | <davean> | Yep |
2021-06-23 22:02:55 +0200 | <davean> | It was a pretty deep big problem |
2021-06-23 22:03:03 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-23 22:03:14 +0200 | <davean> | and it was hard to debug because it wasn't on the package - they do it in like the base package stuff |
2021-06-23 22:03:24 +0200 | <davean> | so it was in code *refered* to, didn't show up in the nix derivation its self at all :/ |
2021-06-23 22:03:35 +0200 | <davean> | they broke it in the base infastructure |
2021-06-23 22:03:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-23 22:03:42 +0200 | <davean> | so you really had to dig in to find it |
2021-06-23 22:03:59 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 244 seconds) |
2021-06-23 22:04:24 +0200 | <dminuoso> | Judging from the sample I looked at, perhaps the deeper problem is the heavy reliance of "its only marked buildable if tests pass" |
2021-06-23 22:04:30 +0200 | <dminuoso> | Which I think is an expensive threshold |
2021-06-23 22:04:41 +0200 | <dminuoso> | Mostly, things should be buildable as its roughly aligned with stackage |
2021-06-23 22:05:02 +0200 | juhp | (~juhp@128.106.188.66) (Ping timeout: 250 seconds) |
2021-06-23 22:05:20 +0200 | <dminuoso> | If the reality is that a good portion of hackage has broken tests, then propagating lose dependencies is a super dangerous thing because they can affect unrelated libraries |
2021-06-23 22:05:26 +0200 | <maerwald> | Good reasons to avoid nix: bad ecosystem, low QA, too many chefs |
2021-06-23 22:05:36 +0200 | <davean> | well, the core of *this* particular problem is they never believed you'd need an upgrade of the GHC distributed packages |
2021-06-23 22:06:12 +0200 | <davean> | And they didn't want to consider multiple versions of those via if a nix derivation for them was used or GHC's derivation |
2021-06-23 22:06:39 +0200 | chaosite | (~chaosite@user/chaosite) |
2021-06-23 22:06:55 +0200 | juhp | (~juhp@128.106.188.66) |
2021-06-23 22:06:55 +0200 | <dminuoso> | Well, multiple concurrent haskellPackage versions is horrid UX in nix at the moment. |
2021-06-23 22:07:02 +0200 | <dminuoso> | Ideally I just want to callCabal2nix my package and be done with it |
2021-06-23 22:07:06 +0200 | <dminuoso> | This should improve things, not worsen then |
2021-06-23 22:07:20 +0200 | <dminuoso> | In light of all of this, I think I should really look into haskell.nix now |
2021-06-23 22:07:27 +0200 | <davean> | yah ... |
2021-06-23 22:08:14 +0200 | <maerwald> | haskell.nix shows that you need 10 nix engineers in a company to get anything done ;) |
2021-06-23 22:09:06 +0200 | <dminuoso> | I dont think its that extreme, but having followed quite a bit of rabbit holes recently I am convinced you do need 2 experts at least. |
2021-06-23 22:09:20 +0200 | <dminuoso> | Whether its worth it, you have to decidef |
2021-06-23 22:09:43 +0200 | <dminuoso> | We are going to use nix for configuring servers now, simply because the UX and advantages are simply uncontested |
2021-06-23 22:09:48 +0200 | <dminuoso> | But that's sort of orthogonal to the above problems |
2021-06-23 22:10:03 +0200 | <davean> | Yah, nix is a good idea, but there are deep problems. I don't think they're with nix specificly. |
2021-06-23 22:10:08 +0200 | <dminuoso> | Maybe, I might even think about switching back to cabal for haskell packages, and then patchelf'ing them into nix derivations |
2021-06-23 22:10:13 +0200 | <davean> | But the ecosystem built? |
2021-06-23 22:10:18 +0200 | <davean> | It uh, yah, has problems |
2021-06-23 22:10:21 +0200 | <maerwald> | Yeah, easy: no. The reason IOHK went down this rabbit hole is because daedalus is installed on the users machine via nix. IMO, that's crazy. |
2021-06-23 22:11:05 +0200 | <dminuoso> | davean: To be fair, every package distribution methods has its deep issues. I dont even want to start to discuss everything that's wrong with say rpm.. |
2021-06-23 22:11:18 +0200 | <davean> | Yah |
2021-06-23 22:11:36 +0200 | <maerwald> | That's not a fair comparison |
2021-06-23 22:11:48 +0200 | <maerwald> | It's not about the format or the PM |
2021-06-23 22:11:50 +0200 | shiraeeshi | (~shiraeesh@109.166.57.36) |
2021-06-23 22:12:01 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-23 22:12:06 +0200 | <maerwald> | It's about the core developers, policies, QA |
2021-06-23 22:12:10 +0200 | <dminuoso> | Sure |
2021-06-23 22:12:28 +0200 | <davean> | In this case its about the philosophy of the people who are using the tool, but there are edges on the tools too, and what people do is a consiquence of the tools ergonomics too |
2021-06-23 22:12:42 +0200 | <davean> | Its not safe to use an ecosystem you don't invest in |
2021-06-23 22:12:48 +0200 | <davean> | sadly |
2021-06-23 22:13:41 +0200 | <davean> | <InsertHFShillhere> |
2021-06-23 22:13:46 +0200 | <dminuoso> | Some interesting things I recently learned, is that apparently in the go-world its super common to depend on package directly via github *tags* |
2021-06-23 22:14:20 +0200 | <dminuoso> | When you start translating those go dependencies into nix using the common tools, that means over time your dependencies suddenly experience sha mismatches, because in the go community its normal to just move tags around too.. |
2021-06-23 22:14:50 +0200 | <dminuoso> | and apparently the same developers that came up with the go2nix (or whatevver they are called) didnt think it was a good idea to translate git refs into commit.. |
2021-06-23 22:14:51 +0200 | <maerwald> | don't remind me that I did Go professionally once... ugh |
2021-06-23 22:15:11 +0200 | pavonia | (~user@user/siracusa) |
2021-06-23 22:15:22 +0200 | <maerwald> | The only good thing about Go is that APIs are usually stable |
2021-06-23 22:15:35 +0200 | <dminuoso> | maerwald: Correct me if Im wrong, but this all appears to stem out of this "there should be minimal effort involved in writing software or making packages" |
2021-06-23 22:15:42 +0200 | <dminuoso> | for whatever good or bad this does |
2021-06-23 22:16:02 +0200 | <maerwald> | It's the lack of tooling that forces people to keep their API stable |
2021-06-23 22:16:04 +0200 | <dminuoso> | Is there some sort of hackage equivalent in go? |
2021-06-23 22:16:13 +0200 | <dminuoso> | or Cabal-the-spec? |
2021-06-23 22:16:38 +0200 | <maerwald> | you can import directly from github |
2021-06-23 22:17:02 +0200 | <maerwald> | They have some vendoring tools too |
2021-06-23 22:17:08 +0200 | <davean> | Look, we're lucky we have ok tools. They should get better - they're being made better. As a community we should value that and invest in them |
2021-06-23 22:17:09 +0200 | <maerwald> | they're broken as well |
2021-06-23 22:17:14 +0200 | <dminuoso> | So if github ever goes down or loses data because of stupid admins, then if your business relies on go suddenly breaks apart? |
2021-06-23 22:17:24 +0200 | <maerwald> | yes |
2021-06-23 22:17:25 +0200 | <davean> | just because people have a little pain with them doesn't mean they aren't good |
2021-06-23 22:17:34 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-06-23 22:17:36 +0200 | jneira_ | (~jneira_@131.red-79-155-1.dynamicip.rima-tde.net) (Ping timeout: 250 seconds) |
2021-06-23 22:17:39 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-06-23 22:17:51 +0200 | <dminuoso> | Oh haha, regarding github.. a really funny and sad story from a friend.. |
2021-06-23 22:18:08 +0200 | <dminuoso> | He tried to GPDR gitlab to inquire about all data they have on him. |
2021-06-23 22:18:13 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds) |
2021-06-23 22:18:26 +0200 | <maerwald> | Well, my opinion is that PVP and semver are the reasons for API anarchy |
2021-06-23 22:18:28 +0200 | <dminuoso> | In the jungle of Gitlab this request turned from "GPDR inquiry" to "GPDR delete" |
2021-06-23 22:18:45 +0200 | <dminuoso> | And his account and all projects, commits, messages... *everything* was irrecoverably deleted. |
2021-06-23 22:19:20 +0200 | <davean> | Holy, why? |
2021-06-23 22:19:29 +0200 | <dminuoso> | Ask gitlab |
2021-06-23 22:19:33 +0200 | <davean> | well, i backup stuff |
2021-06-23 22:19:41 +0200 | <maerwald> | They have incompetent admins |
2021-06-23 22:19:46 +0200 | <JSharp> | that's painful. :/ |
2021-06-23 22:19:47 +0200 | <maerwald> | Not the first incident |
2021-06-23 22:20:36 +0200 | <dolio> | Because that's the easiest way to comply? |
2021-06-23 22:20:51 +0200 | <dminuoso> | "we dont have anything on you" |
2021-06-23 22:21:04 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 250 seconds) |
2021-06-23 22:22:41 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-23 22:24:29 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-06-23 22:24:53 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-06-23 22:25:04 +0200 | DNH | (~DNH@8.43.122.6) |
2021-06-23 22:25:50 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Client Quit) |
2021-06-23 22:25:57 +0200 | <dminuoso> | maerwald: At any rate, its a bad sad that go is in that state. Overall go seems like a cute language for making minimal tools. This discussion immediately reminded me of https://gnu.support/gnu-emacs/What-is-wrong-with-MELPA-on-Microsoft-Github.html |
2021-06-23 22:26:17 +0200 | <dminuoso> | All of this fully applies to the go-ecosystem as well, it seems. |
2021-06-23 22:26:30 +0200 | <dolio> | Also javascript, probably. |
2021-06-23 22:26:40 +0200 | <maerwald> | Go is good for microservices, nothing more |
2021-06-23 22:27:15 +0200 | <dminuoso> | Ive seen a bunch of CLI tools written in go as well, it seems fairly suitable for such tasks too |
2021-06-23 22:27:37 +0200 | <dminuoso> | Most recent thing is `morph`, which is how we're going to deploy nixos machines with. :) |
2021-06-23 22:27:47 +0200 | <maerwald> | python is better at cli tools imo |
2021-06-23 22:28:40 +0200 | <dminuoso> | perhaps yeah, guess it depends what you have in your toolkit |
2021-06-23 22:28:52 +0200 | <dminuoso> | I dont have any python or go experience, so my cli tools are written in Haskell |
2021-06-23 22:29:21 +0200 | <dminuoso> | But with Haskell some common tasks do require 5 lines of code, that should really just take 1. |
2021-06-23 22:30:31 +0200 | <maerwald> | I'm not a huge fan of optparse-applicative. Too many details to deal wits |
2021-06-23 22:30:42 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-06-23 22:30:42 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-06-23 22:30:51 +0200 | allbery_b | geekosaur |
2021-06-23 22:31:01 +0200 | <maerwald> | With TH you could build something better, but then you need TH... ugh |
2021-06-23 22:31:09 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-06-23 22:31:15 +0200 | <davean> | maerwald: I've wanted improvements also. In some ways I want MORE complications tohugh. |
2021-06-23 22:31:45 +0200 | <maerwald> | I'm a fan of https://click.palletsprojects.com/en/8.0.x/ |
2021-06-23 22:32:08 +0200 | <davean> | maerwald: thats so limited though, isn'tit? |
2021-06-23 22:32:28 +0200 | jneira_ | (~jneira_@131.red-79-155-1.dynamicip.rima-tde.net) |
2021-06-23 22:32:30 +0200 | <maerwald> | You can escape easily and do more complex things |
2021-06-23 22:33:09 +0200 | <dminuoso> | maerwald: optparse-applicative is really odd. it's very a great powertool, but for minimal cli tool it's easily overkill. :( |
2021-06-23 22:33:23 +0200 | <dminuoso> | Wouldnt want to give it up regardless |
2021-06-23 22:33:33 +0200 | <maerwald> | My optparse code atm is 500 LOC or so |
2021-06-23 22:33:38 +0200 | <davean> | I think part of optparse's problem is it tries to look too friendly while being powerful and falls short of both |
2021-06-23 22:33:51 +0200 | <dminuoso> | maerwald: btw, for minimal code, one could also consider optparse-generic |
2021-06-23 22:34:16 +0200 | <dminuoso> | I did take some initial looks, it could be a suitable replacement for "I want to carve out a 0 effort cli tool" |
2021-06-23 22:34:47 +0200 | <dminuoso> | It's easily composable with optparse-applicative, so you can break out and write manual parsers at any point |
2021-06-23 22:35:29 +0200 | shapr | (~user@2601:7c0:8180:89d0:ed87:906a:cd61:bb34) |
2021-06-23 22:36:31 +0200 | <davean> | maerwald: does https://click.palletsprojects.com/en/8.0.x/ support implementing something like "find"? |
2021-06-23 22:37:21 +0200 | <maerwald> | Not sure, been a while since I used python (or rather coconut) |
2021-06-23 22:37:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-06-23 22:38:16 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e846:fcb5:a54b:afb8) (Remote host closed the connection) |
2021-06-23 22:40:10 +0200 | <davean> | maerwald: I don't see how it could be - but I only skimmed |
2021-06-23 22:40:32 +0200 | <davean> | It doesn't look like a comparable tool - but thats good, its not possible to do both things at once |
2021-06-23 22:42:03 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 22:43:10 +0200 | Deide | (~Deide@user/deide) (Read error: Connection reset by peer) |
2021-06-23 22:43:28 +0200 | Deide | (~Deide@wire.desu.ga) |
2021-06-23 22:43:28 +0200 | Deide | (~Deide@wire.desu.ga) (Changing host) |
2021-06-23 22:43:28 +0200 | Deide | (~Deide@user/deide) |
2021-06-23 22:44:24 +0200 | <maerwald> | I remember there are escape hatches though |
2021-06-23 22:44:25 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-23 22:44:28 +0200 | chomwitt | (~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 250 seconds) |
2021-06-23 22:45:11 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 22:45:18 +0200 | <davean> | maerwald: I'd be interested in how their approach could have a capible escape hatch |
2021-06-23 22:45:24 +0200 | <davean> | they're using decorators and such |
2021-06-23 22:45:32 +0200 | derelict | (~derelict@user/derelict) |
2021-06-23 22:45:37 +0200 | derelict | (~derelict@user/derelict) (Client Quit) |
2021-06-23 22:45:38 +0200 | dunkeln_ | (~dunkeln@188.71.193.140) |
2021-06-23 22:45:43 +0200 | <davean> | I'd think any escape hatch would have to be entirely different and break what they're doing |
2021-06-23 22:45:54 +0200 | <davean> | So I guess i'll look at it ore |
2021-06-23 22:46:15 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-23 22:46:47 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 22:48:22 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-23 22:49:00 +0200 | remexre | (~nathan@user/remexre) (Quit: WeeChat 3.0.1) |
2021-06-23 22:49:01 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
2021-06-23 22:49:03 +0200 | <dminuoso> | davean: which part of `find` are you looking for exactly? |
2021-06-23 22:49:18 +0200 | <davean> | dminuoso: How it handles arguments |
2021-06-23 22:49:19 +0200 | <davean> | its a style |
2021-06-23 22:49:37 +0200 | <davean> | Its just a good example of actually parsing vs. the simpler base-posix style |
2021-06-23 22:49:41 +0200 | <dminuoso> | Mmm, what style is that? |
2021-06-23 22:49:52 +0200 | <davean> | have you not used find? |
2021-06-23 22:50:05 +0200 | <davean> | Its order dependent, and meaning changes based on the prefix |
2021-06-23 22:50:18 +0200 | <davean> | you can read the man page |
2021-06-23 22:50:28 +0200 | <dminuoso> | find is one of those tools I very poorly use Im afraid |
2021-06-23 22:50:35 +0200 | <davean> | its entirely context sensitive |
2021-06-23 22:51:25 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 246 seconds) |
2021-06-23 22:51:45 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-06-23 22:51:59 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-06-23 22:52:46 +0200 | AWizzArd | (~code@user/awizzard) |
2021-06-23 22:53:31 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-06-23 22:54:05 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-23 22:58:29 +0200 | <maerwald> | Wouldn't that need optparse-monad? |
2021-06-23 22:58:29 +0200 | remexre | (~nathan@user/remexre) |
2021-06-23 22:59:00 +0200 | <dminuoso> | optparse-selective would suffice |
2021-06-23 22:59:16 +0200 | <davean> | maerwald: depends - is the applicative on an infinite tree? ;) |
2021-06-23 22:59:43 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.) |
2021-06-23 22:59:56 +0200 | <maerwald> | I'm a fan of selective. ..would like to see more applications |
2021-06-23 22:59:59 +0200 | <dminuoso> | I did try looking into pulling out an optparse-selective, and then I stared at the implementation of optparse-applicative and said no, Im not getting paid for this. |
2021-06-23 23:00:18 +0200 | <dminuoso> | It's doable, but you need rewrite a lot of optparse for it :( |
2021-06-23 23:01:46 +0200 | deshalb | (~deshalb@user/deshalb) (Quit: leaving) |
2021-06-23 23:01:58 +0200 | <davean> | dminuoso: How not interested in that are you? |
2021-06-23 23:02:14 +0200 | <maerwald> | While at it, fix bytestring input |
2021-06-23 23:02:21 +0200 | <davean> | maerwald: optparse-applicative has a bit more than applicative |
2021-06-23 23:02:28 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 23:02:46 +0200 | safinaskar | (~safinaska@109.252.90.89) |
2021-06-23 23:03:52 +0200 | <safinaskar> | look here: https://paste.debian.net/1202170/ . i was able to pass runtime values as arguments to types! |
2021-06-23 23:04:14 +0200 | <safinaskar> | i. e. i can essentially use full power of dependent haskell now. and prove things! |
2021-06-23 23:04:33 +0200 | hammock | (~Hammock@2600:1700:19a1:3330::625) (Ping timeout: 268 seconds) |
2021-06-23 23:04:35 +0200 | <safinaskar> | i was able to pattern match on Foo value and then (if it greater than zero) pass it as second argument to division |
2021-06-23 23:04:47 +0200 | <safinaskar> | thus, compiler proved that at calling point of "divide" its second argument is not zero |
2021-06-23 23:04:52 +0200 | <safinaskar> | this way we can finally remove partial functions, such as division, "head", etc |
2021-06-23 23:06:11 +0200 | <dminuoso> | davean: Not much. Im looking into fixing a bunch of cabal stuff first since these actually annoy me. :-) |
2021-06-23 23:06:27 +0200 | <dminuoso> | optparse-selective is just wishful thinking, Im lacking a genuine use for it |
2021-06-23 23:06:58 +0200 | gzj | (~GZJ0X@96.45.188.88.16clouds.com) (Remote host closed the connection) |
2021-06-23 23:09:44 +0200 | <maerwald> | I've been thinking about forking cabal and create a more radical unix style interface with several tools, more low level than current cabal-install |
2021-06-23 23:10:01 +0200 | <maerwald> | But no capacity and no demand |
2021-06-23 23:11:28 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 23:14:01 +0200 | <maerwald> | I think stack and cabal are converging to the point that the choice will become irrelevant even for power users at some point |
2021-06-23 23:14:23 +0200 | vicentius | (~vicentius@user/vicentius) |
2021-06-23 23:18:00 +0200 | warnz | (~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb) (Remote host closed the connection) |
2021-06-23 23:18:02 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds) |
2021-06-23 23:18:12 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:19:53 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds) |
2021-06-23 23:21:19 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-06-23 23:21:27 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-06-23 23:24:29 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-23 23:25:10 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 23:26:13 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-23 23:26:42 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:28:37 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-23 23:29:07 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-06-23 23:29:26 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 23:29:51 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-23 23:30:22 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-06-23 23:30:41 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-23 23:30:58 +0200 | safinaskar | (~safinaska@109.252.90.89) () |
2021-06-23 23:30:59 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:31:31 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-23 23:32:23 +0200 | derelict | (~derelict@user/derelict) |
2021-06-23 23:33:05 +0200 | trcc_ | (~trcc@eduroam09.au.dk) |
2021-06-23 23:33:48 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 23:35:22 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:36:02 +0200 | trcc | (~trcc@users-1190.st.net.au.dk) (Ping timeout: 250 seconds) |
2021-06-23 23:37:20 +0200 | trcc_ | (~trcc@eduroam09.au.dk) (Ping timeout: 250 seconds) |
2021-06-23 23:38:29 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 23:38:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a50f:dc97:cbbc:9783) |
2021-06-23 23:39:21 +0200 | hammock | (~Hammock@2600:1700:19a1:3330::625) |
2021-06-23 23:40:02 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:40:12 +0200 | chisui | (~chisui@200116b866efc300e1478aa720ae1876.dip.versatel-1u1.de) (Quit: Client closed) |
2021-06-23 23:40:19 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
2021-06-23 23:42:12 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-06-23 23:42:32 +0200 | dunkeln_ | (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds) |
2021-06-23 23:42:57 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 23:42:58 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a50f:dc97:cbbc:9783) (Ping timeout: 250 seconds) |
2021-06-23 23:44:30 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:44:54 +0200 | michalz | (~michalz@185.246.204.114) (Remote host closed the connection) |
2021-06-23 23:47:17 +0200 | <pavonia> | I'm trying to map a replacement function over a list that replaces elements from a list with corresponding elements from another list, e.g. map (replace [1,3] [10,30]) [1,2,3,4] => [10,2,30,4]. Is there a way to make the lookup for each element take constant time? Both Map and HashMap seem to have logarithmic lookup time |
2021-06-23 23:47:18 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
2021-06-23 23:47:20 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-06-23 23:48:45 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-23 23:48:52 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-06-23 23:49:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-23 23:50:24 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) (Ping timeout: 265 seconds) |
2021-06-23 23:51:52 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-23 23:52:06 +0200 | <dminuoso> | pavonia: how would that work, exactly? |
2021-06-23 23:52:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:a50f:dc97:cbbc:9783) |
2021-06-23 23:53:32 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
2021-06-23 23:54:20 +0200 | <pavonia> | I was thinking about a "real" hash map. Is the no Haskell implementation? |
2021-06-23 23:54:43 +0200 | <dminuoso> | a "real" hash map? constant time lookup? :-) |
2021-06-23 23:55:28 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 246 seconds) |
2021-06-23 23:55:33 +0200 | <dminuoso> | That would requie perfect hashing |
2021-06-23 23:55:49 +0200 | <pavonia> | When you have a large case expression, what is the lookup time for this structure internally? |
2021-06-23 23:56:17 +0200 | <dminuoso> | Im not sure if GHC can translate this into a jump table |
2021-06-23 23:57:23 +0200 | <dminuoso> | It seems so |
2021-06-23 23:58:06 +0200 | <pavonia> | So which concrete data type would you suggest for fastest lookup? |
2021-06-23 23:58:29 +0200 | <dminuoso> | Id start by profiling and ensuring this is even worth the trouble.. |
2021-06-23 23:58:46 +0200 | <dminuoso> | Do you have actual prof data? Or is this just a case of premature optimization |
2021-06-23 23:59:22 +0200 | <pavonia> | It's more a theoretical question |
2021-06-23 23:59:59 +0200 | ec | (~ec@gateway/tor-sasl/ec) |