>>> take 10 $ repeat 17 [17,17,17,17,17,17,17,17,17, 17]
>>> repeat undefined [*** Exception: Prelude.undefined
>>> singleton True [True]
>>> singleton [1, 2, 3] [[1,2,3]]
>>> singleton 'c' "c"
>>> repeat 17 [17,17,17,17,17,17,17,17,17...
>>> singleton True [True]
>>> take 20 $ repeat 17 [17,17,17,17,17,17,17,17,17...
>>> pure 1 :: Maybe Int Just 1
>>> pure 'z' :: [Char] "z"
>>> pure (pure ":D") :: Maybe [String] Just [":D"]