building a lisp. the code was as follows. MalType* = object case mk*: Mk of mklist: lis*: seq[MalType] of mkint: intval: int of mkstring: strval: string of mkfloat: floatval: float of mkbool: boolval: bool Run
because of the recursive nature I thought ref type would be more efficient here