def filter(self, f: Callable[[A], B]) -> 'List[T]':
        """doufo.List.filter: filter this `List` obj with input `f` function  
        Args:  
            `self`:  
            f (`Callable[[A],B]`): function that tells `True` or `False`  
        Returns:  
            return (`List[T]`): Filtered List  
        Raises:
        """
        return List([x for x in self.unbox() if f(x) is True])