comparison lib/ur/monad.urs @ 2185:cbd294994c69

Monad.mapR3
author Adam Chlipala <adam@chlipala.net>
date Sat, 31 Oct 2015 11:49:30 -0400
parents a613cae954ca
children
comparison
equal deleted inserted replaced
2184:1ecef02f67c5 2185:cbd294994c69
56 -> tf1 :: (K -> Type) -> tf2 :: (K -> Type) 56 -> tf1 :: (K -> Type) -> tf2 :: (K -> Type)
57 -> tr :: (K -> Type) 57 -> tr :: (K -> Type)
58 -> (nm :: Name -> t :: K -> tf1 t -> tf2 t -> m (tr t)) 58 -> (nm :: Name -> t :: K -> tf1 t -> tf2 t -> m (tr t))
59 -> r ::: {K} -> folder r -> $(map tf1 r) -> $(map tf2 r) -> m ($(map tr r)) 59 -> r ::: {K} -> folder r -> $(map tf1 r) -> $(map tf2 r) -> m ($(map tr r))
60 60
61 val mapR3 : K --> m ::: (Type -> Type) -> monad m
62 -> tf1 :: (K -> Type) -> tf2 :: (K -> Type) -> tf3 :: (K -> Type)
63 -> tr :: (K -> Type)
64 -> (nm :: Name -> t :: K -> tf1 t -> tf2 t -> tf3 t -> m (tr t))
65 -> r ::: {K} -> folder r -> $(map tf1 r) -> $(map tf2 r) -> $(map tf3 r) -> m ($(map tr r))
66
61 val foldMapR : K --> m ::: (Type -> Type) -> monad m 67 val foldMapR : K --> m ::: (Type -> Type) -> monad m
62 -> tf :: (K -> Type) 68 -> tf :: (K -> Type)
63 -> tf' :: (K -> Type) 69 -> tf' :: (K -> Type)
64 -> tr :: ({K} -> Type) 70 -> tr :: ({K} -> Type)
65 -> (nm :: Name -> t :: K -> rest :: {K} 71 -> (nm :: Name -> t :: K -> rest :: {K}