record _×_ (A B : Set) : Set where
constructor _,_
field proj₁ : A
proj₂ : B
open _×_ public
private variable A B C : Set
mapFst : (A → C) → A × B → C × B
mapFst f (a , b) = f a , b
mapSnd : (B → C) → A × B → A × C
mapSnd f (a , b) = a , f b
fst : A × B → A
fst = proj₁
{-# FOREIGN AGDA2RUST
pub fn main() {
println!("{}:\t\t {} | {} | {}", module_path!(),
mapSnd(
ᐁF(|x| x + 1),
_Ֆ215Ֆ_ {projՖ8321Ֆ: 0, projՖ8322Ֆ: 41}
).projՖ8322Ֆ,
_Ֆ215Ֆ_·projՖ8321Ֆ(mapFst(
ᐁF(|x| x + 1),
_Ֆ215Ֆ_ {projՖ8321Ֆ: 41, projՖ8322Ֆ: 40}
)),
fst(mapFst(
ᐁF(|x| x + 1),
_Ֆ215Ֆ_ {projՖ8321Ֆ: 41, projՖ8322Ֆ: 40}
)),
);
}
#-}