prop_ifb :: ArduinoConnection -> RemoteRef Bool -> Bool -> Bool -> Bool -> Property
prop_ifb c r b x y = monadicIO $ do
    let local = if b then x else y
    remote <- run $ send c $ do
        writeRemoteRef r $ ifB (lit b) (lit x) (lit y)
        v <- readRemoteRef r
        return v
    assert (local == litEvalB remote)
prop_ifb :: ArduinoConnection -> RemoteRef Bool -> Bool -> Bool -> Bool -> Property
prop_ifb c r b x y = monadicIO $ do
    let local = if b then x else y
    remote <- run $ send c $ do
        writeRemoteRef r $ ifB (lit b) (lit x) (lit y)
        v <- readRemoteRef r
        return v
    assert (local == litEvalB remote)
prop_ifb c r b x y = monadicIO $ do
    let local = if b then x else y
    remote <- run $ send c $ do
        writeRemoteRef r $ ifB (lit b) (lit x) (lit y)
        v <- readRemoteRef r
        return v
    assert (local == litEvalB remote)