I have a problem and I don't know how to solve it. Can someone help me look at it?
There seems to be a `RootEffect` here, I don't know how to remove it. <https://play.nim-lang.org/#pasty=UElbLfBp> import std/streams type Chunk = ref object ChunkAllocator = ref ChunkAllocatorObj ChunkAllocatorObj = object MyStream = ref object of StreamObj al: ChunkAllocator method allocChunk*(al: ChunkAllocator): Chunk {.base, raises: [], gcsafe.} = # RootEffect discard proc writeDataImpl(s: Stream, buffer: pointer, bufLen: int) = let s = MyStream(s) discard s.al.allocChunk() proc newMyStream(al: ChunkAllocator): MyStream = new (result) result.writeDataImpl = writeDataImpl # Error: type mismatch: got 'proc (s: Stream, buffer: pointer, bufLen: int){.noSideEffect, gcsafe.}' for 'writeDataImpl' but expected 'proc (s: Stream, buffer: pointer, bufLen: int){.nimcall, gcsafe.}' # .tag effects differ Run