summaryrefslogtreecommitdiff
path: root/applicative/h2.hs
diff options
context:
space:
mode:
Diffstat (limited to 'applicative/h2.hs')
-rw-r--r--applicative/h2.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/applicative/h2.hs b/applicative/h2.hs
new file mode 100644
index 0000000..6d9b801
--- /dev/null
+++ b/applicative/h2.hs
@@ -0,0 +1,10 @@
+import Control.Applicative
+
+newtype MyZipList a = MyZipList { getMyZipList :: [a] }
+
+instance Functor MyZipList where
+ fmap f (MyZipList x) = MyZipList (fmap f x)
+
+instance Applicative MyZipList where
+ pure x = MyZipList [x]
+ (MyZipList gs) <*> (MyZipList xs) = MyZipList (zipWith ($) gs xs)