A module providing an Alloy
instance in terms of AlloyA
.
The contents of this module appear blank because it contains only class instances.
The Alloy
and AlloyA
class instances have nearly identical definitions
for any given type, and running AlloyA
with an identity functor/monad has
the same behaviour as the pure class. Therefore, it is possible to define
a single Alloy
instance in terms of AlloyA
. That is what this module does.
To use this module, you should generate only AlloyA
instances with the
Data.Generics.Alloy.GenInstances module, and import this module. If you
import this alongside any other Alloy
instances you'll have incoherent
instances. Alternatively, you can generate only AlloyARoute
instances and
use this module along with Data.Generics.Alloy.EffectProxy.