Skip to content

Commit

Permalink
more elegant Traversable for g :. f
Browse files Browse the repository at this point in the history
Ignore-this: c0b79c1ebdbe2f4eabb2464b072f8054

darcs-hash:20110323204429-fb517-35ae106b50dcfd6cad8f01023275fce4fffc1f77.gz
  • Loading branch information
conal committed Mar 23, 2011
1 parent 57bb773 commit ce4306a
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/Control/Compose.hs
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,20 @@ instance (Foldable g, Foldable f, Functor g) => Foldable (g :. f) where
-- I could let fold default

instance (Traversable g, Traversable f) => Traversable (g :. f) where
sequenceA = fmap O . sequenceA . fmap sequenceA . unO


-- sequenceA = fmap O . sequenceA . fmap sequenceA . unO
-- sequenceA = fmap O . traverse sequenceA . unO
-- sequenceA = (unO ~> fmap O) (traverse sequenceA)
-- traverse f = fmap O . traverse (traverse f) . unO
traverse = (unO ~> fmap O) . traverse . traverse

-- sequenceA . fmap f
-- sequenceA . (inO.fmap.fmap) f
-- sequenceA . inO (fmap (fmap f))
-- sequenceA . O . fmap (fmap f) . unO
-- fmap O . traverse sequenceA . unO . O . fmap (fmap f) . unO
-- fmap O . traverse sequenceA . fmap (fmap f) . unO
-- fmap O . traverse (sequenceA . fmap f) . unO
-- fmap O . traverse (traverse f) . unO

-- instance (Functor g, Functor f) => Functor (g :. f) where
-- fmap = inO.fmap.fmap
Expand Down

0 comments on commit ce4306a

Please sign in to comment.