sig
  val collect : TypeCore.typ -> TypeCore.typ * TypeCore.typ list
  val mark_reachable : TypeCore.env -> TypeCore.typ -> TypeCore.env
end