Skip to content

Instantly share code, notes, and snippets.

View Tetramputechture's full-sized avatar
🔥
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Nick Anderson Tetramputechture

🔥
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
View GitHub Profile
@Tetramputechture
Tetramputechture / combine.hs
Created July 23, 2019 03:29
Solution for Ch15 Combine type - Proving that Combine is a monoid
newtype Combine a b =
Combine { unCombine :: (a -> b) }
-- example usage
-- > let f = Combine $ \n -> Sum (n + 1)
-- > unCombine f $ 1
-- 2
-- dummy show instance so quickCheck works
instance Show (Combine a b) where
show (Combine f) = "Combine instance"