Logs: liberachat/#haskell
| 2021-08-09 07:11:26 | <tomsmeding> | The environment is an HList then |
| 2021-08-09 07:11:58 | <Cajun> | that sounds like a rabbit hole to go down |
| 2021-08-09 07:12:24 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
| 2021-08-09 07:14:34 | × | sander quits (~sander@user/sander) (Ping timeout: 268 seconds) |
| 2021-08-09 07:15:19 | → | sander joins (~sander@user/sander) |
| 2021-08-09 07:15:20 | → | anandprabhu joins (~anandprab@94.202.243.198) |
| 2021-08-09 07:16:18 | × | glguy quits (x@libera/staff/glguy) (Ping timeout: 612 seconds) |
| 2021-08-09 07:16:34 | → | kuribas joins (~user@ptr-25vy0i7woj1hwcs7nsl.18120a2.ip6.access.telenet.be) |
| 2021-08-09 07:17:43 | → | talismanick joins (~user@2601:644:8502:d700::8fb8) |
| 2021-08-09 07:18:30 | → | yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se) |
| 2021-08-09 07:19:57 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 2021-08-09 07:20:43 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 2021-08-09 07:20:46 | <tomsmeding> | Cajun: https://paste.tomsmeding.com/gYPEH9iY |
| 2021-08-09 07:21:05 | <tomsmeding> | note that this is _the_ tired overused example of GADTs |
| 2021-08-09 07:21:41 | <tomsmeding> | and you can make the language much more complex thant STLC if you want :) |
| 2021-08-09 07:21:56 | <tomsmeding> | https://github.com/AccelerateHS/accelerate/blob/master/src/Data/Array/Accelerate/AST.hs#L230 |
| 2021-08-09 07:25:10 | <Cajun> | thats awesome |
| 2021-08-09 07:26:04 | → | zyklotomic joins (~ethan@2604:a880:800:10::79f:8001) |
| 2021-08-09 07:26:10 | → | mastarija joins (~mastarija@78-3-210-70.adsl.net.t-com.hr) |
| 2021-08-09 07:26:40 | <Axman6> | Once day, I'm going to make a library which combines Accelerate and Grenade and call it RPG, but I would have to understand both libraries much better than I currently do first XD |
| 2021-08-09 07:26:40 | × | bairyn quits (~bairyn@mail.digitalkingdom.org) (Ping timeout: 258 seconds) |
| 2021-08-09 07:26:44 | <Axman6> | One* |
| 2021-08-09 07:27:05 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 2021-08-09 07:27:09 | <zyklotomic> | is there a way to add newtypes support to an IntMap? |
| 2021-08-09 07:27:35 | → | cfricke joins (~cfricke@user/cfricke) |
| 2021-08-09 07:27:39 | <zyklotomic> | i am not sure whato call this, but say newtype Vertex = Vertex Int |
| 2021-08-09 07:27:40 | <tomsmeding> | Axman6: I'm working on automatic differentiation for accelerate, so in the future that part might also be there :p |
| 2021-08-09 07:27:53 | <Axman6> | tomsmeding: <3 :O |
| 2021-08-09 07:28:00 | <Axman6> | please take my idea and run with it |
| 2021-08-09 07:28:06 | <tomsmeding> | lol |
| 2021-08-09 07:28:11 | tomsmeding | knows very little about DL |
| 2021-08-09 07:28:42 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 2021-08-09 07:28:45 | <tomsmeding> | zyklotomic: you can make a custom wrapper for an IntMap that can work with any type k such that 'Coerce k Int' |
| 2021-08-09 07:28:48 | <mastarija> | How is Haskell IDE (or now language server) these days? Does it still require me to compile a version for each version of GHC I use? |
| 2021-08-09 07:29:09 | <Axman6> | mastarija: no, you just ghcup to install it |
| 2021-08-09 07:29:12 | <tomsmeding> | mastarija: yes, but ghcup does that for you |
| 2021-08-09 07:29:23 | <tomsmeding> | or, well, ghcup has precompiled versions that you just download :p |
| 2021-08-09 07:29:27 | <mastarija> | what about windows :D |
| 2021-08-09 07:29:35 | <tomsmeding> | but a separate executable for each ghc version |
| 2021-08-09 07:29:37 | <Axman6> | Just don't :P |
| 2021-08-09 07:29:40 | <mastarija> | I've seen there's ghcup for it now |
| 2021-08-09 07:29:44 | <tomsmeding> | doesn't ghcup run on windows? |
| 2021-08-09 07:29:50 | <Cajun> | tomsmeding: what is automatic differentiation? that sounds really cool yet really complex lol |
| 2021-08-09 07:29:51 | <mastarija> | Don't know |
| 2021-08-09 07:30:16 | <mastarija> | I manually manage my GHCs, and I've been using ghcid and repl for my development so far |
| 2021-08-09 07:30:20 | <tomsmeding> | Cajun: given a program that implements a function Double -> Double, produce a program that implements the numerical derivative of that function |
| 2021-08-09 07:30:32 | <tomsmeding> | and then generalised to arrays/tuples of doubles on both sides |
| 2021-08-09 07:30:46 | <zyklotomic> | tomsmeding: wait, what i think iwant, is to restrict the intmap to a specific newtype |
| 2021-08-09 07:31:17 | <zyklotomic> | i think that is slightly different |
| 2021-08-09 07:31:19 | <tomsmeding> | Cajun: the backpropagation algorithm for neural networks is a special case of applying AD on the forward computation function for the network |
| 2021-08-09 07:31:34 | <Cajun> | mastarija: why not use WSL for haskell/programming? |
| 2021-08-09 07:31:45 | <Cajun> | its pretty painless aside from the initial setup |
| 2021-08-09 07:31:53 | <Axman6> | zyklotomic: newtype MyIntMap a = MyIntMap (IntMap a), and then things like insert become insert = coerce (IntMap.insert) |
| 2021-08-09 07:32:25 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2021-08-09 07:32:41 | <mastarija> | Cajun: I use it for certain things, but It's annoying to live within the subsystem and its file system |
| 2021-08-09 07:32:49 | <tomsmeding> | where you can e.g. choose insert :: Vertex -> a -> MyIntMap a -> MyIntMap a |
| 2021-08-09 07:32:58 | <mastarija> | If I use an OS I prefer to do stuff in it, not some VM |
| 2021-08-09 07:32:59 | <Cajun> | tomsmeding: that doesnt sound easy :p , so its basically like getting `Num a -> a -> a` out of `Double -> Double` along with other derivations if im understanding you correctly? |
| 2021-08-09 07:33:02 | × | leah2 quits (~leah@vuxu.org) (Quit: trotz alledem!) |
| 2021-08-09 07:33:06 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 2021-08-09 07:33:14 | → | leah2 joins (~leah@vuxu.org) |
| 2021-08-09 07:34:09 | <tomsmeding> | Cajun: you can implement AD as a source-code transformation (e.g. what Tensorflow XLA does), or as a more runtime-oriented thing based on program instrumentation (e.g. what Tensorflow Eager and PyTorch do iirc) |
| 2021-08-09 07:34:24 | <tomsmeding> | I can explain more if you wish, but perhaps move to #haskell-offtopic then :p |
| 2021-08-09 07:34:24 | <Cajun> | mastarija: thats fair, the hassle is real when moving files from windows to WSL |
| 2021-08-09 07:34:48 | <mastarija> | Cajun: + haskell works very well on windows, I have no complaints. Main reason I don't use language server is because it is tied to a specific GHC version |
| 2021-08-09 07:35:01 | <zyklotomic> | Axman6, tomsmeding: thanks, i get it now, and that seems to be the EnumMap package |
| 2021-08-09 07:35:01 | <mastarija> | ghcid doesn't really mind |
| 2021-08-09 07:35:27 | <tomsmeding> | Axman6: ah Grenade seems to already implement AD |
| 2021-08-09 07:35:36 | <Cajun> | tomsmeding: thats going way above my understanding of CS/DL so it would probably be like talking to a brick wall lol |
| 2021-08-09 07:35:51 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 2021-08-09 07:36:00 | <tomsmeding> | I have a nice simple example for it :) |
| 2021-08-09 07:36:06 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 2021-08-09 07:36:07 | <tomsmeding> | also it's not DL at all |
| 2021-08-09 07:36:23 | <tomsmeding> | like, I previously said that I know almost nothing about DL, and yet I'm doing a PhD that relates to AD |
| 2021-08-09 07:36:35 | <Cajun> | oh nice, then go ahead and send it in #haskell-offtopic :) |
| 2021-08-09 07:40:21 | → | oxide joins (~lambda@user/oxide) |
| 2021-08-09 07:43:21 | → | ByronJohnson joins (~bairyn@mail.digitalkingdom.org) |
| 2021-08-09 07:48:18 | × | yoctocell quits (~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 272 seconds) |
| 2021-08-09 07:54:07 | → | timCF joins (~timCF@200-149-20-81.sta.estpak.ee) |
| 2021-08-09 07:55:02 | → | curiousgay joins (~curiousga@77-120-186-48.kha.volia.net) |
| 2021-08-09 07:55:13 | <timCF> | Hello! Is there any "standard" type in Haskell similar to `Either a b` but which represents 3 options, not just 2? |
| 2021-08-09 07:56:04 | <tomsmeding> | Axman6: grenade looks pretty cool; from my brief look, I think writing an accelerate backend for that would involve extending the Layer class to have run functions that live within the Accelerate EDSL |
| 2021-08-09 07:56:44 | <Taneb> | timCF: there's nothing like that in base and I don't think there's a commonly accepted alternative |
| 2021-08-09 07:56:57 | <timCF> | Taneb: thanks! |
| 2021-08-09 07:57:09 | <Taneb> | You could do Either (Either a b) c |
| 2021-08-09 07:59:03 | → | Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 2021-08-09 07:59:18 | SquidDev0 | is now known as SquidDev |
| 2021-08-09 08:01:22 | → | Shires joins (~Shires@user/shires) |
| 2021-08-09 08:04:07 | × | mastarija quits (~mastarija@78-3-210-70.adsl.net.t-com.hr) (Quit: Leaving) |
| 2021-08-09 08:06:02 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 2021-08-09 08:07:41 | <Akronymus> | I personally would make a new type named something like OneOfThree which has 3 possible values. |
| 2021-08-09 08:08:00 | <Akronymus> | Altough, I don't really know much if anything. |
| 2021-08-09 08:08:36 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
| 2021-08-09 08:09:37 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 248 seconds) |
| 2021-08-09 08:09:43 | <tomsmeding> | data France a b c = Blue a | White b | Red c |
| 2021-08-09 08:15:05 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 2021-08-09 08:17:37 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 2021-08-09 08:17:39 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 2021-08-09 08:17:42 | allbery_b | is now known as geekosaur |
| 2021-08-09 08:18:02 | → | hegstal joins (~hegstal@2a02:c7f:7604:8a00:54d9:a686:a64c:8cd9) |
All times are in UTC.