假设我的定义如下(其中cata的同构关系):
type Algebra f a = f a -> a
newtype Fix f = Fx (f (Fix f))
unFix :: Fix f -> f (Fix f)
unFix (Fx x) = x
cata :: Functor f => (f a -> a) -> Fix f -> a
cata alg = alg . fmap (cata alg) . unFix
Run Code Online (Sandbox Code Playgroud)
我想知道是否有某种方法可以修改的定义,cata以便可以链接诸如a的对象int,以便可以为alg函数中的事物生成唯一的句柄,即“ a0”,“ a1”,“ a2“,...等。
编辑:为了使这一点更加清楚,我希望能够具有一些功能cata',以便当我具有类似于以下定义的内容时
data IntF a
= Const Int
| Add a a
instance …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置我的yesod网络服务器的暂存实例,我想知道是否有一些简单的方法可以保护整个网站的密码.具体来说,我希望能够提示导航到我的网站的人获取凭据.在进行身份验证后,它应该作为典型的站点.但如果他们无法证明自己,他们应该什么也看不见.