Basis library changes

From Successor ML

Jump to: navigation, search

please see math/README to configure.): \alpha \rightarrow \alpha , fst : \alpha \times \beta \rightarrow \alpha, and snd : Failed to parse (Missing texvc executable; please see math/README to configure.): \alpha \times \beta \rightarrow \beta

to General module.
  • The addition of currying/uncurrying helpers to General module (or perhaps a module Curry)
    • curry : (\alpha \times \beta \rightarrow \gamma) \rightarrow \alpha \rightarrow \beta \rightarrow \gamma
    • uncurry : (\alpha \rightarrow \beta \rightarrow \gamma) \rightarrow (\alpha \times \beta) \rightarrow \gamma)
    • (un)curryn for 3 \leq n \leq 5?
  • A standard sum type. Perhaps
   datatype ('a, 'b) either = LEFT of 'a
                            | RIGHT of 'b

as suggested by Vesa Karvonen.

  • More "standard" and efficient containers, ideally with convenient notation. Somewhat predicated upon an improved overloading/typeclass mechanism.
    • Sets
    • Multisets/Bags
    • Maps
  • Queue datatype. List datatype already acts as a stack. To have both convienent notation and an efficient implementation, something like views would probably be required.
  • Note: there may be systematic ways to provide both curried and uncurried forms semi-automatically. See, for example, R. Di Cosmo, Isomorphisms of types: from -calculus to information retrieval and language design, Birkhauser, 1995. see CiteSeer
Personal tools