Need more tests (eval ?) and check the least upper bound for List :<