diff options
Diffstat (limited to 'Haskell-book/17/Constant.hs')
| -rw-r--r-- | Haskell-book/17/Constant.hs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Haskell-book/17/Constant.hs b/Haskell-book/17/Constant.hs new file mode 100644 index 0000000..f25da54 --- /dev/null +++ b/Haskell-book/17/Constant.hs @@ -0,0 +1,13 @@ +module Constant where + +newtype Constant a b = + Constant { getConstant :: a } + deriving (Eq, Ord, Show) + +instance Functor (Constant a) where + fmap _ (Constant x) = Constant x + +instance Monoid a + => Applicative (Constant a) where + pure x = Constant mempty + (Constant x) <*> (Constant y) = Constant $ mappend x y |
