<div dir="ltr">I've tried this<div><br></div><div>data MyMaybe a = Just a | Nothing<br></div><div><br></div><div>maybeHead :: [t] -> MyMaybe t<br>maybeHead [] = Nothing<br>maybeHead (x:_) = Just x<br></div><div><br></div><div>and it evaluates fine. But this</div><div><br></div><div>maybeHead [1,2,3]<br></div><div><br></div><div>produces error:<br>:     • No instance for (Show (MyMaybe Integer))<br>:         arising from a use of ‘show’<br>:     • In the expression: show (maybeHead [1, 2, 3])<br>:       In an equation for ‘it’: it = show (maybeHead [1, 2, 3])<br></div><div><br></div><div>Similarly,</div><div><br></div><div>data Color a = Blue a | Green a | Red a<br></div><div><br></div><div>myFavoriteColor :: Color Int<br>myFavoriteColor = Green 50<br></div><div><br></div><div>but now I'm stuck. How can I access the "Green 50" inside myFavoriteColor?</div><div><br></div><div>LB</div></div>