packages feed

prelude-edsl-0.2: prelude-edsl.cabal

name:                prelude-edsl
version:             0.2
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