challenges :: [(String,String)]
challenges = [ ("NOT USED", "NOT USED")
             , ("r ^. responseHeader \"Content-Type\""  , "application/json; charset=utf-8")
             , ("r ^. responseStatus . statusCode"      , "200")
             , ("r ^? responseBody . key \"msgId\""     , "Just (Number 3.0)")
             , ("msgId (fromJust (decode (fromJust (r ^? responseBody)) :: Maybe Msg))"
                                                        ,   "4")
             , ("sum [1 .. 5]"                          ,  "15")
             , ("foldr (+) 0 [1 .. 5]"                  ,  "15")
             , ("product [1 .. 5]"                      , "120")
             , ("foldr (*) 1 [1 .. 5]"                  , "120")
             , ("concat [[1,2],[3,4]]"                  , "[1,2,3,4]")
             , ("foldr (++) [] [[1,2],[3,4]]"           , "[1,2,3,4]")
             , ("length [3,2,1]"                        ,   "3")
             , ("foldl (const . succ) 0 [3,2,1]"        ,   "3")
             , ("lastDigit 2038"                        ,   "8")
             , ("dropLastDigit 2038"                    , "203")
             , ("sumDigits [11, 6, 19, 5]"              ,  "23")
             , ("YOU WIN!"                              , "dGVzdDp1c2Vy")
             ]
challenges :: [(String,String)]
challenges = [ ("NOT USED", "NOT USED")
             , ("r ^. responseHeader \"Content-Type\""  , "application/json; charset=utf-8")
             , ("r ^. responseStatus . statusCode"      , "200")
             , ("r ^? responseBody . key \"msgId\""     , "Just (Number 3.0)")
             , ("msgId (fromJust (decode (fromJust (r ^? responseBody)) :: Maybe Msg))"
                                                        ,   "4")
             , ("sum [1 .. 5]"                          ,  "15")
             , ("foldr (+) 0 [1 .. 5]"                  ,  "15")
             , ("product [1 .. 5]"                      , "120")
             , ("foldr (*) 1 [1 .. 5]"                  , "120")
             , ("concat [[1,2],[3,4]]"                  , "[1,2,3,4]")
             , ("foldr (++) [] [[1,2],[3,4]]"           , "[1,2,3,4]")
             , ("length [3,2,1]"                        ,   "3")
             , ("foldl (const . succ) 0 [3,2,1]"        ,   "3")
             , ("lastDigit 2038"                        ,   "8")
             , ("dropLastDigit 2038"                    , "203")
             , ("sumDigits [11, 6, 19, 5]"              ,  "23")
             , ("YOU WIN!"                              , "dGVzdDp1c2Vy")
             ]
challenges = [ ("NOT USED", "NOT USED")
             , ("r ^. responseHeader \"Content-Type\""  , "application/json; charset=utf-8")
             , ("r ^. responseStatus . statusCode"      , "200")
             , ("r ^? responseBody . key \"msgId\""     , "Just (Number 3.0)")
             , ("msgId (fromJust (decode (fromJust (r ^? responseBody)) :: Maybe Msg))"
                                                        ,   "4")
             , ("sum [1 .. 5]"                          ,  "15")
             , ("foldr (+) 0 [1 .. 5]"                  ,  "15")
             , ("product [1 .. 5]"                      , "120")
             , ("foldr (*) 1 [1 .. 5]"                  , "120")
             , ("concat [[1,2],[3,4]]"                  , "[1,2,3,4]")
             , ("foldr (++) [] [[1,2],[3,4]]"           , "[1,2,3,4]")
             , ("length [3,2,1]"                        ,   "3")
             , ("foldl (const . succ) 0 [3,2,1]"        ,   "3")
             , ("lastDigit 2038"                        ,   "8")
             , ("dropLastDigit 2038"                    , "203")
             , ("sumDigits [11, 6, 19, 5]"              ,  "23")
             , ("YOU WIN!"                              , "dGVzdDp1c2Vy")
             ]