// list ; unit { a [a] } ; ; pair { [a b] [a b] } ; ; car { [[a A]] \a } ; ; cdr { [[a A]] A } ; ; cons { [a b] [a] b , } ; ; uncons { [[a A]] \a A } ; ; swons swap cons ; ; -cons |: cons |: ; ; -uncons |: uncons |: ; ; -swons swap -cons ; ; last -1 #. *: ; ; take [dup] dip ? #. ; ; -take [|:] dip take |: ; ; take_ [dup] dip ? 1 + #. -1 _. ; ; -take_ [|:] dip take_ |: ; ; drop [dup] dip ? _. ; ; -drop [|:] dip drop |: ; ; take-drop { [a b] a b take a b drop } ; ; prototype 0 #. *: ;