added setter to ArrayList and fixed the problem by having method in FunctionalArrayList return a FunctionalArrayList instead of a FunctionalList