[02:06:00] * ecx [ecx!~ashton@unaffiliated/ecx] has quit (Quit: ecx). [02:06:28] * ecx [ecx!~ecx@unaffiliated/ecx] has joined the channel. [02:51:56] * pierpa [pierpa!57100917@gateway/web/freenode/ip.87.16.9.23] has quit (Quit: Page closed). [03:21:16] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [03:26:02] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [03:30:34] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 260 seconds). [04:12:46] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [04:16:55] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 245 seconds). [04:18:36] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [04:22:45] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 245 seconds). [05:16:49] * lugh [lugh!~lugh@chame.co] has quit (Quit: quitting bouncer). [05:20:47] Kitten allows 'match' to unconstruct a sum type by pattern matched cases. How does one deal with that in terms of type checking a program? [05:21:09] It would make the type of a program dependent on its inputs, right? Isn't that a problem? [05:28:38] maaku: If it's like Haskell, each constructor belongs to a specific type, so for example, if you pattern match `Left x` or `Right x`, the type would be `Either a`, where `a` is determined by the type of `x`, and must unify for each case. [05:30:36] So you couldn't match `Left x` and `Just x` (from Maybe) in the same case expression, which would not unify to a single type. [05:34:05] I do allow something like this in Popr, because each different "constructor" (symbol) is a unique type. [05:37:36] So you could extend booleans by just matching `ItDepends` as well as `True` and `False`. [05:49:49] Let's say I have Haskell's Either a b = Left a | Right b [05:51:06] Then the program which matches, would be "match case (Left a){} case (Left b){}" (where {} does nothing) would have two different rho type signatures [05:51:46] The program type itself would be [Either -> Left] | [Either -> Right] [05:51:51] That seems hard to work with... [05:52:35] The language I'm writing uses a lot of higher-level functions, and is monomorphic at the interpreter layer [05:53:43] It would be a huuuge pain if any code blocks would have types dependent on their inputs [05:58:26] As an example, a solution I came up with is {match case (Left a) {/* a -> ... */} case (Right b) {/* b -> ... */}} [05:59:47] where "..." can be any sequence of types left on the stack, but it has to be the SAME type for all cases. so e.g. (Left a){} :: a -> int; (Right b){} :: b -> int [06:00:29] so the overall type is "Either a b -> int" [06:02:52] but that seems difficult to work with.. many examples i can come up with would use different input type signatures... [09:56:40] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [10:01:05] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 245 seconds). [10:10:45] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [10:15:15] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 245 seconds). [11:05:53] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [11:06:11] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Client Quit). [11:06:33] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [12:02:37] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Quit: Poof). [12:02:56] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [12:32:25] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Quit: Poof). [12:32:45] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [12:37:00] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 252 seconds). [12:42:43] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [12:48:41] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [12:48:57] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [12:53:26] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 260 seconds). [13:10:19] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [13:14:54] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 260 seconds). [13:18:43] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [13:29:28] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [13:38:59] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [13:45:22] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [13:49:57] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [13:53:57] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 240 seconds). [14:02:46] * delvinj [delvinj!~Miranda@c-73-164-9-150.hsd1.mn.comcast.net] has joined the channel. [14:06:23] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [14:10:57] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [14:11:26] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [14:18:22] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 260 seconds). [14:30:21] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [14:30:52] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [14:31:08] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [14:37:42] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 245 seconds). [14:39:23] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [15:08:33] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Quit: Poof). [15:08:50] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [15:11:22] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98dd9.dyn.optonline.net] has quit (Ping timeout: 252 seconds). [15:14:16] * Sgeo [Sgeo!~Sgeo@ool-18b98dd9.dyn.optonline.net] has joined the channel. [15:19:48] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 252 seconds). [15:34:50] * Sgeo [Sgeo!~Sgeo@ool-18b98dd9.dyn.optonline.net] has quit (Ping timeout: 252 seconds). [15:39:19] * Sgeo [Sgeo!~Sgeo@ool-18b98dd9.dyn.optonline.net] has joined the channel. [15:46:01] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [15:50:08] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Client Quit). [15:50:25] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [18:26:27] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [18:32:40] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [18:37:19] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer). [19:16:17] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [19:32:42] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Ping timeout: 256 seconds). [19:32:59] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [20:02:31] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Quit: Poof). [20:02:49] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has joined the channel. [20:11:55] * pierpal [pierpal!~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it] has quit (Read error: Connection reset by peer).