Aditya Siram
Aditya Siram
@Araq We talked about this yesterday but the repro shows it's not a type aliasing issue as we previously thought since `object`s are nominally typed.
This is a more realistic repro but it's less contained: ```nim import std/[options] type F1*[T] = object call: proc(self:T,callback:proc(self:T)) F2*[T] = object call: proc(self:T,callback:proc(self:T)) F3*[T] = object call: proc(self:T,callback:proc(self:T)) type...
This is happening due to the hardcoded [`recursionLimit`](https://github.com/nim-lang/Nim/blob/2e8c016799def0379c6f5571b5138fc062cc2f1a/compiler/semtypinst.nim#L502). After it crosses the `100` threshold the previous instantiation of the generic type is retrieved from the cache causing the typechecker bug....
Hi, Thanks for hpack! I loveit. Having read your comments I agree that this is a YAML and not an hpack issue. I'm obviously not as familiar with YAML but...
ML style ADTs would be a great idea and I won't quibble about the syntax but I worry that too much conditional freedom on each match arm eg. `x where...
> D's `sumtype` doesn't support nested patterns, which is half the point of pattern matching and would make a lot of things more cumbersome.l, so I don't think that's an...
Nim's `case` statement exhaustiveness checking is pretty brittle: ``` type AnEnum = enum A B let e = A case e of A: echo "A" else: case e of B:...
Not mainstream, and not completely generally but with a ton of effort Haskell does. But the point is by making the pattern matching more "cumbersome" but also more analyzable you...
The `UnpackError` is correctly inferred by the compiler so that's good, the following fails with `Error: can raise an unlisted exception: UnpackError`: ``` proc callingGet():int {.raises: [] .} = let...
I must be missing something with your C FFI example because: ``` const foo = "foo" let notfoo {.exportc: "someprefix" & foo .} = 0 ``` generates: ``` ... N_LIB_PRIVATE...