Logs: liberachat/#haskell
| 2021-05-28 20:13:35 | <boxscape> | same here tbh |
| 2021-05-28 20:13:38 | <maerwald> | % :!ghc --help |
| 2021-05-28 20:13:39 | <yahb> | maerwald: Usage:; ghc [command-line-options-and-input-files]; To compile and link a complete Haskell program, run the compiler like; so:; ghc Main; where the module Main is in a file named Main.hs (or Main.lhs) in the; current directory. The other modules in the program will be located; and compiled automatically, and the linked program will be placed in; the file `Main' (or `Main.exe' on Windows).; Al |
| 2021-05-28 20:14:10 | → | Heffalump joins (~ganesh@urchin.earth.li) |
| 2021-05-28 20:14:14 | ← | Heffalump parts (~ganesh@urchin.earth.li) () |
| 2021-05-28 20:14:33 | → | Urchin[emacs] joins (~user@user/urchin) |
| 2021-05-28 20:16:11 | × | marinelli quits (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2021-05-28 20:16:31 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 2021-05-28 20:17:04 | × | brian_da_mage quits (~Neuromanc@user/briandamag) (Ping timeout: 264 seconds) |
| 2021-05-28 20:17:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 2021-05-28 20:18:49 | ← | Urchin[emacs] parts (~user@user/urchin) (ERC (IRC client for Emacs 26.1)) |
| 2021-05-28 20:18:53 | → | zebrag joins (~chris@aaubervilliers-654-1-3-253.w83-200.abo.wanadoo.fr) |
| 2021-05-28 20:18:53 | → | brian_da_mage joins (~Neuromanc@37.6.199.86) |
| 2021-05-28 20:18:55 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 2021-05-28 20:20:33 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 2021-05-28 20:21:40 | × | tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host) |
| 2021-05-28 20:21:40 | → | tinwood joins (~tinwood@canonical/tinwood) |
| 2021-05-28 20:21:42 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 2021-05-28 20:22:03 | <phma> | I'm thinking of using JuicyPixels to plot some data. Is there a function that takes an image, a pair of coordinates, and a color and returns the image with a point plotted at those coordinates? |
| 2021-05-28 20:22:52 | <edwardk> | phma: that'd be pretty darn slow, given you'd be building new images every time you plotted a point |
| 2021-05-28 20:23:54 | <sm[m]> | there's Chart |
| 2021-05-28 20:24:05 | <phma> | so should I make the image in a sequence of sequences? |
| 2021-05-28 20:24:18 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 2021-05-28 20:26:52 | × | brian_da_mage quits (~Neuromanc@37.6.199.86) (Changing host) |
| 2021-05-28 20:26:52 | → | brian_da_mage joins (~Neuromanc@user/briandamag) |
| 2021-05-28 20:28:51 | × | sondre quits (~sondrelun@eduroam-193-157-188-177.wlan.uio.no) (Ping timeout: 244 seconds) |
| 2021-05-28 20:29:20 | <edwardk> | phma: there's several ways to go about it. the easiest might be to consider taking a list of [(Int,Int)] pairs, and then internally mutably builds up the image with something that builds up a 'MutableImage s a' rather than an 'Image a', then freezes it, or building your entire work pipeline around MutableImages instead. |
| 2021-05-28 20:29:50 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 2021-05-28 20:30:00 | → | zava joins (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
| 2021-05-28 20:30:08 | → | allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 2021-05-28 20:31:29 | → | dunham joins (~dunham@97-113-35-16.tukw.qwest.net) |
| 2021-05-28 20:32:14 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 248 seconds) |
| 2021-05-28 20:32:48 | allbery_b | is now known as geekosaur |
| 2021-05-28 20:33:12 | × | zebrag quits (~chris@aaubervilliers-654-1-3-253.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 2021-05-28 20:33:34 | → | zebrag joins (~chris@aaubervilliers-654-1-3-253.w83-200.abo.wanadoo.fr) |
| 2021-05-28 20:34:39 | × | Dynom quits (~niels@80-114-12-206.cable.dynamic.v4.ziggo.nl) (Quit: WeeChat 3.1) |
| 2021-05-28 20:36:05 | × | dunham quits (~dunham@97-113-35-16.tukw.qwest.net) (Ping timeout: 244 seconds) |
| 2021-05-28 20:38:07 | × | zebrag quits (~chris@aaubervilliers-654-1-3-253.w83-200.abo.wanadoo.fr) (Client Quit) |
| 2021-05-28 20:38:20 | → | zebrag joins (~chris@user/zebrag) |
| 2021-05-28 20:38:42 | × | zebrag quits (~chris@user/zebrag) (Client Quit) |
| 2021-05-28 20:39:08 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2021-05-28 20:39:23 | <Franciman> | https://bpa.st/WAPQ |
| 2021-05-28 20:39:27 | <Franciman> | why isn't this evaulated to 'True ? |
| 2021-05-28 20:39:44 | <Franciman> | how can I tell ghc to shutup and listen to me |
| 2021-05-28 20:39:46 | <Franciman> | that f == f |
| 2021-05-28 20:39:49 | <Franciman> | u == u etc ? |
| 2021-05-28 20:40:20 | <Franciman> | there is no way this can be false |
| 2021-05-28 20:40:27 | <Franciman> | but ghc does not understand it |
| 2021-05-28 20:40:32 | <Franciman> | what the heck is happening ? |
| 2021-05-28 20:40:49 | → | zebrag joins (~chris@user/zebrag) |
| 2021-05-28 20:40:54 | <Franciman> | when has ghc become so dumb? |
| 2021-05-28 20:41:04 | <tomsmeding> | Franciman: link to the definition of that == operator? |
| 2021-05-28 20:41:04 | <Franciman> | what's causing this uncertanity? |
| 2021-05-28 20:41:04 | × | ixlun quits (~user@109.249.184.235) (Ping timeout: 264 seconds) |
| 2021-05-28 20:41:14 | <cdsmith> | Well, "shut up and listen to me" is spelled unsafeCoerce, but you probably shouldn't do that. :( |
| 2021-05-28 20:41:30 | <Franciman> | tomsmeding: https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Type-Equality.html#t:-61--61- |
| 2021-05-28 20:42:21 | × | ikex quits (~ash@user/ikex) (Ping timeout: 272 seconds) |
| 2021-05-28 20:42:25 | → | dunham joins (~dunham@97-113-35-16.tukw.qwest.net) |
| 2021-05-28 20:42:29 | × | connrs quits (~connrs@s1.connrs.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2021-05-28 20:42:40 | <hololeap> | wouldn't you have to do something like put it in a constraint: ((Model.Api.Modification f u r a == Model.Api.Modification f u r a) ~ 'True) |
| 2021-05-28 20:43:02 | <boxscape> | Franciman the reason it doesn't work is because GHC doesn't know if these variables will be constructors applied to something or not, and so doesn't know whether to apply the first equation of that type family or the second |
| 2021-05-28 20:43:09 | → | connrs joins (~connrs@s1.connrs.uk) |
| 2021-05-28 20:43:16 | <Franciman> | boxscape: brilliant! |
| 2021-05-28 20:43:26 | × | Teacup quits (~teacup@user/teacup) (Ping timeout: 248 seconds) |
| 2021-05-28 20:43:30 | <Franciman> | is there a way I can solve this? |
| 2021-05-28 20:43:42 | <Franciman> | I should specify kinds? |
| 2021-05-28 20:43:53 | <boxscape> | hmm |
| 2021-05-28 20:44:23 | × | zebrag quits (~chris@user/zebrag) (Client Quit) |
| 2021-05-28 20:44:27 | <boxscape> | I'm not really sure how to actually solve this :/ |
| 2021-05-28 20:44:43 | → | zebrag joins (~chris@user/zebrag) |
| 2021-05-28 20:44:47 | → | ixlun joins (~user@109.249.184.235) |
| 2021-05-28 20:45:09 | <boxscape> | specifying the kind *might* help, I'm not sure |
| 2021-05-28 20:45:21 | <tomsmeding> | specifying the kind does not help, just tried |
| 2021-05-28 20:45:21 | ← | mib_fqswhk parts (a0ee4a17@ircip1.mibbit.com) () |
| 2021-05-28 20:45:24 | <boxscape> | :( |
| 2021-05-28 20:46:23 | <tomsmeding> | % :m Data.Type.Equality Data.Type.Bool Data.Kind |
| 2021-05-28 20:46:23 | <yahb> | tomsmeding: |
| 2021-05-28 20:46:31 | <tomsmeding> | % :set -XTypeOperators -XRankNTypes -XDataKinds -XQuantifiedConstraints -XGADTs -XKindSignatures |
| 2021-05-28 20:46:31 | <yahb> | tomsmeding: |
| 2021-05-28 20:46:38 | <boxscape> | Franciman though in your original problem you don't actually use the == operator, right? |
| 2021-05-28 20:46:41 | tomsmeding | . o O ( -XKitchenSink ) |
| 2021-05-28 20:46:46 | <Franciman> | boxscape: it is used by UVerb |
| 2021-05-28 20:46:48 | <tomsmeding> | % foo :: forall (a :: Type) (b :: Type) (c :: Type). (A a b c == A a b c) ~ 'True => () ; foo = () |
| 2021-05-28 20:46:48 | <yahb> | tomsmeding: ; <interactive>:95:53: error: Not in scope: type constructor or class `A'; <interactive>:95:64: error: Not in scope: type constructor or class `A' |
| 2021-05-28 20:46:52 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 2021-05-28 20:46:55 | <tomsmeding> | % data A a b c = A a b c |
| 2021-05-28 20:46:55 | <yahb> | tomsmeding: |
| 2021-05-28 20:46:56 | <tomsmeding> | % foo :: forall (a :: Type) (b :: Type) (c :: Type). (A a b c == A a b c) ~ 'True => () ; foo = () |
| 2021-05-28 20:46:56 | <yahb> | tomsmeding: ; <interactive>:97:8: error:; * Could not deduce: (((a0 == a0) && (b0 == b0)) && (c0 == c0)) ~ 'True; from the context: (A a b c == A a b c) ~ 'True; bound by the type signature for:; foo :: forall a b c. ((A a b c == A a b c) ~ 'True) => (); at <interactive>:97:8-85; Expected: forall a b c. ((A a b c == A a b c) ~ 'True) => (); Actual: forall a b |
| 2021-05-28 20:47:45 | → | ccntrq_ joins (~ccntrq@dynamic-077-008-029-067.77.8.pool.telefonica.de) |
| 2021-05-28 20:47:49 | <boxscape> | Franciman ah, I see |
| 2021-05-28 20:47:51 | → | Teacup joins (~teacup@user/teacup) |
| 2021-05-28 20:48:38 | <tomsmeding> | for concrete types ghc does prove equality here |
| 2021-05-28 20:48:40 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 2021-05-28 20:48:50 | <Franciman> | yes |
| 2021-05-28 20:48:52 | <boxscape> | hololeap's suggestion didn't sound too bad? |
| 2021-05-28 20:48:52 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 2021-05-28 20:49:16 | <boxscape> | then you could push the constraint resolution to the use site, far enough to the point where you do have concrete types |
| 2021-05-28 20:49:46 | → | ccntrq__ joins (~ccntrq@dynamic-077-008-029-067.77.8.pool.telefonica.de) |
| 2021-05-28 20:49:55 | → | pe200012 joins (~pe200012@119.131.208.84) |
All times are in UTC.