pub fn check_subtype_sum<Sub, Super>(
sub_tree: BTreeMap<String, Sub>,
super_tree: BTreeMap<String, Super>,
sub_tree_eval: impl Fn(Sub) -> Value,
super_tree_eval: impl Fn(Super) -> Value
) -> TCM<TCS>
I'm not sure if I should recursively check or not, because if there's recursive sum type,
check_subtype will cause stack-overflow.
A bug report is expected to prove this to be false.