Error:
main.nim(25, 8) template/generic instantiation from here
expr_fam.nim(18, 32) Error: type mismatch: got (seq[tuple[weight: int, min_nary: int, max_nary: int, set_map: proc (p: seq[HashSet[system.int]]): HashSet[system.int]{.closure.}]], seq[tuple[weight: int, set_map: proc (p: seq[HashSet[system.int]]): HashSet[system.int]{.closure.}]])
but expected one of:
sequtils.concat(seqs: varargs[seq[T]])
main.nim:
import expr_fam
import op_tbl_ex1
import locks
import sets
proc blah[T](p:seq[HashSet[T]]): HashSet[T] =
return initSet[T](1)
proc getTable*[T] () : seq[(int, int, int, proc(p:seq[HashSet[T]]): HashSet[T] {.nimcall.})] =
result =
@[
(1, 2, 0, blah[T])
]
var fam = initExprFam[int]()
var map_tbl = getTable[int]()
echo repr(map_tbl)
addMaps[int](fam, map_tbl)
addMaps / concat line:
proc addMaps*[T](fam: var ExprFam[T],
tbl: seq[tuple[weight:int, set_map: proc(p:seq[HashSet[T]]):HashSet[T]]]) : void =
fam.map_table = fam.map_table.concat(tbl)
I don't know why it expects varargs[seq[T]] when clearly I've passed in the types.