hpython-0.3: ChangeLog.md
# Revision history for hpython
## 0.3
* Changed the sigature of `Data.Validation.Monadic.bindVM` to have the same form as
`(>>=)`
* Added `HasAnn` instance for `Language.Python.Syntax.Ann.Ann`
* Reworked scope checking (`Language.Python.Validate.Scope`)
Instead of the old triplicate `ScopeContext`, we now keep a single context
and mark each entry with its 'occurrence path'. This is much simpler to manage,
but just as expressive as the old version.
* Improved scope checking of compound statements
Compound statements like
```
if ...:
x = 1
else:
y = x
```
were succeeding in scope checking because the variables from each block were
added to the scope sequentially. Now, the multiple blocks are checked in the
same scope, and their final scopes are combined at the end of the process.
* Added `Foldable1`/`Traversable1` instances for `CommaSep1` and `CommaSep1'`
* Added `HasStatements1` with instances for `Statement` and `Block`
## 0.2
*2019-01-10*
* Improved Plated instance for exprs
It now drills down into collections, parameters, arguments, subscripts, and
comprehensions
* Added `_Idents` traversal
* Annotations are now wrapped in the `Ann` type to aid generic deriving
* Added `HasExprs` instance for `Module`
* Added `HasStatements` instance for `Statement`
* Added IO-based `read-` functions to `Language.Python.Parse`
* Re-export `Data.Validation` from `Language.Python.Parse`
* Added `annot` and `annot_` lenses to `Language.Python.Syntax.Ann` to retrieve
annotations from structures
## 0.1.0.1
*2019-01-07*
Welcome to 2019! (Fixed dates)
## 0.1
*2019-01-07*
Initial release