name: prelude-edsl version: 0.4 synopsis: An EDSL-motivated subset of the Prelude description: "Prelude.EDSL" exports a small subset of the "Prelude": some standard types and classes plus a small number of convenience functions. . The motivation for this module is that it is common for deeply embedded domain-specific languages (EDSLs) to redefine identifiers from the "Prelude", so EDSL users must hide the "Prelude" in their programs. However, there are certain useful things from the "Prelude" that are usually not redefined -- function composition being one example -- so it becomes quite awkward to have to hide everything from the "Prelude". . The reason for exporting e.g the @Num@ class but not @Ord@ is that it is possible to give an instance for deep embeddings of the former but not the latter. For example, assuming @Exp@ is the type of a deep embedding, we can have . > (+) :: Exp -> Exp -> Exp . but not . > (<) :: Exp -> Exp -> Exp . (because @(<)@ has a @Bool@ result, regardless of the type of the arguments). license: BSD3 license-file: LICENSE author: Emil Axelsson maintainer: emax@chalmers.se copyright: Copyright (c) 2015, Emil Axelsson homepage: https://github.com/emilaxelsson/prelude-edsl bug-reports: https://github.com/emilaxelsson/prelude-edsl/issues category: Language build-type: Simple cabal-version: >=1.10 source-repository head type: git location: git@github.com:emilaxelsson/prelude-edsl.git library exposed-modules: Prelude.EDSL build-depends: base <20 default-language: Haskell2010