Mercurial > urweb
comparison lib/ur/monad.urs @ 1312:726f0caeea3f
Monad.appR
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Tue, 19 Oct 2010 11:51:53 -0400 |
parents | f0909fb3848f |
children | 0bf73c3e4563 |
comparison
equal
deleted
inserted
replaced
1311:5337adf33a4a | 1312:726f0caeea3f |
---|---|
59 -> [[nm] ~ rest] => | 59 -> [[nm] ~ rest] => |
60 tf t -> tr rest -> m (tf' t * tr ([nm = t] ++ rest))) | 60 tf t -> tr rest -> m (tf' t * tr ([nm = t] ++ rest))) |
61 -> tr [] | 61 -> tr [] |
62 -> r ::: {K} -> folder r -> $(map tf r) -> m ($(map tf' r) * tr r) | 62 -> r ::: {K} -> folder r -> $(map tf r) -> m ($(map tf' r) * tr r) |
63 | 63 |
64 val appR : K --> m ::: (Type -> Type) -> monad m | |
65 -> tf :: (K -> Type) | |
66 -> (nm :: Name -> t :: K -> tf t -> m unit) | |
67 -> r ::: {K} -> folder r -> $(map tf r) -> m unit | |
68 | |
64 val appR2 : K --> m ::: (Type -> Type) -> monad m | 69 val appR2 : K --> m ::: (Type -> Type) -> monad m |
65 -> tf1 :: (K -> Type) -> tf2 :: (K -> Type) | 70 -> tf1 :: (K -> Type) -> tf2 :: (K -> Type) |
66 -> (nm :: Name -> t :: K -> tf1 t -> tf2 t -> m unit) | 71 -> (nm :: Name -> t :: K -> tf1 t -> tf2 t -> m unit) |
67 -> r ::: {K} -> folder r -> $(map tf1 r) -> $(map tf2 r) -> m unit | 72 -> r ::: {K} -> folder r -> $(map tf1 r) -> $(map tf2 r) -> m unit |