Wingman gives the following solution for `bool`: ```haskell bool :: a -> a -> Bool -> a bool _ a1 False = a1 bool a _ True = a ``` A more natural solution is to swap the `True` and `False`, so that the `a`s are used in the same order as the data constructors.