Logs: liberachat/#haskell
| 2021-05-26 00:06:10 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 264 seconds) |
| 2021-05-26 00:06:40 | <boxscape> | geekosaur I guess the mtl classes have their newtypes as last parameter of the class |
| 2021-05-26 00:07:41 | → | favonia joins (~favonia@user/favonia) |
| 2021-05-26 00:08:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-05-26 00:09:39 | <boxscape> | hmmm it seems like this should be a relatively straightforward extension of DerivingVia |
| 2021-05-26 00:09:45 | <boxscape> | at least for standalone deriving clauses |
| 2021-05-26 00:10:10 | × | Bartosz quits (~textual@50.35.220.89) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-05-26 00:10:18 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 2021-05-26 00:10:44 | auri_ | is now known as auri |
| 2021-05-26 00:11:58 | → | Bartosz joins (~textual@50.35.220.89) |
| 2021-05-26 00:12:47 | × | Deide1 quits (~Deide@wire.desu.ga) (Quit: Seeee yaaaa) |
| 2021-05-26 00:18:13 | → | mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
| 2021-05-26 00:22:59 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 2021-05-26 00:24:26 | × | horex539 quits (~horex539@2a02:a03f:6aa5:a00:445e:c460:a1c:1c80) (Remote host closed the connection) |
| 2021-05-26 00:24:35 | × | agumonkey quits (~user@88.160.31.174) (Ping timeout: 252 seconds) |
| 2021-05-26 00:25:01 | → | horex539 joins (~horex539@2a02:a03f:6aa5:a00:445e:c460:a1c:1c80) |
| 2021-05-26 00:26:00 | × | Bartosz quits (~textual@50.35.220.89) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-05-26 00:28:39 | × | mnrmnaugh quits (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Quit: Leaving) |
| 2021-05-26 00:29:09 | → | mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
| 2021-05-26 00:29:21 | × | mnrmnaugh quits (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 2021-05-26 00:30:17 | × | horex539 quits (~horex539@2a02:a03f:6aa5:a00:445e:c460:a1c:1c80) (Ping timeout: 244 seconds) |
| 2021-05-26 00:34:58 | → | Bartosz joins (~textual@50.35.220.89) |
| 2021-05-26 00:36:46 | × | Robin_Jadoul quits (~Robin_Jad@152.67.64.160) (Ping timeout: 264 seconds) |
| 2021-05-26 00:38:29 | → | mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
| 2021-05-26 00:40:58 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 264 seconds) |
| 2021-05-26 00:41:43 | → | dragestil joins (~quassel@user/dragestil) |
| 2021-05-26 00:41:45 | × | mnrmnaugh quits (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Client Quit) |
| 2021-05-26 00:42:22 | → | mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
| 2021-05-26 00:42:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 2021-05-26 00:42:48 | <boxscape> | re: multiple parameters for deriving via https://www.reddit.com/r/haskell/comments/8aa81q/deriving_via_or_how_to_turn_handwritten_instances/dwyvgru/ |
| 2021-05-26 00:43:43 | × | kewa quits (~kewa@5.138.211.57) (Ping timeout: 244 seconds) |
| 2021-05-26 00:45:46 | × | learner-monad quits (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Quit: WeeChat 3.1) |
| 2021-05-26 00:47:03 | → | favonia joins (~favonia@user/favonia) |
| 2021-05-26 00:49:12 | → | tA joins (~thorn@121.220.36.168) |
| 2021-05-26 00:49:24 | × | atwm quits (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 244 seconds) |
| 2021-05-26 00:49:28 | → | learner-monad joins (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) |
| 2021-05-26 00:54:54 | × | learner-monad quits (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Quit: Textual IRC Client: www.textualapp.com) |
| 2021-05-26 00:55:06 | → | Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
| 2021-05-26 00:59:09 | → | learner-monad joins (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) |
| 2021-05-26 01:01:22 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 264 seconds) |
| 2021-05-26 01:01:29 | × | learner-monad quits (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Client Quit) |
| 2021-05-26 01:02:16 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 2021-05-26 01:02:22 | → | learner-monad joins (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) |
| 2021-05-26 01:02:47 | → | hmmmas joins (~chenqisu1@183.217.200.8) |
| 2021-05-26 01:05:42 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 2021-05-26 01:07:37 | × | xff0x_ quits (~xff0x@2001:1a81:531f:9800:4a5f:2bda:8693:c79e) (Ping timeout: 265 seconds) |
| 2021-05-26 01:07:57 | × | siraben quits (~user@user/siraben) (Quit: ERC (IRC client for Emacs 28.0.50)) |
| 2021-05-26 01:09:16 | → | sirodoht joins (uid499766@id-499766.brockwell.irccloud.com) |
| 2021-05-26 01:09:22 | → | xff0x_ joins (~xff0x@2001:1a81:5359:7600:b228:4a6c:72ab:2551) |
| 2021-05-26 01:11:30 | × | learner-monad quits (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Quit: Textual IRC Client: www.textualapp.com) |
| 2021-05-26 01:12:36 | → | hughjfchen joins (~hughjfche@2409:8954:32d4:6358:1194:1ae8:3b3e:7012) |
| 2021-05-26 01:13:01 | × | Bartosz quits (~textual@50.35.220.89) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-05-26 01:13:15 | <hololeap> | boxscape, thanks I'll check it out! |
| 2021-05-26 01:13:24 | × | johnw quits (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Quit: ZNC - http://znc.in) |
| 2021-05-26 01:13:33 | <boxscape> | hololeap to be clear that doesn't provide a solution, just ideas for how it could be implemented in ghc |
| 2021-05-26 01:15:33 | <hololeap> | ok |
| 2021-05-26 01:15:54 | <hololeap> | is there a way to set a default instance for an associated type family (associated with a typeclass)? |
| 2021-05-26 01:16:12 | → | Bartosz joins (~textual@50.35.220.89) |
| 2021-05-26 01:16:37 | <hololeap> | like, if `type instance Blah Foo = Bar` isn't there it will default to `type instance Blah Foo = MyDefault` ? |
| 2021-05-26 01:16:39 | <dmwit> | I don't think so, but you can do the usual thing from the value level where you have a second family and folks can write `type Foo a b c = DefaultFoo a b c` or whatever. |
| 2021-05-26 01:18:18 | <hololeap> | I'm not sure I understand the difference |
| 2021-05-26 01:18:49 | × | afnan quits (~textual@104.153.228.129) (Quit: Textual IRC Client: www.textualapp.com) |
| 2021-05-26 01:18:52 | <boxscape> | hololeap I think you can provide a default definition: |
| 2021-05-26 01:19:09 | <boxscape> | % class Foo where type Test; type Test = Int |
| 2021-05-26 01:19:09 | <yahb> | boxscape: |
| 2021-05-26 01:19:18 | <boxscape> | % :set -Wall |
| 2021-05-26 01:19:18 | <yahb> | boxscape: |
| 2021-05-26 01:19:26 | <boxscape> | (to warn if not everything is implemented) |
| 2021-05-26 01:19:29 | <boxscape> | % instance Foo |
| 2021-05-26 01:19:30 | <yahb> | boxscape: |
| 2021-05-26 01:21:20 | <dmwit> | hololeap: Compare: `class Functor f => FancyFunctor f where fancyfmap :: (a -> b) -> (f a -> f b); fancyfmap = fmap` vs. `fancyfmapDefault :: Functor f => (a -> b) -> (f a -> f b); fancyfmapDefault = fmap; class Functor f => FancyFunctor f where fancyfmap :: (a -> b) -> (f a -> f b)` |
| 2021-05-26 01:21:55 | <dmwit> | hololeap: The former has a default that the compiler understands -- i.e. will fill in for you if you don't put override it manually. The second has a default that you can opt into, but you get a warning if you forget to define the method. |
| 2021-05-26 01:22:10 | <dmwit> | hololeap: For type families, the former is not available, but the latter still is. |
| 2021-05-26 01:22:18 | <boxscape> | dmwit it is available, see above |
| 2021-05-26 01:22:31 | <dmwit> | boxscape: ...I'm not sure that does what you think it does. |
| 2021-05-26 01:22:35 | <boxscape> | hmmm |
| 2021-05-26 01:22:48 | <dmwit> | % class Foo' a where type Test' a; type Test' a = Int |
| 2021-05-26 01:22:48 | <yahb> | dmwit: |
| 2021-05-26 01:22:58 | <dmwit> | % instance Foo' Char where type Test' Char = Bool |
| 2021-05-26 01:22:59 | <yahb> | dmwit: |
| 2021-05-26 01:23:01 | <dmwit> | huh! |
| 2021-05-26 01:23:04 | <dmwit> | Maybe it does. ^_^ |
| 2021-05-26 01:23:10 | <dmwit> | % :k! Test' Char |
| 2021-05-26 01:23:10 | <yahb> | dmwit: *; = Bool |
| 2021-05-26 01:23:13 | <dmwit> | fancy |
| 2021-05-26 01:23:36 | <boxscape> | yeah |
| 2021-05-26 01:23:48 | <dmwit> | Is that a new output format, or is yahb doing something clever to ghci's actual (verbose) response? |
| 2021-05-26 01:24:06 | <dmwit> | (I would have expected something like `Test' Char :: *; Test' Char = Bool` or whatever. |
| 2021-05-26 01:24:39 | <dmwit> | ) |
| 2021-05-26 01:24:45 | <boxscape> | in HEAD ghci I get |
| 2021-05-26 01:24:46 | <boxscape> | ghci> :k! Testing String |
| 2021-05-26 01:24:46 | <boxscape> | Testing String :: * |
| 2021-05-26 01:24:47 | <boxscape> | = Bool |
| 2021-05-26 01:25:15 | <dmwit> | So yahb is doing something fancy. ok |
| 2021-05-26 01:25:22 | <boxscape> | yeah |
| 2021-05-26 01:25:55 | <hololeap> | here's what I'm working on: http://sprunge.us/6WAP0F |
| 2021-05-26 01:26:06 | <Axman6> | oh we have yahb and lambdabot, hooray! |
| 2021-05-26 01:26:31 | <boxscape> | the whole family |
| 2021-05-26 01:26:54 | <hololeap> | I'd like to default to `type instance ValidityWrapper a = NoWrapper` |
| 2021-05-26 01:27:38 | <boxscape> | try putting the line `type ValidityWrapper a = NoWrapper` below the line `type ValidityWrapper a :: Type -> Type` |
All times are in UTC.