open import Agda.Primitive using (Level)
open import Agda.Builtin.Nat using (suc; _+_) renaming (Nat to )

private variable
   : Level
  A : Set 

data Wrap {} (A : Set ) : Set  where
  mk : A  Wrap A

unmk : Wrap A  A
unmk (mk a) = a

record Point : Set where
  field slot      : Wrap 
        blockHash : 
open Point public

matchPoint : Point  
matchPoint record {slot = mk n} = n

exPoint : Point
exPoint .slot      = mk 42
exPoint .blockHash = 0

Hash = 

record Header : Set where
  field  slotNo blockNo : 
         blockHash      : Hash
         prev nodeId    : 
open Header public

matchHeader : Header  
matchHeader record {slotNo = n} = n

exHeader : Header
exHeader = λ where
  .slotNo  42
  .blockNo  0
  .blockHash  0
  .prev  0
  .nodeId  0

data Tx : Set where
  inc dec : Tx

pred :   
pred 0 = 0
pred (suc n) = n

open import Agda.Builtin.Nat

test : Nat
test = unmk (exPoint .slot)
     + matchPoint exPoint
     + slotNo (record
                 { slotNo = 42
                 ; blockNo = 0
                 ; blockHash = 0
                 ; prev = 0
                 ; nodeId = 0
                 })
     + matchHeader exHeader
{-# COMPILE AGDA2LAMBOX test #-}
Debug λ☐ Rocq
  ↪  
WASM C OCaml CakeML Rust Elm
  ↪  
  ↪