aplfn An Array Programming Language with a Functional Nested implementation -- APL array semantics in Haskell