1234567891011121314151617181920212223242526272829[@@@warning"@A"]letlen=Stdcompat.List.lengthletget(typea)(s:alist)(pos:int):a=letl=lensinifl<=pos||pos<~-lthenraise(Exn.IndexError"list index out of range")elseletpos=ifpos>=0thenposelsel+posinStdcompat.List.nthsposletslice(typea)?(start:intoption)?(stop:int option)?(step:int =1)(l:alist):alist=ifstop=None &&step=1thenletrecauxil=matchi,lwith|0,_->l|_,[]->[]|n,_::t->aux(n-1)tinmatchstartwith|None->l|Somestart->auxstartlelseletopenHelpers.Sliceinslice?start?stop ~stepStdcompat.List.lengthStdcompat.List.nth(ConcatLeft(funcs->c::s))(fun_->[])(funx->x)l