Fix List typechecking and simplify internal api