Park will be expected to run on a Unix or a Unix-like system (such as Win32) and will provide APIs for such common POSIX and P-Languages operations as random file I/O, sockets, regular expressions, manipulating ASCII text, Unicode and other encodings. It may also have platform-specific modules for managing processes, creating new processes, etc. (as is the case for Perl 5, for example.)
All of these things will eventually be part of the Park spec, and their APIs would be common to all implementations.
I understood Monads for exactly 5 minutes. Then the understanding left my head. It was too hard for me to keep there. | ||
-- An anonymous Perl 5 and Pugs hacker about Haskell's Monads. |
As cool as Monads are I'm skeptical about using them in files by default. I know how to use File I/O in Haskell, but still don't understand when Monads are needed. My personal Haskell style so far made no use of them except for file Input and Output.
One will be able to implement Monads in Park and use them for file I/O. There may even be a default Monad class. However, the default file Input/Output API will either be a reflection of the POSIX one, or alternatively something similar in spirit to PerlIO or the Python or Ruby files and sockets I/O classes.
Above this API one can build as many abstractions to his liking, including Monads.