name: s-cargot-letbind
version: 0.2.5.0
synopsis: Enables let-binding and let-expansion for s-cargot defined S-expressions.
description:
This module allows let bindings to be introduced into the S-Expression
syntax.
.
For example, instead of:
.
> (concat (if (enabled x) (+ (width x) (width y)) (width y))
> " meters")
.
this can be re-written with let bindings:
.
> (let ((wy (width y))
> (wboth (+ (width x) wy))
> (wide (if (enabled x) wboth wy))
> )
> (concat wide " meters"))
.
As S-expressions grow larger, let-binding can help readability for
those expressions. This module provides the 'discoverLetBindings'
function that will convert an S-expression into one containing
let-bound variables, and the inverse function 'letExpand' which will
expand let-bound variables back into the expression.
homepage: https://github.com/GaloisInc/s-cargot-letbind
license: ISC
license-file: LICENSE
author: Kevin Quick
maintainer: kquick@galois.com
copyright: 2018 Kevin Quick
category: Data
build-type: Simple
cabal-version: >=1.10
tested-with: GHC == 8.8.4
GHC == 8.10.7
GHC == 9.2.7
GHC == 9.4.4
GHC == 9.6.1
extra-source-files: ChangeLog.md
test/big-sample.sexp
test/small-sample.sexp
test/med-sample.sexp
test/med2-sample.sexp
source-repository head
type: git
location: git://github.com/GaloisInc/s-cargot-letbind.git
library
exposed-modules: Data.SCargot.LetBind
build-depends: base >=4.9 && <5
, s-cargot >= 0.1.6.0 && <0.2
, text >=1.2 && <2.2
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall
test-suite s-cargot-printparselet
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: SCargotPrintParseLet.hs
build-depends: base >=4.9 && <5
, parsec >=3.1 && <4
, HUnit >=1.6 && <1.7
, s-cargot >= 0.1.6.0 && <0.2
, s-cargot-letbind
, text >=1.2 && <2.2