interface RandomAccessList : (Type -> Type) -> Typeempty : RandomAccessList r => r aisEmpty : RandomAccessList r => r a -> Boolcons : RandomAccessList r => a -> r a -> r ahead : RandomAccessList r => r a -> atail : RandomAccessList r => r a -> r alookup : RandomAccessList r => Int -> r a -> aupdate : RandomAccessList r => Int -> a -> r a -> r a