takeWhile :: (a  ->  MyBool)  ->  (List a)  ->  (List a);
takeWhile p Nil = takeWhile3 p Nil
takeWhile :: (a  ->  MyBool)  ->  (List a)  ->  (List a)
takeWhile p Nil = takeWhile3 p Nil
takeWhile p Nil = takeWhile3 p Nil