我正在使用Hoopl库,并希望在重写时携带一些状态.关于使用的monad,重写函数是多态的,但我无法弄清楚如何将Statemonad与库的Fuelmonad组合.
以下是一个最小的例子.MyMonad是Hoopl CheckingFuelMonad和State携带旗帜的monad 的同义词.Stmt只是我的中间语言的占位符,并不是很重要.
{-# LANGUAGE GADTs, RankNTypes #-}
import Compiler.Hoopl
import Control.Monad.State
type MyMonad = CheckingFuelMonad (State Bool)
data Stmt e x where
Bind :: () -> Stmt O O
rewriter :: forall e x. Stmt e x -> Fact x () -> MyMonad (Maybe (Graph Stmt e x))
rewriter (Bind ()) () = return $ do
f <- get
if f
then return $ Just …Run Code Online (Sandbox Code Playgroud) Android 8 添加了“ID 证明”(根据https://source.android.com/security/keystore/attestation#id-attestation)。
有没有人想出如何使用这个功能?我发现的最接近的是AttestationUtils.java(https://android.googlesource.com/platform/frameworks/base/+/master/keystore/java/android/security/keystore/AttestationUtils.java),但我不这些 API 随 Android SDK 一起提供。使用P开发者预览版 (compileSdkVersion 'android-P'和targetSdkVersion 'P')时,它们不会出现在我的 IDE 中。