uhc-light 1.1.7.1 → 1.1.7.2
raw patch · 368 files changed
+6091/−3680 lines, 368 filesdep ~uhc-lightbinary-addedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: uhc-light
API changes (from Hackage documentation)
Files
- 103/lib/ag/Core/AbsSyn.ag +9/−0
- 103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr binary
- 103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi binary
- 103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config +1/−1
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi binary
- 103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config +1/−1
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.cr binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.hi binary
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/CTypes.h +0/−231
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBase.h +0/−757
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBaseConfig.h +0/−944
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/IntLikeInstance.h +0/−242
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/MachDeps.h +0/−125
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/TupleInstance.h +0/−147
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/Typeable.h +0/−149
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/dirUtils.h +0/−11
- 103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/installed-pkg-config +0/−2
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.cr binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.hi binary
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/CTypes.h +231/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBase.h +757/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBaseConfig.h +944/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/IntLikeInstance.h +242/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/MachDeps.h +125/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/TupleInstance.h +147/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/Typeable.h +149/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/dirUtils.h +11/−0
- 103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/installed-pkg-config +2/−0
- changelog.md +5/−0
- src/EHC.hs +7/−5
- src/UHC/Light/Compiler/API.hs +9/−1
- src/UHC/Light/Compiler/AbstractCore.hs +75/−74
- src/UHC/Light/Compiler/Base/API.hs +29/−0
- src/UHC/Light/Compiler/CodeGen/ModuleImportExportImpl.hs +19/−0
- src/UHC/Light/Compiler/Config.hs +3/−3
- src/UHC/Light/Compiler/ConfigInstall.hs +1/−1
- src/UHC/Light/Compiler/ConfigInternalVersions.hs +1/−1
- src/UHC/Light/Compiler/Core.hs +21/−8
- src/UHC/Light/Compiler/Core/API.hs +89/−30
- src/UHC/Light/Compiler/Core/BindExtract.hs +45/−3
- src/UHC/Light/Compiler/Core/Check.hs +415/−256
- src/UHC/Light/Compiler/Core/ExtractFFE.hs +45/−3
- src/UHC/Light/Compiler/Core/FvS.hs +45/−3
- src/UHC/Light/Compiler/Core/Merge.hs +6/−4
- src/UHC/Light/Compiler/Core/ModAsMap.hs +99/−26
- src/UHC/Light/Compiler/Core/Parser.hs +8/−3
- src/UHC/Light/Compiler/Core/Pretty.hs +90/−9
- src/UHC/Light/Compiler/Core/Subst.hs +80/−8
- src/UHC/Light/Compiler/Core/ToCoreRun.hs +45/−3
- src/UHC/Light/Compiler/Core/ToGrin.hs +45/−3
- src/UHC/Light/Compiler/Core/Trf/ANormal.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/AnaRelevance.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/AnnBasedSimplify.hs +80/−8
- src/UHC/Light/Compiler/Core/Trf/CAFGlobalAsArg.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/ConstProp.hs +80/−8
- src/UHC/Light/Compiler/Core/Trf/ElimNonCodegenConstructs.hs +80/−8
- src/UHC/Light/Compiler/Core/Trf/ElimTrivApp.hs +82/−10
- src/UHC/Light/Compiler/Core/Trf/EraseExtractTysigCore.hs +82/−10
- src/UHC/Light/Compiler/Core/Trf/EtaRed.hs +82/−10
- src/UHC/Light/Compiler/Core/Trf/ExplicitStackTrace.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/FixAfterParse.hs +80/−8
- src/UHC/Light/Compiler/Core/Trf/FloatToGlobal.hs +82/−10
- src/UHC/Light/Compiler/Core/Trf/InlineLetAlias.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/LamGlobalAsArg.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/LetDefBeforeUse.hs +89/−16
- src/UHC/Light/Compiler/Core/Trf/LetFlattenStrict.hs +80/−8
- src/UHC/Light/Compiler/Core/Trf/LetUnrec.hs +84/−12
- src/UHC/Light/Compiler/Core/Trf/OptimizeStrictness.hs +88/−4
- src/UHC/Light/Compiler/Core/Trf/RenUniq.hs +82/−10
- src/UHC/Light/Compiler/Core/UsedModNms.hs +45/−3
- src/UHC/Light/Compiler/EH/MainAG.hs +5/−3
- src/UHC/Light/Compiler/EH/MainAG_AGItf.hs +315/−304
- src/UHC/Light/Compiler/EH/MainAG_CaseAlt.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_CaseAlts.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_DataConstr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_DataConstrs.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_DataField.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_DataFieldExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_DataFieldPatExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_DataFields.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_Decl.hs too large to diff
- src/UHC/Light/Compiler/EH/MainAG_Decls.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_Expr.hs too large to diff
- src/UHC/Light/Compiler/EH/MainAG_ExprAnn.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_FuncDep.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_FuncDeps.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_KiExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_KiExprAnn.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_MbTyExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_PatExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_PatExprAnn.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_PrExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_PrExprs.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_RecExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_RecPatExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_RowTyExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_TyExpr.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_TyExprAnn.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_TyExprs.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_TyVar.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_TyVars.hs +2/−0
- src/UHC/Light/Compiler/EH/MainAG_common.hs +6/−0
- src/UHC/Light/Compiler/EHC/CompilePhase/Common.hs +47/−0
- src/UHC/Light/Compiler/EHC/CompilePhase/FlowBetweenPhase.hs +2/−2
- src/UHC/Light/Compiler/EHC/CompilePhase/Module.hs +35/−18
- src/UHC/Light/Compiler/EHC/CompilePhase/Parsers.hs +3/−1
- src/UHC/Light/Compiler/EHC/CompilePhase/Semantics.hs +19/−10
- src/UHC/Light/Compiler/EHC/CompilePhase/TopLevelPhases.hs +36/−34
- src/UHC/Light/Compiler/EHC/CompilePhase/Transformations.hs +1/−1
- src/UHC/Light/Compiler/EHC/CompilePhase/Translations.hs +6/−3
- src/UHC/Light/Compiler/EHC/CompileRun.hs +43/−31
- src/UHC/Light/Compiler/EHC/InitialSetup.hs +19/−16
- src/UHC/Light/Compiler/Scanner/Common.hs +48/−47
- src/UHC/Light/Compiler/SourceCodeSig.hs +2/−2
- uhc-light.cabal +5/−5
@@ -3,11 +3,19 @@ DATA CModule | Mod moduleNm : {HsName}+ exports : CExportL imports : CImportL declMetas : CDeclMetaL expr : CExpr -- ctagsMp : {CTagsMp} +DATA CExport+ | Export nm : {HsName}++TYPE CExportL = [CExport]++SET AllExport = CExportL CExport+ DATA CImport | Import nm : {HsName} @@ -234,4 +242,5 @@ = AllCodeNT AllMetaNT AllImport+ AllExport
binary file changed (78 → 287 bytes)
binary file changed (6272 → 6272 bytes)
@@ -1,2 +1,2 @@ exposed-modules: Data.Array-build-depends: uhcbase-1.1.7.1 base-3.0.0.0+build-depends: uhcbase-1.1.7.2 base-3.0.0.0
binary file changed (160405 → 160830 bytes)
binary file changed (115937 → 115937 bytes)
binary file changed (169137 → 169421 bytes)
binary file changed (140150 → 140150 bytes)
binary file changed (5459 → 5522 bytes)
binary file changed (10045 → 10045 bytes)
binary file changed (16484 → 16739 bytes)
binary file changed (18302 → 18302 bytes)
binary file changed (13499 → 13558 bytes)
binary file changed (13430 → 13430 bytes)
binary file changed (2785 → 3007 bytes)
binary file changed (7497 → 7497 bytes)
binary file changed (4022 → 4265 bytes)
binary file changed (8458 → 8458 bytes)
binary file changed (77 → 128 bytes)
binary file changed (4493 → 4493 bytes)
binary file changed (229580 → 229718 bytes)
binary file changed (49047 → 49047 bytes)
binary file changed (40290 → 40533 bytes)
binary file changed (28461 → 28461 bytes)
binary file changed (75 → 126 bytes)
binary file changed (3879 → 3879 bytes)
binary file changed (72245 → 72709 bytes)
binary file changed (32505 → 32505 bytes)
binary file changed (1493 → 1548 bytes)
binary file changed (4931 → 4931 bytes)
binary file changed (75 → 175 bytes)
binary file changed (4378 → 4378 bytes)
binary file changed (370973 → 371522 bytes)
binary file changed (182317 → 182317 bytes)
binary file changed (1132 → 1185 bytes)
binary file changed (5745 → 5745 bytes)
binary file changed (28268 → 28321 bytes)
binary file changed (6454 → 6454 bytes)
binary file changed (3417 → 3526 bytes)
binary file changed (7763 → 7763 bytes)
binary file changed (121684 → 122068 bytes)
binary file changed (79702 → 79702 bytes)
binary file changed (2535 → 2798 bytes)
binary file changed (6620 → 6620 bytes)
binary file changed (68 → 643 bytes)
binary file changed (64078 → 64078 bytes)
binary file changed (220177 → 220303 bytes)
binary file changed (77868 → 77868 bytes)
binary file changed (1550 → 1719 bytes)
binary file changed (5235 → 5235 bytes)
binary file changed (191587 → 191774 bytes)
binary file changed (69305 → 69305 bytes)
binary file changed (35981 → 36202 bytes)
binary file changed (27804 → 27804 bytes)
binary file changed (77 → 128 bytes)
binary file changed (4498 → 4498 bytes)
binary file changed (227678 → 228086 bytes)
binary file changed (49978 → 49978 bytes)
binary file changed (3821 → 3874 bytes)
binary file changed (5464 → 5464 bytes)
binary file changed (3590 → 3643 bytes)
binary file changed (6144 → 6144 bytes)
@@ -1,2 +1,2 @@ exposed-modules: Control.Applicative Control.Arrow Control.Category Control.Monad.Fix Control.Monad.Instances Control.Monad.ST.Lazy Control.Monad.ST Data.Bool Data.Complex Data.Dynamic Data.Eq Data.Foldable Data.Function Data.Ix Data.Monoid Data.Ord Data.Ratio Data.String Data.Traversable Numeric Prelude System.Console.GetOpt System.Environment System.Exit Text.ParserCombinators.ReadP Text.ParserCombinators.ReadPrec Text.Read.Lex Text.Read Text.Show.Functions Text.Show-build-depends: uhcbase-1.1.7.1+build-depends: uhcbase-1.1.7.2
binary file changed (59091 → absent bytes)
binary file changed (27704 → absent bytes)
binary file changed (81372 → absent bytes)
binary file changed (24833 → absent bytes)
binary file changed (10825 → absent bytes)
binary file changed (5668 → absent bytes)
binary file changed (6281 → absent bytes)
binary file changed (3864 → absent bytes)
binary file changed (3141 → absent bytes)
binary file changed (3315 → absent bytes)
binary file changed (201336 → absent bytes)
binary file changed (46537 → absent bytes)
binary file changed (7780 → absent bytes)
binary file changed (4487 → absent bytes)
binary file changed (169212 → absent bytes)
binary file changed (112734 → absent bytes)
binary file changed (2867 → absent bytes)
binary file changed (4479 → absent bytes)
binary file changed (79 → absent bytes)
binary file changed (3275 → absent bytes)
binary file changed (85 → absent bytes)
binary file changed (2259 → absent bytes)
binary file changed (18976 → absent bytes)
binary file changed (14489 → absent bytes)
binary file changed (28338 → absent bytes)
binary file changed (16760 → absent bytes)
binary file changed (4530 → absent bytes)
binary file changed (2294 → absent bytes)
binary file changed (837 → absent bytes)
binary file changed (1984 → absent bytes)
binary file changed (213566 → absent bytes)
binary file changed (64563 → absent bytes)
binary file changed (2078435 → absent bytes)
binary file changed (950228 → absent bytes)
binary file changed (12611 → absent bytes)
binary file changed (5335 → absent bytes)
binary file changed (120455 → absent bytes)
binary file changed (60961 → absent bytes)
binary file changed (28944 → absent bytes)
binary file changed (21229 → absent bytes)
binary file changed (5135 → absent bytes)
binary file changed (1288 → absent bytes)
binary file changed (8006 → absent bytes)
binary file changed (4111 → absent bytes)
binary file changed (105761 → absent bytes)
binary file changed (66535 → absent bytes)
binary file changed (58714 → absent bytes)
binary file changed (4807 → absent bytes)
binary file changed (590 → absent bytes)
binary file changed (1259 → absent bytes)
binary file changed (80 → absent bytes)
binary file changed (16434 → absent bytes)
binary file changed (660557 → absent bytes)
binary file changed (421402 → absent bytes)
binary file changed (17509 → absent bytes)
binary file changed (11367 → absent bytes)
binary file changed (14891 → absent bytes)
binary file changed (5975 → absent bytes)
binary file changed (274123 → absent bytes)
binary file changed (144192 → absent bytes)
binary file changed (75678 → absent bytes)
binary file changed (30408 → absent bytes)
binary file changed (36826 → absent bytes)
binary file changed (23239 → absent bytes)
binary file changed (28104 → absent bytes)
binary file changed (10285 → absent bytes)
binary file changed (17943 → absent bytes)
binary file changed (10662 → absent bytes)
binary file changed (11890 → absent bytes)
binary file changed (5421 → absent bytes)
binary file changed (68502 → absent bytes)
binary file changed (21837 → absent bytes)
binary file changed (190958 → absent bytes)
binary file changed (73547 → absent bytes)
binary file changed (24620 → absent bytes)
binary file changed (21209 → absent bytes)
binary file changed (87049 → absent bytes)
binary file changed (17136 → absent bytes)
binary file changed (7105 → absent bytes)
binary file changed (1916 → absent bytes)
binary file changed (11220 → absent bytes)
binary file changed (5056 → absent bytes)
binary file changed (47041 → absent bytes)
binary file changed (31438 → absent bytes)
binary file changed (22339 → absent bytes)
binary file changed (15348 → absent bytes)
binary file changed (151045 → absent bytes)
binary file changed (36709 → absent bytes)
binary file changed (21369 → absent bytes)
binary file changed (16107 → absent bytes)
binary file changed (82 → absent bytes)
binary file changed (1380 → absent bytes)
binary file changed (67715 → absent bytes)
binary file changed (51972 → absent bytes)
binary file changed (26369 → absent bytes)
binary file changed (18131 → absent bytes)
binary file changed (13344 → absent bytes)
binary file changed (9775 → absent bytes)
binary file changed (81 → absent bytes)
binary file changed (853 → absent bytes)
@@ -1,231 +0,0 @@-{- ---------------------------------------------------------------------------// Dirty CPP hackery for CTypes/CTypesISO-//-// (c) The FFI task force, 2000-// ----------------------------------------------------------------------------}--#ifndef CTYPES__H-#define CTYPES__H--#include "Typeable.h"--{--// As long as there is no automatic derivation of classes for newtypes we resort-// to extremely dirty cpp-hackery. :-P Some care has to be taken when the-// macros below are modified, otherwise the layout rule will bite you.--}---- // A hacked version for GHC follows the Haskell 98 version...-#ifndef __GLASGOW_HASKELL__--#define NEWTYPE_TYPE_NODERIVING(T,B) \-newtype T = T B ; --#define NEWTYPE_TYPE(T,B) \-newtype T = T B deriving (Eq, Ord) ; --#define ARITHMETIC_TYPE_INSTANCES(T,C,S,B) \-INSTANCE_NUM(T) ; \-INSTANCE_REAL(T) ; \-INSTANCE_READ(T,B) ; \-INSTANCE_SHOW(T,B) ; \-INSTANCE_ENUM(T) ; \-INSTANCE_STORABLE(T) ; \-INSTANCE_TYPEABLE0(T,C,S) ;--#define INTEGRAL_TYPE_INSTANCES(T,C,S,B) \-INSTANCE_BOUNDED(T) ; \-INSTANCE_INTEGRAL(T) ; \-INSTANCE_BITS(T)--#define ARITHMETIC_TYPE(T,C,S,B) \-NEWTYPE_TYPE(T,B) ; \-ARITHMETIC_TYPE_INSTANCES(T,C,S,B) ;--#define INTEGRAL_TYPE(T,C,S,B) \-ARITHMETIC_TYPE(T,C,S,B) ; \-INTEGRAL_TYPE_INSTANCES(T,C,S,B)--#define FLOATING_TYPE(T,C,S,B) \-ARITHMETIC_TYPE(T,C,S,B) ; \-INSTANCE_FRACTIONAL(T) ; \-INSTANCE_FLOATING(T) ; \-INSTANCE_REALFRAC(T) ; \-INSTANCE_REALFLOAT(T)--#ifndef __GLASGOW_HASKELL__-#define fakeMap map-#endif--#define INSTANCE_READ(T,B) \-instance Read T where { \- readsPrec p s = fakeMap (\(x, t) -> (T x, t)) (readsPrec p s) }--#define INSTANCE_SHOW(T,B) \-instance Show T where { \- showsPrec p (T x) = showsPrec p x }--#define INSTANCE_NUM(T) \-instance Num T where { \- (T i) + (T j) = T (i + j) ; \- (T i) - (T j) = T (i - j) ; \- (T i) * (T j) = T (i * j) ; \- negate (T i) = T (negate i) ; \- abs (T i) = T (abs i) ; \- signum (T i) = T (signum i) ; \- fromInteger x = T (fromInteger x) }--#define INSTANCE_EQ(T) \-instance Eq T where { \- (T x1) == (T x2) = x1 == x2 }--#define INSTANCE_ORD(T) \-instance Ord T where { \- (T x1) `compare` (T x2) = x1 `compare` x2 }--#define INSTANCE_BOUNDED(T) \-instance Bounded T where { \- minBound = T minBound ; \- maxBound = T maxBound }--#define INSTANCE_ENUM(T) \-instance Enum T where { \- succ (T i) = T (succ i) ; \- pred (T i) = T (pred i) ; \- toEnum x = T (toEnum x) ; \- fromEnum (T i) = fromEnum i ; \- enumFrom (T i) = fakeMap T (enumFrom i) ; \- enumFromThen (T i) (T j) = fakeMap T (enumFromThen i j) ; \- enumFromTo (T i) (T j) = fakeMap T (enumFromTo i j) ; \- enumFromThenTo (T i) (T j) (T k) = fakeMap T (enumFromThenTo i j k) }--#define INSTANCE_REAL(T) \-instance Real T where { \- toRational (T i) = toRational i }--#define INSTANCE_INTEGRAL(T) \-instance Integral T where { \- (T i) `quot` (T j) = T (i `quot` j) ; \- (T i) `rem` (T j) = T (i `rem` j) ; \- (T i) `div` (T j) = T (i `div` j) ; \- (T i) `mod` (T j) = T (i `mod` j) ; \- (T i) `quotRem` (T j) = let (q,r) = i `quotRem` j in (T q, T r) ; \- (T i) `divMod` (T j) = let (d,m) = i `divMod` j in (T d, T m) ; \- toInteger (T i) = toInteger i }--#define INSTANCE_BITS(T) \-instance Bits T where { \- (T x) .&. (T y) = T (x .&. y) ; \- (T x) .|. (T y) = T (x .|. y) ; \- (T x) `xor` (T y) = T (x `xor` y) ; \- complement (T x) = T (complement x) ; \- shift (T x) n = T (shift x n) ; \- rotate (T x) n = T (rotate x n) ; \- bit n = T (bit n) ; \- setBit (T x) n = T (setBit x n) ; \- clearBit (T x) n = T (clearBit x n) ; \- complementBit (T x) n = T (complementBit x n) ; \- testBit (T x) n = testBit x n ; \- bitSize (T x) = bitSize x ; \- isSigned (T x) = isSigned x }--#define INSTANCE_FRACTIONAL(T) \-instance Fractional T where { \- (T x) / (T y) = T (x / y) ; \- recip (T x) = T (recip x) ; \- fromRational r = T (fromRational r) }--#define INSTANCE_FLOATING(T) \-instance Floating T where { \- pi = pi ; \- exp (T x) = T (exp x) ; \- log (T x) = T (log x) ; \- sqrt (T x) = T (sqrt x) ; \- (T x) ** (T y) = T (x ** y) ; \- (T x) `logBase` (T y) = T (x `logBase` y) ; \- sin (T x) = T (sin x) ; \- cos (T x) = T (cos x) ; \- tan (T x) = T (tan x) ; \- asin (T x) = T (asin x) ; \- acos (T x) = T (acos x) ; \- atan (T x) = T (atan x) ; \- sinh (T x) = T (sinh x) ; \- cosh (T x) = T (cosh x) ; \- tanh (T x) = T (tanh x) ; \- asinh (T x) = T (asinh x) ; \- acosh (T x) = T (acosh x) ; \- atanh (T x) = T (atanh x) }--#define INSTANCE_REALFRAC(T) \-instance RealFrac T where { \- properFraction (T x) = let (m,y) = properFraction x in (m, T y) ; \- truncate (T x) = truncate x ; \- round (T x) = round x ; \- ceiling (T x) = ceiling x ; \- floor (T x) = floor x }--#define INSTANCE_REALFLOAT(T) \-instance RealFloat T where { \- floatRadix (T x) = floatRadix x ; \- floatDigits (T x) = floatDigits x ; \- floatRange (T x) = floatRange x ; \- decodeFloat (T x) = decodeFloat x ; \- encodeFloat m n = T (encodeFloat m n) ; \- exponent (T x) = exponent x ; \- significand (T x) = T (significand x) ; \- scaleFloat n (T x) = T (scaleFloat n x) ; \- isNaN (T x) = isNaN x ; \- isInfinite (T x) = isInfinite x ; \- isDenormalized (T x) = isDenormalized x ; \- isNegativeZero (T x) = isNegativeZero x ; \- isIEEE (T x) = isIEEE x ; \- (T x) `atan2` (T y) = T (x `atan2` y) }--#define INSTANCE_STORABLE(T) \-instance Storable T where { \- sizeOf (T x) = sizeOf x ; \- alignment (T x) = alignment x ; \- peekElemOff a i = liftM T (peekElemOff (castPtr a) i) ; \- pokeElemOff a i (T x) = pokeElemOff (castPtr a) i x }--#else /* __GLASGOW_HASKELL__ */---- // GHC can derive any class for a newtype, so we make use of that here...--#define ARITHMETIC_CLASSES Eq,Ord,Num,Enum,Storable,Real-#define INTEGRAL_CLASSES Bounded,Integral,Bits-#define FLOATING_CLASSES Fractional,Floating,RealFrac,RealFloat--#define ARITHMETIC_TYPE(T,C,S,B) \-newtype T = T B deriving (ARITHMETIC_CLASSES); \-INSTANCE_READ(T,B); \-INSTANCE_SHOW(T,B); \-INSTANCE_TYPEABLE0(T,C,S) ;--#define INTEGRAL_TYPE(T,C,S,B) \-newtype T = T B deriving (ARITHMETIC_CLASSES, INTEGRAL_CLASSES); \-INSTANCE_READ(T,B); \-INSTANCE_SHOW(T,B); \-INSTANCE_TYPEABLE0(T,C,S) ;--#define FLOATING_TYPE(T,C,S,B) \-newtype T = T B deriving (ARITHMETIC_CLASSES, FLOATING_CLASSES); \-INSTANCE_READ(T,B); \-INSTANCE_SHOW(T,B); \-INSTANCE_TYPEABLE0(T,C,S) ;--#define INSTANCE_READ(T,B) \-instance Read T where { \- readsPrec = unsafeCoerce# (readsPrec :: Int -> ReadS B); \- readList = unsafeCoerce# (readList :: ReadS [B]); }--#define INSTANCE_SHOW(T,B) \-instance Show T where { \- showsPrec = unsafeCoerce# (showsPrec :: Int -> B -> ShowS); \- show = unsafeCoerce# (show :: B -> String); \- showList = unsafeCoerce# (showList :: [B] -> ShowS); }--#endif /* __GLASGOW_HASKELL__ */--#endif
@@ -1,757 +0,0 @@-/* ------------------------------------------------------------------------------ *- * (c) The University of Glasgow 2001-2004- *- * Definitions for package `base' which are visible in Haskell land.- *- * Adapted for use in EHC- *- * ---------------------------------------------------------------------------*/--#ifndef __HSBASE_H__-#define __HSBASE_H__--#include "HsBaseConfig.h"-#ifdef __UHC_BUILDS_O__-#include "rts.h"-#endif--/* ultra-evil... */-#undef PACKAGE_BUGREPORT-#undef PACKAGE_NAME-#undef PACKAGE_STRING-#undef PACKAGE_TARNAME-#undef PACKAGE_VERSION--/* Needed to get the macro version of errno on some OSs (eg. Solaris).- We must do this, because these libs are only compiled once, but- must work in both single-threaded and multi-threaded programs. */-#define _REENTRANT 1--#ifndef __UHC__-#include "HsFFI.h"-#endif /* !__UHC__ */--#include <stdio.h>-#include <stdlib.h>-#include <math.h>--#if HAVE_SYS_TYPES_H-#include <sys/types.h>-#endif-#if HAVE_UNISTD_H-#include <unistd.h>-#endif-#if HAVE_SYS_STAT_H-#include <sys/stat.h>-#endif-#if HAVE_FCNTL_H-# include <fcntl.h>-#endif-#if HAVE_TERMIOS_H-#include <termios.h>-#endif-#if HAVE_SIGNAL_H-#include <signal.h>-/* Ultra-ugly: OpenBSD uses broken macros for sigemptyset and sigfillset (missing casts) */-#if __OpenBSD__-#undef sigemptyset-#undef sigfillset-#endif-#endif-#if HAVE_ERRNO_H-#include <errno.h>-#endif-#if HAVE_STRING_H-#include <string.h>-#endif-#if HAVE_DIRENT_H-#include <dirent.h>-#endif-#if HAVE_UTIME_H-#include <utime.h>-#endif-#if HAVE_SYS_UTSNAME_H-#include <sys/utsname.h>-#endif-#if HAVE_GETTIMEOFDAY-# if HAVE_SYS_TIME_H-# include <sys/time.h>-# endif-#elif HAVE_GETCLOCK-# if HAVE_SYS_TIMERS_H-# define POSIX_4D9 1-# include <sys/timers.h>-# endif-#endif-#if HAVE_TIME_H-#include <time.h>-#endif-#if HAVE_SYS_TIMEB_H-#include <sys/timeb.h>-#endif-#if HAVE_WINDOWS_H-#include <windows.h>-#endif-#if HAVE_SYS_TIMES_H-#include <sys/times.h>-#endif-#if HAVE_WINSOCK_H && defined(__MINGW32__)-#include <winsock.h>-#endif-#if HAVE_LIMITS_H-#include <limits.h>-#endif-#if HAVE_WCTYPE_H-#include <wctype.h>-#endif-#if HAVE_INTTYPES_H-# include <inttypes.h>-#elif HAVE_STDINT_H-# include <stdint.h>-#endif--#if !defined(__MINGW32__) && !defined(irix_HOST_OS)-# if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-# endif-#endif--#if !HAVE_GETRUSAGE && HAVE_SYS_SYSCALL_H-# include <sys/syscall.h>-# if defined(SYS_GETRUSAGE) /* hpux_HOST_OS */-# define getrusage(a, b) syscall(SYS_GETRUSAGE, a, b)-# define HAVE_GETRUSAGE 1-# endif-#endif--/* For System */-#if HAVE_SYS_WAIT_H-#include <sys/wait.h>-#endif-#if HAVE_VFORK_H-#include <vfork.h>-#endif--#ifndef __UHC__-#include "dirUtils.h"-#endif-#ifndef __UHC__-#include "WCsubst.h"-#endif /* !__UHC__ */--#if defined(__MINGW32__)-/* in Win32Utils.c */-extern void maperrno (void);-extern HsWord64 getUSecOfDay(void);-#endif--#if defined(__MINGW32__)-#include <io.h>-#include <fcntl.h>-#include <shlobj.h>-#include <share.h>-#endif--#if HAVE_SYS_SELECT_H-#include <sys/select.h>-#endif--/* in inputReady.c */-extern int fdReady(int fd, int write, int msecs, int isSock);--#ifndef __UHC__-/* in Signals.c */-extern HsInt nocldstop;-#endif /* !__UHC__ */--#ifndef __UHC__-/* ------------------------------------------------------------------------------ 64-bit operations, defined in longlong.c- -------------------------------------------------------------------------- */--#ifdef SUPPORT_LONG_LONGS--HsBool hs_gtWord64 (HsWord64, HsWord64);-HsBool hs_geWord64 (HsWord64, HsWord64);-HsBool hs_eqWord64 (HsWord64, HsWord64);-HsBool hs_neWord64 (HsWord64, HsWord64);-HsBool hs_ltWord64 (HsWord64, HsWord64);-HsBool hs_leWord64 (HsWord64, HsWord64);--HsBool hs_gtInt64 (HsInt64, HsInt64);-HsBool hs_geInt64 (HsInt64, HsInt64);-HsBool hs_eqInt64 (HsInt64, HsInt64);-HsBool hs_neInt64 (HsInt64, HsInt64);-HsBool hs_ltInt64 (HsInt64, HsInt64);-HsBool hs_leInt64 (HsInt64, HsInt64);--HsWord64 hs_remWord64 (HsWord64, HsWord64);-HsWord64 hs_quotWord64 (HsWord64, HsWord64);--HsInt64 hs_remInt64 (HsInt64, HsInt64);-HsInt64 hs_quotInt64 (HsInt64, HsInt64);-HsInt64 hs_negateInt64 (HsInt64);-HsInt64 hs_plusInt64 (HsInt64, HsInt64);-HsInt64 hs_minusInt64 (HsInt64, HsInt64);-HsInt64 hs_timesInt64 (HsInt64, HsInt64);--HsWord64 hs_and64 (HsWord64, HsWord64);-HsWord64 hs_or64 (HsWord64, HsWord64);-HsWord64 hs_xor64 (HsWord64, HsWord64);-HsWord64 hs_not64 (HsWord64);--HsWord64 hs_uncheckedShiftL64 (HsWord64, HsInt);-HsWord64 hs_uncheckedShiftRL64 (HsWord64, HsInt);-HsInt64 hs_uncheckedIShiftL64 (HsInt64, HsInt);-HsInt64 hs_uncheckedIShiftRA64 (HsInt64, HsInt);-HsInt64 hs_uncheckedIShiftRL64 (HsInt64, HsInt);--HsInt64 hs_intToInt64 (HsInt);-HsInt hs_int64ToInt (HsInt64);-HsWord64 hs_int64ToWord64 (HsInt64);-HsWord64 hs_wordToWord64 (HsWord);-HsWord hs_word64ToWord (HsWord64);-HsInt64 hs_word64ToInt64 (HsWord64);--HsWord64 hs_integerToWord64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);-HsInt64 hs_integerToInt64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);--#endif /* SUPPORT_LONG_LONGS */-#endif /* !__UHC__ */--/* ------------------------------------------------------------------------------ INLINE functions.-- These functions are given as inlines here for when compiling via C,- but we also generate static versions into the cbits library for- when compiling to native code.- -------------------------------------------------------------------------- */--#ifndef INLINE-# if defined(_MSC_VER)-# define INLINE extern __inline-# else-# define INLINE static inline-# endif-#endif--INLINE int __hscore_get_errno(void) { return errno; }-INLINE void __hscore_set_errno(int e) { errno = e; }--#if !defined(_MSC_VER)-INLINE int __hscore_s_isreg(mode_t m) { return S_ISREG(m); }-INLINE int __hscore_s_isdir(mode_t m) { return S_ISDIR(m); }-INLINE int __hscore_s_isfifo(mode_t m) { return S_ISFIFO(m); }-INLINE int __hscore_s_isblk(mode_t m) { return S_ISBLK(m); }-INLINE int __hscore_s_ischr(mode_t m) { return S_ISCHR(m); }-#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)-INLINE int __hscore_s_issock(mode_t m) { return S_ISSOCK(m); }-#endif-#endif--#if ( !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32) ) || defined(__CYGWIN__)-INLINE int-__hscore_sigemptyset( sigset_t *set )-{ return sigemptyset(set); }--INLINE int-__hscore_sigfillset( sigset_t *set )-{ return sigfillset(set); }--INLINE int-__hscore_sigaddset( sigset_t * set, int s )-{ return sigaddset(set,s); }--INLINE int-__hscore_sigdelset( sigset_t * set, int s )-{ return sigdelset(set,s); }--INLINE int-__hscore_sigismember( sigset_t * set, int s )-{ return sigismember(set,s); }-#endif--INLINE void *-__hscore_memcpy_dst_off( char *dst, int dst_off, char *src, size_t sz )-{ return memcpy(dst+dst_off, src, sz); }--INLINE void *-__hscore_memcpy_src_off( char *dst, char *src, int src_off, size_t sz )-{ return memcpy(dst, src+src_off, sz); }--INLINE HsBool-__hscore_supportsTextMode()-{-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)- return HS_BOOL_FALSE;-#else- return HS_BOOL_TRUE;-#endif-}--INLINE HsInt-__hscore_bufsiz()-{- return BUFSIZ;-}--INLINE int-__hscore_seek_cur()-{- return SEEK_CUR;-}--INLINE int-__hscore_o_binary()-{-#if defined(_MSC_VER)- return O_BINARY;-#else- return CONST_O_BINARY;-#endif-}--INLINE int-__hscore_o_rdonly()-{-#ifdef O_RDONLY- return O_RDONLY;-#else- return 0;-#endif-}--INLINE int-__hscore_o_wronly( void )-{-#ifdef O_WRONLY- return O_WRONLY;-#else- return 0;-#endif-}--INLINE int-__hscore_o_rdwr( void )-{-#ifdef O_RDWR- return O_RDWR;-#else- return 0;-#endif-}--INLINE int-__hscore_o_append( void )-{-#ifdef O_APPEND- return O_APPEND;-#else- return 0;-#endif-}--INLINE int-__hscore_o_creat( void )-{-#ifdef O_CREAT- return O_CREAT;-#else- return 0;-#endif-}--INLINE int-__hscore_o_excl( void )-{-#ifdef O_EXCL- return O_EXCL;-#else- return 0;-#endif-}--INLINE int-__hscore_o_trunc( void )-{-#ifdef O_TRUNC- return O_TRUNC;-#else- return 0;-#endif-}--INLINE int-__hscore_o_noctty( void )-{-#ifdef O_NOCTTY- return O_NOCTTY;-#else- return 0;-#endif-}--INLINE int-__hscore_o_nonblock( void )-{-#ifdef O_NONBLOCK- return O_NONBLOCK;-#else- return 0;-#endif-}--INLINE int-__hscore_seek_set( void )-{- return SEEK_SET;-}--INLINE int-__hscore_seek_end( void )-{- return SEEK_END;-}--INLINE int-__hscore_ftruncate( int fd, off_t where )-{-#if defined(HAVE_FTRUNCATE)- return ftruncate(fd,where);-#elif defined(HAVE__CHSIZE)- return _chsize(fd,where);-#else-// ToDo: we should use _chsize_s() on Windows which allows a 64-bit-// offset, but it doesn't seem to be available from mingw at this time -// --SDM (01/2008)-#error at least ftruncate or _chsize functions are required to build-#endif-}--#ifndef __UHC__-INLINE int-__hscore_setmode( int fd, HsBool toBin )-{-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)- return setmode(fd,(toBin == HS_BOOL_TRUE) ? _O_BINARY : _O_TEXT);-#else- return 0;-#endif-}-#endif /* !__UHC__ */--#if __GLASGOW_HASKELL__--INLINE int-__hscore_PrelHandle_write( int fd, void *ptr, HsInt off, int sz )-{- return write(fd,(char *)ptr + off, sz);-}--INLINE int-__hscore_PrelHandle_read( int fd, void *ptr, HsInt off, int sz )-{- return read(fd,(char *)ptr + off, sz);--}--#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)-INLINE int-__hscore_PrelHandle_send( int fd, void *ptr, HsInt off, int sz )-{- return send(fd,(char *)ptr + off, sz, 0);-}--INLINE int-__hscore_PrelHandle_recv( int fd, void *ptr, HsInt off, int sz )-{- return recv(fd,(char *)ptr + off, sz, 0);-}-#endif--#endif /* __GLASGOW_HASKELL__ */--INLINE int-__hscore_mkdir( char *pathName, int mode )-{-#if ( defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) ) && !defined(__CYGWIN__)- return mkdir(pathName);-#else- return mkdir(pathName,mode);-#endif-}--INLINE int-__hscore_lstat( const char *fname, struct stat *st )-{-#if HAVE_LSTAT- return lstat(fname, st);-#else- return stat(fname, st);-#endif-}--INLINE char *-__hscore_d_name( struct dirent* d )-{- return (d->d_name);-}--INLINE int-__hscore_end_of_dir( void )-{- return READDIR_ERRNO_EOF;-}--INLINE void-__hscore_free_dirent(struct dirent *dEnt)-{-#if HAVE_READDIR_R- free(dEnt);-#endif-}--#if defined(__MINGW32__)-// We want the versions of stat/fstat/lseek that use 64-bit offsets,-// and you have to ask for those explicitly. Unfortunately there-// doesn't seem to be a 64-bit version of truncate/ftruncate, so while-// hFileSize and hSeek will work with large files, hSetFileSize will not.-#define stat(file,buf) _stati64(file,buf)-#define fstat(fd,buf) _fstati64(fd,buf)-typedef struct _stati64 struct_stat;-typedef off64_t stsize_t;-#else-typedef struct stat struct_stat;-typedef off_t stsize_t;-#endif--INLINE HsInt-__hscore_sizeof_stat( void )-{- return sizeof(struct_stat);-}--INLINE time_t __hscore_st_mtime ( struct_stat* st ) { return st->st_mtime; }-INLINE stsize_t __hscore_st_size ( struct_stat* st ) { return st->st_size; }-#if !defined(_MSC_VER)-INLINE mode_t __hscore_st_mode ( struct_stat* st ) { return st->st_mode; }-INLINE dev_t __hscore_st_dev ( struct_stat* st ) { return st->st_dev; }-INLINE ino_t __hscore_st_ino ( struct_stat* st ) { return st->st_ino; }-#endif--#if HAVE_TERMIOS_H-INLINE tcflag_t __hscore_lflag( struct termios* ts ) { return ts->c_lflag; }--INLINE void-__hscore_poke_lflag( struct termios* ts, tcflag_t t ) { ts->c_lflag = t; }--INLINE unsigned char*-__hscore_ptr_c_cc( struct termios* ts )-{ return (unsigned char*) &ts->c_cc; }--INLINE HsInt-__hscore_sizeof_termios( void )-{-#ifndef __MINGW32__- return sizeof(struct termios);-#else- return 0;-#endif-}-#endif--//sizeof_sigset_t is also use on windows systems which define tcflat_t. Why exclude it?-// #if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32)-INLINE HsInt-__hscore_sizeof_sigset_t( void )-{- return sizeof(sigset_t);-}-// #endif--INLINE int-__hscore_echo( void )-{-#ifdef ECHO- return ECHO;-#else- return 0;-#endif--}--INLINE int-__hscore_tcsanow( void )-{-#ifdef TCSANOW- return TCSANOW;-#else- return 0;-#endif--}--INLINE int-__hscore_icanon( void )-{-#ifdef ICANON- return ICANON;-#else- return 0;-#endif-}--INLINE int __hscore_vmin( void )-{-#ifdef VMIN- return VMIN;-#else- return 0;-#endif-}--INLINE int __hscore_vtime( void )-{-#ifdef VTIME- return VTIME;-#else- return 0;-#endif-}--INLINE int __hscore_sigttou( void )-{-#ifdef SIGTTOU- return SIGTTOU;-#else- return 0;-#endif-}--INLINE int __hscore_sig_block( void )-{-#ifdef SIG_BLOCK- return SIG_BLOCK;-#else- return 0;-#endif-}--INLINE int __hscore_sig_setmask( void )-{-#ifdef SIG_SETMASK- return SIG_SETMASK;-#else- return 0;-#endif-}--INLINE int-__hscore_f_getfl( void )-{-#ifdef F_GETFL- return F_GETFL;-#else- return 0;-#endif-}--INLINE int-__hscore_f_setfl( void )-{-#ifdef F_SETFL- return F_SETFL;-#else- return 0;-#endif-}--// defined in rts/RtsStartup.c.-extern void* __hscore_get_saved_termios(int fd);-extern void __hscore_set_saved_termios(int fd, void* ts);--INLINE int __hscore_hs_fileno (FILE *f) { return fileno (f); }--INLINE int __hscore_open(char *file, int how, mode_t mode) {-#ifdef __MINGW32__- if ((how & O_WRONLY) || (how & O_RDWR) || (how & O_APPEND))- return _sopen(file,how,_SH_DENYRW,mode);- else- return _sopen(file,how,_SH_DENYWR,mode);-#else- return open(file,how,mode);-#endif-}--// These are wrapped because on some OSs (eg. Linux) they are-// macros which redirect to the 64-bit-off_t versions when large file-// support is enabled.-//-#if defined(__MINGW32__)-INLINE off64_t __hscore_lseek(int fd, off64_t off, int whence) {- return (_lseeki64(fd,off,whence));-}-#else-INLINE off_t __hscore_lseek(int fd, off_t off, int whence) {- return (lseek(fd,off,whence));-}-#endif--INLINE HsInt __hscore_stat(char *file, struct_stat *buf) {- return (stat(file,buf));-}--INLINE HsInt __hscore_fstat(int fd, struct_stat *buf) {- return (fstat(fd,buf));-}--// select-related stuff--#if !defined(__MINGW32__)-INLINE int hsFD_SETSIZE(void) { return FD_SETSIZE; }-INLINE int hsFD_ISSET(int fd, fd_set *fds) { return FD_ISSET(fd, fds); }-INLINE void hsFD_SET(int fd, fd_set *fds) { FD_SET(fd, fds); }-INLINE HsInt sizeof_fd_set(void) { return sizeof(fd_set); }-extern void hsFD_ZERO(fd_set *fds);-#endif--// gettimeofday()-related--#if !defined(__MINGW32__)--INLINE HsInt sizeofTimeVal(void) { return sizeof(struct timeval); }--INLINE HsWord64 getUSecOfDay(void)-{- struct timeval tv;- gettimeofday(&tv, (struct timezone *) NULL);- // Don't forget to cast *before* doing the arithmetic, otherwise- // the arithmetic happens at the type of tv_sec, which is probably- // only 'int'.- return ((HsWord64)tv.tv_sec * 1000000 + (HsWord64)tv.tv_usec);-}--INLINE void setTimevalTicks(struct timeval *p, HsWord64 usecs)-{- p->tv_sec = usecs / 1000000;- p->tv_usec = usecs % 1000000;-}-#endif /* !defined(__MINGW32__) */--/* ToDo: write a feature test that doesn't assume 'environ' to- * be in scope at link-time. */-extern char** environ;-INLINE char **__hscore_environ() { return environ; }--/* lossless conversions between pointers and integral types */-INLINE void * __hscore_from_uintptr(uintptr_t n) { return (void *)n; }-INLINE void * __hscore_from_intptr (intptr_t n) { return (void *)n; }-INLINE uintptr_t __hscore_to_uintptr (void *p) { return (uintptr_t)p; }-INLINE intptr_t __hscore_to_intptr (void *p) { return (intptr_t)p; }--void errorBelch2(const char*s, char *t);-void debugBelch2(const char*s, char *t);--#endif /* __HSBASE_H__ */-
@@ -1,944 +0,0 @@-/* ehclib/uhcbase/include/HsBaseConfig.h. Generated from HsBaseConfig.h.in by configure. */-#ifndef HSBASECONFIG_H-#define HSBASECONFIG_H--#include "MachDeps.h"--/********************************************************************/-/**** Sizes ****/-/********************************************************************/--#if SIZEOF_INTPTR_T == 8-#define HTYPE_INTPTR_T Int64-#define HTYPE_UINTPTR_T Word64-#else-#define HTYPE_INTPTR_T Int32-#define HTYPE_UINTPTR_T Word32-#endif--/* also here: typedef int sig_atomic_t- */-#if SIZEOF_INT == 8-#define HTYPE_INT Int64-#define HTYPE_UNSIGNED_INT Word64-#define HTYPE_SIG_ATOMIC_T Word64-#else-#define HTYPE_INT Int32-#define HTYPE_UNSIGNED_INT Word32-#define HTYPE_SIG_ATOMIC_T Word32-#endif--#if SIZEOF_LONG == 8-#define HTYPE_LONG Int64-#define HTYPE_UNSIGNED_LONG Word64-#else-#define HTYPE_LONG Int32-#define HTYPE_UNSIGNED_LONG Word32-#endif--#if SIZEOF_VOID_P == 8-#define HTYPE_PTRDIFF_T Int64-#else-#define HTYPE_PTRDIFF_T Int32-#endif--#if SIZEOF_CLOCK_T == 8-#define HTYPE_CLOCK_T Word64-#else-#define HTYPE_CLOCK_T Word32-#endif--#if SIZEOF_TIME_T == 8-#define HTYPE_TIME_T Word64-#else-#define HTYPE_TIME_T Word32-#endif--#if SIZEOF_USECONDS_T == 8-#define HTYPE_USECONDS_T Word64-#else-#define HTYPE_USECONDS_T Word32-#endif--#if SIZEOF_SIZE_T == 8-#define HTYPE_SIZE_T Word64-#else-#define HTYPE_SIZE_T Word32-#endif--#if SIZEOF_WCHAR_T == 1-#define HTYPE_WCHAR_T Word8-#elif SIZEOF_WCHAR_T == 2-#define HTYPE_WCHAR_T Word16-#else-#define HTYPE_WCHAR_T Word32-#endif----/* Define to Haskell type for char */-#define HTYPE_CHAR Int8--/* Define to Haskell type for double */-#define HTYPE_DOUBLE Double--/* Define to Haskell type for float */-#define HTYPE_FLOAT Float--/* Define to Haskell type for intmax_t */-#define HTYPE_INTMAX_T Int64--/* Define to Haskell type for long long */-#define HTYPE_LONG_LONG Int64--/* Define to Haskell type for short */-#define HTYPE_SHORT Int16--/* Define to Haskell type for signed char */-#define HTYPE_SIGNED_CHAR Int8--/* Define to Haskell type for uintmax_t */-#define HTYPE_UINTMAX_T Word64--/* Define to Haskell type for unsigned char */-#define HTYPE_UNSIGNED_CHAR Word8--/* Define to Haskell type for unsigned long long */-#define HTYPE_UNSIGNED_LONG_LONG Word64--/* Define to Haskell type for unsigned short */-#define HTYPE_UNSIGNED_SHORT Word16----/********************************************************************/-/**** System tupes ****/-/********************************************************************/--#ifdef SIZEOF_DEV_T-# if SIZEOF_DEV_T == 8-# define HTYPE_DEV_T Word64-# elif SIZEOF_DEV_T == 4-# define HTYPE_DEV_T Word32-# elif SIZEOF_DEV_T == 2-# define HTYPE_DEV_T Word16-# else-# endif-#endif--#ifdef SIZEOF_INO_T-# if SIZEOF_INO_T == 8-# define HTYPE_INO_T Word64-# elif SIZEOF_INO_T == 4-# define HTYPE_INO_T Word32-# elif SIZEOF_INO_T == 2-# define HTYPE_INO_T Word16-# else-# endif-#endif--#ifdef SIZEOF_MODE_T-# if SIZEOF_MODE_T == 8-# define HTYPE_MODE_T Word64-# elif SIZEOF_MODE_T == 4-# define HTYPE_MODE_T Word32-# elif SIZEOF_MODE_T == 2-# define HTYPE_MODE_T Word16-# else-# endif-#endif--#ifdef SIZEOF_OFF_T-# if SIZEOF_OFF_T == 8-# define HTYPE_OFF_T Word64-# elif SIZEOF_OFF_T == 4-# define HTYPE_OFF_T Word32-# elif SIZEOF_OFF_T == 2-# define HTYPE_OFF_T Word16-# else-# endif-#endif--#ifdef SIZEOF_PID_T-# if SIZEOF_PID_T == 8-# define HTYPE_PID_T Word64-# elif SIZEOF_PID_T == 4-# define HTYPE_PID_T Word32-# elif SIZEOF_PID_T == 2-# define HTYPE_PID_T Word16-# else-# endif-#endif--#ifdef SIZEOF_SSIZE_T-# if SIZEOF_SSIZE_T == 8-# define HTYPE_SSIZE_T Word64-# elif SIZEOF_SSIZE_T == 4-# define HTYPE_SSIZE_T Word32-# elif SIZEOF_SSIZE_T == 2-# define HTYPE_SSIZE_T Word16-# else-# endif-#endif--#ifdef SIZEOF_GID_T-# if SIZEOF_GID_T == 8-# define HTYPE_GID_T Word64-# elif SIZEOF_GID_T == 4-# define HTYPE_GID_T Word32-# elif SIZEOF_GID_T == 2-# define HTYPE_GID_T Word16-# else-# endif-#endif--#ifdef SIZEOF_NLINK_T-# if SIZEOF_NLINK_T == 8-# define HTYPE_NLINK_T Word64-# elif SIZEOF_NLINK_T == 4-# define HTYPE_NLINK_T Word32-# elif SIZEOF_NLINK_T == 2-# define HTYPE_NLINK_T Word16-# else-# endif-#endif--#ifdef SIZEOF_UID_T-# if SIZEOF_UID_T == 8-# define HTYPE_UID_T Word64-# elif SIZEOF_UID_T == 4-# define HTYPE_UID_T Word32-# elif SIZEOF_UID_T == 2-# define HTYPE_UID_T Word16-# else-# endif-#endif--#ifdef SIZEOF_CC_T-# if SIZEOF_CC_T == 8-# define HTYPE_CC_T Word64-# elif SIZEOF_CC_T == 4-# define HTYPE_CC_T Word32-# elif SIZEOF_CC_T == 2-# define HTYPE_CC_T Word16-# else-# endif-#endif--#ifdef SIZEOF_SPEED_T-# if SIZEOF_SPEED_T == 8-# define HTYPE_SPEED_T Word64-# elif SIZEOF_SPEED_T == 4-# define HTYPE_SPEED_T Word32-# elif SIZEOF_SPEED_T == 2-# define HTYPE_SPEED_T Word16-# else-# endif-#endif--#ifdef SIZEOF_TCFLAG_T-# if SIZEOF_TCFLAG_T == 8-# define HTYPE_TCFLAG_T Word64-# elif SIZEOF_TCFLAG_T == 4-# define HTYPE_TCFLAG_T Word32-# elif SIZEOF_TCFLAG_T == 2-# define HTYPE_TCFLAG_T Word16-# else-# endif-#endif--#ifdef SIZEOF_RLIM_T-# if SIZEOF_RLIM_T == 8-# define HTYPE_RLIM_T Word64-# elif SIZEOF_RLIM_T == 4-# define HTYPE_RLIM_T Word32-# elif SIZEOF_RLIM_T == 2-# define HTYPE_RLIM_T Word16-# else-# endif-#endif--/********************************************************************/-/**** Presence of include files ****/-/********************************************************************/--#define HAVE_DIRENT_H 1-#define HAVE_ERRNO_H 1-#define HAVE_FCNTL_H 1-#define HAVE_INTTYPES_H 1-#define HAVE_LIMITS_H 1-#define HAVE_SIGNAL_H 1-#define HAVE_STDINT_H 1-#define HAVE_STRING_H 1-#define HAVE_SYS_RESOURCE_H 1-#define HAVE_SYS_SELECT_H 1-#define HAVE_SYS_STAT_H 1-#define HAVE_SYS_SYSCALL_H 1-#define HAVE_SYS_TIME_H 1-#define HAVE_SYS_TIMEB_H 1-/* #undef HAVE_SYS_TIMERS_H */-#define HAVE_SYS_TIMES_H 1-#define HAVE_SYS_TYPES_H 1-#define HAVE_SYS_UTSNAME_H 1-#define HAVE_SYS_WAIT_H 1-#define HAVE_TERMIOS_H 1-#define HAVE_TIME_H 1-#define HAVE_UNISTD_H 1-#define HAVE_UTIME_H 1-/* #undef HAVE_VFORK_H */-#define HAVE_WCTYPE_H 1-/* #undef HAVE_WINDOWS_H */-/* #undef HAVE_WINSOCK_H */--/* #undef HAVE__CHSIZE */-#define HAVE_FTRUNCATE 1-/* #undef HAVE_GETCLOCK */-#define HAVE_GETRUSAGE 1-#define HAVE_GETTIMEOFDAY 1-#define HAVE_LSTAT 1-#define HAVE_READDIR_R 1--/********************************************************************/-/**** Runtime types ****/-/********************************************************************/--#ifdef __UHC_BUILDS_O__--#if defined(__UHC_TARGET_BC__) || defined(__UHC_TARGET_C__)-// # define HsBool Word-// # define HsInt Word-// # define HsWord64 Word64-// # define HsWord32 Word32-// # define HsWord16 Word16-// # define HsWord8 Word8-// # ifdef __UHC_TARGET_BC__-// # define HS_BOOL_FALSE gb_False-// # define HS_BOOL_TRUE gb_True-// # else-// # define HS_BOOL_FALSE 0-// # define HS_BOOL_TRUE 1-// # endif-#endif /* __UHC_TARGET_BC__ */--#endif /* __UHC_BUILDS_O__ */--/********************************************************************/-/**** Read dir EOF error ****/-/********************************************************************/--/* See remarks in GHC, libraries/base/aclocal.m4: MinGW platform returns non 0 value. We ignore that */-#define READDIR_ERRNO_EOF 0--/********************************************************************/-/**** C errors ****/-/********************************************************************/--/* (1) Assume errno.h is already included */-/* (2) Error codes like EADV are not present on all platforms, so a dummy value is provided, this should be done for all codes */--/* The value of E2BIG. */-#if !defined(E2BIG)-#define E2BIG 10000-#endif-#define CONST_E2BIG E2BIG--/* The value of EACCES. */-#if !defined(EACCES)-#define EACCES 10000-#endif-#define CONST_EACCES EACCES--/* The value of EADDRINUSE. */-#if !defined(EADDRINUSE)-#define EADDRINUSE 10000-#endif-#define CONST_EADDRINUSE EADDRINUSE--/* The value of EADDRNOTAVAIL. */-#define CONST_EADDRNOTAVAIL EADDRNOTAVAIL--/* The value of EADV. */-#if !defined(EADV)-#define EADV 10000-#endif-#define CONST_EADV EADV--/* The value of EAFNOSUPPORT. */-#if !defined(EAFNOSUPPORT)-#define EAFNOSUPPORT 10000-#endif-#define CONST_EAFNOSUPPORT EAFNOSUPPORT--/* The value of EAGAIN. */-#if !defined(EAGAIN)-#define EAGAIN 10000-#endif-#define CONST_EAGAIN EAGAIN--/* The value of EALREADY. */-#if !defined(EALREADY)-#define EALREADY 10000-#endif-#define CONST_EALREADY EALREADY--/* The value of EBADF. */-#if !defined(EBADF)-#define EBADF 10000-#endif-#define CONST_EBADF EBADF--/* The value of EBADMSG. */-#if !defined(EBADMSG)-#define EBADMSG 10000-#endif-#define CONST_EBADMSG EBADMSG--/* The value of EBADRPC. */-#if !defined(EBADRPC)-#define EBADRPC 10000-#endif-#define CONST_EBADRPC EBADRPC--/* The value of EBUSY. */-#if !defined(EBUSY)-#define EBUSY 10000-#endif-#define CONST_EBUSY EBUSY--/* The value of ECHILD. */-#if !defined(ECHILD)-#define ECHILD 10000-#endif-#define CONST_ECHILD ECHILD--/* The value of ECOMM. */-#if !defined(ECOMM)-#define ECOMM 10000-#endif-#define CONST_ECOMM ECOMM--/* The value of ECONNABORTED. */-#if !defined(ECONNABORTED)-#define ECONNABORTED 10000-#endif-#define CONST_ECONNABORTED ECONNABORTED--/* The value of ECONNREFUSED. */-#if !defined(ECONNREFUSED)-#define ECONNREFUSED 10000-#endif-#define CONST_ECONNREFUSED ECONNREFUSED--/* The value of ECONNRESET. */-#if !defined(ECONNRESET)-#define ECONNRESET 10000-#endif-#define CONST_ECONNRESET ECONNRESET--/* The value of EDEADLK. */-#if !defined(EDEADLK)-#define EDEADLK 10000-#endif-#define CONST_EDEADLK EDEADLK--/* The value of EDESTADDRREQ. */-#if !defined(EDESTADDRREQ)-#define EDESTADDRREQ 10000-#endif-#define CONST_EDESTADDRREQ EDESTADDRREQ--/* The value of EDIRTY. */-#if !defined(EDIRTY)-#define EDIRTY 10000-#endif-#define CONST_EDIRTY EDIRTY--/* The value of EDOM. */-#if !defined(EDOM)-#define EDOM 10000-#endif-#define CONST_EDOM EDOM--/* The value of EDQUOT. */-#if !defined(EDQUOT)-#define EDQUOT 10000-#endif-#define CONST_EDQUOT EDQUOT--/* The value of EEXIST. */-#if !defined(EEXIST)-#define EEXIST 10000-#endif-#define CONST_EEXIST EEXIST--/* The value of EFAULT. */-#if !defined(EFAULT)-#define EFAULT 10000-#endif-#define CONST_EFAULT EFAULT--/* The value of EFBIG. */-#if !defined(EFBIG)-#define EFBIG 10000-#endif-#define CONST_EFBIG EFBIG--/* The value of EFTYPE. */-#if !defined(EFTYPE)-#define EFTYPE 10000-#endif-#define CONST_EFTYPE EFTYPE--/* The value of EHOSTDOWN. */-#if !defined(EHOSTDOWN)-#define EHOSTDOWN 10000-#endif-#define CONST_EHOSTDOWN EHOSTDOWN--/* The value of EHOSTUNREACH. */-#if !defined(EHOSTUNREACH)-#define EHOSTUNREACH 10000-#endif-#define CONST_EHOSTUNREACH EHOSTUNREACH--/* The value of EIDRM. */-#if !defined(EIDRM)-#define EIDRM 10000-#endif-#define CONST_EIDRM EIDRM--/* The value of EILSEQ. */-#if !defined(EILSEQ)-#define EILSEQ 10000-#endif-#define CONST_EILSEQ EILSEQ--/* The value of EINPROGRESS. */-#if !defined(EINPROGRESS)-#define EINPROGRESS 10000-#endif-#define CONST_EINPROGRESS EINPROGRESS--/* The value of EINTR. */-#if !defined(EINTR)-#define EINTR 10000-#endif-#define CONST_EINTR EINTR--/* The value of EINVAL. */-#if !defined(EINVAL)-#define EINVAL 10000-#endif-#define CONST_EINVAL EINVAL--/* The value of EIO. */-#if !defined(EIO)-#define EIO 10000-#endif-#define CONST_EIO EIO--/* The value of EISCONN. */-#if !defined(EISCONN)-#define EISCONN 10000-#endif-#define CONST_EISCONN EISCONN--/* The value of EISDIR. */-#if !defined(EISDIR)-#define EISDIR 10000-#endif-#define CONST_EISDIR EISDIR--/* The value of ELOOP. */-#if !defined(ELOOP)-#define ELOOP 10000-#endif-#define CONST_ELOOP ELOOP--/* The value of EMFILE. */-#if !defined(EMFILE)-#define EMFILE 10000-#endif-#define CONST_EMFILE EMFILE--/* The value of EMLINK. */-#if !defined(EMLINK)-#define EMLINK 10000-#endif-#define CONST_EMLINK EMLINK--/* The value of EMSGSIZE. */-#if !defined(EMSGSIZE)-#define EMSGSIZE 10000-#endif-#define CONST_EMSGSIZE EMSGSIZE--/* The value of EMULTIHOP. */-#if !defined(EMULTIHOP)-#define EMULTIHOP 10000-#endif-#define CONST_EMULTIHOP EMULTIHOP--/* The value of ENAMETOOLONG. */-#if !defined(ENAMETOOLONG)-#define ENAMETOOLONG 10000-#endif-#define CONST_ENAMETOOLONG ENAMETOOLONG--/* The value of ENETDOWN. */-#if !defined(ENETDOWN)-#define ENETDOWN 10000-#endif-#define CONST_ENETDOWN ENETDOWN--/* The value of ENETRESET. */-#if !defined(ENETRESET)-#define ENETRESET 10000-#endif-#define CONST_ENETRESET ENETRESET--/* The value of ENETUNREACH. */-#if !defined(ENETUNREACH)-#define ENETUNREACH 10000-#endif-#define CONST_ENETUNREACH ENETUNREACH--/* The value of ENFILE. */-#if !defined(ENFILE)-#define ENFILE 10000-#endif-#define CONST_ENFILE ENFILE--/* The value of ENOBUFS. */-#if !defined(ENOBUFS)-#define ENOBUFS 10000-#endif-#define CONST_ENOBUFS ENOBUFS--/* The value of ENOCIGAR. */-#if !defined(ENOCIGAR)-#define ENOCIGAR 10000-#endif-#define CONST_ENOCIGAR ENOCIGAR--/* The value of ENODATA. */-#if !defined(ENODATA)-#define ENODATA 10000-#endif-#define CONST_ENODATA ENODATA--/* The value of ENODEV. */-#if !defined(ENODEV)-#define ENODEV 10000-#endif-#define CONST_ENODEV ENODEV--/* The value of ENOENT. */-#if !defined(ENOENT)-#define ENOENT 10000-#endif-#define CONST_ENOENT ENOENT--/* The value of ENOEXEC. */-#if !defined(ENOEXEC)-#define ENOEXEC 10000-#endif-#define CONST_ENOEXEC ENOEXEC--/* The value of ENOLCK. */-#if !defined(ENOLCK)-#define ENOLCK 10000-#endif-#define CONST_ENOLCK ENOLCK--/* The value of ENOLINK. */-#if !defined(ENOLINK)-#define ENOLINK 10000-#endif-#define CONST_ENOLINK ENOLINK--/* The value of ENOMEM. */-#if !defined(ENOMEM)-#define ENOMEM 10000-#endif-#define CONST_ENOMEM ENOMEM--/* The value of ENOMSG. */-#if !defined(ENOMSG)-#define ENOMSG 10000-#endif-#define CONST_ENOMSG ENOMSG--/* The value of ENONET. */-#if !defined(ENONET)-#define ENONET 10000-#endif-#define CONST_ENONET ENONET--/* The value of ENOPROTOOPT. */-#if !defined(ENOPROTOOPT)-#define ENOPROTOOPT 10000-#endif-#define CONST_ENOPROTOOPT ENOPROTOOPT--/* The value of ENOSPC. */-#if !defined(ENOSPC)-#define ENOSPC 10000-#endif-#define CONST_ENOSPC ENOSPC--/* The value of ENOSR. */-#if !defined(ENOSR)-#define ENOSR 10000-#endif-#define CONST_ENOSR ENOSR--/* The value of ENOSTR. */-#if !defined(ENOSTR)-#define ENOSTR 10000-#endif-#define CONST_ENOSTR ENOSTR--/* The value of ENOSYS. */-#if !defined(ENOSYS)-#define ENOSYS 10000-#endif-#define CONST_ENOSYS ENOSYS--/* The value of ENOTBLK. */-#if !defined(ENOTBLK)-#define ENOTBLK 10000-#endif-#define CONST_ENOTBLK ENOTBLK--/* The value of ENOTCONN. */-#if !defined(ENOTCONN)-#define ENOTCONN 10000-#endif-#define CONST_ENOTCONN ENOTCONN--/* The value of ENOTDIR. */-#if !defined(ENOTDIR)-#define ENOTDIR 10000-#endif-#define CONST_ENOTDIR ENOTDIR--/* The value of ENOTEMPTY. */-#if !defined(ENOTEMPTY)-#define ENOTEMPTY 10000-#endif-#define CONST_ENOTEMPTY ENOTEMPTY--/* The value of ENOTSOCK. */-#if !defined(ENOTSOCK)-#define ENOTSOCK 10000-#endif-#define CONST_ENOTSOCK ENOTSOCK--/* The value of ENOTTY. */-#if !defined(ENOTTY)-#define ENOTTY 10000-#endif-#define CONST_ENOTTY ENOTTY--/* The value of ENXIO. */-#if !defined(ENXIO)-#define ENXIO 10000-#endif-#define CONST_ENXIO ENXIO--/* The value of EOPNOTSUPP. */-#if !defined(EOPNOTSUPP)-#define EOPNOTSUPP 10000-#endif-#define CONST_EOPNOTSUPP EOPNOTSUPP--/* The value of EPERM. */-#if !defined(EPERM)-#define EPERM 10000-#endif-#define CONST_EPERM EPERM--/* The value of EPFNOSUPPORT. */-#if !defined(EPFNOSUPPORT)-#define EPFNOSUPPORT 10000-#endif-#define CONST_EPFNOSUPPORT EPFNOSUPPORT--/* The value of EPIPE. */-#if !defined(EPIPE)-#define EPIPE 10000-#endif-#define CONST_EPIPE EPIPE--/* The value of EPROCLIM. */-#if !defined(EPROCLIM)-#define EPROCLIM 10000-#endif-#define CONST_EPROCLIM EPROCLIM--/* The value of EPROCUNAVAIL. */-#if !defined(EPROCUNAVAIL)-#define EPROCUNAVAIL 10000-#endif-#define CONST_EPROCUNAVAIL EPROCUNAVAIL--/* The value of EPROGMISMATCH. */-#if !defined(EPROGMISMATCH)-#define EPROGMISMATCH 10000-#endif-#define CONST_EPROGMISMATCH EPROGMISMATCH--/* The value of EPROGUNAVAIL. */-#if !defined(EPROGUNAVAIL)-#define EPROGUNAVAIL 10000-#endif-#define CONST_EPROGUNAVAIL EPROGUNAVAIL--/* The value of EPROTO. */-#if !defined(EPROTO)-#define EPROTO 10000-#endif-#define CONST_EPROTO EPROTO--/* The value of EPROTONOSUPPORT. */-#if !defined(EPROTONOSUPPORT)-#define EPROTONOSUPPORT 10000-#endif-#define CONST_EPROTONOSUPPORT EPROTONOSUPPORT--/* The value of EPROTOTYPE. */-#if !defined(EPROTOTYPE)-#define EPROTOTYPE 10000-#endif-#define CONST_EPROTOTYPE EPROTOTYPE--/* The value of ERANGE. */-#if !defined(ERANGE)-#define ERANGE 10000-#endif-#define CONST_ERANGE ERANGE--/* The value of EREMCHG. */-#if !defined(EREMCHG)-#define EREMCHG 10000-#endif-#define CONST_EREMCHG EREMCHG--/* The value of EREMOTE. */-#if !defined(EREMOTE)-#define EREMOTE 10000-#endif-#define CONST_EREMOTE EREMOTE--/* The value of EROFS. */-#if !defined(EROFS)-#define EROFS 10000-#endif-#define CONST_EROFS EROFS--/* The value of ERPCMISMATCH. */-#if !defined(ERPCMISMATCH)-#define ERPCMISMATCH 10000-#endif-#define CONST_ERPCMISMATCH ERPCMISMATCH--/* The value of ERREMOTE. */-#if !defined(ERREMOTE)-#define ERREMOTE 10000-#endif-#define CONST_ERREMOTE ERREMOTE--/* The value of ESHUTDOWN. */-#if !defined(ESHUTDOWN)-#define ESHUTDOWN 10000-#endif-#define CONST_ESHUTDOWN ESHUTDOWN--/* The value of ESOCKTNOSUPPORT. */-#if !defined(ESOCKTNOSUPPORT)-#define ESOCKTNOSUPPORT 10000-#endif-#define CONST_ESOCKTNOSUPPORT ESOCKTNOSUPPORT--/* The value of ESPIPE. */-#if !defined(ESPIPE)-#define ESPIPE 10000-#endif-#define CONST_ESPIPE ESPIPE--/* The value of ESRCH. */-#if !defined(ESRCH)-#define ESRCH 10000-#endif-#define CONST_ESRCH ESRCH--/* The value of ESRMNT. */-#if !defined(ESRMNT)-#define ESRMNT 10000-#endif-#define CONST_ESRMNT ESRMNT--/* The value of ESTALE. */-#if !defined(ESTALE)-#define ESTALE 10000-#endif-#define CONST_ESTALE ESTALE--/* The value of ETIME. */-#if !defined(ETIME)-#define ETIME 10000-#endif-#define CONST_ETIME ETIME--/* The value of ETIMEDOUT. */-#if !defined(ETIMEDOUT)-#define ETIMEDOUT 10000-#endif-#define CONST_ETIMEDOUT ETIMEDOUT--/* The value of ETOOMANYREFS. */-#if !defined(ETOOMANYREFS)-#define ETOOMANYREFS 10000-#endif-#define CONST_ETOOMANYREFS ETOOMANYREFS--/* The value of ETXTBSY. */-#if !defined(ETXTBSY)-#define ETXTBSY 10000-#endif-#define CONST_ETXTBSY ETXTBSY--/* The value of EUSERS. */-#if !defined(EUSERS)-#define EUSERS 10000-#endif-#define CONST_EUSERS EUSERS--/* The value of EWOULDBLOCK. */-#if !defined(EWOULDBLOCK)-#define EWOULDBLOCK 10000-#endif-#define CONST_EWOULDBLOCK EWOULDBLOCK--/* The value of EXDEV. */-#if !defined(EXDEV)-#define EXDEV 10000-#endif-#define CONST_EXDEV EXDEV--/* The value of O_BINARY. */-#if !defined(O_BINARY)-#define O_BINARY 10000-#endif-#define CONST_O_BINARY O_BINARY--/* The value of SIGINT. */-#if !defined(SIGINT)-#define SIGINT 10000-#endif-#define CONST_SIGINT SIGINT---#endif-
@@ -1,242 +0,0 @@-{- ---------------------------------------------------------------------------// Macros to help make various instances for Int like types (Int8, ...).-//-// Primitives are defined by 2 forms of macros:-// - starting with PRIMS_ : name of Haskell function and primitive is the same-// - starting with PRIMS2_ : name of primitive is given explicitly, to allow sharing between primitives-// ----------------------------------------------------------------------------}---- define conversion primitives-#define PRIMS_CONVERSION_INTEGER(tycon,primIntegerTo,primToInteger) \-foreign import prim primIntegerTo :: Integer -> tycon ; \-foreign import prim primToInteger :: tycon -> Integer --#define PRIMS2_CONVERSION_INTEGER(tycon,primIntegerTo,primIntegerToNm,primToInteger,primToIntegerNm) \-foreign import prim primIntegerToNm primIntegerTo :: Integer -> tycon ; \-foreign import prim primToIntegerNm primToInteger :: tycon -> Integer --#define PRIMS_CONVERSION_INT(tycon,primIntTo,primToInt) \-foreign import prim primIntTo :: Int -> tycon ; \-foreign import prim primToInt :: tycon -> Int ----- define Eq primitives-#define PRIMS_EQ(tycon,primEq,primNe) \-foreign import prim primEq :: tycon -> tycon -> Bool ; \-foreign import prim primNe :: tycon -> tycon -> Bool --#define PRIMS2_EQ(tycon,primEq,primEqNm,primNe,primNeNm) \-foreign import prim primEqNm primEq :: tycon -> tycon -> Bool ; \-foreign import prim primNeNm primNe :: tycon -> tycon -> Bool----- define Eq instance-#define INSTANCE_EQ(tycon,primEq,primNe) \-instance Eq tycon where \- { (==) = primEq ; \- (/=) = primNe \- }----- define Ord primitives--#define PRIMS_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \-foreign import prim primCmp :: tycon -> tycon -> Ordering ; \-foreign import prim primLt :: tycon -> tycon -> Bool ; \-foreign import prim primGt :: tycon -> tycon -> Bool ; \-foreign import prim primLe :: tycon -> tycon -> Bool ; \-foreign import prim primGe :: tycon -> tycon -> Bool --#define PRIMS2_ORD(tycon,primCmp,primCmpNm,primLt,primLtNm,primGt,primGtNm,primLe,primLeNm,primGe,primGeNm) \-foreign import prim primCmpNm primCmp :: tycon -> tycon -> Ordering ; \-foreign import prim primLtNm primLt :: tycon -> tycon -> Bool ; \-foreign import prim primGtNm primGt :: tycon -> tycon -> Bool ; \-foreign import prim primLeNm primLe :: tycon -> tycon -> Bool ; \-foreign import prim primGeNm primGe :: tycon -> tycon -> Bool ----- define Ord instance--#define INSTANCE_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \-instance Ord tycon where \- { compare = primCmp \- ; (<) = primLt \- ; (>) = primGt \- ; (<=) = primLe \- ; (>=) = primGe \- }----- define Bounded primitives-#define PRIMS_BOUNDED(tycon,primMin,primMax) \-foreign import prim primMin :: tycon ; \-foreign import prim primMax :: tycon ----- define Bounded instance-#define INSTANCE_BOUNDED(tycon,primMin,primMax) \-instance Bounded tycon where \- { minBound = primMin \- ; maxBound = primMax \- }----- define Num primitives-#define PRIMS_NUM(tycon,primAdd,primSub,primMul,primNeg) \-foreign import prim primAdd :: tycon -> tycon -> tycon ; \-foreign import prim primSub :: tycon -> tycon -> tycon ; \-foreign import prim primMul :: tycon -> tycon -> tycon ; \-foreign import prim primNeg :: tycon -> tycon --#define PRIMS2_NUM(tycon,primAdd,primAddNm,primSub,primSubNm,primMul,primMulNm,primNeg,primNegNm) \-foreign import prim primAddNm primAdd :: tycon -> tycon -> tycon ; \-foreign import prim primSubNm primSub :: tycon -> tycon -> tycon ; \-foreign import prim primMulNm primMul :: tycon -> tycon -> tycon ; \-foreign import prim primNegNm primNeg :: tycon -> tycon ----- define Num instance-#define INSTANCE_NUM(tycon,primAdd,primSub,primMul,primNeg,primIntegerTo,primIntTo) \-instance Num tycon where \- { (+) = primAdd \- ; (-) = primSub \- ; (*) = primMul \- ; negate = primNeg \- ; fromInteger = primIntegerTo \- ; fromInt = primIntTo \- ; abs = absReal \- ; signum = signumReal \- }----- define Enum instance-#define INSTANCE_ENUM(tycon,primToEnum,primFromEnum) \-instance Enum tycon where \- { succ = boundedSucc \- ; pred = boundedPred \- ; toEnum = primToEnum \- ; fromEnum = primFromEnum \- ; enumFrom = boundedEnumFrom \- ; enumFromTo = boundedEnumFromTo \- ; enumFromThen = boundedEnumFromThen \- ; enumFromThenTo = boundedEnumFromThenTo \- }----- define Real instance-#define INSTANCE_REAL(tycon) \-instance Real tycon where \- { toRational x = toInteger x % 1 \- }----- define Integral primitives-#define PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) \-foreign import prim primDiv :: tycon -> tycon -> tycon ; \-foreign import prim primMod :: tycon -> tycon -> tycon ; \-foreign import prim primQuot :: tycon -> tycon -> tycon ; \-foreign import prim primRem :: tycon -> tycon -> tycon --#define PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primRemNm) \-foreign import prim primDivNm primDiv :: tycon -> tycon -> tycon ; \-foreign import prim primModNm primMod :: tycon -> tycon -> tycon ; \-foreign import prim primQuotNm primQuot :: tycon -> tycon -> tycon ; \-foreign import prim primRemNm primRem :: tycon -> tycon -> tycon --#define PRIMS_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem) \-PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) ; \-foreign import prim primDivMod :: tycon -> tycon -> (tycon,tycon) ; \-foreign import prim primQuotRem :: tycon -> tycon -> (tycon,tycon) --#define PRIMS2_INTEGRAL2(tycon,primDiv,primDivNm,primMod,primModNm,primDivMod,primDivModNm,primQuot,primQuotNm,primRem,primRemNm,primQuotRem,primQuotRemNm) \-PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primQuotRemNm) ; \-foreign import prim primDivModNm primDivMod :: tycon -> tycon -> (tycon,tycon) ; \-foreign import prim primQuotRemNm primQuotRem :: tycon -> tycon -> (tycon,tycon) ----- define Integral instance, assume default for divMod-#define INSTANCE_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem,primToInteger,primToInt) \-instance Integral tycon where \- { quotRem d m \- = (primQuot d m, primRem d m) \- ; div = primDiv \- ; quot = primQuot \- ; rem = primRem \- ; mod = primMod \- ; toInteger = primToInteger \- ; toInt = primToInt \- }--#define INSTANCE_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem,primToInteger,primToInt) \-instance Integral tycon where \- { divMod = primDivMod \- ; quotRem = primQuotRem \- ; div = primDiv \- ; quot = primQuot \- ; rem = primRem \- ; mod = primMod \- ; toInteger = primToInteger \- ; toInt = primToInt \- }----- define Show instance-#define INSTANCE_SHOW(tycon) \-instance Show tycon where \- { show = show . toInteger \- }----- define Read instance-#define INSTANCE_READ(tycon) \-instance Read tycon where \- { readsPrec p = readSigned readDec \- }----- define Bits primitives-#define PRIMS_BITLOGIC(tycon,primAnd,primOr,primXor) \-foreign import prim primAnd :: tycon -> tycon -> tycon ; \-foreign import prim primOr :: tycon -> tycon -> tycon ; \-foreign import prim primXor :: tycon -> tycon -> tycon--#define PRIMS_BITSHIFT(tycon,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \-foreign import prim primComplement :: tycon -> tycon ; \-foreign import prim primShiftLeft :: tycon -> Int -> tycon ; \-foreign import prim primShiftRight :: tycon -> Int -> tycon ; \-foreign import prim primRotateLeft :: tycon -> Int -> tycon ; \-foreign import prim primRotateRight :: tycon -> Int -> tycon--#define PRIMS2_BITLOGIC(tycon,primAnd,primAndNm,primOr,primOrNm,primXor,primXorNm) \-foreign import prim primAndNm primAnd :: tycon -> tycon -> tycon ; \-foreign import prim primOrNm primOr :: tycon -> tycon -> tycon ; \-foreign import prim primXorNm primXor :: tycon -> tycon -> tycon--#define PRIMS2_BITSHIFT(tycon,primComplement,primComplementNm,primShiftLeft,primShiftLeftNm,primShiftRight,primShiftRightNm,primRotateLeft,primRotateLeftNm,primRotateRight,primRotateRightNm) \-foreign import prim primComplementNm primComplement :: tycon -> tycon ; \-foreign import prim primShiftLeftNm primShiftLeft :: tycon -> Int -> tycon ; \-foreign import prim primShiftRightNm primShiftRight :: tycon -> Int -> tycon ; \-foreign import prim primRotateLeftNm primRotateLeft :: tycon -> Int -> tycon ; \-foreign import prim primRotateRightNm primRotateRight :: tycon -> Int -> tycon---- define Bits instance-#define INSTANCE_BITS1(tycon,size,signed,primAnd,primOr,primXor,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \-instance Bits tycon where \- { (.&.) = primAnd \- ; (.|.) = primOr \- ; xor = primXor \- ; complement = primComplement \- ; shiftL = primShiftLeft \- ; shiftR = primShiftRight \- ; rotateL = primRotateLeft \- ; rotateR = primRotateRight \- ; bitSize _ = size \- ; isSigned _ = signed \- }------
@@ -1,125 +0,0 @@-/* ehclib/uhcbase/include/MachDeps.h. Generated from MachDeps.h.in by configure. */-#ifndef MACHDEPS_H-#define MACHDEPS_H--#define SIZEOF_INTPTR_T 8-#define SIZEOF_CHAR 1-#define SIZEOF_SHORT 2-#define SIZEOF_INT 4-#define SIZEOF_LONG 8-#define SIZEOF_LONG_LONG 8-#define SIZEOF_FLOAT 4-#define SIZEOF_DOUBLE 8-#define SIZEOF_UNSIGNED_CHAR 1-#define SIZEOF_UNSIGNED_SHORT 2-#define SIZEOF_UNSIGNED_INT 4-#define SIZEOF_UNSIGNED_LONG 8-#define SIZEOF_UNSIGNED_LONG_LONG 8-#define SIZEOF_VOID_P 8--#define SIZEOF_DEV_T 4-#define SIZEOF_INO_T 8-#define SIZEOF_OFF_T 8-#define SIZEOF_MODE_T 2-#define SIZEOF_PID_T 4-#define SIZEOF_SSIZE_T 8-#define SIZEOF_GID_T 4-#define SIZEOF_NLINK_T 2-#define SIZEOF_UID_T 4-#define SIZEOF_RLIM_T 8-#define SIZEOF_CLOCK_T 8-#define SIZEOF_TIME_T 8-#define SIZEOF_SIZE_T 8-#define SIZEOF_WCHAR_T 4--#define SIZEOF_CC_T 1-#define SIZEOF_SPEED_T 8-#define SIZEOF_TCFLAG_T 8--#define ALIGNOF_INTPTR_T 8-#define ALIGNOF_CHAR 1-#define ALIGNOF_SHORT 2-#define ALIGNOF_INT 4-#define ALIGNOF_LONG 8-#define ALIGNOF_LONG_LONG 8-#define ALIGNOF_FLOAT 4-#define ALIGNOF_DOUBLE 8-#define ALIGNOF_UNSIGNED_CHAR 1-#define ALIGNOF_UNSIGNED_SHORT 2-#define ALIGNOF_UNSIGNED_INT 4-#define ALIGNOF_UNSIGNED_LONG 8-#define ALIGNOF_UNSIGNED_LONG_LONG 8-#define ALIGNOF_VOID_P 8--#define ALIGNOF_UINT8_T 1-#define ALIGNOF_UINT16_T 2-#define ALIGNOF_UINT32_T 4-#define ALIGNOF_UINT64_T 8--#if SIZEOF_INTPTR_T == 8-#define USE_64_BITS 1-#define USE_32_BITS 0-#else-#define USE_64_BITS 0-#define USE_32_BITS 1-#endif--#ifdef __UHC_TARGET_BC__-#define BITSIZEOF_WORDTAG 1-#else-#define BITSIZEOF_WORDTAG 0-#endif--#define SIZEOF_HSCHAR SIZEOF_INTPTR_T-#define ALIGNMENT_HSCHAR ALIGNOF_UINT32_T--#define SIZEOF_HSINT SIZEOF_INTPTR_T-#define ALIGNMENT_HSINT ALIGNOF_INTPTR_T--#define SIZEOF_HSWORD SIZEOF_INTPTR_T-#define ALIGNMENT_HSWORD ALIGNOF_INTPTR_T--#define SIZEOF_HSDOUBLE SIZEOF_DOUBLE-#define ALIGNMENT_HSDOUBLE ALIGNOF_DOUBLE--#define SIZEOF_HSFLOAT SIZEOF_FLOAT-#define ALIGNMENT_HSFLOAT ALIGNOF_FLOAT--#define SIZEOF_HSPTR SIZEOF_VOID_P-#define ALIGNMENT_HSPTR ALIGNOF_VOID_P--#define SIZEOF_HSFUNPTR SIZEOF_VOID_P-#define ALIGNMENT_HSFUNPTR ALIGNOF_VOID_P--#define SIZEOF_HSFOREIGNPTR SIZEOF_VOID_P-#define ALIGNMENT_HSFOREIGNPTR ALIGNOF_VOID_P--#define SIZEOF_HSSTABLEPTR SIZEOF_VOID_P-#define ALIGNMENT_HSSTABLEPTR ALIGNOF_VOID_P--#define SIZEOF_INT8 8-#define ALIGNMENT_INT8 ALIGNOF_UINT8_T--#define SIZEOF_WORD8 8-#define ALIGNMENT_WORD8 ALIGNOF_UINT8_T--#define SIZEOF_INT16 16-#define ALIGNMENT_INT16 ALIGNOF_UINT16_T--#define SIZEOF_WORD16 16-#define ALIGNMENT_WORD16 ALIGNOF_UINT16_T--#define SIZEOF_INT32 32-#define ALIGNMENT_INT32 ALIGNOF_UINT32_T--#define SIZEOF_WORD32 32-#define ALIGNMENT_WORD32 ALIGNOF_UINT32_T--#define SIZEOF_INT64 64-#define ALIGNMENT_INT64 ALIGNOF_UINT64_T--#define SIZEOF_WORD64 64-#define ALIGNMENT_WORD64 ALIGNOF_UINT64_T---#endif
@@ -1,147 +0,0 @@-{- ---------------------------------------------------------------------------// Macros to help make various instances for tuples.-// A kind of poor mans deriving.-//-// ----------------------------------------------------------------------------}--#define COMMA ,--{- ---------------------------------------------------------------------------// 2 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b) => clscon (a,b) where \- { op1 op1preArg (a,b) op1postArg \- = pre \- op1subop a \- sep op1subop b \- post \- }--{- ---------------------------------------------------------------------------// 3 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \- { op1 op1preArg (a,b,c) op1postArg \- = pre \- op1subop a \- sep op1subop b \- sep op1subop c \- post \- }--{- ---------------------------------------------------------------------------// 4 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \- { op1 op1preArg (a,b,c,d) op1postArg \- = pre \- op1subop a \- sep op1subop b \- sep op1subop c \- sep op1subop d \- post \- }--{- ---------------------------------------------------------------------------// 5 tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \- { op1 op1preArg (a,b,c,d,e) op1postArg \- = pre \- op1subop a \- sep op1subop b \- sep op1subop c \- sep op1subop d \- sep op1subop e \- post \- }--{- ---------------------------------------------------------------------------// Set of 2..n tuple, 1 unary op-// ----------------------------------------------------------------------------}-#define TUPLE_UNOP1_INSTANCES(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-{ TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\- TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\- TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\- TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \-}--{- ---------------------------------------------------------------------------// 2 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b) => clscon (a,b) where \- { (a1,b1) op1 (a2,b2) \- = pre \- a1 op1subop a2 \- sep b1 op1subop b2 \- post \- }--{- ---------------------------------------------------------------------------// 3 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \- { (a1,b1,c1) op1 (a2,b2,c2) \- = pre \- a1 op1subop a2 \- sep b1 op1subop b2 \- sep c1 op1subop c2 \- post \- }--{- ---------------------------------------------------------------------------// 4 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \- { (a1,b1,c1,d1) op1 (a2,b2,c2,d2) \- = pre \- a1 op1subop a2 \- sep b1 op1subop b2 \- sep c1 op1subop c2 \- sep d1 op1subop d2 \- post \- }--{- ---------------------------------------------------------------------------// 5 tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \- { (a1,b1,c1,d1,e1) op1 (a2,b2,c2,d2,e2) \- = pre \- a1 op1subop a2 \- sep b1 op1subop b2 \- sep c1 op1subop c2 \- sep d1 op1subop d2 \- sep e1 op1subop e2 \- post \- }--{- ---------------------------------------------------------------------------// Set of 2..n tuple, 1 binary op-// ----------------------------------------------------------------------------}-#define TUPLE_BINOP1_INSTANCES(clscon,op1,op1subop,pre,sep,post) \-{ TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\- TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\- TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\- TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \-}-
@@ -1,149 +0,0 @@-{- ---------------------------------------------------------------------------// Macros to help make Typeable instances.-//-// INSTANCE_TYPEABLEn(tc,tcname,"tc") defines-//-// instance Typeable/n/ tc-// instance Typeable a => Typeable/n-1/ (tc a)-// instance (Typeable a, Typeable b) => Typeable/n-2/ (tc a b)-// ...-// instance (Typeable a1, ..., Typeable an) => Typeable (tc a1 ... an)-// ----------------------------------------------------------------------------}--#ifndef TYPEABLE_H-#define TYPEABLE_H--#define INSTANCE_TYPEABLE0(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }--#ifdef __GLASGOW_HASKELL__---- // For GHC, the extra instances follow from general instance declarations--- // defined in Data.Typeable.--#define INSTANCE_TYPEABLE1(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE2(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE3(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE4(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE5(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE6(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }--#define INSTANCE_TYPEABLE7(tycon,tcname,str) \-tcname :: TyCon; \-tcname = mkTyCon str; \-instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }--#else /* !__GLASGOW_HASKELL__ */--#define INSTANCE_TYPEABLE1(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable (tycon a) where { typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE2(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable1 (tycon a) where { \- typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b) => Typeable (tycon a b) where { \- typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE3(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable2 (tycon a) where { \- typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b) => Typeable1 (tycon a b) where { \- typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable (tycon a b c) where { \- typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE4(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable3 (tycon a) where { \- typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b) => Typeable2 (tycon a b) where { \- typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable1 (tycon a b c) where { \- typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable (tycon a b c d) where { \- typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE5(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable4 (tycon a) where { \- typeOf4 = typeOf4Default }; \-instance (Typeable a, Typeable b) => Typeable3 (tycon a b) where { \- typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable2 (tycon a b c) where { \- typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable1 (tycon a b c d) where { \- typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable (tycon a b c d e) where { \- typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE6(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable5 (tycon a) where { \- typeOf5 = typeOf5Default }; \-instance (Typeable a, Typeable b) => Typeable4 (tycon a b) where { \- typeOf4 = typeOf4Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable3 (tycon a b c) where { \- typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable2 (tycon a b c d) where { \- typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable1 (tycon a b c d e) where { \- typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable (tycon a b c d e f) where { \- typeOf = typeOfDefault }--#define INSTANCE_TYPEABLE7(tycon,tcname,str) \-tcname = mkTyCon str; \-instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }; \-instance Typeable a => Typeable6 (tycon a) where { \- typeOf6 = typeOf6Default }; \-instance (Typeable a, Typeable b) => Typeable5 (tycon a b) where { \- typeOf5 = typeOf5Default }; \-instance (Typeable a, Typeable b, Typeable c) => Typeable4 (tycon a b c) where { \- typeOf4 = typeOf4Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable3 (tycon a b c d) where { \- typeOf3 = typeOf3Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable2 (tycon a b c d e) where { \- typeOf2 = typeOf2Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable1 (tycon a b c d e f) where { \- typeOf1 = typeOf1Default }; \-instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f, Typeable g) => Typeable (tycon a b c d e f g) where { \- typeOf = typeOfDefault }--#endif /* !__GLASGOW_HASKELL__ */--#endif
@@ -1,11 +0,0 @@-/* - * (c) The University of Glasgow 2002- *- * Directory Runtime Support- */-#ifndef __DIRUTILS_H__-#define __DIRUTILS_H__--extern int __hscore_readdir(DIR *dirPtr, struct dirent **pDirEnt);--#endif /* __DIRUTILS_H__ */
@@ -1,2 +0,0 @@-exposed-modules: Control.Monad Data.Bits Data.Char Data.Either Data.Int Data.IORef Data.List Data.Maybe Data.Typeable Data.Word Debug.Trace Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.C Foreign.ForeignPtr Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Pool Foreign.Marshal.Utils Foreign.Marshal Foreign.Ptr Foreign.StablePtr Foreign.Storable Foreign System.IO.Error System.IO.Fix System.IO.Unsafe System.IO System.Posix.Internals System.Posix.Types UHC.Array UHC.Base UHC.Bits UHC.Bounded UHC.BoxArray UHC.ByteArray UHC.Char UHC.Conc UHC.Enum UHC.Eq UHC.Float UHC.ForeignPtr UHC.GC UHC.Generics.Tuple UHC.Generics UHC.Handle UHC.Int UHC.IO UHC.IOBase UHC.Ix UHC.LazyST UHC.MutVar UHC.MVar UHC.OldException UHC.OldIO UHC.Ord UHC.Prims UHC.Ptr UHC.Read UHC.Real UHC.Run UHC.Show UHC.ST UHC.StablePtr UHC.StackTrace UHC.Storable UHC.STRef UHC.Types UHC.Weak UHC.WeakPtr UHC.Word Unsafe.Coerce-build-depends:
binary file changed (absent → 59274 bytes)
binary file changed (absent → 27704 bytes)
binary file changed (absent → 81556 bytes)
binary file changed (absent → 24833 bytes)
binary file changed (absent → 11057 bytes)
binary file changed (absent → 5668 bytes)
binary file changed (absent → 6448 bytes)
binary file changed (absent → 3864 bytes)
binary file changed (absent → 3362 bytes)
binary file changed (absent → 3315 bytes)
binary file changed (absent → 201705 bytes)
binary file changed (absent → 46537 bytes)
binary file changed (absent → 7855 bytes)
binary file changed (absent → 4487 bytes)
binary file changed (absent → 169654 bytes)
binary file changed (absent → 112734 bytes)
binary file changed (absent → 3050 bytes)
binary file changed (absent → 4479 bytes)
binary file changed (absent → 405 bytes)
binary file changed (absent → 3275 bytes)
binary file changed (absent → 149 bytes)
binary file changed (absent → 2259 bytes)
binary file changed (absent → 19571 bytes)
binary file changed (absent → 14489 bytes)
binary file changed (absent → 28631 bytes)
binary file changed (absent → 16760 bytes)
binary file changed (absent → 4710 bytes)
binary file changed (absent → 2294 bytes)
binary file changed (absent → 951 bytes)
binary file changed (absent → 1984 bytes)
binary file changed (absent → 213991 bytes)
binary file changed (absent → 64563 bytes)
binary file changed (absent → 2083123 bytes)
binary file changed (absent → 950228 bytes)
binary file changed (absent → 12702 bytes)
binary file changed (absent → 5335 bytes)
binary file changed (absent → 120616 bytes)
binary file changed (absent → 60961 bytes)
binary file changed (absent → 29019 bytes)
binary file changed (absent → 21229 bytes)
binary file changed (absent → 5196 bytes)
binary file changed (absent → 1288 bytes)
binary file changed (absent → 8067 bytes)
binary file changed (absent → 4111 bytes)
binary file changed (absent → 105918 bytes)
binary file changed (absent → 66535 bytes)
binary file changed (absent → 58776 bytes)
binary file changed (absent → 4807 bytes)
binary file changed (absent → 651 bytes)
binary file changed (absent → 1259 bytes)
binary file changed (absent → 207 bytes)
binary file changed (absent → 16434 bytes)
binary file changed (absent → 660787 bytes)
binary file changed (absent → 421402 bytes)
binary file changed (absent → 17942 bytes)
binary file changed (absent → 11367 bytes)
binary file changed (absent → 15077 bytes)
binary file changed (absent → 5975 bytes)
binary file changed (absent → 274670 bytes)
binary file changed (absent → 144192 bytes)
binary file changed (absent → 75873 bytes)
binary file changed (absent → 30408 bytes)
binary file changed (absent → 36959 bytes)
binary file changed (absent → 23239 bytes)
binary file changed (absent → 28401 bytes)
binary file changed (absent → 10285 bytes)
binary file changed (absent → 18012 bytes)
binary file changed (absent → 10662 bytes)
binary file changed (absent → 12018 bytes)
binary file changed (absent → 5421 bytes)
binary file changed (absent → 68629 bytes)
binary file changed (absent → 21837 bytes)
binary file changed (absent → 192936 bytes)
binary file changed (absent → 73547 bytes)
binary file changed (absent → 24745 bytes)
binary file changed (absent → 21209 bytes)
binary file changed (absent → 87122 bytes)
binary file changed (absent → 17136 bytes)
binary file changed (absent → 7166 bytes)
binary file changed (absent → 1916 bytes)
binary file changed (absent → 11555 bytes)
binary file changed (absent → 5056 bytes)
binary file changed (absent → 47124 bytes)
binary file changed (absent → 31438 bytes)
binary file changed (absent → 22510 bytes)
binary file changed (absent → 15348 bytes)
binary file changed (absent → 151263 bytes)
binary file changed (absent → 36709 bytes)
binary file changed (absent → 21492 bytes)
binary file changed (absent → 16107 bytes)
binary file changed (absent → 141 bytes)
binary file changed (absent → 1380 bytes)
binary file changed (absent → 67781 bytes)
binary file changed (absent → 51972 bytes)
binary file changed (absent → 26655 bytes)
binary file changed (absent → 18131 bytes)
binary file changed (absent → 13463 bytes)
binary file changed (absent → 9775 bytes)
binary file changed (absent → 140 bytes)
binary file changed (absent → 853 bytes)
@@ -0,0 +1,231 @@+{- --------------------------------------------------------------------------+// Dirty CPP hackery for CTypes/CTypesISO+//+// (c) The FFI task force, 2000+// --------------------------------------------------------------------------+-}++#ifndef CTYPES__H+#define CTYPES__H++#include "Typeable.h"++{-+// As long as there is no automatic derivation of classes for newtypes we resort+// to extremely dirty cpp-hackery. :-P Some care has to be taken when the+// macros below are modified, otherwise the layout rule will bite you.+-}++-- // A hacked version for GHC follows the Haskell 98 version...+#ifndef __GLASGOW_HASKELL__++#define NEWTYPE_TYPE_NODERIVING(T,B) \+newtype T = T B ; ++#define NEWTYPE_TYPE(T,B) \+newtype T = T B deriving (Eq, Ord) ; ++#define ARITHMETIC_TYPE_INSTANCES(T,C,S,B) \+INSTANCE_NUM(T) ; \+INSTANCE_REAL(T) ; \+INSTANCE_READ(T,B) ; \+INSTANCE_SHOW(T,B) ; \+INSTANCE_ENUM(T) ; \+INSTANCE_STORABLE(T) ; \+INSTANCE_TYPEABLE0(T,C,S) ;++#define INTEGRAL_TYPE_INSTANCES(T,C,S,B) \+INSTANCE_BOUNDED(T) ; \+INSTANCE_INTEGRAL(T) ; \+INSTANCE_BITS(T)++#define ARITHMETIC_TYPE(T,C,S,B) \+NEWTYPE_TYPE(T,B) ; \+ARITHMETIC_TYPE_INSTANCES(T,C,S,B) ;++#define INTEGRAL_TYPE(T,C,S,B) \+ARITHMETIC_TYPE(T,C,S,B) ; \+INTEGRAL_TYPE_INSTANCES(T,C,S,B)++#define FLOATING_TYPE(T,C,S,B) \+ARITHMETIC_TYPE(T,C,S,B) ; \+INSTANCE_FRACTIONAL(T) ; \+INSTANCE_FLOATING(T) ; \+INSTANCE_REALFRAC(T) ; \+INSTANCE_REALFLOAT(T)++#ifndef __GLASGOW_HASKELL__+#define fakeMap map+#endif++#define INSTANCE_READ(T,B) \+instance Read T where { \+ readsPrec p s = fakeMap (\(x, t) -> (T x, t)) (readsPrec p s) }++#define INSTANCE_SHOW(T,B) \+instance Show T where { \+ showsPrec p (T x) = showsPrec p x }++#define INSTANCE_NUM(T) \+instance Num T where { \+ (T i) + (T j) = T (i + j) ; \+ (T i) - (T j) = T (i - j) ; \+ (T i) * (T j) = T (i * j) ; \+ negate (T i) = T (negate i) ; \+ abs (T i) = T (abs i) ; \+ signum (T i) = T (signum i) ; \+ fromInteger x = T (fromInteger x) }++#define INSTANCE_EQ(T) \+instance Eq T where { \+ (T x1) == (T x2) = x1 == x2 }++#define INSTANCE_ORD(T) \+instance Ord T where { \+ (T x1) `compare` (T x2) = x1 `compare` x2 }++#define INSTANCE_BOUNDED(T) \+instance Bounded T where { \+ minBound = T minBound ; \+ maxBound = T maxBound }++#define INSTANCE_ENUM(T) \+instance Enum T where { \+ succ (T i) = T (succ i) ; \+ pred (T i) = T (pred i) ; \+ toEnum x = T (toEnum x) ; \+ fromEnum (T i) = fromEnum i ; \+ enumFrom (T i) = fakeMap T (enumFrom i) ; \+ enumFromThen (T i) (T j) = fakeMap T (enumFromThen i j) ; \+ enumFromTo (T i) (T j) = fakeMap T (enumFromTo i j) ; \+ enumFromThenTo (T i) (T j) (T k) = fakeMap T (enumFromThenTo i j k) }++#define INSTANCE_REAL(T) \+instance Real T where { \+ toRational (T i) = toRational i }++#define INSTANCE_INTEGRAL(T) \+instance Integral T where { \+ (T i) `quot` (T j) = T (i `quot` j) ; \+ (T i) `rem` (T j) = T (i `rem` j) ; \+ (T i) `div` (T j) = T (i `div` j) ; \+ (T i) `mod` (T j) = T (i `mod` j) ; \+ (T i) `quotRem` (T j) = let (q,r) = i `quotRem` j in (T q, T r) ; \+ (T i) `divMod` (T j) = let (d,m) = i `divMod` j in (T d, T m) ; \+ toInteger (T i) = toInteger i }++#define INSTANCE_BITS(T) \+instance Bits T where { \+ (T x) .&. (T y) = T (x .&. y) ; \+ (T x) .|. (T y) = T (x .|. y) ; \+ (T x) `xor` (T y) = T (x `xor` y) ; \+ complement (T x) = T (complement x) ; \+ shift (T x) n = T (shift x n) ; \+ rotate (T x) n = T (rotate x n) ; \+ bit n = T (bit n) ; \+ setBit (T x) n = T (setBit x n) ; \+ clearBit (T x) n = T (clearBit x n) ; \+ complementBit (T x) n = T (complementBit x n) ; \+ testBit (T x) n = testBit x n ; \+ bitSize (T x) = bitSize x ; \+ isSigned (T x) = isSigned x }++#define INSTANCE_FRACTIONAL(T) \+instance Fractional T where { \+ (T x) / (T y) = T (x / y) ; \+ recip (T x) = T (recip x) ; \+ fromRational r = T (fromRational r) }++#define INSTANCE_FLOATING(T) \+instance Floating T where { \+ pi = pi ; \+ exp (T x) = T (exp x) ; \+ log (T x) = T (log x) ; \+ sqrt (T x) = T (sqrt x) ; \+ (T x) ** (T y) = T (x ** y) ; \+ (T x) `logBase` (T y) = T (x `logBase` y) ; \+ sin (T x) = T (sin x) ; \+ cos (T x) = T (cos x) ; \+ tan (T x) = T (tan x) ; \+ asin (T x) = T (asin x) ; \+ acos (T x) = T (acos x) ; \+ atan (T x) = T (atan x) ; \+ sinh (T x) = T (sinh x) ; \+ cosh (T x) = T (cosh x) ; \+ tanh (T x) = T (tanh x) ; \+ asinh (T x) = T (asinh x) ; \+ acosh (T x) = T (acosh x) ; \+ atanh (T x) = T (atanh x) }++#define INSTANCE_REALFRAC(T) \+instance RealFrac T where { \+ properFraction (T x) = let (m,y) = properFraction x in (m, T y) ; \+ truncate (T x) = truncate x ; \+ round (T x) = round x ; \+ ceiling (T x) = ceiling x ; \+ floor (T x) = floor x }++#define INSTANCE_REALFLOAT(T) \+instance RealFloat T where { \+ floatRadix (T x) = floatRadix x ; \+ floatDigits (T x) = floatDigits x ; \+ floatRange (T x) = floatRange x ; \+ decodeFloat (T x) = decodeFloat x ; \+ encodeFloat m n = T (encodeFloat m n) ; \+ exponent (T x) = exponent x ; \+ significand (T x) = T (significand x) ; \+ scaleFloat n (T x) = T (scaleFloat n x) ; \+ isNaN (T x) = isNaN x ; \+ isInfinite (T x) = isInfinite x ; \+ isDenormalized (T x) = isDenormalized x ; \+ isNegativeZero (T x) = isNegativeZero x ; \+ isIEEE (T x) = isIEEE x ; \+ (T x) `atan2` (T y) = T (x `atan2` y) }++#define INSTANCE_STORABLE(T) \+instance Storable T where { \+ sizeOf (T x) = sizeOf x ; \+ alignment (T x) = alignment x ; \+ peekElemOff a i = liftM T (peekElemOff (castPtr a) i) ; \+ pokeElemOff a i (T x) = pokeElemOff (castPtr a) i x }++#else /* __GLASGOW_HASKELL__ */++-- // GHC can derive any class for a newtype, so we make use of that here...++#define ARITHMETIC_CLASSES Eq,Ord,Num,Enum,Storable,Real+#define INTEGRAL_CLASSES Bounded,Integral,Bits+#define FLOATING_CLASSES Fractional,Floating,RealFrac,RealFloat++#define ARITHMETIC_TYPE(T,C,S,B) \+newtype T = T B deriving (ARITHMETIC_CLASSES); \+INSTANCE_READ(T,B); \+INSTANCE_SHOW(T,B); \+INSTANCE_TYPEABLE0(T,C,S) ;++#define INTEGRAL_TYPE(T,C,S,B) \+newtype T = T B deriving (ARITHMETIC_CLASSES, INTEGRAL_CLASSES); \+INSTANCE_READ(T,B); \+INSTANCE_SHOW(T,B); \+INSTANCE_TYPEABLE0(T,C,S) ;++#define FLOATING_TYPE(T,C,S,B) \+newtype T = T B deriving (ARITHMETIC_CLASSES, FLOATING_CLASSES); \+INSTANCE_READ(T,B); \+INSTANCE_SHOW(T,B); \+INSTANCE_TYPEABLE0(T,C,S) ;++#define INSTANCE_READ(T,B) \+instance Read T where { \+ readsPrec = unsafeCoerce# (readsPrec :: Int -> ReadS B); \+ readList = unsafeCoerce# (readList :: ReadS [B]); }++#define INSTANCE_SHOW(T,B) \+instance Show T where { \+ showsPrec = unsafeCoerce# (showsPrec :: Int -> B -> ShowS); \+ show = unsafeCoerce# (show :: B -> String); \+ showList = unsafeCoerce# (showList :: [B] -> ShowS); }++#endif /* __GLASGOW_HASKELL__ */++#endif
@@ -0,0 +1,757 @@+/* -----------------------------------------------------------------------------+ *+ * (c) The University of Glasgow 2001-2004+ *+ * Definitions for package `base' which are visible in Haskell land.+ *+ * Adapted for use in EHC+ *+ * ---------------------------------------------------------------------------*/++#ifndef __HSBASE_H__+#define __HSBASE_H__++#include "HsBaseConfig.h"+#ifdef __UHC_BUILDS_O__+#include "rts.h"+#endif++/* ultra-evil... */+#undef PACKAGE_BUGREPORT+#undef PACKAGE_NAME+#undef PACKAGE_STRING+#undef PACKAGE_TARNAME+#undef PACKAGE_VERSION++/* Needed to get the macro version of errno on some OSs (eg. Solaris).+ We must do this, because these libs are only compiled once, but+ must work in both single-threaded and multi-threaded programs. */+#define _REENTRANT 1++#ifndef __UHC__+#include "HsFFI.h"+#endif /* !__UHC__ */++#include <stdio.h>+#include <stdlib.h>+#include <math.h>++#if HAVE_SYS_TYPES_H+#include <sys/types.h>+#endif+#if HAVE_UNISTD_H+#include <unistd.h>+#endif+#if HAVE_SYS_STAT_H+#include <sys/stat.h>+#endif+#if HAVE_FCNTL_H+# include <fcntl.h>+#endif+#if HAVE_TERMIOS_H+#include <termios.h>+#endif+#if HAVE_SIGNAL_H+#include <signal.h>+/* Ultra-ugly: OpenBSD uses broken macros for sigemptyset and sigfillset (missing casts) */+#if __OpenBSD__+#undef sigemptyset+#undef sigfillset+#endif+#endif+#if HAVE_ERRNO_H+#include <errno.h>+#endif+#if HAVE_STRING_H+#include <string.h>+#endif+#if HAVE_DIRENT_H+#include <dirent.h>+#endif+#if HAVE_UTIME_H+#include <utime.h>+#endif+#if HAVE_SYS_UTSNAME_H+#include <sys/utsname.h>+#endif+#if HAVE_GETTIMEOFDAY+# if HAVE_SYS_TIME_H+# include <sys/time.h>+# endif+#elif HAVE_GETCLOCK+# if HAVE_SYS_TIMERS_H+# define POSIX_4D9 1+# include <sys/timers.h>+# endif+#endif+#if HAVE_TIME_H+#include <time.h>+#endif+#if HAVE_SYS_TIMEB_H+#include <sys/timeb.h>+#endif+#if HAVE_WINDOWS_H+#include <windows.h>+#endif+#if HAVE_SYS_TIMES_H+#include <sys/times.h>+#endif+#if HAVE_WINSOCK_H && defined(__MINGW32__)+#include <winsock.h>+#endif+#if HAVE_LIMITS_H+#include <limits.h>+#endif+#if HAVE_WCTYPE_H+#include <wctype.h>+#endif+#if HAVE_INTTYPES_H+# include <inttypes.h>+#elif HAVE_STDINT_H+# include <stdint.h>+#endif++#if !defined(__MINGW32__) && !defined(irix_HOST_OS)+# if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+# endif+#endif++#if !HAVE_GETRUSAGE && HAVE_SYS_SYSCALL_H+# include <sys/syscall.h>+# if defined(SYS_GETRUSAGE) /* hpux_HOST_OS */+# define getrusage(a, b) syscall(SYS_GETRUSAGE, a, b)+# define HAVE_GETRUSAGE 1+# endif+#endif++/* For System */+#if HAVE_SYS_WAIT_H+#include <sys/wait.h>+#endif+#if HAVE_VFORK_H+#include <vfork.h>+#endif++#ifndef __UHC__+#include "dirUtils.h"+#endif+#ifndef __UHC__+#include "WCsubst.h"+#endif /* !__UHC__ */++#if defined(__MINGW32__)+/* in Win32Utils.c */+extern void maperrno (void);+extern HsWord64 getUSecOfDay(void);+#endif++#if defined(__MINGW32__)+#include <io.h>+#include <fcntl.h>+#include <shlobj.h>+#include <share.h>+#endif++#if HAVE_SYS_SELECT_H+#include <sys/select.h>+#endif++/* in inputReady.c */+extern int fdReady(int fd, int write, int msecs, int isSock);++#ifndef __UHC__+/* in Signals.c */+extern HsInt nocldstop;+#endif /* !__UHC__ */++#ifndef __UHC__+/* -----------------------------------------------------------------------------+ 64-bit operations, defined in longlong.c+ -------------------------------------------------------------------------- */++#ifdef SUPPORT_LONG_LONGS++HsBool hs_gtWord64 (HsWord64, HsWord64);+HsBool hs_geWord64 (HsWord64, HsWord64);+HsBool hs_eqWord64 (HsWord64, HsWord64);+HsBool hs_neWord64 (HsWord64, HsWord64);+HsBool hs_ltWord64 (HsWord64, HsWord64);+HsBool hs_leWord64 (HsWord64, HsWord64);++HsBool hs_gtInt64 (HsInt64, HsInt64);+HsBool hs_geInt64 (HsInt64, HsInt64);+HsBool hs_eqInt64 (HsInt64, HsInt64);+HsBool hs_neInt64 (HsInt64, HsInt64);+HsBool hs_ltInt64 (HsInt64, HsInt64);+HsBool hs_leInt64 (HsInt64, HsInt64);++HsWord64 hs_remWord64 (HsWord64, HsWord64);+HsWord64 hs_quotWord64 (HsWord64, HsWord64);++HsInt64 hs_remInt64 (HsInt64, HsInt64);+HsInt64 hs_quotInt64 (HsInt64, HsInt64);+HsInt64 hs_negateInt64 (HsInt64);+HsInt64 hs_plusInt64 (HsInt64, HsInt64);+HsInt64 hs_minusInt64 (HsInt64, HsInt64);+HsInt64 hs_timesInt64 (HsInt64, HsInt64);++HsWord64 hs_and64 (HsWord64, HsWord64);+HsWord64 hs_or64 (HsWord64, HsWord64);+HsWord64 hs_xor64 (HsWord64, HsWord64);+HsWord64 hs_not64 (HsWord64);++HsWord64 hs_uncheckedShiftL64 (HsWord64, HsInt);+HsWord64 hs_uncheckedShiftRL64 (HsWord64, HsInt);+HsInt64 hs_uncheckedIShiftL64 (HsInt64, HsInt);+HsInt64 hs_uncheckedIShiftRA64 (HsInt64, HsInt);+HsInt64 hs_uncheckedIShiftRL64 (HsInt64, HsInt);++HsInt64 hs_intToInt64 (HsInt);+HsInt hs_int64ToInt (HsInt64);+HsWord64 hs_int64ToWord64 (HsInt64);+HsWord64 hs_wordToWord64 (HsWord);+HsWord hs_word64ToWord (HsWord64);+HsInt64 hs_word64ToInt64 (HsWord64);++HsWord64 hs_integerToWord64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);+HsInt64 hs_integerToInt64 (HsInt sa, StgByteArray /* Really: mp_limb_t* */ da);++#endif /* SUPPORT_LONG_LONGS */+#endif /* !__UHC__ */++/* -----------------------------------------------------------------------------+ INLINE functions.++ These functions are given as inlines here for when compiling via C,+ but we also generate static versions into the cbits library for+ when compiling to native code.+ -------------------------------------------------------------------------- */++#ifndef INLINE+# if defined(_MSC_VER)+# define INLINE extern __inline+# else+# define INLINE static inline+# endif+#endif++INLINE int __hscore_get_errno(void) { return errno; }+INLINE void __hscore_set_errno(int e) { errno = e; }++#if !defined(_MSC_VER)+INLINE int __hscore_s_isreg(mode_t m) { return S_ISREG(m); }+INLINE int __hscore_s_isdir(mode_t m) { return S_ISDIR(m); }+INLINE int __hscore_s_isfifo(mode_t m) { return S_ISFIFO(m); }+INLINE int __hscore_s_isblk(mode_t m) { return S_ISBLK(m); }+INLINE int __hscore_s_ischr(mode_t m) { return S_ISCHR(m); }+#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)+INLINE int __hscore_s_issock(mode_t m) { return S_ISSOCK(m); }+#endif+#endif++#if ( !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32) ) || defined(__CYGWIN__)+INLINE int+__hscore_sigemptyset( sigset_t *set )+{ return sigemptyset(set); }++INLINE int+__hscore_sigfillset( sigset_t *set )+{ return sigfillset(set); }++INLINE int+__hscore_sigaddset( sigset_t * set, int s )+{ return sigaddset(set,s); }++INLINE int+__hscore_sigdelset( sigset_t * set, int s )+{ return sigdelset(set,s); }++INLINE int+__hscore_sigismember( sigset_t * set, int s )+{ return sigismember(set,s); }+#endif++INLINE void *+__hscore_memcpy_dst_off( char *dst, int dst_off, char *src, size_t sz )+{ return memcpy(dst+dst_off, src, sz); }++INLINE void *+__hscore_memcpy_src_off( char *dst, char *src, int src_off, size_t sz )+{ return memcpy(dst, src+src_off, sz); }++INLINE HsBool+__hscore_supportsTextMode()+{+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)+ return HS_BOOL_FALSE;+#else+ return HS_BOOL_TRUE;+#endif+}++INLINE HsInt+__hscore_bufsiz()+{+ return BUFSIZ;+}++INLINE int+__hscore_seek_cur()+{+ return SEEK_CUR;+}++INLINE int+__hscore_o_binary()+{+#if defined(_MSC_VER)+ return O_BINARY;+#else+ return CONST_O_BINARY;+#endif+}++INLINE int+__hscore_o_rdonly()+{+#ifdef O_RDONLY+ return O_RDONLY;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_wronly( void )+{+#ifdef O_WRONLY+ return O_WRONLY;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_rdwr( void )+{+#ifdef O_RDWR+ return O_RDWR;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_append( void )+{+#ifdef O_APPEND+ return O_APPEND;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_creat( void )+{+#ifdef O_CREAT+ return O_CREAT;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_excl( void )+{+#ifdef O_EXCL+ return O_EXCL;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_trunc( void )+{+#ifdef O_TRUNC+ return O_TRUNC;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_noctty( void )+{+#ifdef O_NOCTTY+ return O_NOCTTY;+#else+ return 0;+#endif+}++INLINE int+__hscore_o_nonblock( void )+{+#ifdef O_NONBLOCK+ return O_NONBLOCK;+#else+ return 0;+#endif+}++INLINE int+__hscore_seek_set( void )+{+ return SEEK_SET;+}++INLINE int+__hscore_seek_end( void )+{+ return SEEK_END;+}++INLINE int+__hscore_ftruncate( int fd, off_t where )+{+#if defined(HAVE_FTRUNCATE)+ return ftruncate(fd,where);+#elif defined(HAVE__CHSIZE)+ return _chsize(fd,where);+#else+// ToDo: we should use _chsize_s() on Windows which allows a 64-bit+// offset, but it doesn't seem to be available from mingw at this time +// --SDM (01/2008)+#error at least ftruncate or _chsize functions are required to build+#endif+}++#ifndef __UHC__+INLINE int+__hscore_setmode( int fd, HsBool toBin )+{+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)+ return setmode(fd,(toBin == HS_BOOL_TRUE) ? _O_BINARY : _O_TEXT);+#else+ return 0;+#endif+}+#endif /* !__UHC__ */++#if __GLASGOW_HASKELL__++INLINE int+__hscore_PrelHandle_write( int fd, void *ptr, HsInt off, int sz )+{+ return write(fd,(char *)ptr + off, sz);+}++INLINE int+__hscore_PrelHandle_read( int fd, void *ptr, HsInt off, int sz )+{+ return read(fd,(char *)ptr + off, sz);++}++#if defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)+INLINE int+__hscore_PrelHandle_send( int fd, void *ptr, HsInt off, int sz )+{+ return send(fd,(char *)ptr + off, sz, 0);+}++INLINE int+__hscore_PrelHandle_recv( int fd, void *ptr, HsInt off, int sz )+{+ return recv(fd,(char *)ptr + off, sz, 0);+}+#endif++#endif /* __GLASGOW_HASKELL__ */++INLINE int+__hscore_mkdir( char *pathName, int mode )+{+#if ( defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32) ) && !defined(__CYGWIN__)+ return mkdir(pathName);+#else+ return mkdir(pathName,mode);+#endif+}++INLINE int+__hscore_lstat( const char *fname, struct stat *st )+{+#if HAVE_LSTAT+ return lstat(fname, st);+#else+ return stat(fname, st);+#endif+}++INLINE char *+__hscore_d_name( struct dirent* d )+{+ return (d->d_name);+}++INLINE int+__hscore_end_of_dir( void )+{+ return READDIR_ERRNO_EOF;+}++INLINE void+__hscore_free_dirent(struct dirent *dEnt)+{+#if HAVE_READDIR_R+ free(dEnt);+#endif+}++#if defined(__MINGW32__)+// We want the versions of stat/fstat/lseek that use 64-bit offsets,+// and you have to ask for those explicitly. Unfortunately there+// doesn't seem to be a 64-bit version of truncate/ftruncate, so while+// hFileSize and hSeek will work with large files, hSetFileSize will not.+#define stat(file,buf) _stati64(file,buf)+#define fstat(fd,buf) _fstati64(fd,buf)+typedef struct _stati64 struct_stat;+typedef off64_t stsize_t;+#else+typedef struct stat struct_stat;+typedef off_t stsize_t;+#endif++INLINE HsInt+__hscore_sizeof_stat( void )+{+ return sizeof(struct_stat);+}++INLINE time_t __hscore_st_mtime ( struct_stat* st ) { return st->st_mtime; }+INLINE stsize_t __hscore_st_size ( struct_stat* st ) { return st->st_size; }+#if !defined(_MSC_VER)+INLINE mode_t __hscore_st_mode ( struct_stat* st ) { return st->st_mode; }+INLINE dev_t __hscore_st_dev ( struct_stat* st ) { return st->st_dev; }+INLINE ino_t __hscore_st_ino ( struct_stat* st ) { return st->st_ino; }+#endif++#if HAVE_TERMIOS_H+INLINE tcflag_t __hscore_lflag( struct termios* ts ) { return ts->c_lflag; }++INLINE void+__hscore_poke_lflag( struct termios* ts, tcflag_t t ) { ts->c_lflag = t; }++INLINE unsigned char*+__hscore_ptr_c_cc( struct termios* ts )+{ return (unsigned char*) &ts->c_cc; }++INLINE HsInt+__hscore_sizeof_termios( void )+{+#ifndef __MINGW32__+ return sizeof(struct termios);+#else+ return 0;+#endif+}+#endif++//sizeof_sigset_t is also use on windows systems which define tcflat_t. Why exclude it?+// #if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32)+INLINE HsInt+__hscore_sizeof_sigset_t( void )+{+ return sizeof(sigset_t);+}+// #endif++INLINE int+__hscore_echo( void )+{+#ifdef ECHO+ return ECHO;+#else+ return 0;+#endif++}++INLINE int+__hscore_tcsanow( void )+{+#ifdef TCSANOW+ return TCSANOW;+#else+ return 0;+#endif++}++INLINE int+__hscore_icanon( void )+{+#ifdef ICANON+ return ICANON;+#else+ return 0;+#endif+}++INLINE int __hscore_vmin( void )+{+#ifdef VMIN+ return VMIN;+#else+ return 0;+#endif+}++INLINE int __hscore_vtime( void )+{+#ifdef VTIME+ return VTIME;+#else+ return 0;+#endif+}++INLINE int __hscore_sigttou( void )+{+#ifdef SIGTTOU+ return SIGTTOU;+#else+ return 0;+#endif+}++INLINE int __hscore_sig_block( void )+{+#ifdef SIG_BLOCK+ return SIG_BLOCK;+#else+ return 0;+#endif+}++INLINE int __hscore_sig_setmask( void )+{+#ifdef SIG_SETMASK+ return SIG_SETMASK;+#else+ return 0;+#endif+}++INLINE int+__hscore_f_getfl( void )+{+#ifdef F_GETFL+ return F_GETFL;+#else+ return 0;+#endif+}++INLINE int+__hscore_f_setfl( void )+{+#ifdef F_SETFL+ return F_SETFL;+#else+ return 0;+#endif+}++// defined in rts/RtsStartup.c.+extern void* __hscore_get_saved_termios(int fd);+extern void __hscore_set_saved_termios(int fd, void* ts);++INLINE int __hscore_hs_fileno (FILE *f) { return fileno (f); }++INLINE int __hscore_open(char *file, int how, mode_t mode) {+#ifdef __MINGW32__+ if ((how & O_WRONLY) || (how & O_RDWR) || (how & O_APPEND))+ return _sopen(file,how,_SH_DENYRW,mode);+ else+ return _sopen(file,how,_SH_DENYWR,mode);+#else+ return open(file,how,mode);+#endif+}++// These are wrapped because on some OSs (eg. Linux) they are+// macros which redirect to the 64-bit-off_t versions when large file+// support is enabled.+//+#if defined(__MINGW32__)+INLINE off64_t __hscore_lseek(int fd, off64_t off, int whence) {+ return (_lseeki64(fd,off,whence));+}+#else+INLINE off_t __hscore_lseek(int fd, off_t off, int whence) {+ return (lseek(fd,off,whence));+}+#endif++INLINE HsInt __hscore_stat(char *file, struct_stat *buf) {+ return (stat(file,buf));+}++INLINE HsInt __hscore_fstat(int fd, struct_stat *buf) {+ return (fstat(fd,buf));+}++// select-related stuff++#if !defined(__MINGW32__)+INLINE int hsFD_SETSIZE(void) { return FD_SETSIZE; }+INLINE int hsFD_ISSET(int fd, fd_set *fds) { return FD_ISSET(fd, fds); }+INLINE void hsFD_SET(int fd, fd_set *fds) { FD_SET(fd, fds); }+INLINE HsInt sizeof_fd_set(void) { return sizeof(fd_set); }+extern void hsFD_ZERO(fd_set *fds);+#endif++// gettimeofday()-related++#if !defined(__MINGW32__)++INLINE HsInt sizeofTimeVal(void) { return sizeof(struct timeval); }++INLINE HsWord64 getUSecOfDay(void)+{+ struct timeval tv;+ gettimeofday(&tv, (struct timezone *) NULL);+ // Don't forget to cast *before* doing the arithmetic, otherwise+ // the arithmetic happens at the type of tv_sec, which is probably+ // only 'int'.+ return ((HsWord64)tv.tv_sec * 1000000 + (HsWord64)tv.tv_usec);+}++INLINE void setTimevalTicks(struct timeval *p, HsWord64 usecs)+{+ p->tv_sec = usecs / 1000000;+ p->tv_usec = usecs % 1000000;+}+#endif /* !defined(__MINGW32__) */++/* ToDo: write a feature test that doesn't assume 'environ' to+ * be in scope at link-time. */+extern char** environ;+INLINE char **__hscore_environ() { return environ; }++/* lossless conversions between pointers and integral types */+INLINE void * __hscore_from_uintptr(uintptr_t n) { return (void *)n; }+INLINE void * __hscore_from_intptr (intptr_t n) { return (void *)n; }+INLINE uintptr_t __hscore_to_uintptr (void *p) { return (uintptr_t)p; }+INLINE intptr_t __hscore_to_intptr (void *p) { return (intptr_t)p; }++void errorBelch2(const char*s, char *t);+void debugBelch2(const char*s, char *t);++#endif /* __HSBASE_H__ */+
@@ -0,0 +1,944 @@+/* ehclib/uhcbase/include/HsBaseConfig.h. Generated from HsBaseConfig.h.in by configure. */+#ifndef HSBASECONFIG_H+#define HSBASECONFIG_H++#include "MachDeps.h"++/********************************************************************/+/**** Sizes ****/+/********************************************************************/++#if SIZEOF_INTPTR_T == 8+#define HTYPE_INTPTR_T Int64+#define HTYPE_UINTPTR_T Word64+#else+#define HTYPE_INTPTR_T Int32+#define HTYPE_UINTPTR_T Word32+#endif++/* also here: typedef int sig_atomic_t+ */+#if SIZEOF_INT == 8+#define HTYPE_INT Int64+#define HTYPE_UNSIGNED_INT Word64+#define HTYPE_SIG_ATOMIC_T Word64+#else+#define HTYPE_INT Int32+#define HTYPE_UNSIGNED_INT Word32+#define HTYPE_SIG_ATOMIC_T Word32+#endif++#if SIZEOF_LONG == 8+#define HTYPE_LONG Int64+#define HTYPE_UNSIGNED_LONG Word64+#else+#define HTYPE_LONG Int32+#define HTYPE_UNSIGNED_LONG Word32+#endif++#if SIZEOF_VOID_P == 8+#define HTYPE_PTRDIFF_T Int64+#else+#define HTYPE_PTRDIFF_T Int32+#endif++#if SIZEOF_CLOCK_T == 8+#define HTYPE_CLOCK_T Word64+#else+#define HTYPE_CLOCK_T Word32+#endif++#if SIZEOF_TIME_T == 8+#define HTYPE_TIME_T Word64+#else+#define HTYPE_TIME_T Word32+#endif++#if SIZEOF_USECONDS_T == 8+#define HTYPE_USECONDS_T Word64+#else+#define HTYPE_USECONDS_T Word32+#endif++#if SIZEOF_SIZE_T == 8+#define HTYPE_SIZE_T Word64+#else+#define HTYPE_SIZE_T Word32+#endif++#if SIZEOF_WCHAR_T == 1+#define HTYPE_WCHAR_T Word8+#elif SIZEOF_WCHAR_T == 2+#define HTYPE_WCHAR_T Word16+#else+#define HTYPE_WCHAR_T Word32+#endif++++/* Define to Haskell type for char */+#define HTYPE_CHAR Int8++/* Define to Haskell type for double */+#define HTYPE_DOUBLE Double++/* Define to Haskell type for float */+#define HTYPE_FLOAT Float++/* Define to Haskell type for intmax_t */+#define HTYPE_INTMAX_T Int64++/* Define to Haskell type for long long */+#define HTYPE_LONG_LONG Int64++/* Define to Haskell type for short */+#define HTYPE_SHORT Int16++/* Define to Haskell type for signed char */+#define HTYPE_SIGNED_CHAR Int8++/* Define to Haskell type for uintmax_t */+#define HTYPE_UINTMAX_T Word64++/* Define to Haskell type for unsigned char */+#define HTYPE_UNSIGNED_CHAR Word8++/* Define to Haskell type for unsigned long long */+#define HTYPE_UNSIGNED_LONG_LONG Word64++/* Define to Haskell type for unsigned short */+#define HTYPE_UNSIGNED_SHORT Word16++++/********************************************************************/+/**** System tupes ****/+/********************************************************************/++#ifdef SIZEOF_DEV_T+# if SIZEOF_DEV_T == 8+# define HTYPE_DEV_T Word64+# elif SIZEOF_DEV_T == 4+# define HTYPE_DEV_T Word32+# elif SIZEOF_DEV_T == 2+# define HTYPE_DEV_T Word16+# else+# endif+#endif++#ifdef SIZEOF_INO_T+# if SIZEOF_INO_T == 8+# define HTYPE_INO_T Word64+# elif SIZEOF_INO_T == 4+# define HTYPE_INO_T Word32+# elif SIZEOF_INO_T == 2+# define HTYPE_INO_T Word16+# else+# endif+#endif++#ifdef SIZEOF_MODE_T+# if SIZEOF_MODE_T == 8+# define HTYPE_MODE_T Word64+# elif SIZEOF_MODE_T == 4+# define HTYPE_MODE_T Word32+# elif SIZEOF_MODE_T == 2+# define HTYPE_MODE_T Word16+# else+# endif+#endif++#ifdef SIZEOF_OFF_T+# if SIZEOF_OFF_T == 8+# define HTYPE_OFF_T Word64+# elif SIZEOF_OFF_T == 4+# define HTYPE_OFF_T Word32+# elif SIZEOF_OFF_T == 2+# define HTYPE_OFF_T Word16+# else+# endif+#endif++#ifdef SIZEOF_PID_T+# if SIZEOF_PID_T == 8+# define HTYPE_PID_T Word64+# elif SIZEOF_PID_T == 4+# define HTYPE_PID_T Word32+# elif SIZEOF_PID_T == 2+# define HTYPE_PID_T Word16+# else+# endif+#endif++#ifdef SIZEOF_SSIZE_T+# if SIZEOF_SSIZE_T == 8+# define HTYPE_SSIZE_T Word64+# elif SIZEOF_SSIZE_T == 4+# define HTYPE_SSIZE_T Word32+# elif SIZEOF_SSIZE_T == 2+# define HTYPE_SSIZE_T Word16+# else+# endif+#endif++#ifdef SIZEOF_GID_T+# if SIZEOF_GID_T == 8+# define HTYPE_GID_T Word64+# elif SIZEOF_GID_T == 4+# define HTYPE_GID_T Word32+# elif SIZEOF_GID_T == 2+# define HTYPE_GID_T Word16+# else+# endif+#endif++#ifdef SIZEOF_NLINK_T+# if SIZEOF_NLINK_T == 8+# define HTYPE_NLINK_T Word64+# elif SIZEOF_NLINK_T == 4+# define HTYPE_NLINK_T Word32+# elif SIZEOF_NLINK_T == 2+# define HTYPE_NLINK_T Word16+# else+# endif+#endif++#ifdef SIZEOF_UID_T+# if SIZEOF_UID_T == 8+# define HTYPE_UID_T Word64+# elif SIZEOF_UID_T == 4+# define HTYPE_UID_T Word32+# elif SIZEOF_UID_T == 2+# define HTYPE_UID_T Word16+# else+# endif+#endif++#ifdef SIZEOF_CC_T+# if SIZEOF_CC_T == 8+# define HTYPE_CC_T Word64+# elif SIZEOF_CC_T == 4+# define HTYPE_CC_T Word32+# elif SIZEOF_CC_T == 2+# define HTYPE_CC_T Word16+# else+# endif+#endif++#ifdef SIZEOF_SPEED_T+# if SIZEOF_SPEED_T == 8+# define HTYPE_SPEED_T Word64+# elif SIZEOF_SPEED_T == 4+# define HTYPE_SPEED_T Word32+# elif SIZEOF_SPEED_T == 2+# define HTYPE_SPEED_T Word16+# else+# endif+#endif++#ifdef SIZEOF_TCFLAG_T+# if SIZEOF_TCFLAG_T == 8+# define HTYPE_TCFLAG_T Word64+# elif SIZEOF_TCFLAG_T == 4+# define HTYPE_TCFLAG_T Word32+# elif SIZEOF_TCFLAG_T == 2+# define HTYPE_TCFLAG_T Word16+# else+# endif+#endif++#ifdef SIZEOF_RLIM_T+# if SIZEOF_RLIM_T == 8+# define HTYPE_RLIM_T Word64+# elif SIZEOF_RLIM_T == 4+# define HTYPE_RLIM_T Word32+# elif SIZEOF_RLIM_T == 2+# define HTYPE_RLIM_T Word16+# else+# endif+#endif++/********************************************************************/+/**** Presence of include files ****/+/********************************************************************/++#define HAVE_DIRENT_H 1+#define HAVE_ERRNO_H 1+#define HAVE_FCNTL_H 1+#define HAVE_INTTYPES_H 1+#define HAVE_LIMITS_H 1+#define HAVE_SIGNAL_H 1+#define HAVE_STDINT_H 1+#define HAVE_STRING_H 1+#define HAVE_SYS_RESOURCE_H 1+#define HAVE_SYS_SELECT_H 1+#define HAVE_SYS_STAT_H 1+#define HAVE_SYS_SYSCALL_H 1+#define HAVE_SYS_TIME_H 1+#define HAVE_SYS_TIMEB_H 1+/* #undef HAVE_SYS_TIMERS_H */+#define HAVE_SYS_TIMES_H 1+#define HAVE_SYS_TYPES_H 1+#define HAVE_SYS_UTSNAME_H 1+#define HAVE_SYS_WAIT_H 1+#define HAVE_TERMIOS_H 1+#define HAVE_TIME_H 1+#define HAVE_UNISTD_H 1+#define HAVE_UTIME_H 1+/* #undef HAVE_VFORK_H */+#define HAVE_WCTYPE_H 1+/* #undef HAVE_WINDOWS_H */+/* #undef HAVE_WINSOCK_H */++/* #undef HAVE__CHSIZE */+#define HAVE_FTRUNCATE 1+/* #undef HAVE_GETCLOCK */+#define HAVE_GETRUSAGE 1+#define HAVE_GETTIMEOFDAY 1+#define HAVE_LSTAT 1+#define HAVE_READDIR_R 1++/********************************************************************/+/**** Runtime types ****/+/********************************************************************/++#ifdef __UHC_BUILDS_O__++#if defined(__UHC_TARGET_BC__) || defined(__UHC_TARGET_C__)+// # define HsBool Word+// # define HsInt Word+// # define HsWord64 Word64+// # define HsWord32 Word32+// # define HsWord16 Word16+// # define HsWord8 Word8+// # ifdef __UHC_TARGET_BC__+// # define HS_BOOL_FALSE gb_False+// # define HS_BOOL_TRUE gb_True+// # else+// # define HS_BOOL_FALSE 0+// # define HS_BOOL_TRUE 1+// # endif+#endif /* __UHC_TARGET_BC__ */++#endif /* __UHC_BUILDS_O__ */++/********************************************************************/+/**** Read dir EOF error ****/+/********************************************************************/++/* See remarks in GHC, libraries/base/aclocal.m4: MinGW platform returns non 0 value. We ignore that */+#define READDIR_ERRNO_EOF 0++/********************************************************************/+/**** C errors ****/+/********************************************************************/++/* (1) Assume errno.h is already included */+/* (2) Error codes like EADV are not present on all platforms, so a dummy value is provided, this should be done for all codes */++/* The value of E2BIG. */+#if !defined(E2BIG)+#define E2BIG 10000+#endif+#define CONST_E2BIG E2BIG++/* The value of EACCES. */+#if !defined(EACCES)+#define EACCES 10000+#endif+#define CONST_EACCES EACCES++/* The value of EADDRINUSE. */+#if !defined(EADDRINUSE)+#define EADDRINUSE 10000+#endif+#define CONST_EADDRINUSE EADDRINUSE++/* The value of EADDRNOTAVAIL. */+#define CONST_EADDRNOTAVAIL EADDRNOTAVAIL++/* The value of EADV. */+#if !defined(EADV)+#define EADV 10000+#endif+#define CONST_EADV EADV++/* The value of EAFNOSUPPORT. */+#if !defined(EAFNOSUPPORT)+#define EAFNOSUPPORT 10000+#endif+#define CONST_EAFNOSUPPORT EAFNOSUPPORT++/* The value of EAGAIN. */+#if !defined(EAGAIN)+#define EAGAIN 10000+#endif+#define CONST_EAGAIN EAGAIN++/* The value of EALREADY. */+#if !defined(EALREADY)+#define EALREADY 10000+#endif+#define CONST_EALREADY EALREADY++/* The value of EBADF. */+#if !defined(EBADF)+#define EBADF 10000+#endif+#define CONST_EBADF EBADF++/* The value of EBADMSG. */+#if !defined(EBADMSG)+#define EBADMSG 10000+#endif+#define CONST_EBADMSG EBADMSG++/* The value of EBADRPC. */+#if !defined(EBADRPC)+#define EBADRPC 10000+#endif+#define CONST_EBADRPC EBADRPC++/* The value of EBUSY. */+#if !defined(EBUSY)+#define EBUSY 10000+#endif+#define CONST_EBUSY EBUSY++/* The value of ECHILD. */+#if !defined(ECHILD)+#define ECHILD 10000+#endif+#define CONST_ECHILD ECHILD++/* The value of ECOMM. */+#if !defined(ECOMM)+#define ECOMM 10000+#endif+#define CONST_ECOMM ECOMM++/* The value of ECONNABORTED. */+#if !defined(ECONNABORTED)+#define ECONNABORTED 10000+#endif+#define CONST_ECONNABORTED ECONNABORTED++/* The value of ECONNREFUSED. */+#if !defined(ECONNREFUSED)+#define ECONNREFUSED 10000+#endif+#define CONST_ECONNREFUSED ECONNREFUSED++/* The value of ECONNRESET. */+#if !defined(ECONNRESET)+#define ECONNRESET 10000+#endif+#define CONST_ECONNRESET ECONNRESET++/* The value of EDEADLK. */+#if !defined(EDEADLK)+#define EDEADLK 10000+#endif+#define CONST_EDEADLK EDEADLK++/* The value of EDESTADDRREQ. */+#if !defined(EDESTADDRREQ)+#define EDESTADDRREQ 10000+#endif+#define CONST_EDESTADDRREQ EDESTADDRREQ++/* The value of EDIRTY. */+#if !defined(EDIRTY)+#define EDIRTY 10000+#endif+#define CONST_EDIRTY EDIRTY++/* The value of EDOM. */+#if !defined(EDOM)+#define EDOM 10000+#endif+#define CONST_EDOM EDOM++/* The value of EDQUOT. */+#if !defined(EDQUOT)+#define EDQUOT 10000+#endif+#define CONST_EDQUOT EDQUOT++/* The value of EEXIST. */+#if !defined(EEXIST)+#define EEXIST 10000+#endif+#define CONST_EEXIST EEXIST++/* The value of EFAULT. */+#if !defined(EFAULT)+#define EFAULT 10000+#endif+#define CONST_EFAULT EFAULT++/* The value of EFBIG. */+#if !defined(EFBIG)+#define EFBIG 10000+#endif+#define CONST_EFBIG EFBIG++/* The value of EFTYPE. */+#if !defined(EFTYPE)+#define EFTYPE 10000+#endif+#define CONST_EFTYPE EFTYPE++/* The value of EHOSTDOWN. */+#if !defined(EHOSTDOWN)+#define EHOSTDOWN 10000+#endif+#define CONST_EHOSTDOWN EHOSTDOWN++/* The value of EHOSTUNREACH. */+#if !defined(EHOSTUNREACH)+#define EHOSTUNREACH 10000+#endif+#define CONST_EHOSTUNREACH EHOSTUNREACH++/* The value of EIDRM. */+#if !defined(EIDRM)+#define EIDRM 10000+#endif+#define CONST_EIDRM EIDRM++/* The value of EILSEQ. */+#if !defined(EILSEQ)+#define EILSEQ 10000+#endif+#define CONST_EILSEQ EILSEQ++/* The value of EINPROGRESS. */+#if !defined(EINPROGRESS)+#define EINPROGRESS 10000+#endif+#define CONST_EINPROGRESS EINPROGRESS++/* The value of EINTR. */+#if !defined(EINTR)+#define EINTR 10000+#endif+#define CONST_EINTR EINTR++/* The value of EINVAL. */+#if !defined(EINVAL)+#define EINVAL 10000+#endif+#define CONST_EINVAL EINVAL++/* The value of EIO. */+#if !defined(EIO)+#define EIO 10000+#endif+#define CONST_EIO EIO++/* The value of EISCONN. */+#if !defined(EISCONN)+#define EISCONN 10000+#endif+#define CONST_EISCONN EISCONN++/* The value of EISDIR. */+#if !defined(EISDIR)+#define EISDIR 10000+#endif+#define CONST_EISDIR EISDIR++/* The value of ELOOP. */+#if !defined(ELOOP)+#define ELOOP 10000+#endif+#define CONST_ELOOP ELOOP++/* The value of EMFILE. */+#if !defined(EMFILE)+#define EMFILE 10000+#endif+#define CONST_EMFILE EMFILE++/* The value of EMLINK. */+#if !defined(EMLINK)+#define EMLINK 10000+#endif+#define CONST_EMLINK EMLINK++/* The value of EMSGSIZE. */+#if !defined(EMSGSIZE)+#define EMSGSIZE 10000+#endif+#define CONST_EMSGSIZE EMSGSIZE++/* The value of EMULTIHOP. */+#if !defined(EMULTIHOP)+#define EMULTIHOP 10000+#endif+#define CONST_EMULTIHOP EMULTIHOP++/* The value of ENAMETOOLONG. */+#if !defined(ENAMETOOLONG)+#define ENAMETOOLONG 10000+#endif+#define CONST_ENAMETOOLONG ENAMETOOLONG++/* The value of ENETDOWN. */+#if !defined(ENETDOWN)+#define ENETDOWN 10000+#endif+#define CONST_ENETDOWN ENETDOWN++/* The value of ENETRESET. */+#if !defined(ENETRESET)+#define ENETRESET 10000+#endif+#define CONST_ENETRESET ENETRESET++/* The value of ENETUNREACH. */+#if !defined(ENETUNREACH)+#define ENETUNREACH 10000+#endif+#define CONST_ENETUNREACH ENETUNREACH++/* The value of ENFILE. */+#if !defined(ENFILE)+#define ENFILE 10000+#endif+#define CONST_ENFILE ENFILE++/* The value of ENOBUFS. */+#if !defined(ENOBUFS)+#define ENOBUFS 10000+#endif+#define CONST_ENOBUFS ENOBUFS++/* The value of ENOCIGAR. */+#if !defined(ENOCIGAR)+#define ENOCIGAR 10000+#endif+#define CONST_ENOCIGAR ENOCIGAR++/* The value of ENODATA. */+#if !defined(ENODATA)+#define ENODATA 10000+#endif+#define CONST_ENODATA ENODATA++/* The value of ENODEV. */+#if !defined(ENODEV)+#define ENODEV 10000+#endif+#define CONST_ENODEV ENODEV++/* The value of ENOENT. */+#if !defined(ENOENT)+#define ENOENT 10000+#endif+#define CONST_ENOENT ENOENT++/* The value of ENOEXEC. */+#if !defined(ENOEXEC)+#define ENOEXEC 10000+#endif+#define CONST_ENOEXEC ENOEXEC++/* The value of ENOLCK. */+#if !defined(ENOLCK)+#define ENOLCK 10000+#endif+#define CONST_ENOLCK ENOLCK++/* The value of ENOLINK. */+#if !defined(ENOLINK)+#define ENOLINK 10000+#endif+#define CONST_ENOLINK ENOLINK++/* The value of ENOMEM. */+#if !defined(ENOMEM)+#define ENOMEM 10000+#endif+#define CONST_ENOMEM ENOMEM++/* The value of ENOMSG. */+#if !defined(ENOMSG)+#define ENOMSG 10000+#endif+#define CONST_ENOMSG ENOMSG++/* The value of ENONET. */+#if !defined(ENONET)+#define ENONET 10000+#endif+#define CONST_ENONET ENONET++/* The value of ENOPROTOOPT. */+#if !defined(ENOPROTOOPT)+#define ENOPROTOOPT 10000+#endif+#define CONST_ENOPROTOOPT ENOPROTOOPT++/* The value of ENOSPC. */+#if !defined(ENOSPC)+#define ENOSPC 10000+#endif+#define CONST_ENOSPC ENOSPC++/* The value of ENOSR. */+#if !defined(ENOSR)+#define ENOSR 10000+#endif+#define CONST_ENOSR ENOSR++/* The value of ENOSTR. */+#if !defined(ENOSTR)+#define ENOSTR 10000+#endif+#define CONST_ENOSTR ENOSTR++/* The value of ENOSYS. */+#if !defined(ENOSYS)+#define ENOSYS 10000+#endif+#define CONST_ENOSYS ENOSYS++/* The value of ENOTBLK. */+#if !defined(ENOTBLK)+#define ENOTBLK 10000+#endif+#define CONST_ENOTBLK ENOTBLK++/* The value of ENOTCONN. */+#if !defined(ENOTCONN)+#define ENOTCONN 10000+#endif+#define CONST_ENOTCONN ENOTCONN++/* The value of ENOTDIR. */+#if !defined(ENOTDIR)+#define ENOTDIR 10000+#endif+#define CONST_ENOTDIR ENOTDIR++/* The value of ENOTEMPTY. */+#if !defined(ENOTEMPTY)+#define ENOTEMPTY 10000+#endif+#define CONST_ENOTEMPTY ENOTEMPTY++/* The value of ENOTSOCK. */+#if !defined(ENOTSOCK)+#define ENOTSOCK 10000+#endif+#define CONST_ENOTSOCK ENOTSOCK++/* The value of ENOTTY. */+#if !defined(ENOTTY)+#define ENOTTY 10000+#endif+#define CONST_ENOTTY ENOTTY++/* The value of ENXIO. */+#if !defined(ENXIO)+#define ENXIO 10000+#endif+#define CONST_ENXIO ENXIO++/* The value of EOPNOTSUPP. */+#if !defined(EOPNOTSUPP)+#define EOPNOTSUPP 10000+#endif+#define CONST_EOPNOTSUPP EOPNOTSUPP++/* The value of EPERM. */+#if !defined(EPERM)+#define EPERM 10000+#endif+#define CONST_EPERM EPERM++/* The value of EPFNOSUPPORT. */+#if !defined(EPFNOSUPPORT)+#define EPFNOSUPPORT 10000+#endif+#define CONST_EPFNOSUPPORT EPFNOSUPPORT++/* The value of EPIPE. */+#if !defined(EPIPE)+#define EPIPE 10000+#endif+#define CONST_EPIPE EPIPE++/* The value of EPROCLIM. */+#if !defined(EPROCLIM)+#define EPROCLIM 10000+#endif+#define CONST_EPROCLIM EPROCLIM++/* The value of EPROCUNAVAIL. */+#if !defined(EPROCUNAVAIL)+#define EPROCUNAVAIL 10000+#endif+#define CONST_EPROCUNAVAIL EPROCUNAVAIL++/* The value of EPROGMISMATCH. */+#if !defined(EPROGMISMATCH)+#define EPROGMISMATCH 10000+#endif+#define CONST_EPROGMISMATCH EPROGMISMATCH++/* The value of EPROGUNAVAIL. */+#if !defined(EPROGUNAVAIL)+#define EPROGUNAVAIL 10000+#endif+#define CONST_EPROGUNAVAIL EPROGUNAVAIL++/* The value of EPROTO. */+#if !defined(EPROTO)+#define EPROTO 10000+#endif+#define CONST_EPROTO EPROTO++/* The value of EPROTONOSUPPORT. */+#if !defined(EPROTONOSUPPORT)+#define EPROTONOSUPPORT 10000+#endif+#define CONST_EPROTONOSUPPORT EPROTONOSUPPORT++/* The value of EPROTOTYPE. */+#if !defined(EPROTOTYPE)+#define EPROTOTYPE 10000+#endif+#define CONST_EPROTOTYPE EPROTOTYPE++/* The value of ERANGE. */+#if !defined(ERANGE)+#define ERANGE 10000+#endif+#define CONST_ERANGE ERANGE++/* The value of EREMCHG. */+#if !defined(EREMCHG)+#define EREMCHG 10000+#endif+#define CONST_EREMCHG EREMCHG++/* The value of EREMOTE. */+#if !defined(EREMOTE)+#define EREMOTE 10000+#endif+#define CONST_EREMOTE EREMOTE++/* The value of EROFS. */+#if !defined(EROFS)+#define EROFS 10000+#endif+#define CONST_EROFS EROFS++/* The value of ERPCMISMATCH. */+#if !defined(ERPCMISMATCH)+#define ERPCMISMATCH 10000+#endif+#define CONST_ERPCMISMATCH ERPCMISMATCH++/* The value of ERREMOTE. */+#if !defined(ERREMOTE)+#define ERREMOTE 10000+#endif+#define CONST_ERREMOTE ERREMOTE++/* The value of ESHUTDOWN. */+#if !defined(ESHUTDOWN)+#define ESHUTDOWN 10000+#endif+#define CONST_ESHUTDOWN ESHUTDOWN++/* The value of ESOCKTNOSUPPORT. */+#if !defined(ESOCKTNOSUPPORT)+#define ESOCKTNOSUPPORT 10000+#endif+#define CONST_ESOCKTNOSUPPORT ESOCKTNOSUPPORT++/* The value of ESPIPE. */+#if !defined(ESPIPE)+#define ESPIPE 10000+#endif+#define CONST_ESPIPE ESPIPE++/* The value of ESRCH. */+#if !defined(ESRCH)+#define ESRCH 10000+#endif+#define CONST_ESRCH ESRCH++/* The value of ESRMNT. */+#if !defined(ESRMNT)+#define ESRMNT 10000+#endif+#define CONST_ESRMNT ESRMNT++/* The value of ESTALE. */+#if !defined(ESTALE)+#define ESTALE 10000+#endif+#define CONST_ESTALE ESTALE++/* The value of ETIME. */+#if !defined(ETIME)+#define ETIME 10000+#endif+#define CONST_ETIME ETIME++/* The value of ETIMEDOUT. */+#if !defined(ETIMEDOUT)+#define ETIMEDOUT 10000+#endif+#define CONST_ETIMEDOUT ETIMEDOUT++/* The value of ETOOMANYREFS. */+#if !defined(ETOOMANYREFS)+#define ETOOMANYREFS 10000+#endif+#define CONST_ETOOMANYREFS ETOOMANYREFS++/* The value of ETXTBSY. */+#if !defined(ETXTBSY)+#define ETXTBSY 10000+#endif+#define CONST_ETXTBSY ETXTBSY++/* The value of EUSERS. */+#if !defined(EUSERS)+#define EUSERS 10000+#endif+#define CONST_EUSERS EUSERS++/* The value of EWOULDBLOCK. */+#if !defined(EWOULDBLOCK)+#define EWOULDBLOCK 10000+#endif+#define CONST_EWOULDBLOCK EWOULDBLOCK++/* The value of EXDEV. */+#if !defined(EXDEV)+#define EXDEV 10000+#endif+#define CONST_EXDEV EXDEV++/* The value of O_BINARY. */+#if !defined(O_BINARY)+#define O_BINARY 10000+#endif+#define CONST_O_BINARY O_BINARY++/* The value of SIGINT. */+#if !defined(SIGINT)+#define SIGINT 10000+#endif+#define CONST_SIGINT SIGINT+++#endif+
@@ -0,0 +1,242 @@+{- --------------------------------------------------------------------------+// Macros to help make various instances for Int like types (Int8, ...).+//+// Primitives are defined by 2 forms of macros:+// - starting with PRIMS_ : name of Haskell function and primitive is the same+// - starting with PRIMS2_ : name of primitive is given explicitly, to allow sharing between primitives+// --------------------------------------------------------------------------+-}++-- define conversion primitives+#define PRIMS_CONVERSION_INTEGER(tycon,primIntegerTo,primToInteger) \+foreign import prim primIntegerTo :: Integer -> tycon ; \+foreign import prim primToInteger :: tycon -> Integer ++#define PRIMS2_CONVERSION_INTEGER(tycon,primIntegerTo,primIntegerToNm,primToInteger,primToIntegerNm) \+foreign import prim primIntegerToNm primIntegerTo :: Integer -> tycon ; \+foreign import prim primToIntegerNm primToInteger :: tycon -> Integer ++#define PRIMS_CONVERSION_INT(tycon,primIntTo,primToInt) \+foreign import prim primIntTo :: Int -> tycon ; \+foreign import prim primToInt :: tycon -> Int +++-- define Eq primitives+#define PRIMS_EQ(tycon,primEq,primNe) \+foreign import prim primEq :: tycon -> tycon -> Bool ; \+foreign import prim primNe :: tycon -> tycon -> Bool ++#define PRIMS2_EQ(tycon,primEq,primEqNm,primNe,primNeNm) \+foreign import prim primEqNm primEq :: tycon -> tycon -> Bool ; \+foreign import prim primNeNm primNe :: tycon -> tycon -> Bool+++-- define Eq instance+#define INSTANCE_EQ(tycon,primEq,primNe) \+instance Eq tycon where \+ { (==) = primEq ; \+ (/=) = primNe \+ }+++-- define Ord primitives++#define PRIMS_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \+foreign import prim primCmp :: tycon -> tycon -> Ordering ; \+foreign import prim primLt :: tycon -> tycon -> Bool ; \+foreign import prim primGt :: tycon -> tycon -> Bool ; \+foreign import prim primLe :: tycon -> tycon -> Bool ; \+foreign import prim primGe :: tycon -> tycon -> Bool ++#define PRIMS2_ORD(tycon,primCmp,primCmpNm,primLt,primLtNm,primGt,primGtNm,primLe,primLeNm,primGe,primGeNm) \+foreign import prim primCmpNm primCmp :: tycon -> tycon -> Ordering ; \+foreign import prim primLtNm primLt :: tycon -> tycon -> Bool ; \+foreign import prim primGtNm primGt :: tycon -> tycon -> Bool ; \+foreign import prim primLeNm primLe :: tycon -> tycon -> Bool ; \+foreign import prim primGeNm primGe :: tycon -> tycon -> Bool +++-- define Ord instance++#define INSTANCE_ORD(tycon,primCmp,primLt,primGt,primLe,primGe) \+instance Ord tycon where \+ { compare = primCmp \+ ; (<) = primLt \+ ; (>) = primGt \+ ; (<=) = primLe \+ ; (>=) = primGe \+ }+++-- define Bounded primitives+#define PRIMS_BOUNDED(tycon,primMin,primMax) \+foreign import prim primMin :: tycon ; \+foreign import prim primMax :: tycon +++-- define Bounded instance+#define INSTANCE_BOUNDED(tycon,primMin,primMax) \+instance Bounded tycon where \+ { minBound = primMin \+ ; maxBound = primMax \+ }+++-- define Num primitives+#define PRIMS_NUM(tycon,primAdd,primSub,primMul,primNeg) \+foreign import prim primAdd :: tycon -> tycon -> tycon ; \+foreign import prim primSub :: tycon -> tycon -> tycon ; \+foreign import prim primMul :: tycon -> tycon -> tycon ; \+foreign import prim primNeg :: tycon -> tycon ++#define PRIMS2_NUM(tycon,primAdd,primAddNm,primSub,primSubNm,primMul,primMulNm,primNeg,primNegNm) \+foreign import prim primAddNm primAdd :: tycon -> tycon -> tycon ; \+foreign import prim primSubNm primSub :: tycon -> tycon -> tycon ; \+foreign import prim primMulNm primMul :: tycon -> tycon -> tycon ; \+foreign import prim primNegNm primNeg :: tycon -> tycon +++-- define Num instance+#define INSTANCE_NUM(tycon,primAdd,primSub,primMul,primNeg,primIntegerTo,primIntTo) \+instance Num tycon where \+ { (+) = primAdd \+ ; (-) = primSub \+ ; (*) = primMul \+ ; negate = primNeg \+ ; fromInteger = primIntegerTo \+ ; fromInt = primIntTo \+ ; abs = absReal \+ ; signum = signumReal \+ }+++-- define Enum instance+#define INSTANCE_ENUM(tycon,primToEnum,primFromEnum) \+instance Enum tycon where \+ { succ = boundedSucc \+ ; pred = boundedPred \+ ; toEnum = primToEnum \+ ; fromEnum = primFromEnum \+ ; enumFrom = boundedEnumFrom \+ ; enumFromTo = boundedEnumFromTo \+ ; enumFromThen = boundedEnumFromThen \+ ; enumFromThenTo = boundedEnumFromThenTo \+ }+++-- define Real instance+#define INSTANCE_REAL(tycon) \+instance Real tycon where \+ { toRational x = toInteger x % 1 \+ }+++-- define Integral primitives+#define PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) \+foreign import prim primDiv :: tycon -> tycon -> tycon ; \+foreign import prim primMod :: tycon -> tycon -> tycon ; \+foreign import prim primQuot :: tycon -> tycon -> tycon ; \+foreign import prim primRem :: tycon -> tycon -> tycon ++#define PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primRemNm) \+foreign import prim primDivNm primDiv :: tycon -> tycon -> tycon ; \+foreign import prim primModNm primMod :: tycon -> tycon -> tycon ; \+foreign import prim primQuotNm primQuot :: tycon -> tycon -> tycon ; \+foreign import prim primRemNm primRem :: tycon -> tycon -> tycon ++#define PRIMS_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem) \+PRIMS_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem) ; \+foreign import prim primDivMod :: tycon -> tycon -> (tycon,tycon) ; \+foreign import prim primQuotRem :: tycon -> tycon -> (tycon,tycon) ++#define PRIMS2_INTEGRAL2(tycon,primDiv,primDivNm,primMod,primModNm,primDivMod,primDivModNm,primQuot,primQuotNm,primRem,primRemNm,primQuotRem,primQuotRemNm) \+PRIMS2_INTEGRAL1(tycon,primDiv,primDivNm,primMod,primModNm,primQuot,primQuotNm,primRem,primQuotRemNm) ; \+foreign import prim primDivModNm primDivMod :: tycon -> tycon -> (tycon,tycon) ; \+foreign import prim primQuotRemNm primQuotRem :: tycon -> tycon -> (tycon,tycon) +++-- define Integral instance, assume default for divMod+#define INSTANCE_INTEGRAL1(tycon,primDiv,primMod,primQuot,primRem,primToInteger,primToInt) \+instance Integral tycon where \+ { quotRem d m \+ = (primQuot d m, primRem d m) \+ ; div = primDiv \+ ; quot = primQuot \+ ; rem = primRem \+ ; mod = primMod \+ ; toInteger = primToInteger \+ ; toInt = primToInt \+ }++#define INSTANCE_INTEGRAL2(tycon,primDiv,primMod,primDivMod,primQuot,primRem,primQuotRem,primToInteger,primToInt) \+instance Integral tycon where \+ { divMod = primDivMod \+ ; quotRem = primQuotRem \+ ; div = primDiv \+ ; quot = primQuot \+ ; rem = primRem \+ ; mod = primMod \+ ; toInteger = primToInteger \+ ; toInt = primToInt \+ }+++-- define Show instance+#define INSTANCE_SHOW(tycon) \+instance Show tycon where \+ { show = show . toInteger \+ }+++-- define Read instance+#define INSTANCE_READ(tycon) \+instance Read tycon where \+ { readsPrec p = readSigned readDec \+ }+++-- define Bits primitives+#define PRIMS_BITLOGIC(tycon,primAnd,primOr,primXor) \+foreign import prim primAnd :: tycon -> tycon -> tycon ; \+foreign import prim primOr :: tycon -> tycon -> tycon ; \+foreign import prim primXor :: tycon -> tycon -> tycon++#define PRIMS_BITSHIFT(tycon,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \+foreign import prim primComplement :: tycon -> tycon ; \+foreign import prim primShiftLeft :: tycon -> Int -> tycon ; \+foreign import prim primShiftRight :: tycon -> Int -> tycon ; \+foreign import prim primRotateLeft :: tycon -> Int -> tycon ; \+foreign import prim primRotateRight :: tycon -> Int -> tycon++#define PRIMS2_BITLOGIC(tycon,primAnd,primAndNm,primOr,primOrNm,primXor,primXorNm) \+foreign import prim primAndNm primAnd :: tycon -> tycon -> tycon ; \+foreign import prim primOrNm primOr :: tycon -> tycon -> tycon ; \+foreign import prim primXorNm primXor :: tycon -> tycon -> tycon++#define PRIMS2_BITSHIFT(tycon,primComplement,primComplementNm,primShiftLeft,primShiftLeftNm,primShiftRight,primShiftRightNm,primRotateLeft,primRotateLeftNm,primRotateRight,primRotateRightNm) \+foreign import prim primComplementNm primComplement :: tycon -> tycon ; \+foreign import prim primShiftLeftNm primShiftLeft :: tycon -> Int -> tycon ; \+foreign import prim primShiftRightNm primShiftRight :: tycon -> Int -> tycon ; \+foreign import prim primRotateLeftNm primRotateLeft :: tycon -> Int -> tycon ; \+foreign import prim primRotateRightNm primRotateRight :: tycon -> Int -> tycon++-- define Bits instance+#define INSTANCE_BITS1(tycon,size,signed,primAnd,primOr,primXor,primComplement,primShiftLeft,primShiftRight,primRotateLeft,primRotateRight) \+instance Bits tycon where \+ { (.&.) = primAnd \+ ; (.|.) = primOr \+ ; xor = primXor \+ ; complement = primComplement \+ ; shiftL = primShiftLeft \+ ; shiftR = primShiftRight \+ ; rotateL = primRotateLeft \+ ; rotateR = primRotateRight \+ ; bitSize _ = size \+ ; isSigned _ = signed \+ }++++++
@@ -0,0 +1,125 @@+/* ehclib/uhcbase/include/MachDeps.h. Generated from MachDeps.h.in by configure. */+#ifndef MACHDEPS_H+#define MACHDEPS_H++#define SIZEOF_INTPTR_T 8+#define SIZEOF_CHAR 1+#define SIZEOF_SHORT 2+#define SIZEOF_INT 4+#define SIZEOF_LONG 8+#define SIZEOF_LONG_LONG 8+#define SIZEOF_FLOAT 4+#define SIZEOF_DOUBLE 8+#define SIZEOF_UNSIGNED_CHAR 1+#define SIZEOF_UNSIGNED_SHORT 2+#define SIZEOF_UNSIGNED_INT 4+#define SIZEOF_UNSIGNED_LONG 8+#define SIZEOF_UNSIGNED_LONG_LONG 8+#define SIZEOF_VOID_P 8++#define SIZEOF_DEV_T 4+#define SIZEOF_INO_T 8+#define SIZEOF_OFF_T 8+#define SIZEOF_MODE_T 2+#define SIZEOF_PID_T 4+#define SIZEOF_SSIZE_T 8+#define SIZEOF_GID_T 4+#define SIZEOF_NLINK_T 2+#define SIZEOF_UID_T 4+#define SIZEOF_RLIM_T 8+#define SIZEOF_CLOCK_T 8+#define SIZEOF_TIME_T 8+#define SIZEOF_SIZE_T 8+#define SIZEOF_WCHAR_T 4++#define SIZEOF_CC_T 1+#define SIZEOF_SPEED_T 8+#define SIZEOF_TCFLAG_T 8++#define ALIGNOF_INTPTR_T 8+#define ALIGNOF_CHAR 1+#define ALIGNOF_SHORT 2+#define ALIGNOF_INT 4+#define ALIGNOF_LONG 8+#define ALIGNOF_LONG_LONG 8+#define ALIGNOF_FLOAT 4+#define ALIGNOF_DOUBLE 8+#define ALIGNOF_UNSIGNED_CHAR 1+#define ALIGNOF_UNSIGNED_SHORT 2+#define ALIGNOF_UNSIGNED_INT 4+#define ALIGNOF_UNSIGNED_LONG 8+#define ALIGNOF_UNSIGNED_LONG_LONG 8+#define ALIGNOF_VOID_P 8++#define ALIGNOF_UINT8_T 1+#define ALIGNOF_UINT16_T 2+#define ALIGNOF_UINT32_T 4+#define ALIGNOF_UINT64_T 8++#if SIZEOF_INTPTR_T == 8+#define USE_64_BITS 1+#define USE_32_BITS 0+#else+#define USE_64_BITS 0+#define USE_32_BITS 1+#endif++#ifdef __UHC_TARGET_BC__+#define BITSIZEOF_WORDTAG 1+#else+#define BITSIZEOF_WORDTAG 0+#endif++#define SIZEOF_HSCHAR SIZEOF_INTPTR_T+#define ALIGNMENT_HSCHAR ALIGNOF_UINT32_T++#define SIZEOF_HSINT SIZEOF_INTPTR_T+#define ALIGNMENT_HSINT ALIGNOF_INTPTR_T++#define SIZEOF_HSWORD SIZEOF_INTPTR_T+#define ALIGNMENT_HSWORD ALIGNOF_INTPTR_T++#define SIZEOF_HSDOUBLE SIZEOF_DOUBLE+#define ALIGNMENT_HSDOUBLE ALIGNOF_DOUBLE++#define SIZEOF_HSFLOAT SIZEOF_FLOAT+#define ALIGNMENT_HSFLOAT ALIGNOF_FLOAT++#define SIZEOF_HSPTR SIZEOF_VOID_P+#define ALIGNMENT_HSPTR ALIGNOF_VOID_P++#define SIZEOF_HSFUNPTR SIZEOF_VOID_P+#define ALIGNMENT_HSFUNPTR ALIGNOF_VOID_P++#define SIZEOF_HSFOREIGNPTR SIZEOF_VOID_P+#define ALIGNMENT_HSFOREIGNPTR ALIGNOF_VOID_P++#define SIZEOF_HSSTABLEPTR SIZEOF_VOID_P+#define ALIGNMENT_HSSTABLEPTR ALIGNOF_VOID_P++#define SIZEOF_INT8 8+#define ALIGNMENT_INT8 ALIGNOF_UINT8_T++#define SIZEOF_WORD8 8+#define ALIGNMENT_WORD8 ALIGNOF_UINT8_T++#define SIZEOF_INT16 16+#define ALIGNMENT_INT16 ALIGNOF_UINT16_T++#define SIZEOF_WORD16 16+#define ALIGNMENT_WORD16 ALIGNOF_UINT16_T++#define SIZEOF_INT32 32+#define ALIGNMENT_INT32 ALIGNOF_UINT32_T++#define SIZEOF_WORD32 32+#define ALIGNMENT_WORD32 ALIGNOF_UINT32_T++#define SIZEOF_INT64 64+#define ALIGNMENT_INT64 ALIGNOF_UINT64_T++#define SIZEOF_WORD64 64+#define ALIGNMENT_WORD64 ALIGNOF_UINT64_T+++#endif
@@ -0,0 +1,147 @@+{- --------------------------------------------------------------------------+// Macros to help make various instances for tuples.+// A kind of poor mans deriving.+//+// --------------------------------------------------------------------------+-}++#define COMMA ,++{- --------------------------------------------------------------------------+// 2 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b) => clscon (a,b) where \+ { op1 op1preArg (a,b) op1postArg \+ = pre \+ op1subop a \+ sep op1subop b \+ post \+ }++{- --------------------------------------------------------------------------+// 3 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \+ { op1 op1preArg (a,b,c) op1postArg \+ = pre \+ op1subop a \+ sep op1subop b \+ sep op1subop c \+ post \+ }++{- --------------------------------------------------------------------------+// 4 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \+ { op1 op1preArg (a,b,c,d) op1postArg \+ = pre \+ op1subop a \+ sep op1subop b \+ sep op1subop c \+ sep op1subop d \+ post \+ }++{- --------------------------------------------------------------------------+// 5 tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \+ { op1 op1preArg (a,b,c,d,e) op1postArg \+ = pre \+ op1subop a \+ sep op1subop b \+ sep op1subop c \+ sep op1subop d \+ sep op1subop e \+ post \+ }++{- --------------------------------------------------------------------------+// Set of 2..n tuple, 1 unary op+// --------------------------------------------------------------------------+-}+#define TUPLE_UNOP1_INSTANCES(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+{ TUPLE2_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\+ TUPLE3_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\+ TUPLE4_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) ;\+ TUPLE5_UNOP1_INSTANCE(clscon,op1,op1preArg,op1postArg,op1subop,pre,sep,post) \+}++{- --------------------------------------------------------------------------+// 2 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b) => clscon (a,b) where \+ { (a1,b1) op1 (a2,b2) \+ = pre \+ a1 op1subop a2 \+ sep b1 op1subop b2 \+ post \+ }++{- --------------------------------------------------------------------------+// 3 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c) => clscon (a,b,c) where \+ { (a1,b1,c1) op1 (a2,b2,c2) \+ = pre \+ a1 op1subop a2 \+ sep b1 op1subop b2 \+ sep c1 op1subop c2 \+ post \+ }++{- --------------------------------------------------------------------------+// 4 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d) => clscon (a,b,c,d) where \+ { (a1,b1,c1,d1) op1 (a2,b2,c2,d2) \+ = pre \+ a1 op1subop a2 \+ sep b1 op1subop b2 \+ sep c1 op1subop c2 \+ sep d1 op1subop d2 \+ post \+ }++{- --------------------------------------------------------------------------+// 5 tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+instance (clscon a, clscon b, clscon c, clscon d, clscon e) => clscon (a,b,c,d,e) where \+ { (a1,b1,c1,d1,e1) op1 (a2,b2,c2,d2,e2) \+ = pre \+ a1 op1subop a2 \+ sep b1 op1subop b2 \+ sep c1 op1subop c2 \+ sep d1 op1subop d2 \+ sep e1 op1subop e2 \+ post \+ }++{- --------------------------------------------------------------------------+// Set of 2..n tuple, 1 binary op+// --------------------------------------------------------------------------+-}+#define TUPLE_BINOP1_INSTANCES(clscon,op1,op1subop,pre,sep,post) \+{ TUPLE2_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\+ TUPLE3_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\+ TUPLE4_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) ;\+ TUPLE5_BINOP1_INSTANCE(clscon,op1,op1subop,pre,sep,post) \+}+
@@ -0,0 +1,149 @@+{- --------------------------------------------------------------------------+// Macros to help make Typeable instances.+//+// INSTANCE_TYPEABLEn(tc,tcname,"tc") defines+//+// instance Typeable/n/ tc+// instance Typeable a => Typeable/n-1/ (tc a)+// instance (Typeable a, Typeable b) => Typeable/n-2/ (tc a b)+// ...+// instance (Typeable a1, ..., Typeable an) => Typeable (tc a1 ... an)+// --------------------------------------------------------------------------+-}++#ifndef TYPEABLE_H+#define TYPEABLE_H++#define INSTANCE_TYPEABLE0(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }++#ifdef __GLASGOW_HASKELL__++-- // For GHC, the extra instances follow from general instance declarations+-- // defined in Data.Typeable.++#define INSTANCE_TYPEABLE1(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE2(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE3(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE4(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE5(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE6(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }++#define INSTANCE_TYPEABLE7(tycon,tcname,str) \+tcname :: TyCon; \+tcname = mkTyCon str; \+instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }++#else /* !__GLASGOW_HASKELL__ */++#define INSTANCE_TYPEABLE1(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable (tycon a) where { typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE2(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable1 (tycon a) where { \+ typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b) => Typeable (tycon a b) where { \+ typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE3(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable2 (tycon a) where { \+ typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b) => Typeable1 (tycon a b) where { \+ typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable (tycon a b c) where { \+ typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE4(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable4 tycon where { typeOf4 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable3 (tycon a) where { \+ typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b) => Typeable2 (tycon a b) where { \+ typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable1 (tycon a b c) where { \+ typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable (tycon a b c d) where { \+ typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE5(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable5 tycon where { typeOf5 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable4 (tycon a) where { \+ typeOf4 = typeOf4Default }; \+instance (Typeable a, Typeable b) => Typeable3 (tycon a b) where { \+ typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable2 (tycon a b c) where { \+ typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable1 (tycon a b c d) where { \+ typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable (tycon a b c d e) where { \+ typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE6(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable6 tycon where { typeOf6 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable5 (tycon a) where { \+ typeOf5 = typeOf5Default }; \+instance (Typeable a, Typeable b) => Typeable4 (tycon a b) where { \+ typeOf4 = typeOf4Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable3 (tycon a b c) where { \+ typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable2 (tycon a b c d) where { \+ typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable1 (tycon a b c d e) where { \+ typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable (tycon a b c d e f) where { \+ typeOf = typeOfDefault }++#define INSTANCE_TYPEABLE7(tycon,tcname,str) \+tcname = mkTyCon str; \+instance Typeable7 tycon where { typeOf7 _ = mkTyConApp tcname [] }; \+instance Typeable a => Typeable6 (tycon a) where { \+ typeOf6 = typeOf6Default }; \+instance (Typeable a, Typeable b) => Typeable5 (tycon a b) where { \+ typeOf5 = typeOf5Default }; \+instance (Typeable a, Typeable b, Typeable c) => Typeable4 (tycon a b c) where { \+ typeOf4 = typeOf4Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d) => Typeable3 (tycon a b c d) where { \+ typeOf3 = typeOf3Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e) => Typeable2 (tycon a b c d e) where { \+ typeOf2 = typeOf2Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f) => Typeable1 (tycon a b c d e f) where { \+ typeOf1 = typeOf1Default }; \+instance (Typeable a, Typeable b, Typeable c, Typeable d, Typeable e, Typeable f, Typeable g) => Typeable (tycon a b c d e f g) where { \+ typeOf = typeOfDefault }++#endif /* !__GLASGOW_HASKELL__ */++#endif
@@ -0,0 +1,11 @@+/* + * (c) The University of Glasgow 2002+ *+ * Directory Runtime Support+ */+#ifndef __DIRUTILS_H__+#define __DIRUTILS_H__++extern int __hscore_readdir(DIR *dirPtr, struct dirent **pDirEnt);++#endif /* __DIRUTILS_H__ */
@@ -0,0 +1,2 @@+exposed-modules: Control.Monad Data.Bits Data.Char Data.Either Data.Int Data.IORef Data.List Data.Maybe Data.Typeable Data.Word Debug.Trace Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.C Foreign.ForeignPtr Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Pool Foreign.Marshal.Utils Foreign.Marshal Foreign.Ptr Foreign.StablePtr Foreign.Storable Foreign System.IO.Error System.IO.Fix System.IO.Unsafe System.IO System.Posix.Internals System.Posix.Types UHC.Array UHC.Base UHC.Bits UHC.Bounded UHC.BoxArray UHC.ByteArray UHC.Char UHC.Conc UHC.Enum UHC.Eq UHC.Float UHC.ForeignPtr UHC.GC UHC.Generics.Tuple UHC.Generics UHC.Handle UHC.Int UHC.IO UHC.IOBase UHC.Ix UHC.LazyST UHC.MutVar UHC.MVar UHC.OldException UHC.OldIO UHC.Ord UHC.Prims UHC.Ptr UHC.Read UHC.Real UHC.Run UHC.Show UHC.ST UHC.StablePtr UHC.StackTrace UHC.Storable UHC.STRef UHC.Types UHC.Weak UHC.WeakPtr UHC.Word Unsafe.Coerce+build-depends:
@@ -1,5 +1,10 @@ # Changelog +## 1.1.7.2 - 20141126++- [core] Core allows exports, can mix .hs and .bcr/.tcr files (tested rudimentary only).+- [api] Core.API extended.+ ## 1.1.7.1 - 20141119 - [api] Initial Core.API ([#31](https://github.com/UU-ComputerScience/uhc/pull/31)).
@@ -242,7 +242,8 @@ -} crsi = (EHCompileRunStateInfo opts3 uidStart uidStart- (initialHSSem opts3) (initialEHSem opts3 fp)+ (initialHSSem opts3)+ (initialEHSem opts3 fp) (initialCore2GrSem opts3) Nothing -- (initialHISem opts3)@@ -270,7 +271,7 @@ (putStrLn $ "search path: " ++ show searchPath) ; _ <- if False -- ehcOptPriv opts then runStateT (compile2 opts fileSuffMpHs searchPath fpL topModNmL) initialState- else runStateT (compile opts fileSuffMpHs searchPath fpL topModNmL) initialState+ else runStateT (compile opts fileSuffMpHs searchPath fpL topModNmL) initialState ; return () } else exitFailure@@ -315,10 +316,11 @@ -} compile :: EHCOpts -> FileSuffMp -> FileLocPath -> [FPath] -> [HsName] -> EHCompilePhase ()- compile opts fileSuffMpHs searchPath fpL topModNmL- = do {+ compile opts fileSuffMpHs searchPath fpL topModNmL@(modNm:_)+ = do { cpMsg modNm VerboseDebug $ "doCompileRun.compile topModNmL: " ++ show topModNmL+ -- check module import relationship for builtin module- cpCheckMods' (const emptyModMpInfo) [modBuiltin]+ ; cpCheckModsModWith (const emptyModMpInfo) [modBuiltin] -- start with directly importing top modules, providing the filepath directly ; topModNmL' <- zipWithM (\fp topModNm -> imp (ECUS_Haskell HSOnlyImports) (Just fp) Nothing topModNm) fpL topModNmL
@@ -1,9 +1,17 @@ {-# LINE 2 "src/ehc/API.chs" #-} module UHC.Light.Compiler.API (- module UHC.Light.Compiler.Core.API+ module UHC.Light.Compiler.Base.API++ , module UHC.Light.Compiler.Core.API+ , scan ) where +import UHC.Light.Compiler.Base.API+import UHC.Light.Compiler.Scanner.Machine++ import UHC.Light.Compiler.Core.API+
@@ -572,6 +572,7 @@ acoreTagTupTy tg t es = acoreTagTyTupBound tg t $ map acoreBound1Val es -- | Creates a new tuple/record with the given values.+-- Has to be fully applied, partial application is not allowed. acoreTagTup :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => CTag -> [e] -> e acoreTagTup tg es = acoreTagTupTy tg (acoreTyErr "acoreTupTy") es @@ -587,7 +588,7 @@ acoreTag tg = acoreTagTup tg [] {-# INLINE acoreTag #-} -{-# LINE 639 "src/ehc/AbstractCore.chs" #-}+{-# LINE 640 "src/ehc/AbstractCore.chs" #-} acoreBind1CatLevMetaTyWith :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => (t->t) -> (e->e) -> bcat -> HsName -> MetaLev -> m -> t -> e -> b acoreBind1CatLevMetaTyWith mkT mkE cat n l m t e = acoreBind1CatLevMetasTy cat n l (acoreMetabindDflt,m) (mkT t) (mkE e) {-# INLINE acoreBind1CatLevMetaTyWith #-}@@ -624,7 +625,7 @@ acoreBind1 n e = acoreBind1Cat (acoreBindcategDflt e) n e {-# INLINE acoreBind1 #-} -{-# LINE 677 "src/ehc/AbstractCore.chs" #-}+{-# LINE 678 "src/ehc/AbstractCore.chs" #-} acoreBind1MetasTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> (mbind,m) -> t -> e -> b acoreBind1MetasTy n m t e = acoreBind1CatLevMetasTy (acoreBindcategDflt e) n metaLevVal m t e {-# INLINE acoreBind1MetasTy #-}@@ -650,7 +651,7 @@ -} -{-# LINE 704 "src/ehc/AbstractCore.chs" #-}+{-# LINE 705 "src/ehc/AbstractCore.chs" #-} acoreBind1Asp1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> bound -> b acoreBind1Asp1 n ba = acoreBind1Asp n [ba] {-# INLINE acoreBind1Asp1 #-}@@ -667,7 +668,7 @@ acoreBind1Nm1 n = acoreBind1Asp n [] {-# INLINE acoreBind1Nm1 #-} -{-# LINE 726 "src/ehc/AbstractCore.chs" #-}+{-# LINE 727 "src/ehc/AbstractCore.chs" #-} acoreBoundVal1CatLevMetaTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bcat -> HsName -> MetaLev -> m -> t -> e -> bound acoreBoundVal1CatLevMetaTy bcat n mlev m t e = acoreBoundVal1CatLevMetasTy bcat n mlev (acoreMetabindDflt,m) t e {-# INLINE acoreBoundVal1CatLevMetaTy #-}@@ -688,7 +689,7 @@ acoreBoundVal1Cat cat n e = acoreBoundVal1CatTy cat n (acoreTyErr "acoreBoundVal1Cat") e {-# INLINE acoreBoundVal1Cat #-} -{-# LINE 748 "src/ehc/AbstractCore.chs" #-}+{-# LINE 749 "src/ehc/AbstractCore.chs" #-} acoreBoundVal1Metas :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> (mbind,m) -> e -> bound acoreBoundVal1Metas n m e = acoreBoundVal1CatLevMetasTy (acoreBindcategDflt e) n metaLevVal m (acoreTyErr "acoreBoundVal1Metas") e {-# INLINE acoreBoundVal1Metas #-}@@ -698,7 +699,7 @@ {-# INLINE acoreBoundVal1Meta #-} -{-# LINE 759 "src/ehc/AbstractCore.chs" #-}+{-# LINE 760 "src/ehc/AbstractCore.chs" #-} acoreBound1AspkeyVal :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => ACoreBindAspectKeyS -> e -> bound acoreBound1AspkeyVal a e = acoreBound1MetaVal (acoreBoundmeta a 0 CLbl_None) e {-# INLINE acoreBound1AspkeyVal #-}@@ -707,12 +708,12 @@ acoreBound1Val e = acoreBound1AspkeyVal acbaspkeyDefault e {-# INLINE acoreBound1Val #-} -{-# LINE 779 "src/ehc/AbstractCore.chs" #-}+{-# LINE 780 "src/ehc/AbstractCore.chs" #-} acoreTyErrLift :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a, Functor f) => String -> f x -> f (x,t) acoreTyErrLift msg = fmap (\n -> (n,acoreTyErr msg)) {-# INLINE acoreTyErrLift #-} -{-# LINE 789 "src/ehc/AbstractCore.chs" #-}+{-# LINE 790 "src/ehc/AbstractCore.chs" #-} -- | Construct let, possibly merging bindings acoreLetMerge :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Bool -> bcat -> [b] -> e -> e acoreLetMerge merge c bs e@@ -744,11 +745,11 @@ acoreLetRec bs e = acoreLet (acoreBindcategRec) bs e {-# INLINE acoreLetRec #-} -{-# LINE 822 "src/ehc/AbstractCore.chs" #-}+{-# LINE 823 "src/ehc/AbstractCore.chs" #-} acoreLetN :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [(bcat,[b])] -> e -> e acoreLetN cbs e = foldr (\(c,bs) e -> acoreLet c bs e) e cbs -{-# LINE 827 "src/ehc/AbstractCore.chs" #-}+{-# LINE 828 "src/ehc/AbstractCore.chs" #-} acoreLet1PlainTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> e -> e acoreLet1PlainTy nm t e = acoreLet cat [acoreBind1CatTy cat nm t e]@@ -763,7 +764,7 @@ acoreLet1Plain nm e = acoreLet1PlainTy nm (acoreTyErr "acoreLet1Plain") e {-# INLINE acoreLet1Plain #-} -{-# LINE 843 "src/ehc/AbstractCore.chs" #-}+{-# LINE 844 "src/ehc/AbstractCore.chs" #-} acoreLet1StrictTy :: (Eq bcat, AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> e -> e -> e acoreLet1StrictTy nm t e = acoreLet cat [acoreBind1CatTy cat nm t e]@@ -778,7 +779,7 @@ acoreLet1Strict nm e = acoreLet1StrictTy nm (acoreTyErr "acoreLet1Strict") e {-# INLINE acoreLet1Strict #-} -{-# LINE 859 "src/ehc/AbstractCore.chs" #-}+{-# LINE 860 "src/ehc/AbstractCore.chs" #-} -- | evaluate an expr, with a continuation for the evaluated expr acoreLet1StrictInMetaTyWith :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => (t->t) -> (e->e) -> HsName -> m -> t -> e -> (e -> e) -> e acoreLet1StrictInMetaTyWith mkT mkE nm m t e mkC@@ -805,20 +806,20 @@ acoreLet1StrictIn nm e mkC = acoreLet1StrictInMeta nm acoreMetavalDflt e mkC {-# INLINE acoreLet1StrictIn #-} -{-# LINE 891 "src/ehc/AbstractCore.chs" #-}+{-# LINE 892 "src/ehc/AbstractCore.chs" #-} acoreNmHole :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => UID -> e acoreNmHole = acoreVar . mkHNm acoreNmHolePred :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => PredOccId -> e acoreNmHolePred = acoreNmHole . poiId -{-# LINE 903 "src/ehc/AbstractCore.chs" #-}+{-# LINE 904 "src/ehc/AbstractCore.chs" #-} -- | get default for bindcateg acoreBindcategDflt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> bcat acoreBindcategDflt _ = acoreBindcategPlain {-# INLINE acoreBindcategDflt #-} -{-# LINE 914 "src/ehc/AbstractCore.chs" #-}+{-# LINE 915 "src/ehc/AbstractCore.chs" #-} acoreChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Char -> e acoreChar opts i = let x = acoreCharTy (acoreTyChar opts) i in x @@ -829,11 +830,11 @@ acoreInt2 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Integer -> e acoreInt2 opts i = let x = acoreIntTy2 (acoreTyInt opts) i in x -{-# LINE 930 "src/ehc/AbstractCore.chs" #-}+{-# LINE 931 "src/ehc/AbstractCore.chs" #-} acoreBuiltinApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> (EHBuiltinNames -> HsName) -> [e] -> e acoreBuiltinApp opts bnmOf args = acoreVar (ehcOptBuiltin opts bnmOf) `acoreApp` args -{-# LINE 935 "src/ehc/AbstractCore.chs" #-}+{-# LINE 936 "src/ehc/AbstractCore.chs" #-} acoreBuiltinAddInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> Int -> e acoreBuiltinAddInt opts e i = if i == 0@@ -842,15 +843,15 @@ Just (t,i') -> acoreIntTy2 t (toInteger i + i') _ -> acoreBuiltinApp opts ehbnPrimAddInt [e,acoreInt opts i] -{-# LINE 945 "src/ehc/AbstractCore.chs" #-}+{-# LINE 946 "src/ehc/AbstractCore.chs" #-} acoreBuiltinGtInt :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> Int -> e acoreBuiltinGtInt opts e i = acoreBuiltinApp opts ehbnPrimGtInt [e,acoreInt opts i] -{-# LINE 950 "src/ehc/AbstractCore.chs" #-}+{-# LINE 951 "src/ehc/AbstractCore.chs" #-} acoreBuiltinEqChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Char -> e -> e acoreBuiltinEqChar opts c e = acoreBuiltinApp opts ehbnPrimEqChar [e,acoreChar opts c] -{-# LINE 955 "src/ehc/AbstractCore.chs" #-}+{-# LINE 956 "src/ehc/AbstractCore.chs" #-} -- | Creates a string expression. -- The expression represents a packed String, which can be passed to Haskell generated Core functions. acoreBuiltinString :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a)@@ -859,7 +860,7 @@ -> e acoreBuiltinString opts m = let x = acoreBuiltinApp opts ehbnPackedStringToString [acoreStringTy (acoreTyString opts) m] in x -{-# LINE 965 "src/ehc/AbstractCore.chs" #-}+{-# LINE 966 "src/ehc/AbstractCore.chs" #-} -- | Generates an error expression, failing with the given string when evaluated. ('error' in haskell) acoreBuiltinError :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts@@ -871,7 +872,7 @@ acoreBuiltinUndefined :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e acoreBuiltinUndefined opts = acoreBuiltinApp opts ehbnUndefined [] -{-# LINE 978 "src/ehc/AbstractCore.chs" #-}+{-# LINE 979 "src/ehc/AbstractCore.chs" #-} -- | Creates a Core 'Integer' constant. acoreBuiltinInteger :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts@@ -879,13 +880,13 @@ -> e acoreBuiltinInteger opts i = acoreBuiltinApp opts ehbnPackedStringToInteger [acoreStringTy (acoreTyString opts) (show i)] -{-# LINE 987 "src/ehc/AbstractCore.chs" #-}+{-# LINE 988 "src/ehc/AbstractCore.chs" #-} -- | Builtin list singleton (note: hardcoded of tags) acoreBuiltinListSingleton :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> e -> e acoreBuiltinListSingleton opts e = acoreTagTupTy (ctagCons opts) (acoreTyErr "acoreBuiltinListSingleton.Cons") [e, acoreTagTupTy (ctagNil opts) (acoreTyErr "acoreBuiltinListSingleton.Nil") []] -{-# LINE 998 "src/ehc/AbstractCore.chs" #-}+{-# LINE 999 "src/ehc/AbstractCore.chs" #-} -- | when pat is con get tag acorePatConMbTag :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => p -> Maybe CTag acorePatConMbTag = fmap (\(tg,_,_) -> tg) . acorePatMbCon@@ -897,25 +898,25 @@ -- <|> (const ctagChar) <$> acorePatMbChar p ) . fst . acoreUnAlt -{-# LINE 1015 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1016 "src/ehc/AbstractCore.chs" #-} -- | bound name of binding acoreBindNm :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => b -> HsName acoreBindNm = fst . acoreUnBind {-# INLINE acoreBindNm #-} -{-# LINE 1026 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1027 "src/ehc/AbstractCore.chs" #-} -- | bound name of binding acorePatFldTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => t -> (HsName,e) -> HsName -> pf acorePatFldTy t lbloff n = acorePatFldBind lbloff (acoreBind1NmTy1 n t) {-# INLINE acorePatFldTy #-} -{-# LINE 1037 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1038 "src/ehc/AbstractCore.chs" #-} -- | possible expr of bound (may panic) acoreUnBoundVal :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => bound -> e acoreUnBoundVal = maybe (panic "acoreBoundMbVal") (\(_,a) -> a) . acoreBoundMbVal {-# INLINE acoreUnBoundVal #-} -{-# LINE 1048 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1049 "src/ehc/AbstractCore.chs" #-} -- | Construct 'if' expression. Hardcoded: tag nr, ordered alts (by tag) acoreIf :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Maybe HsName -> e -> e -> e -> e acoreIf opts cn c t f@@ -927,12 +928,12 @@ Nothing {-(tcUndefined opts)-} ) -{-# LINE 1061 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1062 "src/ehc/AbstractCore.chs" #-} acoreMatchChar :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => EHCOpts -> Maybe HsName -> Char -> e -> e -> e -> e acoreMatchChar opts cn cchar cexpr t f = acoreIf opts cn (acoreBuiltinEqChar opts cchar cexpr) t f -{-# LINE 1091 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1092 "src/ehc/AbstractCore.chs" #-} data Coe' expr metaval bind bindasp ty = Coe_Map !(expr -> expr) -- normal, expression as function | Coe_C !expr -- constant@@ -951,7 +952,7 @@ instance Show (Coe' expr metaval bind bindasp ty) where show _ = "COE" -{-# LINE 1128 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1129 "src/ehc/AbstractCore.chs" #-} -- | Coercions may either be applied or not on type arguments. -- In particular, due to lack of proper analysis (and generics code like generation), -- it is only known for arrow and product types how to construct a coercion from its type args, as they directly@@ -964,7 +965,7 @@ | CoeCtx_DontAllow deriving (Eq,Show) -{-# LINE 1146 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1147 "src/ehc/AbstractCore.chs" #-} -- | Non inspectable, most general, coercion acoreCoeMap :: (e -> e) -> Coe' e m b ba t acoreCoeMap = Coe_Map@@ -975,7 +976,7 @@ acoreCoeId = Coe_C acoreCoeArg {-# INLINE acoreCoeId #-} -{-# LINE 1158 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1159 "src/ehc/AbstractCore.chs" #-} acoreCoeLamLetTy :: HsName -> t -> UID -> Coe' e m b ba t acoreCoeLamLetTy = Coe_LamLet {-# INLINE acoreCoeLamLetTy #-}@@ -989,7 +990,7 @@ acoreCoeLetRec [] = acoreCoeId acoreCoeLetRec bs = Coe_LetRec bs -{-# LINE 1173 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1174 "src/ehc/AbstractCore.chs" #-} -- | Application still requiring a function acoreCoeApp1 :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => e -> Coe' e m b ba t acoreCoeApp1 = Coe_App1 -- a acoreMetavalDflt@@ -1006,7 +1007,7 @@ acoreCoeAppN as = acoreCoeMap (\e -> acoreApp e as) {-# INLINE acoreCoeAppN #-} -{-# LINE 1191 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1192 "src/ehc/AbstractCore.chs" #-} -- | Lambda still requiring a body acoreCoeLam1Ty :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => HsName -> t -> Coe' e m b ba t acoreCoeLam1Ty = Coe_Lam@@ -1016,7 +1017,7 @@ acoreCoeLam1 n = acoreCoeLam1Ty n (acoreTyErr "acoreCoeLam1") {-# INLINE acoreCoeLam1 #-} -{-# LINE 1202 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1203 "src/ehc/AbstractCore.chs" #-} -- | Composition of 2 Coe's acoreCoeCompose :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> Coe' e m b ba t -> Coe' e m b ba t acoreCoeCompose c1 c2@@ -1024,14 +1025,14 @@ | otherwise = Coe_Compose c1 c2 -{-# LINE 1211 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1212 "src/ehc/AbstractCore.chs" #-} acoreCoePoiLApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => [PredOccId] -> [Coe' e m b ba t] acoreCoePoiLApp = map (\i -> acoreCoeApp1 (acoreNmHolePred i)) acoreCoeImplsApp :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Impls -> [Coe' e m b ba t] acoreCoeImplsApp = acoreCoePoiLApp . implsPrIdL -{-# LINE 1219 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1220 "src/ehc/AbstractCore.chs" #-} acoreCoePoiLLamTy :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> [(PredOccId,t)] -> [Coe' e m b ba t] acoreCoePoiLLamTy onLast poiL = case map mk poiL of@@ -1044,19 +1045,19 @@ acoreCoeImplsLam :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> Impls -> [Coe' e m b ba t] acoreCoeImplsLam onLast is = acoreCoePoiLLamTy onLast (acoreTyErrLift "acoreCoeImplsLam" (implsPrIdL is)) -{-# LINE 1237 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1238 "src/ehc/AbstractCore.chs" #-} acoreCoeIsId :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => Coe' e m b ba t -> Bool acoreCoeIsId (Coe_C e) = acoreExprIsCoeArg e acoreCoeIsId _ = False -{-# LINE 1247 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1248 "src/ehc/AbstractCore.chs" #-} data CSubstKey = CSKey_UID UID | CSKey_Nm HsName | CSKey_Ref ACoreBindRef deriving (Show,Eq,Ord) -{-# LINE 1255 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1256 "src/ehc/AbstractCore.chs" #-} data CSubstInfo' expr metaval bind bindasp ty = CSITy { csiTy :: !ty }@@ -1071,37 +1072,37 @@ instance Show (CSubstInfo' e m b ba t) where show _ = "CSubstInfo'" -{-# LINE 1273 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1274 "src/ehc/AbstractCore.chs" #-} type CSubst' e m b ba t = Map.Map CSubstKey (CSubstInfo' e m b ba t) emptyCSubst :: CSubst' e m b ba t emptyCSubst = Map.empty -{-# LINE 1284 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1285 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromNmTyL :: AssocL HsName t -> CSubst' e m b ba t acoreCSubstFromNmTyL l = Map.fromList [ (CSKey_Nm k,CSITy v) | (k,v) <- l ] -{-# LINE 1289 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1290 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromRefExprL :: AssocL ACoreBindRef e -> CSubst' e m b ba t acoreCSubstFromRefExprL l = Map.fromList [ (CSKey_Ref k,CSIExpr v) | (k,v) <- l ] -{-# LINE 1294 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1295 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromUidExprL :: AssocL UID e -> CSubst' e m b ba t acoreCSubstFromUidExprL l = Map.fromList [ (CSKey_UID k,CSIExpr v) | (k,v) <- l ] -{-# LINE 1299 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1300 "src/ehc/AbstractCore.chs" #-} acoreCSubstFromUidBindLL :: AssocL UID [b] -> CSubst' e m b ba t acoreCSubstFromUidBindLL l = Map.fromList [ (CSKey_UID k,CSIBinds v) | (k,v) <- l ] acoreCSubstFromUidImplsL :: AssocL UID ([Coe' e m b ba t],[Coe' e m b ba t]) -> CSubst' e m b ba t acoreCSubstFromUidImplsL l = Map.fromList [ (CSKey_UID k,uncurry CSIImpls v) | (k,v) <- l ] -{-# LINE 1311 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1312 "src/ehc/AbstractCore.chs" #-} -- | Combine CSubst: union only, application is postponed cSubstAppSubst :: CSubst' e m b ba t -> CSubst' e m b ba t -> CSubst' e m b ba t cSubstAppSubst = Map.union -{-# LINE 1321 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1322 "src/ehc/AbstractCore.chs" #-} infixr `cSubstApp` class CSubstitutable e m b ba t a@@ -1112,7 +1113,7 @@ instance CSubstitutable e m b ba t (CSubst' e m b ba t) where cSubstApp cs s = cs `cSubstAppSubst` s -{-# LINE 1337 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1338 "src/ehc/AbstractCore.chs" #-} data RAlt' e t b pr = RAlt_Alt { rcaPats :: ![RPat' e t b pr], raaExpr :: !e, raaFailS :: UIDS } @@ -1133,14 +1134,14 @@ type RCEAltL' e t b pr = [RAlt' e t b pr] -{-# LINE 1361 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1362 "src/ehc/AbstractCore.chs" #-} rcaPat :: RAlt' e t b pr -> RPat' e t b pr rcaPat = head . rcaPats raltLPatNms :: [RAlt' e t b pr] -> [RPatNm] raltLPatNms = nub . sort . map (rcpPNm . rcaPat) -{-# LINE 1369 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1370 "src/ehc/AbstractCore.chs" #-} rpatConTag :: RPat' e t b pr -> CTag rpatConTag (RPat_Int _ _ _ ) = ctagInt rpatConTag (RPat_Char _ _ _ ) = ctagChar@@ -1149,7 +1150,7 @@ rcaTag :: RAlt' e t b pr -> CTag rcaTag = rpatConTag . head . rcaPats -{-# LINE 1379 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1380 "src/ehc/AbstractCore.chs" #-} raltIsVar :: RAlt' e t b pr -> Bool raltIsVar (RAlt_Alt (RPat_Var _ _ _ : _) _ _) = True raltIsVar _ = False@@ -1161,17 +1162,17 @@ c (RPat_Char _ _ _) = True c _ = False -{-# LINE 1392 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1393 "src/ehc/AbstractCore.chs" #-} raltIsConMany :: RAlt' e t b pr -> Bool raltIsConMany (RAlt_Alt (RPat_Con _ _ _ (RPatConBind_Many _) : _) _ _) = True raltIsConMany _ = False -{-# LINE 1398 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1399 "src/ehc/AbstractCore.chs" #-} raltIsIrrefutable :: RAlt' e t b pr -> Bool raltIsIrrefutable (RAlt_Alt (RPat_Irrefutable _ _ _ : _) _ _) = True raltIsIrrefutable _ = False -{-# LINE 1404 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1405 "src/ehc/AbstractCore.chs" #-} raltMbBoolExpr :: RAlt' e t b pr -> Maybe (Maybe SrcConst) raltMbBoolExpr (RAlt_Alt (RPat_BoolExpr _ _ _ e : _) _ _) = Just e raltMbBoolExpr _ = Nothing@@ -1179,13 +1180,13 @@ raltIsBoolExpr :: RAlt' e t b pr -> Bool raltIsBoolExpr = isJust . raltMbBoolExpr -{-# LINE 1415 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1416 "src/ehc/AbstractCore.chs" #-} rpatConBindUnFlatten :: RPatConBind' e t b pr -> [RPatConBind' e t b pr] -> RPatConBind' e t b pr rpatConBindUnFlatten z [] = z rpatConBindUnFlatten _ [b] = b rpatConBindUnFlatten _ bs = RPatConBind_Many bs -{-# LINE 1426 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1427 "src/ehc/AbstractCore.chs" #-} acoreRPat2Pat :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPat' e t b pr -> p acoreRPat2Pat p = case p of@@ -1196,7 +1197,7 @@ RPat_Char n ty v -> acorePatCharTy ty v RPat_BoolExpr n _ v _ -> acorePatBoolExpr v -{-# LINE 1440 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1441 "src/ehc/AbstractCore.chs" #-} acoreRPatConBind2PatConBind :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPatConBind' e t b pr -> (pr,[pf]) acoreRPatConBind2PatConBind b = case b of@@ -1206,17 +1207,17 @@ acoreRPatBind2PatFld :: (AbstractCore e m b bound boundmeta bcat mbind t p pr pf a) => RPatFld' e t b pr -> pf acoreRPatBind2PatFld (RPatFld_Fld l o _ p@(RPat_Var n _ _)) = acorePatFldTy (rcpTy p) (l,o) (rpatNmNm n) -{-# LINE 1457 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1458 "src/ehc/AbstractCore.chs" #-} ctagTrue, ctagFalse :: EHCOpts -> CTag ctagTrue opts = CTag (ehcOptBuiltin opts ehbnDataBool) (ehcOptBuiltin opts ehbnBoolTrue) tagBoolTrue 0 0 -- this makes it hardcoded, ideally dependent on datatype def itself !! ctagFalse opts = CTag (ehcOptBuiltin opts ehbnDataBool) (ehcOptBuiltin opts ehbnBoolFalse) tagBoolFalse 0 0 -- this makes it hardcoded, ideally dependent on datatype def itself !! -{-# LINE 1469 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1470 "src/ehc/AbstractCore.chs" #-} ctagCons, ctagNil :: EHCOpts -> CTag ctagCons opts = CTag (ehcOptBuiltin opts ehbnDataList) (ehcOptBuiltin opts ehbnDataListAltCons) tagListCons 2 2 -- this makes it hardcoded, ideally dependent on datatype def itself !! ctagNil opts = CTag (ehcOptBuiltin opts ehbnDataList) (ehcOptBuiltin opts ehbnDataListAltNil ) tagListNil 0 2 -- this makes it hardcoded, ideally dependent on datatype def itself !! -{-# LINE 1479 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1480 "src/ehc/AbstractCore.chs" #-} -- | Reason to fail a case alternative data CaseAltFailReason = CaseAltFailReason_Absence -- failed because of absence@@ -1229,23 +1230,23 @@ pp (CaseAltFailReason_Continue i) = pp i pp (CaseAltFailReason_Absence ) = pp "absent" -{-# LINE 1493 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1494 "src/ehc/AbstractCore.chs" #-} cafailHasId :: CaseAltFailReason -> (Bool,UID) cafailHasId (CaseAltFailReason_Absence ) = (False,uidUnused) cafailHasId (CaseAltFailReason_Continue i) = (True ,i) -{-# LINE 1499 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1500 "src/ehc/AbstractCore.chs" #-} deriving instance Typeable CaseAltFailReason deriving instance Data CaseAltFailReason -{-# LINE 1508 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1509 "src/ehc/AbstractCore.chs" #-} data AppFunKind = AppFunKind_NoApp -- inlined Nothing | AppFunKind_Fun ACoreBindRef | AppFunKind_Tag CTag | AppFunKind_FFI -{-# LINE 1520 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1521 "src/ehc/AbstractCore.chs" #-} -- | What kind of Expr? data WhatExpr@@ -1261,7 +1262,7 @@ | ExprIsBind deriving Eq -{-# LINE 1537 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1538 "src/ehc/AbstractCore.chs" #-} -- | is an var? whatExprMbVar :: WhatExpr -> Maybe HsName whatExprMbVar (ExprIsVar a) = Just a@@ -1282,7 +1283,7 @@ whatExprAppArity (ExprIsApp a _) = a whatExprAppArity _ = 0 -{-# LINE 1559 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1560 "src/ehc/AbstractCore.chs" #-} whatExprIsWHNF :: WhatExpr -> Bool whatExprIsWHNF (ExprIsLam _) = True whatExprIsWHNF (ExprIsVar _) = True@@ -1291,7 +1292,7 @@ whatExprIsWHNF ExprIsOtherWHNF = True whatExprIsWHNF _ = False -{-# LINE 1569 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1570 "src/ehc/AbstractCore.chs" #-} whatExprIsLam :: WhatExpr -> Bool whatExprIsLam = isJust . whatExprMbLam {-# INLINE whatExprIsLam #-}@@ -1302,14 +1303,14 @@ whatExprIsTup _ = False -{-# LINE 1581 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1582 "src/ehc/AbstractCore.chs" #-} -- | Is Expr a FFI? whatExprIsFFI :: WhatExpr -> Bool whatExprIsFFI (ExprIsFFI ) = True whatExprIsFFI _ = False -{-# LINE 1599 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1600 "src/ehc/AbstractCore.chs" #-} instance Serialize ACoreBindAspectKey where sput (ACoreBindAspectKey_Default ) = sputWord8 0 sput (ACoreBindAspectKey_Strict ) = sputWord8 1@@ -1329,12 +1330,12 @@ 5 -> return ACoreBindAspectKey_Core 7 -> return ACoreBindAspectKey_FusionRole -{-# LINE 1630 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1631 "src/ehc/AbstractCore.chs" #-} instance Serialize ACoreBindRef where sput (ACoreBindRef a b) = sput a >> sput b sget = liftM2 ACoreBindRef sget sget -{-# LINE 1636 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1637 "src/ehc/AbstractCore.chs" #-} instance Serialize CaseAltFailReason where sput (CaseAltFailReason_Continue a) = sputWord8 0 >> sput a sput (CaseAltFailReason_Absence ) = sputWord8 1@@ -1344,13 +1345,13 @@ 0 -> liftM CaseAltFailReason_Continue sget 1 -> return CaseAltFailReason_Absence -{-# LINE 1651 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1652 "src/ehc/AbstractCore.chs" #-} instance PP CSubstKey where pp (CSKey_UID i) = pp i pp (CSKey_Nm n) = pp n pp (CSKey_Ref r) = pp r -{-# LINE 1658 "src/ehc/AbstractCore.chs" #-}+{-# LINE 1659 "src/ehc/AbstractCore.chs" #-} instance (PP expr, PP ty) => PP (CSubstInfo' expr metaval bind bindasp ty) where pp (CSITy t ) = pp t pp (CSIExpr e ) = pp e
@@ -0,0 +1,29 @@+{-# LINE 2 "src/ehc/Base/API.chs" #-}++-- | Base Public API (provisional, to be refactored)+--+module UHC.Light.Compiler.Base.API+ (+ -- * Opts+ -- | Options to the compiler.+ EHCOpts+ , defaultEHCOpts++ -- * Constructor Tags+ -- From Base.Common+ , CTag++ -- * Names+ , HsName++ -- * Misc+ , hsnEhcRunMain+ , hsnMain+ )+ where++import UHC.Light.Compiler.Base.Common+import UHC.Light.Compiler.Base.HsName+import UHC.Light.Compiler.Base.HsName.Builtin+import UHC.Light.Compiler.Opts+
@@ -0,0 +1,19 @@+module UHC.Light.Compiler.CodeGen.ModuleImportExportImpl+( ModuleImportExportImpl (..), emptyModuleImportExportImpl )+where+import UHC.Light.Compiler.Base.Common+import UHC.Light.Compiler.LamInfo+import UHC.Light.Compiler.CodeGen.ValAccess+import qualified Data.Map as Map++{-# LINE 22 "src/ehc/CodeGen/ModuleImportExportImpl.chs" #-}+data ModuleImportExportImpl+ = ModuleImportExportImpl+ { mieimplLamMp :: LamMp -- ^ LamMp, per binding info+ , mieimplUsedModNmL :: [HsName] -- ^ used and referred to modules (i.e. all, also indirectly referred to)+ , mieimplHsName2FldMpMp :: HsName2FldMpMp -- ^ imported modules fld mp+ , mieimplHsName2FldMp :: HsName2FldMp -- ^ export fld map+ }++emptyModuleImportExportImpl = ModuleImportExportImpl Map.empty [] Map.empty Map.empty+
@@ -64,12 +64,12 @@ , verMajor = "1" , verMinor = "1" , verMinorMinor = "7"- , verMinorMinorMinor = "1"+ , verMinorMinorMinor = "2" , verQuality = "alpha" , verShort = "1.1" , verMedium = "1.1.7"- , verFull = "1.1.7.1"- , verAsNumber = "1171"+ , verFull = "1.1.7.2"+ , verAsNumber = "1172" , verProg = "ehc" }
@@ -11,7 +11,7 @@ cppOpts = fst $ parseCmdLineOpts Cmd_CPP "-Wno-invalid-pp-token" -- cppOpts = showCmdLineOpts cppOpts' -ehcSvnRevision = "master@0a24deaee1"+ehcSvnRevision = "master@9e7712bd65" ehcDefaultInplaceInstallDir = "/Volumes/Work/Programming/uhc/EHC/install"
@@ -18,5 +18,5 @@ internalVersionHI = mkInternalVersion 1 -- | For binary/serialized Core .cr/.bcr etc files-internalVersionCore = mkInternalVersion 1+internalVersionCore = mkInternalVersion 3
@@ -6,7 +6,7 @@ , module UHC.Light.Compiler.Base.Target , CodeAGItf (..), CModule (..), CExpr (..), CBind (..), CBound (..), CMetaVal (..), CMetaBind (..), CMetas, CBindL, CBoundL, CPatRest (..), CAlt (..), CAltL, CPat (..), CPatFld (..), CPatFldL , CBindAnn (..), CBindAnnL, CExprAnn (..)-, CImport (..), CImportL+, CExport (..), CExportL, CImport (..), CImportL , CDeclMeta (..), CDeclMetaL, CDataCon (..), CDataConL , RAlt, RPat, RPatConBind, RPatFld , cmetasDefault@@ -231,7 +231,7 @@ mkCMod :: CExpr -> CModule-mkCMod e = CModule_Mod (hsnFromString "") [] [] e -- []+mkCMod e = CModule_Mod (hsnFromString "") [] [] [] e -- [] emptyCModule :: CModule emptyCModule = mkCMod (CExpr_Int 0)@@ -338,8 +338,8 @@ = foldr1 cmb mL where get (CExpr_Let c b e) = CExpr_Let c b . get e get _ = id- cmb (CModule_Mod m1 im1 mt1 e1) (CModule_Mod m2 im2 mt2 e2)- = CModule_Mod m2 (im1++im2) (mt1++mt2) (get e1 e2)+ cmb (CModule_Mod m1 ex1 im1 mt1 e1) (CModule_Mod m2 ex2 im2 mt2 e2)+ = CModule_Mod m2 (ex1++ex2) (im1++im2) (mt1++mt2) (get e1 e2) @@ -367,12 +367,13 @@ , cmoddbBindArr :: !CDbBindArray -- bindings , cmoddbBindMp :: !CDbModuleBindMp -- map of name to bindings , cmoddbMainExpr :: !CExpr -- the final expr of the module's let expr+ , cmoddbExports :: !CExportL -- exports , cmoddbImports :: !CImportL -- imports , cmoddbMeta :: !CDeclMetaL -- meta info/decl } emptyCModuleDatabase :: CModuleDatabase-emptyCModuleDatabase = CModuleDatabase hsnUnknown (array (1,0) []) Map.empty (CExpr_Int 0) [] []+emptyCModuleDatabase = CModuleDatabase hsnUnknown (array (1,0) []) Map.empty (CExpr_Int 0) [] [] [] @@ -525,12 +526,19 @@ instance Serialize CModule where- sput (CModule_Mod a b c d) = {- sputWord8 0 >> -} sput a >> sput b >> sput c >> sput d+ sput (CModule_Mod a b c d e) = {- sputWord8 0 >> -} sput a >> sput b >> sput c >> sput d >> sput e sget = do {- t <- sgetWord8 case t of- 0 -> -} liftM4 CModule_Mod sget sget sget sget+ 0 -> -} liftM5 CModule_Mod sget sget sget sget sget +instance Serialize CExport where+ sput (CExport_Export a ) = {- sputWord8 0 >> -} sput a+ sget+ = do {- t <- sgetWord8+ case t of+ 0 -> -} liftM CExport_Export sget+ instance Serialize CImport where sput (CImport_Import a ) = {- sputWord8 0 >> -} sput a sget@@ -742,6 +750,11 @@ deriving ( Data,Typeable) -- CDeclMetaL -------------------------------------------------- type CDeclMetaL = [CDeclMeta]+-- CExport -----------------------------------------------------+data CExport = CExport_Export {nm_CExport_Export :: !(HsName)}+ deriving ( Data,Eq,Ord,Typeable)+-- CExportL ----------------------------------------------------+type CExportL = [CExport] -- CExpr ------------------------------------------------------- data CExpr = CExpr_Var {ref_CExpr_Var :: !(ACoreBindRef)} | CExpr_Int {int_CExpr_Int :: !(Int)}@@ -792,7 +805,7 @@ -- CMetas ------------------------------------------------------ type CMetas = ( CMetaBind,CMetaVal) -- CModule ------------------------------------------------------data CModule = CModule_Mod {moduleNm_CModule_Mod :: !(HsName),imports_CModule_Mod :: !(CImportL),declMetas_CModule_Mod :: !(CDeclMetaL),expr_CModule_Mod :: !(CExpr)}+data CModule = CModule_Mod {moduleNm_CModule_Mod :: !(HsName),exports_CModule_Mod :: !(CExportL),imports_CModule_Mod :: !(CImportL),declMetas_CModule_Mod :: !(CDeclMetaL),expr_CModule_Mod :: !(CExpr)} deriving ( Data,Typeable) -- CPat -------------------------------------------------------- data CPat = CPat_Var {pnm_CPat_Var :: !(HsName)}
@@ -1,50 +1,54 @@ {-# LINE 2 "src/ehc/Core/API.chs" #-} --- | Core Public API (provisional)+-- | Core Public API (provisional, to be refactored) ----- Intended for constructing basic Core Programs.--- This module does not offer any way to inspect the built Core Programs (on purpose), but the--- EHXX.Core module does.+-- Intended for constructing basic Core Programs. Use the binary serialization from `UHC.Util.Binary`+-- to produce a core file, which can be compiled by UHC. --+-- Restrictions:+-- - Extendable data types are not supported+-- - Generated code is not (type-)checked, might cause runtime crashes+-- - Core parsing/Pretty printing is incomplete and might be partially broken. -- Invariants: -- - Constructor applications (mkCon) always have to be fully saturated. (Should we handle this internally?) -- - Haskell constructor names must be unambigous per module (mkHSCTag)--- - TODO Tag ordering ?? What exactly are the invariants?------ TODO Use AbstractCore instead of directly using the Constructors in the implementation module UHC.Light.Compiler.Core.API (+ {- -- Opts EHCOpts , defaultEHCOpts-- -- * Core AST- -- | The datatypes making up a Core program.- , CModule- , CImport- , CDeclMeta- , CDataCon- , CExpr- , CBind- , CAlt- , CPat- , CPatFld+ -} + {- -- Base.Common , CTag -- Base.HsName , HsName+ -} -- * Names -- | Names in UHC have to be of the form P1.P2....Pn.Ident . All names -- in module M must have the form M.Ident . Datatype and constructor names -- have to start with an uppercase letter, functions with a lowercase letter.- , mkUniqueHsName+ mkUniqueHsName , mkHsName , mkHsName1 , addHsNamePrefix + -- * Core AST+ -- | The datatypes making up a Core program.+ , CModule+ , CImport+ , CDeclMeta+ , CDataCon+ , CExpr+ , CBind+ , CAlt+ , CPat+ , CPatFld+ -- * Construction functions -- ** Constants , acoreUnit@@ -63,6 +67,27 @@ , acoreLet1Strict , acoreLetRec + -- ** Abstraction+ , acoreLam++ -- ** Application+ , acoreApp++ -- ** Binds/Bounds+ , acoreBind1+ , acoreBind1Nm1++ -- ** Constructor tags+ , makeCTag+ , destructCTag++ , ctagUnit+ , ctagTup+ , ctagTrue+ , ctagFalse+ , ctagCons+ , ctagNil+ -- ** Case -- | Scrutinizes an expression and executes the appropriate alternative. -- The scrutinee of a case statement is required to be in WHNF (weak head normal form).@@ -73,27 +98,26 @@ , acorePatRestEmpty , acorePatFldBind - -- ** Abstraction- , acoreLam - -- ** Application- , acoreApp- -- ** Datatypes , acoreTagTup - -- ** Binds/Bounds- , acoreBind1- , acoreBind1Nm1 -- ** Module , makeModule , makeImport , makeMetaData , makeMetaDataCon+ , makeMetaDataConFromCTag -- * Utilities , makeMain+ , ppCModule+ , pCExpr+ , coreScanOpts++ -- * Re-exports (or not???)+ , module UHC.Light.Compiler.Base.API ) where @@ -103,10 +127,15 @@ import UHC.Light.Compiler.AbstractCore hiding (acoreCaseDflt) import qualified UHC.Light.Compiler.AbstractCore as AC+import UHC.Light.Compiler.Base.API import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Base.HsName import UHC.Light.Compiler.Core hiding (acoreCaseDflt)+import UHC.Light.Compiler.Core.Pretty+import UHC.Light.Compiler.Core.Parser+import UHC.Light.Compiler.Scanner.Common import UHC.Light.Compiler.Opts+import UHC.Light.Compiler.CodeGen.Tag -- | Creates a new Core name. All names generated with this function live in -- the "Core API" namespace and will not collide with names in other namespaces.@@ -157,6 +186,29 @@ acoreUnit :: EHCOpts -> CExpr acoreUnit _ = acoreTup [] +-- | Creates a constructor tag.+makeCTag :: HsName -- ^ Fully qualified Datatype name.+ -> HsName -- ^ Fully qualified Constructor name.+ -> Int -- ^ Tag number.+ -> Int -- ^ Arity.+ -> CTag+makeCTag tyNm conNm tg ar = CTag tyNm conNm tg ar (-1)++destructCTag :: a -- ^ Algebra for record/tuple case.+ -> (HsName -> HsName -> Int -> Int -> a) -- ^ Algebra for datatype case. Order of arguments is the same as in 'makeCTag'.+ -> CTag+ -> a+destructCTag arec _ CTagRec = arec+destructCTag _ adat (CTag {ctagTyNm = ty, ctagNm = nm, ctagTag' = tag, ctagArity = ar}) = adat ty nm tag ar++-- | `CTag` for unit values ('()' in haskell).+ctagUnit :: CTag+ctagUnit = ctagTup++-- | `CTag` of tuple/records.+ctagTup :: CTag+ctagTup = CTagRec+ -- TODO verify that this sorting is always correct (see also AbstractCore/Utils.chs) -- | A Case expression, possibly with a default value. acoreCaseDflt :: AbstractCore e m b bound boundmeta bcat mbind t p pr pf a@@ -174,6 +226,7 @@ -- | Creates a module. makeModule :: HsName -- ^ The name of the module.+ -> [CExport] -- ^ The exports. -> [CImport] -- ^ The imports (only direct imports, not transitive ones). -> [CDeclMeta] -- ^ The meta information. -> CExpr -- ^ The body of the module.@@ -198,15 +251,21 @@ -> CDataCon makeMetaDataCon = CDataCon_Con +makeMetaDataConFromCTag :: CTag -- ^ CTag to export.+ -> Maybe CDataCon -- ^ The constructor description. Nothing if it is a record/tuple constructor.+makeMetaDataConFromCTag = destructCTag Nothing (\_ b c d -> Just $ makeMetaDataCon b c d)+ -- | Creates the main entry point, calling the given function when run. The given -- function to call has to be in scope (either define it in the same module, -- or import it).+-- In addition, the module "UHC.Run" has to be imported! makeMain :: HsName -- ^ The function containing the user code to call. -> CExpr makeMain main = mainEhc where mainEhc = acoreLet1Plain mainNm- (acoreApp (acoreVar $ hsnMkModf ["UHC", "Run"] (hsnFromString "ehcRunMain") M.empty) [acoreVar main])+ (mainWrap $ acoreVar main) (acoreVar mainNm)- mainNm = hsnMkModf [] (hsnFromString "main") M.empty+ mainNm = hsnMain+ mainWrap = \m -> acoreApp (acoreVar hsnEhcRunMain) [m]
@@ -724,6 +724,46 @@ sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = ( )+-- CExport -----------------------------------------------------+{-+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( )+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ ( )+-- CExportL ----------------------------------------------------+{-+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( )+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ ( )+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ ( ) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1422,6 +1462,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1429,16 +1470,17 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( ) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = ( ) -- CPat -------------------------------------------------------- {-
@@ -13,11 +13,14 @@ import UHC.Light.Compiler.Base.TermLike import UHC.Light.Compiler.AbstractCore import UHC.Light.Compiler.Core-import qualified UHC.Util.FastSeq as Seq import Data.Maybe import qualified Data.Map as Map+import qualified Data.Set as Set+import qualified UHC.Util.FastSeq as Seq+import qualified UHC.Util.Rel as Rel import Control.Applicative import UHC.Util.Pretty+import UHC.Light.Compiler.Module.ImportExport @@ -35,6 +38,7 @@ + cmodCheck' :: Inh_CodeAGItf -> CModule@@ -111,7 +115,7 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_lhsIopts) of { _patOopts -> (case (_lev) of@@ -219,6 +223,7 @@ hasMain : Bool isFreeOfLam : Bool isLamLifted : Bool+ modDefsRel : ModEntRel nm : HsName undefNmMp : UndefNmMp alternatives:@@ -238,7 +243,7 @@ CBindCateg -> Int -> EHCOpts ->- ( ErrSq,Bool,Bool,Bool,HsName,UndefNmMp)+ ( ErrSq,Bool,Bool,Bool,ModEntRel,HsName,UndefNmMp) sem_CBind_Bind :: HsName -> T_CBoundL -> T_CBind@@ -273,11 +278,14 @@ { _lhsOisFreeOfLam -> (case (_bindAspectsIisLamLifted) of { _lhsOisLamLifted ->- (case (nm_) of- { _lhsOnm ->- (case (_bindAspectsIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOnm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (let o = IdOcc nm_ IdOcc_Val+ in Rel.fromList [ (hsnQualified (ioccNm o), ModEnt IdOcc_Val o Set.empty emptyRange) ]) of+ { _lhsOmodDefsRel ->+ (case (nm_) of+ { _lhsOnm ->+ (case (_bindAspectsIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOnm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CBindAnn ---------------------------------------------------- {- visit 0:@@ -400,6 +408,7 @@ hasMain : Bool isFreeOfLam : Bool isLamLifted : Bool+ modDefsRel : ModEntRel undefNmMp : UndefNmMp alternatives: alternative Cons:@@ -419,7 +428,7 @@ CBindCateg -> Int -> EHCOpts ->- ( ErrSq,Bool,Bool,Bool,UndefNmMp)+ ( ErrSq,Bool,Bool,Bool,ModEntRel,UndefNmMp) sem_CBindL_Cons :: T_CBind -> T_CBindL -> T_CBindL@@ -443,7 +452,7 @@ (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_ _tlOdataGam _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOopts) of- { ( _tlIerrs,_tlIhasMain,_tlIisFreeOfLam,_tlIisLamLifted,_tlIundefNmMp) ->+ { ( _tlIerrs,_tlIhasMain,_tlIisFreeOfLam,_tlIisLamLifted,_tlImodDefsRel,_tlIundefNmMp) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsIlev) of@@ -457,7 +466,7 @@ (case (_lhsIdataGam) of { _hdOdataGam -> (case (hd_ _hdOdataGam _hdOevalCtx _hdOisGlobal _hdOletBindingsCateg _hdOlev _hdOopts) of- { ( _hdIerrs,_hdIhasMain,_hdIisFreeOfLam,_hdIisLamLifted,_hdInm,_hdIundefNmMp) ->+ { ( _hdIerrs,_hdIhasMain,_hdIisFreeOfLam,_hdIisLamLifted,_hdImodDefsRel,_hdInm,_hdIundefNmMp) -> (case (_hdIerrs `Seq.union` _tlIerrs) of { _lhsOerrs -> (case (_hdIhasMain || _tlIhasMain) of@@ -466,9 +475,11 @@ { _lhsOisFreeOfLam -> (case (_hdIisLamLifted && _tlIisLamLifted) of { _lhsOisLamLifted ->- (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_hdImodDefsRel `Rel.union` _tlImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBindL_Nil :: T_CBindL sem_CBindL_Nil = (\ _lhsIdataGam@@ -485,9 +496,11 @@ { _lhsOisFreeOfLam -> (case (True) of { _lhsOisLamLifted ->- (case (Map.empty) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOundefNmMp) }) }) }) }) }) })) -- CBound ------------------------------------------------------ {- visit 0:@@ -594,7 +607,7 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_lhsIopts) of { _bindMetaOopts -> (case (_lhsIlev) of@@ -700,7 +713,7 @@ (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs) of { _lhsOerrs -> (case (_exprIisFreeOfLam) of@@ -768,7 +781,7 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs) of { _lhsOerrs -> (case (_exprIisFreeOfLam) of@@ -1047,6 +1060,78 @@ (case (Map.empty) of { _lhsOundefNmMp -> ( _lhsOerrs,_lhsOgathDataGam,_lhsOundefNmMp) }) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attributes:+ errs : ErrSq+ modExpL : [ModExp]+ undefNmMp : UndefNmMp+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( ErrSq,([ModExp]),UndefNmMp)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (Seq.empty) of+ { _lhsOerrs ->+ (case ([ModExpEnt (ModEntSpec nm_ emptyRange Nothing)]) of+ { _lhsOmodExpL ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOmodExpL,_lhsOundefNmMp) }) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attributes:+ errs : ErrSq+ modExpL : [ModExp]+ undefNmMp : UndefNmMp+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( ErrSq,([ModExp]),UndefNmMp)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIerrs,_tlImodExpL,_tlIundefNmMp) ->+ (case (hd_) of+ { ( _hdIerrs,_hdImodExpL,_hdIundefNmMp) ->+ (case (_hdIerrs `Seq.union` _tlIerrs) of+ { _lhsOerrs ->+ (case (_hdImodExpL ++ _tlImodExpL) of+ { _lhsOmodExpL ->+ (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOmodExpL,_lhsOundefNmMp) }) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case (Seq.empty) of+ { _lhsOerrs ->+ (case ([]) of+ { _lhsOmodExpL ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOmodExpL,_lhsOundefNmMp) }) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1064,6 +1149,7 @@ isFreeOfLam : Bool isLamLifted : Bool lamBodyIsFreeOfLam : Bool+ modDefsRel : ModEntRel undefNmMp : UndefNmMp whatBelow : WhatExpr alternatives:@@ -1273,7 +1359,7 @@ Int -> EHCOpts -> WhatExpr ->- ( ErrSq,Bool,Bool,Bool,Bool,UndefNmMp,WhatExpr)+ ( ErrSq,Bool,Bool,Bool,Bool,ModEntRel,UndefNmMp,WhatExpr) sem_CExpr_Var :: ACoreBindRef -> T_CExpr sem_CExpr_Var ref_ =@@ -1294,15 +1380,17 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (acbrefNm ref_) of- { _nm ->- (case (ExprIsVar _nm) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (acbrefNm ref_) of+ { _nm ->+ (case (ExprIsVar _nm) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Int :: Int -> T_CExpr sem_CExpr_Int int_ =@@ -1323,13 +1411,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsInt int_) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsInt int_) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Char :: Char -> T_CExpr sem_CExpr_Char char_ =@@ -1350,13 +1440,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsOtherWHNF) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsOtherWHNF) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_String :: String -> T_CExpr sem_CExpr_String str_ =@@ -1377,13 +1469,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsOtherWHNF) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsOtherWHNF) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Integer :: Integer -> T_CExpr sem_CExpr_Integer integer_ =@@ -1404,13 +1498,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsOtherWHNF) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsOtherWHNF) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Tup :: CTag -> T_CExpr sem_CExpr_Tup tag_ =@@ -1431,13 +1527,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsTup tag_) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsTup tag_) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Let :: CBindCateg -> T_CBindL -> T_CExpr ->@@ -1475,7 +1573,7 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_lhsIopts) of { _bindsOopts -> (case (categ_) of@@ -1493,7 +1591,7 @@ (case (_lhsIlev + 1) of { _bindsOlev -> (case (binds_ _bindsOdataGam _bindsOevalCtx _bindsOisGlobal _bindsOletBindingsCateg _bindsOlev _bindsOopts) of- { ( _bindsIerrs,_bindsIhasMain,_bindsIisFreeOfLam,_bindsIisLamLifted,_bindsIundefNmMp) ->+ { ( _bindsIerrs,_bindsIhasMain,_bindsIisFreeOfLam,_bindsIisLamLifted,_bindsImodDefsRel,_bindsIundefNmMp) -> (case (_bindsIerrs `Seq.union` _bodyIerrs) of { _lhsOerrs -> (case (_bindsIhasMain || _bodyIhasMain) of@@ -1504,13 +1602,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_bindsIundefNmMp `undefmpUnion` _bodyIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_bindsImodDefsRel `Rel.union` _bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bindsIundefNmMp `undefmpUnion` _bodyIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_App :: T_CExpr -> T_CBound -> T_CExpr@@ -1565,7 +1665,7 @@ (case (False) of { _funcOisTopApp -> (case (func_ _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOwhatAbove) of- { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcIundefNmMp,_funcIwhatBelow) ->+ { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcIundefNmMp,_funcIwhatBelow) -> (case (_funcIerrs `Seq.union` _argIerrs) of { _lhsOerrs -> (case (_funcIhasMain) of@@ -1576,13 +1676,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_funcIundefNmMp `undefmpUnion` _argIundefNmMp) of- { _lhsOundefNmMp ->- (case (maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_funcImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_funcIundefNmMp `undefmpUnion` _argIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Lam :: T_CBind -> T_CExpr -> T_CExpr@@ -1617,7 +1719,7 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_lhsIopts) of { _bindOopts -> (case (_lev) of@@ -1635,7 +1737,7 @@ (case (_lhsIdataGam) of { _bindOdataGam -> (case (bind_ _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of- { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindInm,_bindIundefNmMp) ->+ { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindImodDefsRel,_bindInm,_bindIundefNmMp) -> (case (_bindIerrs `Seq.union` _bodyIerrs) of { _lhsOerrs -> (case (_bindIhasMain || _bodyIhasMain) of@@ -1648,13 +1750,15 @@ then _bodyIlamBodyIsFreeOfLam else _bodyIisFreeOfLam) of { _lhsOlamBodyIsFreeOfLam ->- (case (_bindIundefNmMp `undefmpUnion` _bodyIundefNmMp) of- { _lhsOundefNmMp ->- (case (maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _bodyIwhatBelow) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_bindImodDefsRel `Rel.union` _bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bindIundefNmMp `undefmpUnion` _bodyIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _bodyIwhatBelow) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Case :: T_CExpr -> T_CAltL -> T_CExpr ->@@ -1688,7 +1792,7 @@ (case (_lhsIdataGam) of { _dfltOdataGam -> (case (dflt_ _dfltOdataGam _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlev _dfltOopts _dfltOwhatAbove) of- { ( _dfltIerrs,_dfltIhasMain,_dfltIisFreeOfLam,_dfltIisLamLifted,_dfltIlamBodyIsFreeOfLam,_dfltIundefNmMp,_dfltIwhatBelow) ->+ { ( _dfltIerrs,_dfltIhasMain,_dfltIisFreeOfLam,_dfltIisLamLifted,_dfltIlamBodyIsFreeOfLam,_dfltImodDefsRel,_dfltIundefNmMp,_dfltIwhatBelow) -> (case (_lhsIopts) of { _altsOopts -> (case (_lhsIlev) of@@ -1714,7 +1818,7 @@ (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _altsIerrs `Seq.union` _dfltIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _dfltIhasMain) of@@ -1725,13 +1829,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_exprIundefNmMp `undefmpUnion` _altsIundefNmMp `undefmpUnion` _dfltIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_exprImodDefsRel `Rel.union` _dfltImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprIundefNmMp `undefmpUnion` _altsIundefNmMp `undefmpUnion` _dfltIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_CaseAltFail :: CaseAltFailReason -> T_CExpr -> T_CExpr@@ -1764,7 +1870,7 @@ (case (_lhsIdataGam) of { _errorExprOdataGam -> (case (errorExpr_ _errorExprOdataGam _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlev _errorExprOopts _errorExprOwhatAbove) of- { ( _errorExprIerrs,_errorExprIhasMain,_errorExprIisFreeOfLam,_errorExprIisLamLifted,_errorExprIlamBodyIsFreeOfLam,_errorExprIundefNmMp,_errorExprIwhatBelow) ->+ { ( _errorExprIerrs,_errorExprIhasMain,_errorExprIisFreeOfLam,_errorExprIisLamLifted,_errorExprIlamBodyIsFreeOfLam,_errorExprImodDefsRel,_errorExprIundefNmMp,_errorExprIwhatBelow) -> (case (_errorExprIerrs) of { _lhsOerrs -> (case (_errorExprIhasMain) of@@ -1775,11 +1881,13 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_errorExprIundefNmMp) of- { _lhsOundefNmMp ->- (case (_errorExprIwhatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_errorExprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_errorExprIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (_errorExprIwhatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupDel :: T_CExpr -> CTag -> HsName ->@@ -1814,7 +1922,7 @@ (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of@@ -1830,7 +1938,7 @@ (case (False) of { _exprOisTopTup -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _offsetIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _offsetIhasMain) of@@ -1841,13 +1949,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupIns :: T_CExpr -> CTag -> HsName ->@@ -1883,7 +1993,7 @@ (case (_lhsIdataGam) of { _fldExprOdataGam -> (case (fldExpr_ _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOwhatAbove) of- { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprIundefNmMp,_fldExprIwhatBelow) ->+ { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprIundefNmMp,_fldExprIwhatBelow) -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of@@ -1899,7 +2009,7 @@ (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of@@ -1915,7 +2025,7 @@ (case (False) of { _exprOisTopTup -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _offsetIerrs `Seq.union` _fldExprIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _offsetIhasMain || _fldExprIhasMain) of@@ -1926,13 +2036,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupUpd :: T_CExpr -> CTag -> HsName ->@@ -1968,7 +2080,7 @@ (case (_lhsIdataGam) of { _fldExprOdataGam -> (case (fldExpr_ _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOwhatAbove) of- { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprIundefNmMp,_fldExprIwhatBelow) ->+ { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprIundefNmMp,_fldExprIwhatBelow) -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of@@ -1984,7 +2096,7 @@ (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of@@ -2000,7 +2112,7 @@ (case (False) of { _exprOisTopTup -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _offsetIerrs `Seq.union` _fldExprIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _offsetIhasMain || _fldExprIhasMain) of@@ -2011,13 +2123,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_FFI :: FFIWay -> String -> ForeignEnt ->@@ -2041,13 +2155,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsFFI) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsFFI) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Dbg :: String -> T_CExpr sem_CExpr_Dbg info_ =@@ -2068,13 +2184,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Hole :: UID -> T_CExpr sem_CExpr_Hole uid_ =@@ -2095,13 +2213,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_HoleLet :: UID -> T_CExpr -> T_CExpr@@ -2134,7 +2254,7 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_bodyIerrs) of { _lhsOerrs -> (case (_bodyIhasMain) of@@ -2145,13 +2265,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_bodyIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bodyIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_CoeArg :: T_CExpr sem_CExpr_CoeArg = (\ _lhsIdataGam@@ -2171,13 +2293,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (Map.empty) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }))+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_ImplsApp :: T_CExpr -> ImplsVarId -> T_CExpr@@ -2210,7 +2334,7 @@ (case (_lhsIdataGam) of { _funcOdataGam -> (case (func_ _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOwhatAbove) of- { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcIundefNmMp,_funcIwhatBelow) ->+ { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcIundefNmMp,_funcIwhatBelow) -> (case (_funcIerrs) of { _lhsOerrs -> (case (_funcIhasMain) of@@ -2221,13 +2345,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_funcIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_funcImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_funcIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_ImplsLam :: ImplsVarId -> T_CExpr -> T_CExpr@@ -2260,7 +2386,7 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_bodyIerrs) of { _lhsOerrs -> (case (_bodyIhasMain) of@@ -2271,13 +2397,15 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_bodyIundefNmMp) of- { _lhsOundefNmMp ->- (case (ExprIsOther) of- { _whatBelow ->- (case (_whatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bodyIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (ExprIsOther) of+ { _whatBelow ->+ (case (_whatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Ann :: T_CExprAnn -> T_CExpr -> T_CExpr@@ -2304,7 +2432,7 @@ (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (_lhsIopts) of { _annOopts -> (case (_lhsIlev) of@@ -2323,11 +2451,13 @@ { _lhsOisLamLifted -> (case (False) of { _lhsOlamBodyIsFreeOfLam ->- (case (_annIundefNmMp `undefmpUnion` _exprIundefNmMp) of- { _lhsOundefNmMp ->- (case (_exprIwhatBelow) of- { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (_exprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_annIundefNmMp `undefmpUnion` _exprIundefNmMp) of+ { _lhsOundefNmMp ->+ (case (_exprIwhatBelow) of+ { _lhsOwhatBelow ->+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CExprAnn ---------------------------------------------------- {- visit 0:@@ -2406,6 +2536,7 @@ synthesized attributes: errs : ErrSq impModNmL : [HsName]+ modImpL : [ModImp] undefNmMp : UndefNmMp alternatives: alternative Import:@@ -2417,7 +2548,7 @@ sem_CImport (CImport_Import _nm) = (sem_CImport_Import _nm) -- semantic domain-type T_CImport = ( ErrSq,([HsName]),UndefNmMp)+type T_CImport = ( ErrSq,([HsName]),([ModImp]),UndefNmMp) sem_CImport_Import :: HsName -> T_CImport sem_CImport_Import nm_ =@@ -2425,15 +2556,18 @@ { _lhsOerrs -> (case ([nm_]) of { _lhsOimpModNmL ->- (case (Map.empty) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOimpModNmL,_lhsOundefNmMp) }) }) })+ (case ([ModImp True nm_ nm_ False [] emptyRange]) of+ { _lhsOmodImpL ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) }) -- CImportL ---------------------------------------------------- {- visit 0: synthesized attributes: errs : ErrSq impModNmL : [HsName]+ modImpL : [ModImp] undefNmMp : UndefNmMp alternatives: alternative Cons:@@ -2447,31 +2581,35 @@ sem_CImportL list = (Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list)) -- semantic domain-type T_CImportL = ( ErrSq,([HsName]),UndefNmMp)+type T_CImportL = ( ErrSq,([HsName]),([ModImp]),UndefNmMp) sem_CImportL_Cons :: T_CImport -> T_CImportL -> T_CImportL sem_CImportL_Cons hd_ tl_ = (case (tl_) of- { ( _tlIerrs,_tlIimpModNmL,_tlIundefNmMp) ->+ { ( _tlIerrs,_tlIimpModNmL,_tlImodImpL,_tlIundefNmMp) -> (case (hd_) of- { ( _hdIerrs,_hdIimpModNmL,_hdIundefNmMp) ->+ { ( _hdIerrs,_hdIimpModNmL,_hdImodImpL,_hdIundefNmMp) -> (case (_hdIerrs `Seq.union` _tlIerrs) of { _lhsOerrs -> (case (_hdIimpModNmL ++ _tlIimpModNmL) of { _lhsOimpModNmL ->- (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOimpModNmL,_lhsOundefNmMp) }) }) }) }) })+ (case (_hdImodImpL ++ _tlImodImpL) of+ { _lhsOmodImpL ->+ (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) }) }) }) sem_CImportL_Nil :: T_CImportL sem_CImportL_Nil = (case (Seq.empty) of { _lhsOerrs -> (case ([]) of { _lhsOimpModNmL ->- (case (Map.empty) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOimpModNmL,_lhsOundefNmMp) }) }) })+ (case ([]) of+ { _lhsOmodImpL ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOimpModNmL,_lhsOmodImpL,_lhsOundefNmMp) }) }) }) }) -- CMetaBind --------------------------------------------------- {- visit 0:@@ -2717,6 +2855,7 @@ inherited attributes: dataGam : DataGam lev : Int+ moduleNm : HsName opts : EHCOpts synthesized attributes: errs : ErrSq@@ -2725,36 +2864,42 @@ impModNmL : [HsName] isFreeOfLam : Bool isLamLifted : Bool+ mod : Mod realModuleNm : HsName undefNmMp : UndefNmMp alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr visit 0: local whatAbove : {WhatExpr} local dataGam : _+ local realModuleNm : _ -} -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = DataGam -> Int ->+ HsName -> EHCOpts ->- ( ErrSq,DataGam,Bool,([HsName]),Bool,Bool,HsName,UndefNmMp)+ ( ErrSq,DataGam,Bool,([HsName]),Bool,Bool,Mod,HsName,UndefNmMp) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIdataGam _lhsIlev+ _lhsImoduleNm _lhsIopts -> (case (ExprIsOther) of { _whatAbove ->@@ -2777,26 +2922,32 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) -> (case (imports_) of- { ( _importsIerrs,_importsIimpModNmL,_importsIundefNmMp) ->- (case (_importsIerrs `Seq.union` _declMetasIerrs `Seq.union` _exprIerrs) of- { _lhsOerrs ->- (case (_declMetasIgathDataGam) of- { _lhsOgathDataGam ->- (case (_exprIhasMain) of- { _lhsOhasMain ->- (case (_importsIimpModNmL) of- { _lhsOimpModNmL ->- (case (_exprIisFreeOfLam) of- { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted) of- { _lhsOisLamLifted ->- (case (moduleNm_) of- { _lhsOrealModuleNm ->- (case (_importsIundefNmMp `undefmpUnion` _declMetasIundefNmMp `undefmpUnion` _exprIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOrealModuleNm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ { ( _importsIerrs,_importsIimpModNmL,_importsImodImpL,_importsIundefNmMp) ->+ (case (exports_) of+ { ( _exportsIerrs,_exportsImodExpL,_exportsIundefNmMp) ->+ (case (_exportsIerrs `Seq.union` _importsIerrs `Seq.union` _declMetasIerrs `Seq.union` _exprIerrs) of+ { _lhsOerrs ->+ (case (_declMetasIgathDataGam) of+ { _lhsOgathDataGam ->+ (case (_exprIhasMain) of+ { _lhsOhasMain ->+ (case (_importsIimpModNmL) of+ { _lhsOimpModNmL ->+ (case (_exprIisFreeOfLam) of+ { _lhsOisFreeOfLam ->+ (case (_exprIisLamLifted) of+ { _lhsOisLamLifted ->+ (case (moduleNm_) of+ { _realModuleNm ->+ (case (Mod _realModuleNm (Just _realModuleNm) (Just _exportsImodExpL) _importsImodImpL _exprImodDefsRel Rel.empty []) of+ { _lhsOmod ->+ (case (_realModuleNm) of+ { _lhsOrealModuleNm ->+ (case (_exportsIundefNmMp `undefmpUnion` _importsIundefNmMp `undefmpUnion` _declMetasIundefNmMp `undefmpUnion` _exprIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:@@ -2996,7 +3147,7 @@ (case (acoreBindcategPlain) of { _bindOletBindingsCateg -> (case (bind_ _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of- { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindInm,_bindIundefNmMp) ->+ { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindImodDefsRel,_bindInm,_bindIundefNmMp) -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of@@ -3014,7 +3165,7 @@ (case (True) of { _offsetOisTopApp -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_offsetIerrs `Seq.union` _bindIerrs `Seq.union` _fldAnnsIerrs) of { _lhsOerrs -> (case (_bindInm) of@@ -3158,6 +3309,7 @@ visit 0: inherited attributes: dataGam : DataGam+ moduleNm : HsName opts : EHCOpts synthesized attributes: errs : ErrSq@@ -3165,6 +3317,7 @@ hasMain : Bool impModNmL : [HsName] isLamLifted : Bool+ mod : Mod realModuleNm : HsName alternatives: alternative AGItf:@@ -3177,39 +3330,45 @@ (sem_CodeAGItf_AGItf (sem_CModule _module)) -- semantic domain type T_CodeAGItf = DataGam ->+ HsName -> EHCOpts ->- ( ErrSq,DataGam,Bool,([HsName]),Bool,HsName)-data Inh_CodeAGItf = Inh_CodeAGItf {dataGam_Inh_CodeAGItf :: !(DataGam),opts_Inh_CodeAGItf :: !(EHCOpts)}-data Syn_CodeAGItf = Syn_CodeAGItf {errs_Syn_CodeAGItf :: !(ErrSq),gathDataGam_Syn_CodeAGItf :: !(DataGam),hasMain_Syn_CodeAGItf :: !(Bool),impModNmL_Syn_CodeAGItf :: !(([HsName])),isLamLifted_Syn_CodeAGItf :: !(Bool),realModuleNm_Syn_CodeAGItf :: !(HsName)}+ ( ErrSq,DataGam,Bool,([HsName]),Bool,Mod,HsName)+data Inh_CodeAGItf = Inh_CodeAGItf {dataGam_Inh_CodeAGItf :: !(DataGam),moduleNm_Inh_CodeAGItf :: !(HsName),opts_Inh_CodeAGItf :: !(EHCOpts)}+data Syn_CodeAGItf = Syn_CodeAGItf {errs_Syn_CodeAGItf :: !(ErrSq),gathDataGam_Syn_CodeAGItf :: !(DataGam),hasMain_Syn_CodeAGItf :: !(Bool),impModNmL_Syn_CodeAGItf :: !(([HsName])),isLamLifted_Syn_CodeAGItf :: !(Bool),mod_Syn_CodeAGItf :: !(Mod),realModuleNm_Syn_CodeAGItf :: !(HsName)} wrap_CodeAGItf :: T_CodeAGItf -> Inh_CodeAGItf -> Syn_CodeAGItf-wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIdataGam _lhsIopts) =- (let ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOrealModuleNm) = sem _lhsIdataGam _lhsIopts- in (Syn_CodeAGItf _lhsOerrs _lhsOgathDataGam _lhsOhasMain _lhsOimpModNmL _lhsOisLamLifted _lhsOrealModuleNm))+wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIdataGam _lhsImoduleNm _lhsIopts) =+ (let ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm) = sem _lhsIdataGam _lhsImoduleNm _lhsIopts+ in (Syn_CodeAGItf _lhsOerrs _lhsOgathDataGam _lhsOhasMain _lhsOimpModNmL _lhsOisLamLifted _lhsOmod _lhsOrealModuleNm)) sem_CodeAGItf_AGItf :: T_CModule -> T_CodeAGItf sem_CodeAGItf_AGItf module_ = (\ _lhsIdataGam+ _lhsImoduleNm _lhsIopts -> (case (_lhsIopts) of { _moduleOopts ->- (case (_lhsIdataGam) of- { _moduleOdataGam ->- (case (cLevModule) of- { _moduleOlev ->- (case (module_ _moduleOdataGam _moduleOlev _moduleOopts) of- { ( _moduleIerrs,_moduleIgathDataGam,_moduleIhasMain,_moduleIimpModNmL,_moduleIisFreeOfLam,_moduleIisLamLifted,_moduleIrealModuleNm,_moduleIundefNmMp) ->- (case (_moduleIerrs) of- { _lhsOerrs ->- (case (_moduleIgathDataGam) of- { _lhsOgathDataGam ->- (case (_moduleIhasMain) of- { _lhsOhasMain ->- (case (_moduleIimpModNmL) of- { _lhsOimpModNmL ->- (case (_moduleIisLamLifted) of- { _lhsOisLamLifted ->- (case (_moduleIrealModuleNm) of- { _lhsOrealModuleNm ->- ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOrealModuleNm) }) }) }) }) }) }) }) }) }) }))+ (case (_lhsImoduleNm) of+ { _moduleOmoduleNm ->+ (case (_lhsIdataGam) of+ { _moduleOdataGam ->+ (case (cLevModule) of+ { _moduleOlev ->+ (case (module_ _moduleOdataGam _moduleOlev _moduleOmoduleNm _moduleOopts) of+ { ( _moduleIerrs,_moduleIgathDataGam,_moduleIhasMain,_moduleIimpModNmL,_moduleIisFreeOfLam,_moduleIisLamLifted,_moduleImod,_moduleIrealModuleNm,_moduleIundefNmMp) ->+ (case (_moduleIerrs) of+ { _lhsOerrs ->+ (case (_moduleIgathDataGam) of+ { _lhsOgathDataGam ->+ (case (_moduleIhasMain) of+ { _lhsOhasMain ->+ (case (_moduleIimpModNmL) of+ { _lhsOimpModNmL ->+ (case (_moduleIisLamLifted) of+ { _lhsOisLamLifted ->+ (case (_moduleImod) of+ { _lhsOmod ->+ (case (_moduleIrealModuleNm) of+ { _lhsOrealModuleNm ->+ ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm) }) }) }) }) }) }) }) }) }) }) }) }))
@@ -673,6 +673,46 @@ sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = ( )+-- CExport -----------------------------------------------------+{-+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( )+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ ( )+-- CExportL ----------------------------------------------------+{-+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( )+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ ( )+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ ( ) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1497,6 +1537,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1504,16 +1545,17 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( ([ExtractFFE]),FvS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (expr_) of { ( _exprIffeBinds,_exprIfvS,_exprIself) -> (case (_exprIffeBinds) of
@@ -508,6 +508,46 @@ sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = ( )+-- CExport -----------------------------------------------------+{-+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( )+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ ( )+-- CExportL ----------------------------------------------------+{-+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( )+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ ( )+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ ( ) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1075,6 +1115,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1082,16 +1123,17 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( FvS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (expr_) of { ( _exprIfvS) -> (case (_exprIfvS) of
@@ -25,10 +25,10 @@ instance ModPuller CModule (CModuleDatabase, Map.Map HsName CModuleDatabase)- (HsName,CImportL,CDeclMetaL)+ (HsName,CExportL,CImportL,CDeclMetaL) CModule CExpr CBindCateg CBind where- mpullSplit mmain@(CModule_Mod modNm _ _ _) mimpL =+ mpullSplit mmain@(CModule_Mod modNm _ _ _ _) mimpL = ( cmoddbMainExpr modDbMain , Just (CBindCateg_FFE, [ (effeBind e, effeFvS e) | m <- mmain : mimpL, e <- cmodExtractFFE m ])@@ -36,6 +36,8 @@ , Map.unions [ Map.singleton (cmoddbModNm db) db | db <- modDbMain : modDbImp ] ) , ( modNm+ -- TBD: combine this in some way with the FFE implicit exports...+ , Set.toList $ Set.fromList $ concatMap cmoddbExports $ modDbMain : modDbImp , Set.toList $ Set.fromList $ concatMap cmoddbImports $ modDbMain : modDbImp , concatMap cmoddbMeta $ modDbMain : modDbImp ) )@@ -57,9 +59,9 @@ mpullFreeVars = cexprFvS - mpullBindingsAddToMod (modNm,allImports,allMeta) rootExpr bs _ = CModule_Mod modNm allImports allMeta (acoreLetN bs $ rootExpr)+ mpullBindingsAddToMod (modNm,allExports,allImports,allMeta) rootExpr bs _ = CModule_Mod modNm allExports allImports allMeta (acoreLetN bs $ rootExpr) -{-# LINE 88 "src/ehc/Core/Merge.chs" #-}+{-# LINE 90 "src/ehc/Core/Merge.chs" #-} -- | merge by pulling cModMerge :: (CModule,[CModule]) -> CModule cModMerge mods@(mmain,mimpL)
@@ -552,6 +552,74 @@ (case (_copy) of { _lhsOcopy -> ( _lhsOcopy) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ copy : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local copy : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _copy ->+ (case (_copy) of+ { _lhsOcopy ->+ ( _lhsOcopy) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ copy : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local copy : _+ alternative Nil:+ visit 0:+ local copy : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcopy) ->+ (case (hd_) of+ { ( _hdIcopy) ->+ (case ((:) _hdIcopy _tlIcopy) of+ { _copy ->+ (case (_copy) of+ { _lhsOcopy ->+ ( _lhsOcopy) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _copy ->+ (case (_copy) of+ { _lhsOcopy ->+ ( _lhsOcopy) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1357,6 +1425,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1366,45 +1435,49 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( CModule,CModuleDatabase) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (expr_) of { ( _exprIbindSq,_exprIcopy,_exprIexpr) -> (case (declMetas_) of { ( _declMetasIcopy) -> (case (imports_) of { ( _importsIcopy) ->- (case (CModule_Mod moduleNm_ _importsIcopy _declMetasIcopy _exprIcopy) of- { _copy ->- (case (_copy) of- { _lhsOcopy ->- (case (let binds = Seq.toList _exprIbindSq- nrBinds = length binds- (refs,arrs)- = unzip- [ (Map.unions refs, (cat, listArray (0, nrSubBinds-1) bs))- | (bi,(cat,bs)) <- zip [0 .. nrBinds-1] binds- , let nrSubBinds = length bs- , let refs = zipWith (\b i -> Map.singleton (cbindNm b) (bi,i)) bs [0 .. nrSubBinds-1]- ]- in emptyCModuleDatabase- { cmoddbModNm = moduleNm_- , cmoddbBindMp = Map.unions refs- , cmoddbBindArr = listArray (0, nrBinds-1) arrs- , cmoddbMainExpr = _exprIexpr- , cmoddbImports = _importsIcopy- , cmoddbMeta = _declMetasIcopy- }) of- { _lhsOdb ->- ( _lhsOcopy,_lhsOdb) }) }) }) }) }) })+ (case (exports_) of+ { ( _exportsIcopy) ->+ (case (CModule_Mod moduleNm_ _exportsIcopy _importsIcopy _declMetasIcopy _exprIcopy) of+ { _copy ->+ (case (_copy) of+ { _lhsOcopy ->+ (case (let binds = Seq.toList _exprIbindSq+ nrBinds = length binds+ (refs,arrs)+ = unzip+ [ (Map.unions refs, (cat, listArray (0, nrSubBinds-1) bs))+ | (bi,(cat,bs)) <- zip [0 .. nrBinds-1] binds+ , let nrSubBinds = length bs+ , let refs = zipWith (\b i -> Map.singleton (cbindNm b) (bi,i)) bs [0 .. nrSubBinds-1]+ ]+ in emptyCModuleDatabase+ { cmoddbModNm = moduleNm_+ , cmoddbBindMp = Map.unions refs+ , cmoddbBindArr = listArray (0, nrBinds-1) arrs+ , cmoddbMainExpr = _exprIexpr+ , cmoddbExports = _exportsIcopy+ , cmoddbImports = _importsIcopy+ , cmoddbMeta = _declMetasIcopy+ }) of+ { _lhsOdb ->+ ( _lhsOcopy,_lhsOdb) }) }) }) }) }) }) }) -- CPat -------------------------------------------------------- {- visit 0:
@@ -41,14 +41,19 @@ {-# LINE 60 "src/ehc/Core/Parser.chs" #-} pCModule :: CParser CModule pCModule- = (\m mt e -> CModule_Mod m mt e)+ = CModule_Mod <$ pMODULE <*> pDollNm <* pSEMI+ <*> pE <*> pI <*> pM <*> pCExpr -- <*> pA (pA pCTag)- where -- pA pE = pOCURLY *> pListSep pSEMI ((,) <$> pDollNm <* pEQUAL <*> pE) <* pCCURLY- pM = pList pCDeclMeta -- pMaybe [] id $ pOCURLY *> pListSep pSEMI pCDeclMeta <* pCCURLY+ where pM = pList pCDeclMeta -- pMaybe [] id $ pOCURLY *> pListSep pSEMI pCDeclMeta <* pCCURLY pI = pList pCImport+ pE = pList pCExport++pCExport :: CParser CExport+pCExport+ = CExport_Export <$ pEXPORT <*> pDollNm <* pSEMI pCImport :: CParser CImport pCImport
@@ -1280,6 +1280,80 @@ (case ([]) of { _lhsOppL -> ( _lhsOpp,_lhsOppL) }) }))+-- CExport -----------------------------------------------------+{-+ visit 0:+ inherited attribute:+ opts : EHCOpts+ synthesized attribute:+ pp : PP_Doc+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = EHCOpts ->+ ( PP_Doc)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (\ _lhsIopts ->+ (case ("export" >#< ppCNm nm_) of+ { _lhsOpp ->+ ( _lhsOpp) }))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ inherited attribute:+ opts : EHCOpts+ synthesized attributes:+ pp : PP_Doc+ ppL : [PP_Doc]+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = EHCOpts ->+ ( PP_Doc,([PP_Doc]))+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (\ _lhsIopts ->+ (case (_lhsIopts) of+ { _tlOopts ->+ (case (tl_ _tlOopts) of+ { ( _tlIpp,_tlIppL) ->+ (case (_lhsIopts) of+ { _hdOopts ->+ (case (hd_ _hdOopts) of+ { ( _hdIpp) ->+ (case (_hdIpp >-< _tlIpp) of+ { _lhsOpp ->+ (case (_hdIpp : _tlIppL) of+ { _lhsOppL ->+ ( _lhsOpp,_lhsOppL) }) }) }) }) }) }))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (\ _lhsIopts ->+ (case (empty) of+ { _lhsOpp ->+ (case ([]) of+ { _lhsOppL ->+ ( _lhsOpp,_lhsOppL) }) })) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2613,6 +2687,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2620,19 +2695,20 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = MetaLev -> EHCOpts -> HowPP -> ( PP_Doc) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsImlev _lhsIopts _lhsIppHow ->@@ -2656,12 +2732,17 @@ { _importsOopts -> (case (imports_ _importsOopts) of { ( _importsIpp,_importsIppL) ->- (case (ppSemi ("module" >#< ppCNm moduleNm_)- >-< (vlist $ map ppSemi _importsIppL)- >-< (vlist $ map ppSemi _declMetasIppL)- >-< _exprIpp) of- { _lhsOpp ->- ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }))+ (case (_lhsIopts) of+ { _exportsOopts ->+ (case (exports_ _exportsOopts) of+ { ( _exportsIpp,_exportsIppL) ->+ (case (ppSemi ("module" >#< ppCNm moduleNm_)+ >-< (vlist $ map ppSemi _exportsIppL)+ >-< (vlist $ map ppSemi _importsIppL)+ >-< (vlist $ map ppSemi _declMetasIppL)+ >-< _exprIpp) of+ { _lhsOpp ->+ ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -965,6 +965,74 @@ (case (_cRepl) of { _lhsOcRepl -> ( _lhsOcRepl) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cRepl : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cRepl : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cRepl ->+ (case (_cRepl) of+ { _lhsOcRepl ->+ ( _lhsOcRepl) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cRepl : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cRepl : _+ alternative Nil:+ visit 0:+ local cRepl : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcRepl) ->+ (case (hd_) of+ { ( _hdIcRepl) ->+ (case ((:) _hdIcRepl _tlIcRepl) of+ { _cRepl ->+ (case (_cRepl) of+ { _lhsOcRepl ->+ ( _lhsOcRepl) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cRepl ->+ (case (_cRepl) of+ { _lhsOcRepl ->+ ( _lhsOcRepl) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2157,6 +2225,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2166,19 +2235,20 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = CSubst -> CExpr -> Bool -> ( CModule) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIcSubst _lhsIcoeArg _lhsIdoDeepSubst ->@@ -2194,11 +2264,13 @@ { ( _declMetasIcRepl) -> (case (imports_) of { ( _importsIcRepl) ->- (case (CModule_Mod moduleNm_ _importsIcRepl _declMetasIcRepl _exprIcRepl) of- { _cRepl ->- (case (_cRepl) of- { _lhsOcRepl ->- ( _lhsOcRepl) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcRepl) ->+ (case (CModule_Mod moduleNm_ _exportsIcRepl _importsIcRepl _declMetasIcRepl _exprIcRepl) of+ { _cRepl ->+ (case (_cRepl) of+ { _lhsOcRepl ->+ ( _lhsOcRepl) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -1534,6 +1534,46 @@ sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = ( )+-- CExport -----------------------------------------------------+{-+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( )+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ ( )+-- CExportL ----------------------------------------------------+{-+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( )+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ ( )+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ ( ) -- CExpr ------------------------------------------------------- {- visit 0:@@ -4974,6 +5014,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -4987,8 +5028,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> Int ->@@ -4996,11 +5037,12 @@ EHCOpts -> ( (CR.Mod),(CR.Nm2RefMp)) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev _lhsImodNr _lhsInm2ref
@@ -1421,6 +1421,46 @@ (case (emptyGam) of { _lhsOgathDataGam -> ( _lhsOgathDataGam) })+-- CExport -----------------------------------------------------+{-+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( )+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ ( )+-- CExportL ----------------------------------------------------+{-+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( )+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ ( )+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ ( ) -- CExpr ------------------------------------------------------- {- visit 0:@@ -3775,6 +3815,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -3785,8 +3826,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( LamMp,T_CModule_1) type T_CModule_1 = DataGam ->@@ -3797,11 +3838,12 @@ EHCOpts -> ( FvS,UID,DataGam) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (_exprIgathLamMp) of
@@ -2220,6 +2220,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -6370,6 +6449,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -6380,8 +6460,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = CVarIntroMp -> UID ->@@ -6390,11 +6470,12 @@ HsName -> ( CModule,FvS,UID,LevBindSq,Int) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIcvarIntroMp _lhsIgUniq _lhsIintroCVarIntroMp@@ -6418,6 +6499,7 @@ _exprOlev :: Int _exprOmodNm :: HsName _exprOwhatAbove :: WhatExpr+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIcTrf :: CExpr@@ -6458,7 +6540,7 @@ _exprIlevOf -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -6483,6 +6565,8 @@ -- copy rule (from local) _exprOwhatAbove = _whatAbove+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -3671,6 +3671,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -9977,6 +10056,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -9988,8 +10068,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = DataGam -> REnv ->@@ -10002,11 +10082,12 @@ ([WhatToRelevInfer]) -> ( CModule,FvS,UID,LamMp,RelevQualS,RVarMp) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIdataGam _lhsIenv _lhsIfinalRVarMp@@ -10039,6 +10120,7 @@ _exprOrvarMp :: RVarMp _exprOwhatAbove :: WhatExpr _exprOwhatTo :: ([WhatToRelevInfer])+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIappFunKind :: AppFunKind@@ -10092,7 +10174,7 @@ _exprIqualS -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -10138,6 +10220,8 @@ -- copy rule (down) _exprOwhatTo = _lhsIwhatTo+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -961,6 +961,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2867,6 +2935,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2877,18 +2946,19 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> EHCOpts -> ( CModule) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev _lhsIopts -> (case (_lhsIopts) of@@ -2913,11 +2983,13 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -2535,6 +2535,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -6691,6 +6770,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -6701,8 +6781,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = CVarReplNmMp -> CVarIntroMp ->@@ -6714,11 +6794,12 @@ FvS -> ( CModule,FvS,Int,Int) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIargMp _lhsIcvarIntroMp _lhsIfvSCafMp@@ -6744,6 +6825,7 @@ _exprOlev :: Int _exprOvarS :: FvS _exprOwhatAbove :: WhatExpr+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIappFunKind :: AppFunKind@@ -6775,7 +6857,7 @@ _exprIlevOf -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -6809,6 +6891,8 @@ -- copy rule (from local) _exprOwhatAbove = _whatAbove+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -877,6 +877,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2388,6 +2456,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2398,18 +2467,19 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> EHCOpts -> ( CModule) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev _lhsIopts -> (case (_lhsIopts) of@@ -2432,11 +2502,13 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -628,6 +628,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1440,6 +1508,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1449,17 +1518,18 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = EHCOpts -> ( CModule) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIopts -> (case (_lhsIopts) of { _exprOopts | _exprOopts `seq` (True) ->@@ -1469,11 +1539,13 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- ( _lhsOcTrf) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -984,6 +984,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2716,6 +2784,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2726,18 +2795,19 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> EHCOpts -> ( CModule,FvS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev _lhsIopts -> (case (_lhsIopts) of@@ -2760,13 +2830,15 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIfvS) of- { _lhsOfvS | _lhsOfvS `seq` (True) ->- ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIfvS) of+ { _lhsOfvS | _lhsOfvS `seq` (True) ->+ ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -928,6 +928,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1897,6 +1965,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1906,18 +1975,19 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = LamMp -> EHCOpts -> ( CModule,LamMp) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlamMp _lhsIopts -> (case (_lhsIopts) of@@ -1930,13 +2000,15 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIgathLamMp) of- { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->- ( _lhsOcTrf,_lhsOgathLamMp) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIgathLamMp) of+ { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->+ ( _lhsOcTrf,_lhsOgathLamMp) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -919,6 +919,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2569,6 +2637,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2579,17 +2648,18 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> ( CModule,FvS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) ->@@ -2609,13 +2679,15 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIfvS) of- { _lhsOfvS | _lhsOfvS `seq` (True) ->- ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIfvS) of+ { _lhsOfvS | _lhsOfvS `seq` (True) ->+ ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -1817,6 +1817,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -5164,6 +5243,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -5175,8 +5255,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = LamMp -> Int ->@@ -5184,11 +5264,12 @@ Int -> ( CModule,LamMp,LamMp,Int) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlamMp _lhsIlev _lhsIopts@@ -5207,6 +5288,7 @@ _exprOopts :: EHCOpts _exprOuniq :: Int _exprOwhatAbove :: WhatExpr+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIcTrf :: CExpr@@ -5237,7 +5319,7 @@ _exprIdebugLamMp -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -5265,6 +5347,8 @@ -- copy rule (from local) _exprOwhatAbove = _whatAbove+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -634,6 +634,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1450,6 +1518,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1459,17 +1528,18 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = DataGam -> ( CModule) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIdataGam -> (case (_lhsIdataGam) of { _exprOdataGam | _exprOdataGam `seq` (True) ->@@ -1479,11 +1549,13 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- ( _lhsOcTrf) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -1120,6 +1120,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2933,6 +3001,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2943,17 +3012,18 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> ( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CModule,FvS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) ->@@ -2977,13 +3047,15 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIfvS) of- { _lhsOfvS | _lhsOfvS `seq` (True) ->- ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIfvS) of+ { _lhsOfvS | _lhsOfvS `seq` (True) ->+ ( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -2019,6 +2019,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -4672,6 +4751,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -4681,8 +4761,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = CVarIntroMp -> CVarIntroMp ->@@ -4691,11 +4771,12 @@ HsNameS -> ( CModule,FvS,Int) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIcvarIntroMp _lhsIintroCVarIntroMp _lhsIlev@@ -4711,6 +4792,7 @@ _exprOlev :: Int _exprOnmMp :: NmMp _exprOnoTrfNmS :: HsNameS+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIbindNmMp :: NmMp@@ -4732,7 +4814,7 @@ _exprIlevOf -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -4751,6 +4833,8 @@ -- copy rule (down) _exprOnoTrfNmS = _lhsInoTrfNmS+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -2776,6 +2776,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -7539,6 +7618,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -7549,8 +7629,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = CVarReplNmMp -> CVarIntroMp ->@@ -7563,11 +7643,12 @@ FvS -> ( CModule,FvS,Int,Int) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIargMp _lhsIcvarIntroMp _lhsIgUniq@@ -7597,6 +7678,7 @@ _exprOlev :: Int _exprOvarS :: FvS _exprOwhatAbove :: WhatExpr+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIappFunKind :: AppFunKind@@ -7635,7 +7717,7 @@ _exprIlevOf -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -7672,6 +7754,8 @@ -- copy rule (from local) _exprOwhatAbove = _whatAbove+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -848,6 +848,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1897,6 +1965,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1907,17 +1976,18 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = Int -> ( CModule,FvS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) ->@@ -1930,19 +2000,22 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (let mk ds@(_:_:_) e = acoreLetRec (map defCore ds) e- mk [d] e = acoreLet (defCateg d) [defCore d] e- in CModule_Mod- moduleNm_- _importsIcTrf- _declMetasIcTrf- (foldr mk _exprIletBody _sccDefs)) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIfvS) of- { _lhsOfvS | _lhsOfvS `seq` (True) ->- ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (let mk ds@(_:_:_) e = acoreLetRec (map defCore ds) e+ mk [d] e = acoreLet (defCateg d) [defCore d] e+ in CModule_Mod+ moduleNm_+ _exportsIcTrf+ _importsIcTrf+ _declMetasIcTrf+ (foldr mk _exprIletBody _sccDefs)) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIfvS) of+ { _lhsOfvS | _lhsOfvS `seq` (True) ->+ ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -667,6 +667,74 @@ (case (_cTrf) of { _lhsOcTrf -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf ->+ (case (_cTrf) of+ { _lhsOcTrf ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) ->+ (case (hd_) of+ { ( _hdIcTrf) ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf ->+ (case (_cTrf) of+ { _lhsOcTrf ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf ->+ (case (_cTrf) of+ { _lhsOcTrf ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1711,6 +1779,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1721,16 +1790,17 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( CModule) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (False) of { _isStrictChain -> (case (_isStrictChain) of@@ -1741,11 +1811,13 @@ { ( _declMetasIcTrf) -> (case (imports_) of { ( _importsIcTrf) ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf ->- (case (_cTrf) of- { _lhsOcTrf ->- ( _lhsOcTrf) }) }) }) }) }) }) })+ (case (exports_) of+ { ( _exportsIcTrf) ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf ->+ (case (_cTrf) of+ { _lhsOcTrf ->+ ( _lhsOcTrf) }) }) }) }) }) }) }) }) -- CPat -------------------------------------------------------- {- visit 0:
@@ -930,6 +930,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -2048,6 +2116,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -2057,18 +2126,19 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ([HsName]) -> Int -> ( CModule,FvS,UseMp) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIinNmL _lhsIlev -> (case (_lhsIinNmL) of@@ -2081,15 +2151,17 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIfvS) of- { _lhsOfvS | _lhsOfvS `seq` (True) ->- (case (_exprIuseMp) of- { _lhsOuseMp | _lhsOuseMp `seq` (True) ->- ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIfvS) of+ { _lhsOfvS | _lhsOfvS `seq` (True) ->+ (case (_exprIuseMp) of+ { _lhsOuseMp | _lhsOuseMp `seq` (True) ->+ ( _lhsOcTrf,_lhsOfvS,_lhsOuseMp) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -1227,6 +1227,85 @@ _lhsOcTrf = _cTrf in ( _lhsOcTrf))+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (let _lhsOcTrf :: CExport+ -- self rule+ _cTrf =+ CExport_Export nm_+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf))+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (let _lhsOcTrf :: CExportL+ _hdIcTrf :: CExport+ _tlIcTrf :: CExportL+ -- self rule+ _cTrf =+ (:) _hdIcTrf _tlIcTrf+ -- self rule+ _lhsOcTrf =+ _cTrf+ ( _hdIcTrf) =+ hd_+ ( _tlIcTrf) =+ tl_+ in ( _lhsOcTrf))+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (let _lhsOcTrf :: CExportL+ -- self rule+ _cTrf =+ []+ -- self rule+ _lhsOcTrf =+ _cTrf+ in ( _lhsOcTrf)) -- CExpr ------------------------------------------------------- {- visit 0:@@ -3342,6 +3421,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -3353,18 +3433,19 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = LamMp -> EHCOpts -> ( CModule,LamMp) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlamMp _lhsIopts -> (let _anaEvalCtxt :: AnaEval@@ -3374,6 +3455,7 @@ _exprOlamArgAnaEvalL :: ([AnaEval]) _exprOlamMp :: LamMp _exprOopts :: EHCOpts+ _exportsIcTrf :: CExportL _importsIcTrf :: CImportL _declMetasIcTrf :: CDeclMetaL _exprIappArgAnaEvalL :: ([AnaEval])@@ -3391,7 +3473,7 @@ [] -- self rule _cTrf =- CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf+ CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf -- self rule _lhsOcTrf = _cTrf@@ -3410,6 +3492,8 @@ -- copy rule (down) _exprOopts = _lhsIopts+ ( _exportsIcTrf) =+ exports_ ( _importsIcTrf) = imports_ ( _declMetasIcTrf) =
@@ -1335,6 +1335,74 @@ (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) })+-- CExport -----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExport + alternatives:+ alternative Export:+ child nm : {HsName}+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( CExport)+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ (case (CExport_Export nm_) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) })+-- CExportL ----------------------------------------------------+{-+ visit 0:+ synthesized attribute:+ cTrf : CExportL + alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + visit 0:+ local cTrf : _+ alternative Nil:+ visit 0:+ local cTrf : _+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( CExportL)+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ (case (tl_) of+ { ( _tlIcTrf) | True ->+ (case (hd_) of+ { ( _hdIcTrf) | True ->+ (case ((:) _hdIcTrf _tlIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) }) })+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ (case ([]) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0:@@ -3302,6 +3370,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -3312,8 +3381,8 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ARenMp -> Int ->@@ -3321,11 +3390,12 @@ RenUniqOpts -> ( CModule,Int) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIaRenMp _lhsIgIniq _lhsIlev@@ -3356,13 +3426,15 @@ { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True ->- (case (CModule_Mod moduleNm_ _importsIcTrf _declMetasIcTrf _exprIcTrf) of- { _cTrf | _cTrf `seq` (True) ->- (case (_cTrf) of- { _lhsOcTrf | _lhsOcTrf `seq` (True) ->- (case (_exprIgIniq) of- { _lhsOgIniq | _lhsOgIniq `seq` (True) ->- ( _lhsOcTrf,_lhsOgIniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (exports_) of+ { ( _exportsIcTrf) | True ->+ (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of+ { _cTrf | _cTrf `seq` (True) ->+ (case (_cTrf) of+ { _lhsOcTrf | _lhsOcTrf `seq` (True) ->+ (case (_exprIgIniq) of+ { _lhsOgIniq | _lhsOgIniq `seq` (True) ->+ ( _lhsOcTrf,_lhsOgIniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:
@@ -463,6 +463,46 @@ sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = ( )+-- CExport -----------------------------------------------------+{-+ alternatives:+ alternative Export:+ child nm : {HsName}+-}+-- cata+sem_CExport :: CExport ->+ T_CExport+sem_CExport (CExport_Export _nm) =+ (sem_CExport_Export _nm)+-- semantic domain+type T_CExport = ( )+sem_CExport_Export :: HsName ->+ T_CExport+sem_CExport_Export nm_ =+ ( )+-- CExportL ----------------------------------------------------+{-+ alternatives:+ alternative Cons:+ child hd : CExport + child tl : CExportL + alternative Nil:+-}+-- cata+sem_CExportL :: CExportL ->+ T_CExportL+sem_CExportL list =+ (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))+-- semantic domain+type T_CExportL = ( )+sem_CExportL_Cons :: T_CExport ->+ T_CExportL ->+ T_CExportL+sem_CExportL_Cons hd_ tl_ =+ ( )+sem_CExportL_Nil :: T_CExportL+sem_CExportL_Nil =+ ( ) -- CExpr ------------------------------------------------------- {- visit 0:@@ -1074,6 +1114,7 @@ alternatives: alternative Mod: child moduleNm : {HsName}+ child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr @@ -1081,16 +1122,17 @@ -- cata sem_CModule :: CModule -> T_CModule-sem_CModule (CModule_Mod _moduleNm _imports _declMetas _expr) =- (sem_CModule_Mod _moduleNm (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))+sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =+ (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( HsNameS,HsNameS) sem_CModule_Mod :: HsName ->+ T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule-sem_CModule_Mod moduleNm_ imports_ declMetas_ expr_ =+sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (expr_) of { ( _exprIintroducedNmS,_exprIusedNmS) -> (case (_exprIintroducedNmS) of
@@ -69,6 +69,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign@@ -114,13 +116,13 @@ T_AGItf sem_AGItf (AGItf_AGItf _expr) | (AGItf_AGItf _expr) `seq` (True) = (sem_AGItf_AGItf (sem_Expr _expr))-data Inh_AGItf = Inh_AGItf {chrStore_Inh_AGItf :: !(ScopedPredStore),clDfGam_Inh_AGItf :: !(ClassDefaultGam),clGam_Inh_AGItf :: !(ClGam),dataGam_Inh_AGItf :: !(DataGam),gUniq_Inh_AGItf :: !(UID),idQualGam_Inh_AGItf :: !(IdQualGam),isMainMod_Inh_AGItf :: !(Bool),kiGam_Inh_AGItf :: !(KiGam),moduleNm_Inh_AGItf :: !(HsName),opts_Inh_AGItf :: !(EHCOpts),polGam_Inh_AGItf :: !(PolGam),tyGam_Inh_AGItf :: !(TyGam),tyKiGam_Inh_AGItf :: !(TyKiGam),valGam_Inh_AGItf :: !(ValGam)}+data Inh_AGItf = Inh_AGItf {chrStore_Inh_AGItf :: !(ScopedPredStore),clDfGam_Inh_AGItf :: !(ClassDefaultGam),clGam_Inh_AGItf :: !(ClGam),dataGam_Inh_AGItf :: !(DataGam),gUniq_Inh_AGItf :: !(UID),idQualGam_Inh_AGItf :: !(IdQualGam),importUsedModules_Inh_AGItf :: !(ImportUsedModules),isMainMod_Inh_AGItf :: !(Bool),kiGam_Inh_AGItf :: !(KiGam),moduleImportExportImpl_Inh_AGItf :: !(ModuleImportExportImpl),moduleNm_Inh_AGItf :: !(HsName),opts_Inh_AGItf :: !(EHCOpts),polGam_Inh_AGItf :: !(PolGam),tyGam_Inh_AGItf :: !(TyGam),tyKiGam_Inh_AGItf :: !(TyKiGam),valGam_Inh_AGItf :: !(ValGam)} data Syn_AGItf = Syn_AGItf {allErrSq_Syn_AGItf :: !(ErrSq),cmodule_Syn_AGItf :: !(CModule),gUniq_Syn_AGItf :: !(UID),gathChrStore_Syn_AGItf :: !(ScopedPredStore),gathClDfGam_Syn_AGItf :: !(ClassDefaultGam),gathClGam_Syn_AGItf :: !(ClGam),gathDataGam_Syn_AGItf :: !(DataGam),gathHiddenExports_Syn_AGItf :: !((Seq.Seq (HsName,IdOccKind))),gathKiGam_Syn_AGItf :: !(KiGam),gathLamMp_Syn_AGItf :: !(LamMp),gathMentrelFilterMp_Syn_AGItf :: !(ModEntRelFilterMp),gathPolGam_Syn_AGItf :: !(PolGam),gathTyGam_Syn_AGItf :: !(TyGam),gathTyKiGam_Syn_AGItf :: !(TyKiGam),gathValGam_Syn_AGItf :: !(ValGam),mbOrphan_Syn_AGItf :: !((Maybe (Set.Set HsName))),pp_Syn_AGItf :: !(PP_Doc),topTyPP_Syn_AGItf :: !(PP_Doc)} wrap_AGItf :: T_AGItf -> Inh_AGItf -> Syn_AGItf-wrap_AGItf sem (Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIisMainMod _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) | sem `seq` ((Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIisMainMod _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) `seq` (True)) =- (let ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) | True = sem _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIisMainMod _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam+wrap_AGItf sem (Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) | sem `seq` ((Inh_AGItf _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam) `seq` (True)) =+ (let ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) | True = sem _lhsIchrStore _lhsIclDfGam _lhsIclGam _lhsIdataGam _lhsIgUniq _lhsIidQualGam _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam _lhsItyGam _lhsItyKiGam _lhsIvalGam in (Syn_AGItf _lhsOallErrSq _lhsOcmodule _lhsOgUniq _lhsOgathChrStore _lhsOgathClDfGam _lhsOgathClGam _lhsOgathDataGam _lhsOgathHiddenExports _lhsOgathKiGam _lhsOgathLamMp _lhsOgathMentrelFilterMp _lhsOgathPolGam _lhsOgathTyGam _lhsOgathTyKiGam _lhsOgathValGam _lhsOmbOrphan _lhsOpp _lhsOtopTyPP)) -- CaseAlt ----------------------------------------------------- -- cata
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign@@ -89,8 +91,10 @@ clGam : ClGam dataGam : DataGam idQualGam : IdQualGam+ importUsedModules : ImportUsedModules isMainMod : Bool kiGam : KiGam+ moduleImportExportImpl : ModuleImportExportImpl moduleNm : HsName opts : EHCOpts polGam : PolGam@@ -192,8 +196,10 @@ _lhsIdataGam _lhsIgUniq _lhsIidQualGam+ _lhsIimportUsedModules _lhsIisMainMod _lhsIkiGam+ _lhsImoduleImportExportImpl _lhsImoduleNm _lhsIopts _lhsIpolGam@@ -206,309 +212,314 @@ (_lhsIdataGam `seq` (_lhsIgUniq `seq` (_lhsIidQualGam `seq`- (_lhsIisMainMod `seq`- (_lhsIkiGam `seq`- (_lhsImoduleNm `seq`- (_lhsIopts `seq`- (_lhsIpolGam `seq`- (_lhsItyGam `seq`- (_lhsItyKiGam `seq`- (_lhsIvalGam `seq`- ((case (_lhsIvalGam) of- { _valGam | _valGam `seq` (True) ->- (case (_valGam) of- { _exprOvalGam | _exprOvalGam `seq` (True) ->- (case (_lhsItyKiGam) of- { _tyKiGam | _tyKiGam `seq` (True) ->- (case (_tyKiGam) of- { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->- (case (_lhsItyGam) of- { _tyGam | _tyGam `seq` (True) ->- (case (_tyGam) of- { _exprOtyGam | _exprOtyGam `seq` (True) ->- (case (_lhsIclGam) of- { _clGam | _clGam `seq` (True) ->- (case (emptyToSysfEnv- { sysfenvTyKiGam = _tyKiGam- , sysfenvClGam = _clGam- }) of- { _sysfEnv | _sysfEnv `seq` (True) ->- (case (_sysfEnv) of- { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->- (case (initPredScope) of- { _predScope | _predScope `seq` (True) ->- (case (_predScope) of- { _exprOpredScope | _exprOpredScope `seq` (True) ->- (case (0) of- { _predSameScopeCounter | _predSameScopeCounter `seq` (True) ->- (case (_predSameScopeCounter) of- { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->- (case (_lhsIpolGam) of- { _polGam | _polGam `seq` (True) ->- (case (_polGam) of- { _exprOpolGam | _exprOpolGam `seq` (True) ->- (case (-1) of- { _lexLev | _lexLev `seq` (True) ->- (case (_lexLev) of- { _exprOlexLev | _exprOlexLev `seq` (True) ->- (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_98_IO_tvar) -> case nextUnique __cont of { (__cont, lUniq_98_fitsIn_ty) -> case nextUnique __cont of { (__cont, lUniq_9_simplify) -> (__cont,lUniq,lUniq_98_IO_tvar,lUniq_98_fitsIn_ty,lUniq_9_simplify)}}}} )) of- { __tup8 | __tup8 `seq` (True) ->- (case (expr_) of- { ( _exprIrange,expr_1) | True ->- (case (__tup8) of- { (_exprOgUniq,_,_,_,_) | _exprOgUniq `seq` (True) ->- (case (_lhsIkiGam) of- { _kiGam | _kiGam `seq` (True) ->- (case (expr_1 _exprOgUniq) of- { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->- (case (_kiGam) of- { _exprOkiGam | _exprOkiGam `seq` (True) ->- (case (True) of- { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->- (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of- { ( _exprIpredSameScopeCounter,expr_3) | True ->- (case (_lhsIopts) of- { _exprOopts | _exprOopts `seq` (True) ->- (case (emptyVarMp) of- { _kiVarMp | _kiVarMp `seq` (True) ->- (case (_kiVarMp) of- { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->- (case (_clGam) of- { _exprOclGam | _exprOclGam `seq` (True) ->- (case (Set.empty) of- { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->- (case (emptyVarMp) of- { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->- (case (expr_3 _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of- { ( _exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->- (case (emptyGam) of- { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->- (case (_exprIkiVarMp) of- { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->- (case (Set.empty) of- { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->- (case (emptyGam) of- { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->- (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of- { ( _exprIgathDataGam,expr_5) | True ->- (case (_exprIgathDataGam `gamUnion` _lhsIdataGam) of- { _exprOdataGam | _exprOdataGam `seq` (True) ->- (case (expr_5 _exprOdataGam) of- { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->- (case (_exprIgathClDfGam `gamUnion` _lhsIclDfGam) of- { _clDfGam | _clDfGam `seq` (True) ->- (case (_clDfGam) of- { _exprOclDfGam | _exprOclDfGam `seq` (True) ->- (case (__tup8) of- { (_,_lUniq,_,_,_) | _lUniq `seq` (True) ->- (case (_exprIchrFIIn {fiUniq = _lUniq}) of- { _chrFIIn | _chrFIIn `seq` (True) ->- (case (partition (\(_,_,_,sc) -> sc == initPredScope) $ Seq.toList _exprIchrInstDeclSq) of- { __tup4 | __tup4 `seq` (True) ->- (case (__tup4) of- { (_instsOuter,_) | _instsOuter `seq` (True) ->- (case (_lhsIchrStore) of- { _initChrStore | _initChrStore `seq` (True) ->- (case (mkScopedCHR2 _chrFIIn (Seq.toList _exprIchrClassDeclSq) _instsOuter _initChrStore) of- { __tup5 | __tup5 `seq` (True) ->- (case (__tup5) of- { (_chrStoreOuterScope,_) | _chrStoreOuterScope `seq` (True) ->- (case (__tup4) of- { (_,_instsInner) | _instsInner `seq` (True) ->- (case (mkScopedCHR2 _chrFIIn [] _instsInner _chrStoreOuterScope) of- { __tup6 | __tup6 `seq` (True) ->- (case (__tup6) of- { (_chrStore,_) | _chrStore `seq` (True) ->- (case (_chrStore) of- { _exprOchrStore | _exprOchrStore `seq` (True) ->- (case (emptyVarMp) of- { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->- (case (Ty_Any) of- { _exprOknTy | _exprOknTy `seq` (True) ->- (case (strongFIOpts) of- { _exprOfiOpts | _exprOfiOpts `seq` (True) ->- (case (_exprIkiVarMp) of- { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->- (case (Set.empty) of- { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->- (case (Set.empty) of- { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->- (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of- { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->- (case (Map.unionsWith (++)- $ map (\(c,r) -> Map.singleton (_exprItyVarMp `varUpd` c) r)- $ Map.toList- $ _exprIgathRangeMp- `Map.union` cnstrMpToRangeMp _exprIgathCnstrMp) of- { _rangeMp | _rangeMp `seq` (True) ->- (case (_rangeMp) of- { _exprOrangeMp | _exprOrangeMp `seq` (True) ->- (case (_exprIgathValGam `gamUnion` _lhsIvalGam) of- { _finValGam | _finValGam `seq` (True) ->- (case (_finValGam) of- { _exprOfinValGam | _exprOfinValGam `seq` (True) ->- (case (__tup8) of- { (_,_,_,_,_lUniq_9_simplify) | _lUniq_9_simplify `seq` (True) ->- (case (_exprItyVarMp `varUpd` _exprIgathCnstrMp) of- { _toProveCnstrMp | _toProveCnstrMp `seq` (True) ->- (case (_toProveCnstrMp) of- { _toProveHereCnstrMp | _toProveHereCnstrMp `seq` (True) ->- (case (_chrFIIn {fiVarMp = _exprItyVarMp}) of- { _chrProveFIIn | _chrProveFIIn `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.simplify" $- simplify [SimplifyHow_Canonicalize] (_chrProveFIIn {fiUniq = _lUniq_9_simplify}) _chrStore _clDfGam (heurScopedEHC _chrProveFIIn) (\x -> (x,[])) Map.empty _toProveHereCnstrMp emptySimplifyResult) of- { __tup1 | __tup1 `seq` (True) ->- (case (__tup1) of- { (_,_,_,_chrSolveSimpTyVarMp,_,_,_,_,_,_) | _chrSolveSimpTyVarMp `seq` (True) ->- (case (_chrSolveSimpTyVarMp `varUpd`- _exprItyVarMp) of- { _finTyVarMp | _finTyVarMp `seq` (True) ->- (case (_finTyVarMp) of- { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->- (case (__tup8) of- { (_,_,_,_lUniq_98_fitsIn_ty,_) | _lUniq_98_fitsIn_ty `seq` (True) ->- (case (__tup8) of- { (_,_,_lUniq_98_IO_tvar,_,_) | _lUniq_98_IO_tvar `seq` (True) ->- (case (_lhsImoduleNm) of- { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->- (case (__tup1) of- { (_,_,_,_,_,_,_,_,_chrSolveMainScopeBindMp,_) | _chrSolveMainScopeBindMp `seq` (True) ->- (case (mkScopeBindings True _predScope _chrSolveMainScopeBindMp) of- { __tup3 | __tup3 `seq` (True) ->- (case (__tup3) of- { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->- (case (_chrScopeBindMp) of- { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->- (case (__tup1) of- { (_,_,_,_,_,_,_,_chrSolveMainEvidBindMp,_,_) | _chrSolveMainEvidBindMp `seq` (True) ->- (case (_chrSolveMainEvidBindMp) of- { _chrEvidBindMp | _chrEvidBindMp `seq` (True) ->- (case (_chrEvidBindMp) of- { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->- (case (emptyCSubst) of- { _cSubst | _cSubst `seq` (True) ->- (case (_cSubst) of- { _exprOcSubst | _exprOcSubst `seq` (True) ->- (case (ExprCtxt_Top) of- { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->- (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of- { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->- (case (defaultFIEnv- { feEHCOpts = _lhsIopts- , fePredScope = _predScope- , feTyGam = _exprIgathTyGam- , fePolGam = _exprIgathPolGam- , feRange = emptyRange- }) of- { _fe | _fe `seq` (True) ->- (case (if _lhsIisMainMod- then let (t,e) = valGamLookupTy hsnMain _exprIgathValGam- in (fitsIn strongFIOpts _fe _lUniq_98_fitsIn_ty _exprItyVarMp t (tyTopLevelMain _lhsIopts _lUniq_98_IO_tvar), e)- else (emptyFO,[])) of- { __tup7 | __tup7 `seq` (True) ->- (case (__tup7) of- { (_,_nmErrs) | _nmErrs `seq` (True) ->- (case (__tup7) of- { (_foMain,_) | _foMain `seq` (True) ->- (case (__tup1) of- { (_,_chrSolveMainRemCnstrMp,_,_,_,_,_,_,_,_) | _chrSolveMainRemCnstrMp `seq` (True) ->- (case (_chrSolveMainRemCnstrMp) of- { _cannotProveCnstrMp | _cannotProveCnstrMp `seq` (True) ->- (case (mkPrvErr _rangeMp emptyRange _cannotProveCnstrMp) of- { _predNotPrfErrs | _predNotPrfErrs `seq` (True) ->- (case (__tup1) of- { (_,_,_,_,_chrSolveMainErrs,_,_,_,_,_) | _chrSolveMainErrs `seq` (True) ->- (case (Seq.unions [ Seq.fromList _predNotPrfErrs- , Seq.fromList _chrSolveMainErrs- , Seq.fromList _nmErrs- , foErrSq _foMain- ]) of- { _lErrSq | _lErrSq `seq` (True) ->- (case (Seq.unions [_lErrSq, _exprIallErrSq]) of- { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->- (case (__tup3) of- { (_chrScopeMainBindL,_) | _chrScopeMainBindL `seq` (True) ->- (case ([(CBindCateg_Rec,_chrScopeMainBindL)]) of- { _extraCBindL | _extraCBindL `seq` (True) ->- (case (let ds = [ b | (_,g) <- _exprIletValCBindL, b <- g, cbindNm b == hsnMain ]- in not (null ds)) of- { _mainDefExists | _mainDefExists `seq` (True) ->- (case (not _mainDefExists && _lhsIisMainMod) of- { _insertMainDef | _insertMainDef `seq` (True) ->- (case (case acoreExprMbVar _exprIletCBody of- Just n | n == hsnMain -> True- _ -> False) of- { _mainUseExists | _mainUseExists `seq` (True) ->- (case (not _mainUseExists && _lhsIisMainMod) of- { _insertMainUse | _insertMainUse `seq` (True) ->- (case (let b = if _insertMainUse then acoreVar hsnMain else _exprIletCBody- d = if _insertMainDef then acoreLet CBindCateg_Plain [acoreBind1Ty hsnMain (acoreTyErr $ "EH.ToCore.AGItf.main") _exprIletCBody] else id- in CModule_Mod _lhsImoduleNm- []- [ CDeclMeta_Data tn- [ CDataCon_Con cn (ctagTag ctag) (ctagArity ctag)- | (cn,dti) <- Map.toList $ dgiConstrTagMp dgi- , let ctag = dtiCTag dti- ]- | (tn,dgi) <- gamToAssocL _exprIgathDataGam- , not (dgiIsNewtype dgi)- ]- (- cSubstAppExpr True _exprIcSubst- (foldr (\(c,b) e -> acoreLet c b e)- (d b)- (_exprIletTyCBindL ++ _extraCBindL ++ _exprIfrontCBindL ++ _exprIletValCBindL- ++ _exprIbackCBindL+ (_lhsIimportUsedModules `seq`+ (_lhsIisMainMod `seq`+ (_lhsIkiGam `seq`+ (_lhsImoduleImportExportImpl `seq`+ (_lhsImoduleNm `seq`+ (_lhsIopts `seq`+ (_lhsIpolGam `seq`+ (_lhsItyGam `seq`+ (_lhsItyKiGam `seq`+ (_lhsIvalGam `seq`+ ((case (_lhsIvalGam) of+ { _valGam | _valGam `seq` (True) ->+ (case (_valGam) of+ { _exprOvalGam | _exprOvalGam `seq` (True) ->+ (case (_lhsItyKiGam) of+ { _tyKiGam | _tyKiGam `seq` (True) ->+ (case (_tyKiGam) of+ { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->+ (case (_lhsItyGam) of+ { _tyGam | _tyGam `seq` (True) ->+ (case (_tyGam) of+ { _exprOtyGam | _exprOtyGam `seq` (True) ->+ (case (_lhsIclGam) of+ { _clGam | _clGam `seq` (True) ->+ (case (emptyToSysfEnv+ { sysfenvTyKiGam = _tyKiGam+ , sysfenvClGam = _clGam+ }) of+ { _sysfEnv | _sysfEnv `seq` (True) ->+ (case (_sysfEnv) of+ { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->+ (case (initPredScope) of+ { _predScope | _predScope `seq` (True) ->+ (case (_predScope) of+ { _exprOpredScope | _exprOpredScope `seq` (True) ->+ (case (0) of+ { _predSameScopeCounter | _predSameScopeCounter `seq` (True) ->+ (case (_predSameScopeCounter) of+ { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->+ (case (_lhsIpolGam) of+ { _polGam | _polGam `seq` (True) ->+ (case (_polGam) of+ { _exprOpolGam | _exprOpolGam `seq` (True) ->+ (case (-1) of+ { _lexLev | _lexLev `seq` (True) ->+ (case (_lexLev) of+ { _exprOlexLev | _exprOlexLev `seq` (True) ->+ (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_98_IO_tvar) -> case nextUnique __cont of { (__cont, lUniq_98_fitsIn_ty) -> case nextUnique __cont of { (__cont, lUniq_9_simplify) -> (__cont,lUniq,lUniq_98_IO_tvar,lUniq_98_fitsIn_ty,lUniq_9_simplify)}}}} )) of+ { __tup8 | __tup8 `seq` (True) ->+ (case (expr_) of+ { ( _exprIrange,expr_1) | True ->+ (case (__tup8) of+ { (_exprOgUniq,_,_,_,_) | _exprOgUniq `seq` (True) ->+ (case (_lhsIkiGam) of+ { _kiGam | _kiGam `seq` (True) ->+ (case (expr_1 _exprOgUniq) of+ { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->+ (case (_kiGam) of+ { _exprOkiGam | _exprOkiGam `seq` (True) ->+ (case (True) of+ { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->+ (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of+ { ( _exprIpredSameScopeCounter,expr_3) | True ->+ (case (_lhsIopts) of+ { _exprOopts | _exprOopts `seq` (True) ->+ (case (emptyVarMp) of+ { _kiVarMp | _kiVarMp `seq` (True) ->+ (case (_kiVarMp) of+ { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->+ (case (_clGam) of+ { _exprOclGam | _exprOclGam `seq` (True) ->+ (case (Set.empty) of+ { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->+ (case (emptyVarMp) of+ { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->+ (case (expr_3 _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of+ { ( _exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->+ (case (emptyGam) of+ { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->+ (case (_exprIkiVarMp) of+ { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->+ (case (Set.empty) of+ { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->+ (case (emptyGam) of+ { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->+ (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of+ { ( _exprIgathDataGam,expr_5) | True ->+ (case (_exprIgathDataGam `gamUnion` _lhsIdataGam) of+ { _exprOdataGam | _exprOdataGam `seq` (True) ->+ (case (expr_5 _exprOdataGam) of+ { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->+ (case (_exprIgathClDfGam `gamUnion` _lhsIclDfGam) of+ { _clDfGam | _clDfGam `seq` (True) ->+ (case (_clDfGam) of+ { _exprOclDfGam | _exprOclDfGam `seq` (True) ->+ (case (__tup8) of+ { (_,_lUniq,_,_,_) | _lUniq `seq` (True) ->+ (case (_exprIchrFIIn {fiUniq = _lUniq}) of+ { _chrFIIn | _chrFIIn `seq` (True) ->+ (case (partition (\(_,_,_,sc) -> sc == initPredScope) $ Seq.toList _exprIchrInstDeclSq) of+ { __tup4 | __tup4 `seq` (True) ->+ (case (__tup4) of+ { (_instsOuter,_) | _instsOuter `seq` (True) ->+ (case (_lhsIchrStore) of+ { _initChrStore | _initChrStore `seq` (True) ->+ (case (mkScopedCHR2 _chrFIIn (Seq.toList _exprIchrClassDeclSq) _instsOuter _initChrStore) of+ { __tup5 | __tup5 `seq` (True) ->+ (case (__tup5) of+ { (_chrStoreOuterScope,_) | _chrStoreOuterScope `seq` (True) ->+ (case (__tup4) of+ { (_,_instsInner) | _instsInner `seq` (True) ->+ (case (mkScopedCHR2 _chrFIIn [] _instsInner _chrStoreOuterScope) of+ { __tup6 | __tup6 `seq` (True) ->+ (case (__tup6) of+ { (_chrStore,_) | _chrStore `seq` (True) ->+ (case (_chrStore) of+ { _exprOchrStore | _exprOchrStore `seq` (True) ->+ (case (emptyVarMp) of+ { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->+ (case (Ty_Any) of+ { _exprOknTy | _exprOknTy `seq` (True) ->+ (case (strongFIOpts) of+ { _exprOfiOpts | _exprOfiOpts `seq` (True) ->+ (case (_exprIkiVarMp) of+ { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->+ (case (Set.empty) of+ { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->+ (case (Set.empty) of+ { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->+ (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of+ { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->+ (case (Map.unionsWith (++)+ $ map (\(c,r) -> Map.singleton (_exprItyVarMp `varUpd` c) r)+ $ Map.toList+ $ _exprIgathRangeMp+ `Map.union` cnstrMpToRangeMp _exprIgathCnstrMp) of+ { _rangeMp | _rangeMp `seq` (True) ->+ (case (_rangeMp) of+ { _exprOrangeMp | _exprOrangeMp `seq` (True) ->+ (case (_exprIgathValGam `gamUnion` _lhsIvalGam) of+ { _finValGam | _finValGam `seq` (True) ->+ (case (_finValGam) of+ { _exprOfinValGam | _exprOfinValGam `seq` (True) ->+ (case (__tup8) of+ { (_,_,_,_,_lUniq_9_simplify) | _lUniq_9_simplify `seq` (True) ->+ (case (_exprItyVarMp `varUpd` _exprIgathCnstrMp) of+ { _toProveCnstrMp | _toProveCnstrMp `seq` (True) ->+ (case (_toProveCnstrMp) of+ { _toProveHereCnstrMp | _toProveHereCnstrMp `seq` (True) ->+ (case (_chrFIIn {fiVarMp = _exprItyVarMp}) of+ { _chrProveFIIn | _chrProveFIIn `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.simplify" $+ simplify [SimplifyHow_Canonicalize] (_chrProveFIIn {fiUniq = _lUniq_9_simplify}) _chrStore _clDfGam (heurScopedEHC _chrProveFIIn) (\x -> (x,[])) Map.empty _toProveHereCnstrMp emptySimplifyResult) of+ { __tup1 | __tup1 `seq` (True) ->+ (case (__tup1) of+ { (_,_,_,_chrSolveSimpTyVarMp,_,_,_,_,_,_) | _chrSolveSimpTyVarMp `seq` (True) ->+ (case (_chrSolveSimpTyVarMp `varUpd`+ _exprItyVarMp) of+ { _finTyVarMp | _finTyVarMp `seq` (True) ->+ (case (_finTyVarMp) of+ { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->+ (case (__tup8) of+ { (_,_,_,_lUniq_98_fitsIn_ty,_) | _lUniq_98_fitsIn_ty `seq` (True) ->+ (case (__tup8) of+ { (_,_,_lUniq_98_IO_tvar,_,_) | _lUniq_98_IO_tvar `seq` (True) ->+ (case (_lhsImoduleNm) of+ { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->+ (case (__tup1) of+ { (_,_,_,_,_,_,_,_,_chrSolveMainScopeBindMp,_) | _chrSolveMainScopeBindMp `seq` (True) ->+ (case (mkScopeBindings True _predScope _chrSolveMainScopeBindMp) of+ { __tup3 | __tup3 `seq` (True) ->+ (case (__tup3) of+ { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->+ (case (_chrScopeBindMp) of+ { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->+ (case (__tup1) of+ { (_,_,_,_,_,_,_,_chrSolveMainEvidBindMp,_,_) | _chrSolveMainEvidBindMp `seq` (True) ->+ (case (_chrSolveMainEvidBindMp) of+ { _chrEvidBindMp | _chrEvidBindMp `seq` (True) ->+ (case (_chrEvidBindMp) of+ { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->+ (case (emptyCSubst) of+ { _cSubst | _cSubst `seq` (True) ->+ (case (_cSubst) of+ { _exprOcSubst | _exprOcSubst `seq` (True) ->+ (case (ExprCtxt_Top) of+ { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->+ (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv) of+ { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIorphanS,_exprIpp) | True ->+ (case (defaultFIEnv+ { feEHCOpts = _lhsIopts+ , fePredScope = _predScope+ , feTyGam = _exprIgathTyGam+ , fePolGam = _exprIgathPolGam+ , feRange = emptyRange+ }) of+ { _fe | _fe `seq` (True) ->+ (case (if _lhsIisMainMod+ then let (t,e) = valGamLookupTy hsnMain _exprIgathValGam+ in (fitsIn strongFIOpts _fe _lUniq_98_fitsIn_ty _exprItyVarMp t (tyTopLevelMain _lhsIopts _lUniq_98_IO_tvar), e)+ else (emptyFO,[])) of+ { __tup7 | __tup7 `seq` (True) ->+ (case (__tup7) of+ { (_,_nmErrs) | _nmErrs `seq` (True) ->+ (case (__tup7) of+ { (_foMain,_) | _foMain `seq` (True) ->+ (case (__tup1) of+ { (_,_chrSolveMainRemCnstrMp,_,_,_,_,_,_,_,_) | _chrSolveMainRemCnstrMp `seq` (True) ->+ (case (_chrSolveMainRemCnstrMp) of+ { _cannotProveCnstrMp | _cannotProveCnstrMp `seq` (True) ->+ (case (mkPrvErr _rangeMp emptyRange _cannotProveCnstrMp) of+ { _predNotPrfErrs | _predNotPrfErrs `seq` (True) ->+ (case (__tup1) of+ { (_,_,_,_,_chrSolveMainErrs,_,_,_,_,_) | _chrSolveMainErrs `seq` (True) ->+ (case (Seq.unions [ Seq.fromList _predNotPrfErrs+ , Seq.fromList _chrSolveMainErrs+ , Seq.fromList _nmErrs+ , foErrSq _foMain+ ]) of+ { _lErrSq | _lErrSq `seq` (True) ->+ (case (Seq.unions [_lErrSq, _exprIallErrSq]) of+ { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->+ (case (__tup3) of+ { (_chrScopeMainBindL,_) | _chrScopeMainBindL `seq` (True) ->+ (case ([(CBindCateg_Rec,_chrScopeMainBindL)]) of+ { _extraCBindL | _extraCBindL `seq` (True) ->+ (case (let ds = [ b | (_,g) <- _exprIletValCBindL, b <- g, cbindNm b == hsnMain ]+ in not (null ds)) of+ { _mainDefExists | _mainDefExists `seq` (True) ->+ (case (not _mainDefExists+ && _lhsIisMainMod) of+ { _insertMainDef | _insertMainDef `seq` (True) ->+ (case (case acoreExprMbVar _exprIletCBody of+ Just n | n == hsnMain -> True+ _ -> False) of+ { _mainUseExists | _mainUseExists `seq` (True) ->+ (case (not _mainUseExists+ && _lhsIisMainMod) of+ { _insertMainUse | _insertMainUse `seq` (True) ->+ (case (let b = if _insertMainUse then acoreVar hsnMain else _exprIletCBody+ d = if _insertMainDef then acoreLet CBindCateg_Plain [acoreBind1Ty hsnMain (acoreTyErr $ "EH.ToCore.AGItf.main") _exprIletCBody] else id+ in CModule_Mod _lhsImoduleNm+ (map CExport_Export $ Map.keys $ mieimplHsName2FldMp _lhsImoduleImportExportImpl)+ (map CImport_Import $ Set.toList $ iumHSDeclModules _lhsIimportUsedModules)+ [ CDeclMeta_Data tn+ [ CDataCon_Con cn (ctagTag ctag) (ctagArity ctag)+ | (cn,dti) <- Map.toList $ dgiConstrTagMp dgi+ , let ctag = dtiCTag dti+ ]+ | (tn,dgi) <- gamToAssocL _exprIgathDataGam+ , not (dgiIsNewtype dgi)+ ]+ (+ cSubstAppExpr True _exprIcSubst+ (foldr (\(c,b) e -> acoreLet c b e)+ (d b)+ (_exprIletTyCBindL ++ _extraCBindL ++ _exprIfrontCBindL ++ _exprIletValCBindL+ ++ _exprIbackCBindL+ ) )- )- Nothing- )) of- { _lhsOcmodule | _lhsOcmodule `seq` (True) ->- (case (_exprIgUniq) of- { _lhsOgUniq | _lhsOgUniq `seq` (True) ->- (case (__tup5) of- { (_,_gathChrStore) | _gathChrStore `seq` (True) ->- (case (_gathChrStore) of- { _lhsOgathChrStore | _lhsOgathChrStore `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClDfGam" _exprIgathClDfGam) of- { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClGam" _exprIgathClGam) of- { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->- (case (_exprIgathDataGam) of- { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->- (case (_exprIgathHiddenExports) of- { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathKiGam" _exprIgathKiGam) of- { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->- (case (_exprIgathLamMp) of- { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->- (case (__tup1) of- { (_,_,_,_,_,_chrSimplifyResult,_,_,_,_) | _chrSimplifyResult `seq` (True) ->- (case (mentrelFilterMpUnions- [ _exprIgathMentrelFilterMp- , gathMentrelFilterMpFromSimplifyResult _lhsImoduleNm _chrSimplifyResult- ]) of- { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->- (case (_gathMentrelFilterMp) of- { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathPolGam" _exprIgathPolGam) of- { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyGam" _exprIgathTyGam) of- { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyKiGam" _exprIgathTyKiGam) of- { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->- (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathValGam" $ _finTyVarMp `varUpd` _exprIgathValGam) of- { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->- (case (if Set.null _exprIorphanS then Nothing else Just _exprIorphanS) of- { _lhsOmbOrphan | _lhsOmbOrphan `seq` (True) ->- (case (ppErrsSq _lErrSq) of- { _errTopPP | _errTopPP `seq` (True) ->- (case (empty) of- { _extraPP | _extraPP `seq` (True) ->- (case (_extraPP >-< _exprIpp- >-< _errTopPP) of- { _lhsOpp | _lhsOpp `seq` (True) ->- (case (ppTy (tyQuantifyClosed _exprIty)) of- { _lhsOtopTyPP | _lhsOtopTyPP `seq` (True) ->- ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))))))+ Nothing+ )) of+ { _lhsOcmodule | _lhsOcmodule `seq` (True) ->+ (case (_exprIgUniq) of+ { _lhsOgUniq | _lhsOgUniq `seq` (True) ->+ (case (__tup5) of+ { (_,_gathChrStore) | _gathChrStore `seq` (True) ->+ (case (_gathChrStore) of+ { _lhsOgathChrStore | _lhsOgathChrStore `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClDfGam" _exprIgathClDfGam) of+ { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathClGam" _exprIgathClGam) of+ { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->+ (case (_exprIgathDataGam) of+ { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->+ (case (_exprIgathHiddenExports) of+ { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathKiGam" _exprIgathKiGam) of+ { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->+ (case (_exprIgathLamMp) of+ { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->+ (case (__tup1) of+ { (_,_,_,_,_,_chrSimplifyResult,_,_,_,_) | _chrSimplifyResult `seq` (True) ->+ (case (mentrelFilterMpUnions+ [ _exprIgathMentrelFilterMp+ , gathMentrelFilterMpFromSimplifyResult _lhsImoduleNm _chrSimplifyResult+ ]) of+ { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->+ (case (_gathMentrelFilterMp) of+ { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathPolGam" _exprIgathPolGam) of+ { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyGam" _exprIgathTyGam) of+ { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathTyKiGam" _exprIgathTyKiGam) of+ { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->+ (case (ehcOptTrace _lhsIopts "AGItf.lhs.gathValGam" $ _finTyVarMp `varUpd` _exprIgathValGam) of+ { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->+ (case (if Set.null _exprIorphanS then Nothing else Just _exprIorphanS) of+ { _lhsOmbOrphan | _lhsOmbOrphan `seq` (True) ->+ (case (ppErrsSq _lErrSq) of+ { _errTopPP | _errTopPP `seq` (True) ->+ (case (empty) of+ { _extraPP | _extraPP `seq` (True) ->+ (case (_extraPP >-< _exprIpp+ >-< _errTopPP) of+ { _lhsOpp | _lhsOpp `seq` (True) ->+ (case (ppTy (tyQuantifyClosed _exprIty)) of+ { _lhsOtopTyPP | _lhsOtopTyPP `seq` (True) ->+ ( _lhsOallErrSq,_lhsOcmodule,_lhsOgUniq,_lhsOgathChrStore,_lhsOgathClDfGam,_lhsOgathClGam,_lhsOgathDataGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOgathValGam,_lhsOmbOrphan,_lhsOpp,_lhsOtopTyPP) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))))))))
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
file too large to diff
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
file too large to diff
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -70,6 +70,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign
@@ -69,6 +69,8 @@ import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull) import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Ty.UsedNames+import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.CodeGen.BuiltinPrims import UHC.Light.Compiler.Foreign import UHC.Light.Compiler.Foreign@@ -1281,6 +1283,8 @@ ++ data ExprCtxt = ExprCtxt_Top | ExprCtxt_Lam | ExprCtxt_Internal deriving Eq@@ -1294,8 +1298,10 @@ DataGam -> UID -> IdQualGam ->+ ImportUsedModules -> Bool -> KiGam ->+ ModuleImportExportImpl -> HsName -> EHCOpts -> PolGam ->
@@ -0,0 +1,47 @@+module UHC.Light.Compiler.EHC.CompilePhase.Common+( cpGenModuleImportExportImpl )+where+import qualified Data.Map as Map+import qualified Data.Set as Set+import qualified UHC.Util.FastSeq as Seq+import Control.Monad.State+import UHC.Light.Compiler.EHC.Common+import UHC.Light.Compiler.Base.Optimize+import UHC.Light.Compiler.CodeGen.RefGenerator+import UHC.Light.Compiler.EHC.CompileRun+import UHC.Light.Compiler.EHC.CompilePhase.Module+import UHC.Light.Compiler.EHC.CompileUnit+import qualified UHC.Light.Compiler.Core.ToGrin as Core2GrSem+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl++{-# LINE 43 "src/ehc/EHC/CompilePhase/Common.chs" #-}+-- | Compute impl info for module codegen+cpGenModuleImportExportImpl :: HsName -> EHCompilePhase ModuleImportExportImpl+cpGenModuleImportExportImpl modNm+ = do { cr <- get+ ; cpMsg modNm VerboseDebug "cpGenModuleImportExportImpl"+ ; impNmL <- cpGenImpNmInfo modNm+ ; let (ecu,crsi,opts,fp) = crBaseInfo modNm cr+ isWholeProg = ehcOptOptimizationScope opts > OptimizationScope_PerModule+ expNmFldMp | ecuIsMainMod ecu = Map.empty+ | otherwise = crsiExpNmOffMp modNm crsi+ modOffMp | isWholeProg = Map.filterWithKey (\n _ -> n == modNm) $ crsiModOffMp crsi+ | otherwise = crsiModOffMp crsi+ -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl " ++ show impNmL+ -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl ecuHSDeclImpNmS " ++ show (ecuHSDeclImpNmS ecu)+ -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl ecuHIDeclImpNmS " ++ show (ecuHIDeclImpNmS ecu)+ -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl ecuHIUsedImpNmS " ++ show (ecuHIUsedImpNmS ecu)+ -- ; lift $ putStrLn $ "cpGenModuleImportExportImpl modOffMp " ++ show modOffMp+ -- ecuHSDeclImpNmS ecu, ecuHIDeclImpNmS ecu, ecuHIUsedImpNmS ecu+ ; return $ emptyModuleImportExportImpl+ { mieimplLamMp = Core2GrSem.lamMp_Inh_CodeAGItf $ crsiCoreInh crsi+ , mieimplUsedModNmL = if ecuIsMainMod ecu then [ m | (m,_) <- sortOn snd $ Map.toList $ Map.map fst modOffMp ] else []+ , mieimplHsName2FldMpMp = Map.fromList+ [ (n,(o,mp))+ | (n,o) <- refGen 0 1 impNmL+ , let (_,mp) = panicJust ("cpGenGrinGenInfo: " ++ show n) (Map.lookup n (crsiModOffMp crsi))+ ]+ , mieimplHsName2FldMp = expNmFldMp+ }+ }+
@@ -263,7 +263,7 @@ ) } -{-# LINE 373 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-}+{-# LINE 371 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-} cpFlowHILamMp :: HsName -> EHCompilePhase () cpFlowHILamMp modNm = do { cr <- get@@ -275,7 +275,7 @@ ; cpUpdSI (\crsi -> crsi {crsiCoreInh = coreInh {Core2GrSem.lamMp_Inh_CodeAGItf = HI.hiiLamMp hii `lamMpUnionBindAspMp` Core2GrSem.lamMp_Inh_CodeAGItf coreInh}}) } -{-# LINE 386 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-}+{-# LINE 384 "src/ehc/EHC/CompilePhase/FlowBetweenPhase.chs" #-} cpFlowOptim :: HsName -> EHCompilePhase () cpFlowOptim modNm = do { cr <- get
@@ -1,6 +1,8 @@ module UHC.Light.Compiler.EHC.CompilePhase.Module-( cpCheckMods'-, cpCheckMods+( cpCheckModsModWith+, cpCheckModsWithOrWithoutBuiltin+, cpCheckModsWithBuiltin+, cpCheckModsWithoutBuiltin , GetMeta (..), allGetMeta , cpGetCoreModnameAndImports , cpGetHsModnameAndImports, cpGetHsMod, cpGetMetaInfo@@ -31,26 +33,39 @@ {-# LINE 53 "src/ehc/EHC/CompilePhase/Module.chs" #-}-cpCheckMods' :: (HsName -> ModMpInfo) -> [Mod] -> EHCompilePhase ()-cpCheckMods' dfltMod modL@(Mod {modName = modNm} : _)+-- | Check module dependencies for given 'Mod'+cpCheckModsModWith :: (HsName -> ModMpInfo) -> [Mod] -> EHCompilePhase ()+cpCheckModsModWith dfltMod modL@(Mod {modName = modNm} : _) = do { cr <- get- -- ; cpMsg modNm VerboseDebug $ "cpCheckMods' modL: " ++ show modL+ ; cpMsg modNm VerboseDebug $ "cpCheckModsModWith modL: " ++ show modL ; let crsi = crStateInfo cr (mm,e) = modMpCombine' dfltMod modL (crsiModMp crsi) ; cpUpdSI (\crsi -> crsi {crsiModMp = mm}) ; cpSetLimitErrsWhen 5 "Module analysis" e } -{-# LINE 72 "src/ehc/EHC/CompilePhase/Module.chs" #-}-cpCheckMods :: [HsName] -> EHCompilePhase ()-cpCheckMods modNmL+{-# LINE 73 "src/ehc/EHC/CompilePhase/Module.chs" #-}+cpCheckModsWithOrWithoutBuiltin :: Bool -> [HsName] -> EHCompilePhase ()+cpCheckModsWithOrWithoutBuiltin bltin modNmL@(modNm:_) = do { cr <- get+ ; cpMsg modNm VerboseDebug $ "cpCheckModsWithOrWithoutBuiltin modNmL: " ++ show modNmL ; let modL = [ addBuiltin $ ecuMod $ crCU n cr | n <- modNmL ]- ; cpCheckMods' (\n -> panic $ "cpCheckMods: " ++ show n) modL+ ; cpCheckModsModWith (\n -> panic $ "cpCheckModsWithOrWithoutBuiltin: " ++ show n) modL }- where addBuiltin m = m { modImpL = modImpBuiltin : modImpL m }+ where addBuiltin | bltin = \m -> m { modImpL = modImpBuiltin : modImpL m }+ | otherwise = id -{-# LINE 86 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 85 "src/ehc/EHC/CompilePhase/Module.chs" #-}+cpCheckModsWithBuiltin :: [HsName] -> EHCompilePhase ()+cpCheckModsWithBuiltin = cpCheckModsWithOrWithoutBuiltin True+{-# INLINE cpCheckModsWithBuiltin #-}++{-# LINE 91 "src/ehc/EHC/CompilePhase/Module.chs" #-}+cpCheckModsWithoutBuiltin :: [HsName] -> EHCompilePhase ()+cpCheckModsWithoutBuiltin = cpCheckModsWithOrWithoutBuiltin False+{-# INLINE cpCheckModsWithoutBuiltin #-}++{-# LINE 101 "src/ehc/EHC/CompilePhase/Module.chs" #-} data GetMeta = GetMeta_Src | GetMeta_HI@@ -64,7 +79,7 @@ ] -{-# LINE 107 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 122 "src/ehc/EHC/CompilePhase/Module.chs" #-} cpGetCoreModnameAndImports :: HsName -> EHCompilePhase HsName cpGetCoreModnameAndImports modNm = do { cr <- get@@ -72,6 +87,7 @@ mbCrSemMod = ecuMbCoreSemMod ecu crSemMod = panicJust "cpGetCoreModnameAndImports" mbCrSemMod modNm' = Core2ChkSem.realModuleNm_Syn_CodeAGItf crSemMod+ ; cpMsg modNm VerboseDebug $ "cpGetCoreModnameAndImports: " ++ show modNm ++ " -> " ++ show modNm' ; case mbCrSemMod of {- Just _ | ecuIsTopMod ecu -> cpUpdCUWithKey modNm (\_ ecu -> (modNm', upd $ cuUpdKey modNm' ecu))@@ -85,7 +101,7 @@ _ -> return modNm } -{-# LINE 129 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 145 "src/ehc/EHC/CompilePhase/Module.chs" #-} cpGetHsModnameAndImports :: HsName -> EHCompilePhase HsName cpGetHsModnameAndImports modNm = do { cr <- get@@ -158,7 +174,7 @@ ; cpUpdCU modNm $ store (writable pm) } -{-# LINE 225 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 241 "src/ehc/EHC/CompilePhase/Module.chs" #-} cpGetDummyCheckSrcMod :: HsName -> EHCompilePhase () cpGetDummyCheckSrcMod modNm = do { cr <- get@@ -169,10 +185,11 @@ ; cpUpdSI (\crsi -> crsi {crsiModMp = Map.insert modNm emptyModMpInfo mm}) } -{-# LINE 241 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 257 "src/ehc/EHC/CompilePhase/Module.chs" #-} cpUpdateModOffMp :: [HsName] -> EHCompilePhase ()-cpUpdateModOffMp modNmL+cpUpdateModOffMp modNmL@(modNm:_) = do { cr <- get+ ; cpMsg modNm VerboseDebug "cpUpdateModOffMp" ; let crsi = crStateInfo cr offMp = crsiModOffMp crsi (offMp',_)@@ -186,7 +203,7 @@ ; cpUpdSI (\crsi -> crsi {crsiModOffMp = offMp'}) } -{-# LINE 263 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 280 "src/ehc/EHC/CompilePhase/Module.chs" #-} -- | Compute imported module names cpGenImpNmInfo :: HsName -> EHCompilePhase [HsName] cpGenImpNmInfo modNm@@ -198,7 +215,7 @@ ; return impNmL } -{-# LINE 280 "src/ehc/EHC/CompilePhase/Module.chs" #-}+{-# LINE 297 "src/ehc/EHC/CompilePhase/Module.chs" #-} cpUpdHiddenExports :: HsName -> [(HsName,IdOccKind)] -> EHCompilePhase () cpUpdHiddenExports modNm exps = when (not $ null exps)
@@ -196,6 +196,7 @@ cpGetPrevHI :: HsName -> EHCompilePhase () cpGetPrevHI modNm = do { cr <- get+ ; cpMsg modNm VerboseDebug "cpGetPrevHI" ; let ecu = crCU modNm cr -- ; when (isJust (ecuMbHITime ecu)) -- (cpParseHI modNm)@@ -203,10 +204,11 @@ (cpDecodeHIInfo modNm) } -{-# LINE 333 "src/ehc/EHC/CompilePhase/Parsers.chs" #-}+{-# LINE 334 "src/ehc/EHC/CompilePhase/Parsers.chs" #-} cpGetPrevCore :: HsName -> EHCompilePhase () cpGetPrevCore modNm = do { cr <- get+ ; cpMsg modNm VerboseDebug "cpGetPrevCore" ; let ecu = crCU modNm cr ; when (isJust (ecuMbCoreTime ecu) && isNothing (ecuMbCore ecu)) (cpDecodeCore (Just Cfg.suffixDotlessBinaryCore) modNm)
@@ -16,6 +16,7 @@ import qualified UHC.Light.Compiler.Core as Core import qualified UHC.Light.Compiler.Core.ToGrin as Core2GrSem import qualified Data.Set as Set+import UHC.Light.Compiler.EHC.CompilePhase.Common import qualified UHC.Light.Compiler.Core.Check as Core2ChkSem import qualified UHC.Light.Compiler.HI as HI import qualified UHC.Util.Rel as Rel@@ -30,7 +31,9 @@ -{-# LINE 61 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}+++{-# LINE 63 "src/ehc/EHC/CompilePhase/Semantics.chs" #-} cpFoldCore2Grin :: HsName -> EHCompilePhase () cpFoldCore2Grin modNm = do { cr <- get@@ -49,7 +52,7 @@ )) } -{-# LINE 83 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}+{-# LINE 85 "src/ehc/EHC/CompilePhase/Semantics.chs" #-} cpFoldCoreMod :: HsName -> EHCompilePhase () cpFoldCoreMod modNm = do { cr <- get@@ -58,35 +61,41 @@ core = panicJust "cpFoldCoreMod" mbCore inh = Core2ChkSem.Inh_CodeAGItf { Core2ChkSem.opts_Inh_CodeAGItf = opts+ , Core2ChkSem.moduleNm_Inh_CodeAGItf = modNm , Core2ChkSem.dataGam_Inh_CodeAGItf = EHSem.dataGam_Inh_AGItf $ crsiEHInh crsi } coreSem = Core2ChkSem.cmodCheck' inh core hasMain = Core2ChkSem.hasMain_Syn_CodeAGItf coreSem+ mod = Core2ChkSem.mod_Syn_CodeAGItf coreSem -- ; lift $ putStrLn $ "cpFoldCoreMod " ++ show hasMain ; when (isJust mbCore) (cpUpdCU modNm ( ecuStoreCoreSemMod coreSem . ecuSetHasMain hasMain+ . ecuStoreMod mod )) } -{-# LINE 104 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}+{-# LINE 109 "src/ehc/EHC/CompilePhase/Semantics.chs" #-} cpFoldEH :: HsName -> EHCompilePhase () cpFoldEH modNm = do { cr <- get+ ; mieimpl <- cpGenModuleImportExportImpl modNm ; let (ecu,crsi,opts,_) = crBaseInfo modNm cr mbEH = ecuMbEH ecu ehSem = EHSem.wrap_AGItf (EHSem.sem_AGItf $ panicJust "cpFoldEH" mbEH) ((crsiEHInh crsi)- { EHSem.moduleNm_Inh_AGItf = ecuModNm ecu- , EHSem.gUniq_Inh_AGItf = crsiHereUID crsi- , EHSem.opts_Inh_AGItf = opts- , EHSem.isMainMod_Inh_AGItf = ecuIsMainMod ecu+ { EHSem.moduleNm_Inh_AGItf = ecuModNm ecu+ , EHSem.gUniq_Inh_AGItf = crsiHereUID crsi+ , EHSem.opts_Inh_AGItf = opts+ , EHSem.importUsedModules_Inh_AGItf = ecuImportUsedModules ecu+ , EHSem.moduleImportExportImpl_Inh_AGItf = mieimpl+ , EHSem.isMainMod_Inh_AGItf = ecuIsMainMod ecu }) ; when (isJust mbEH) (cpUpdCU modNm $! ecuStoreEHSem $! ehSem) } -{-# LINE 124 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}+{-# LINE 136 "src/ehc/EHC/CompilePhase/Semantics.chs" #-} cpFoldHs :: HsName -> EHCompilePhase () cpFoldHs modNm = do { cr <- get@@ -122,7 +131,7 @@ }) } -{-# LINE 171 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}+{-# LINE 183 "src/ehc/EHC/CompilePhase/Semantics.chs" #-} cpFoldHsMod :: HsName -> EHCompilePhase () cpFoldHsMod modNm = do { cr <- get@@ -145,7 +154,7 @@ ) ) } -{-# LINE 199 "src/ehc/EHC/CompilePhase/Semantics.chs" #-}+{-# LINE 211 "src/ehc/EHC/CompilePhase/Semantics.chs" #-} cpFoldHIInfo :: HsName -> EHCompilePhase () cpFoldHIInfo modNm = do { cr <- get
@@ -334,7 +334,7 @@ | st == HIStart || st == HSStart -- st /= HMOnlyMinimal -> do { let mod = emptyMod' modNm ; cpUpdCU modNm (ecuStoreMod mod)- -- ; cpCheckMods [modNm]+ -- ; cpCheckModsWithBuiltin [modNm] ; cpUpdCU modNm (ecuStoreState (ECUS_Haskell HMOnlyMinimal)) ; return defaultResult }@@ -342,9 +342,11 @@ | cst == CRStartText || isBinary -> do { cpMsg modNm VerboseNormal $ "Reading Core (" ++ (if isBinary then "binary" else "textual") ++ ")" -- 20140605 AD, code below is temporary, to cater for minimal and working infrastructure first...+ -- ; cpGetDummyCheckSrcMod modNm -- really dummy, should be based on actual import info to be extracted by cpEhcCoreImport ; cpEhcHaskellModulePrepareSrc modNm ; modNm2 <- cpEhcCoreImport isBinary modNm- ; cpGetDummyCheckSrcMod modNm2 -- really dummy, should be based on actual import info to be extracted by cpEhcCoreImport+ -- ; cpGetDummyCheckSrcMod modNm2 -- really dummy, should be based on actual import info to be extracted by cpEhcCoreImport+ -- ; cpCheckModsWithBuiltin [modNm2] ; cpUpdCU modNm2 (ecuStoreState (ECUS_Core CROnlyImports)) ; return modNm2 }@@ -401,12 +403,12 @@ _ -> return defaultResult } -{-# LINE 607 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 609 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} {-| EH common phases: analysis + core + grin -}-{-# LINE 611 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 613 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpEhcCoreModuleCommonPhases :: Bool -> Bool -> Bool -> EHCOpts -> HsName -> EHCompilePhase () cpEhcCoreModuleCommonPhases isMainMod isTopMod doMkExec opts modNm = cpSeq ([@@ -414,14 +416,14 @@ ] ) -{-# LINE 628 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 630 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpEhcEhModuleCommonPhases :: Bool -> Bool -> Bool -> EHCOpts -> HsName -> EHCompilePhase () cpEhcEhModuleCommonPhases isMainMod isTopMod doMkExec opts modNm = cpSeq [ cpEhcEhAnalyseModuleDefs modNm , cpEhcCoreModuleCommonPhases isMainMod isTopMod doMkExec opts modNm ] -{-# LINE 636 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 638 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Common phases when starting with a Haskell module. -- HS common phases: HS analysis + EH common cpEhcHaskellModuleCommonPhases :: Bool -> Bool -> EHCOpts -> HsName -> EHCompilePhase ()@@ -435,7 +437,7 @@ } ] -{-# LINE 655 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 657 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | All the work to be done after Haskell src imports have been read/analysed. -- Post module import common phases: Parse + Module analysis + HS common cpEhcHaskellModuleAfterImport@@ -454,7 +456,7 @@ , cpEhcHaskellModulePostlude modNm ] -{-# LINE 681 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 683 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | All the work to be done after Core src/binary imports have been read/analysed cpEhcCoreModuleAfterImport :: Bool -> EHCOpts@@ -475,13 +477,13 @@ ] } -{-# LINE 707 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 709 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} {-| Prepare module for compilation. This should be the first step before compilation of a module and is meant to obtain cached info from a previous compilation. -}-{-# LINE 724 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 726 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpEhcHaskellModulePrepareSrc :: HsName -> EHCompilePhase () cpEhcHaskellModulePrepareSrc modNm = cpGetMetaInfo [GetMeta_Src,GetMeta_Dir] modNm@@ -513,14 +515,14 @@ , cpEhcHaskellModulePrepareHS2 modNm ] -{-# LINE 763 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 765 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpEhcHaskellModulePostlude :: HsName -> EHCompilePhase () cpEhcHaskellModulePostlude modNm = cpSeq [ cpOutputHI "hi" modNm , cpCleanupCU modNm ] -{-# LINE 773 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 775 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Get import information from Haskell module source text. cpEhcHaskellImport :: HSState@@ -569,7 +571,7 @@ ; cpGetHsModnameAndImports modNm } -{-# LINE 838 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 840 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Parse a Haskell module cpEhcHaskellParse :: Bool -> Bool@@ -587,40 +589,41 @@ ] ) -{-# LINE 865 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 867 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpEhcEhParse :: HsName -> EHCompilePhase () cpEhcEhParse modNm = cpSeq [ cpParseEH modNm , cpStopAt CompilePoint_Parse ] -{-# LINE 873 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 875 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpEhcCoreParse :: HsName -> EHCompilePhase () cpEhcCoreParse modNm = cpSeq [ cpParseCoreWithFPath Nothing modNm , cpStopAt CompilePoint_Parse ] -{-# LINE 881 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 883 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Analyse a Haskell src module for -- (1) module information (import, export, etc), cpEhcHaskellAnalyseModuleItf :: HsName -> EHCompilePhase () cpEhcHaskellAnalyseModuleItf modNm = cpSeq [ cpStepUID, cpFoldHsMod modNm, cpGetHsMod modNm- , cpCheckMods [modNm]+ , cpCheckModsWithBuiltin [modNm] , cpCleanupHSMod modNm ] -{-# LINE 897 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 899 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Analyse a Core text/binary src module for -- (1) module information (import, export, etc), cpEhcCoreAnalyseModuleItf :: HsName -> EHCompilePhase () cpEhcCoreAnalyseModuleItf modNm- = cpSeq [ cpCheckMods [modNm]+ = cpSeq [ cpMsg modNm VerboseDebug "cpEhcCoreAnalyseModuleItf"+ , cpCheckModsWithoutBuiltin [modNm] -- , cpCleanupHSMod modNm ] -{-# LINE 912 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 915 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Analyse a Haskell src module for -- (2) names + dependencies cpEhcHaskellAnalyseModuleDefs :: HsName -> EHCompilePhase ()@@ -631,7 +634,7 @@ , cpStopAt CompilePoint_AnalHS ] -{-# LINE 924 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 927 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Analyse a Haskell src module for -- (3) types cpEhcEhAnalyseModuleDefs :: HsName -> EHCompilePhase ()@@ -641,7 +644,7 @@ , cpStopAt CompilePoint_AnalEH ] -{-# LINE 935 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 938 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Part 1 Core processing, on a per module basis, part1 is done always cpEhcCorePerModulePart1 :: HsName -> EHCompilePhase () cpEhcCorePerModulePart1 modNm@@ -658,7 +661,7 @@ ) } -{-# LINE 967 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 970 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Get import information from Core module source text. cpEhcCoreImport :: Bool -> HsName -> EHCompilePhase HsName@@ -675,7 +678,7 @@ ; cpGetCoreModnameAndImports modNm } -{-# LINE 985 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 988 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Analyse a Core src module cpEhcCoreAnalyseModule :: HsName -> EHCompilePhase () cpEhcCoreAnalyseModule modNm@@ -687,7 +690,7 @@ ; cpSetLimitErrsWhen 5 "Core analysis" errs } -{-# LINE 998 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1001 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Part 2 Core processing, part2 is done either for per individual module compilation or after full program analysis cpEhcCorePerModulePart2 :: HsName -> EHCompilePhase () cpEhcCorePerModulePart2 modNm@@ -698,7 +701,7 @@ ] } -{-# LINE 1042 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1045 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Core+grin processing, on a per module basis, may only be done when full program analysis is done cpEhcCoreGrinPerModuleDoneFullProgAnalysis :: HsName -> EHCompilePhase () cpEhcCoreGrinPerModuleDoneFullProgAnalysis modNm@@ -708,7 +711,7 @@ ] ) -{-# LINE 1053 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1056 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- | Make final executable code, either still partly or fully (i.e. also linking) cpEhcExecutablePerModule :: FinalCompileHow -> [HsName] -> HsName -> EHCompilePhase () cpEhcExecutablePerModule how impModNmL modNm@@ -718,7 +721,7 @@ [ cpCompileWithGCC how impModNmL modNm ] } -{-# LINE 1079 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1082 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpProcessHs :: HsName -> EHCompilePhase () cpProcessHs modNm = cpSeq [ cpFoldHs modNm@@ -727,7 +730,7 @@ , cpCleanupHS modNm ] -{-# LINE 1093 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1096 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpProcessEH :: HsName -> EHCompilePhase () cpProcessEH modNm = do { cr <- get@@ -754,7 +757,7 @@ ] } -{-# LINE 1155 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1158 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- unprocessed core -> folded core cpProcessCoreBasic :: HsName -> EHCompilePhase () cpProcessCoreBasic modNm@@ -762,13 +765,12 @@ ; let (_,_,opts,_) = crBaseInfo modNm cr ; cpSeq [ cpTransformCore OptimizationScope_PerModule modNm , cpFlowHILamMp modNm- -- , when (ehcOptEmitCore opts) (void $ cpOutputCore CPOutputCoreHow_Binary "" "core" modNm) , void $ cpOutputCore CPOutputCoreHow_Binary [] "" Cfg.suffixDotlessBinaryCore modNm , cpProcessCoreFold modNm ] } -{-# LINE 1175 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1174 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- unfolded core -> folded core -- (called on merged core, and on core directly generated from cached grin) cpProcessCoreFold :: HsName -> EHCompilePhase ()@@ -778,7 +780,7 @@ [ cpFoldCore2Grin modNm ] ++ [ cpFlowCoreSemAfterFold modNm ] -{-# LINE 1190 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1189 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} cpProcessCoreModFold :: HsName -> EHCompilePhase () cpProcessCoreModFold modNm = cpSeq $@@ -786,7 +788,7 @@ , cpFlowCoreModSem modNm ] -{-# LINE 1199 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-}+{-# LINE 1198 "src/ehc/EHC/CompilePhase/TopLevelPhases.chs" #-} -- folded core -> grin, jazy, and the rest cpProcessCoreRest :: HsName -> EHCompilePhase () cpProcessCoreRest modNm
@@ -42,7 +42,7 @@ , trfstExtra = emptyTrfCoreExtra { trfcoreECUState = ecuState ecu , trfcoreIsLamLifted = maybe False Core2ChkSem.isLamLifted_Syn_CodeAGItf $ ecuMbCoreSemMod ecu- , trfcoreExpNmOffMp = crsiExpNmOffMp modNm crsi+ , trfcoreExpNmOffMp = crsiExpNmOffMpDbg "cpTransformCore" modNm crsi , trfcoreInhLamMp = Core2GrSem.lamMp_Inh_CodeAGItf $ crsiCoreInh crsi } }
@@ -19,6 +19,8 @@ import UHC.Light.Compiler.EHC.CompilePhase.Module import UHC.Light.Compiler.CodeGen.ValAccess as VA import UHC.Light.Compiler.CodeGen.RefGenerator+import UHC.Light.Compiler.EHC.CompilePhase.Common+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl @@ -27,7 +29,8 @@ -{-# LINE 94 "src/ehc/EHC/CompilePhase/Translations.chs" #-}++{-# LINE 97 "src/ehc/EHC/CompilePhase/Translations.chs" #-} cpTranslateHs2EH :: HsName -> EHCompilePhase () cpTranslateHs2EH modNm = do { cr <- get@@ -46,7 +49,7 @@ }) } -{-# LINE 114 "src/ehc/EHC/CompilePhase/Translations.chs" #-}+{-# LINE 117 "src/ehc/EHC/CompilePhase/Translations.chs" #-} cpTranslateEH2Output :: HsName -> EHCompilePhase () cpTranslateEH2Output modNm = do { cr <- get@@ -65,7 +68,7 @@ ) } -{-# LINE 159 "src/ehc/EHC/CompilePhase/Translations.chs" #-}+{-# LINE 162 "src/ehc/EHC/CompilePhase/Translations.chs" #-} cpTranslateEH2Core :: HsName -> EHCompilePhase () cpTranslateEH2Core modNm = do { cr <- get
@@ -2,14 +2,14 @@ ( EHCompileRunStateInfo (..) , emptyEHCompileRunStateInfo , EHCompileRun, EHCompilePhase-, crBaseInfo, crBaseInfo'+, crBaseInfo, crMbBaseInfo, crBaseInfo' , cpUpdOpts , cpMsg, cpMsg' , cpStepUID, cpSetUID , cpSystem', cpSystem , cpSystemRaw , cpStopAt-, crsiExpNmOffMp+, crsiExpNmOffMpDbg, crsiExpNmOffMp , crModNeedsCompile , crModCanCompile , crSetAndCheckMain@@ -129,58 +129,70 @@ } {-# LINE 179 "src/ehc/EHC/CompileRun.chs" #-}+crsiExpNmOffMpDbg :: String -> HsName -> EHCompileRunStateInfo -> VA.HsName2FldMp+crsiExpNmOffMpDbg ctxt modNm crsi = mmiNmOffMp $ panicJust ("crsiExpNmOffMp." ++ ctxt ++ show ks ++ ": " ++ show modNm) $ Map.lookup modNm $ crsiModMp crsi+ where ks = Map.keys $ crsiModMp crsi+ crsiExpNmOffMp :: HsName -> EHCompileRunStateInfo -> VA.HsName2FldMp crsiExpNmOffMp modNm crsi = mmiNmOffMp $ panicJust ("crsiExpNmOffMp: " ++ show modNm) $ Map.lookup modNm $ crsiModMp crsi -{-# LINE 184 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 188 "src/ehc/EHC/CompileRun.chs" #-} instance Show EHCompileRunStateInfo where show _ = "EHCompileRunStateInfo" instance PP EHCompileRunStateInfo where pp i = "CRSI:" >#< ppModMp (crsiModMp i) -{-# LINE 192 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 196 "src/ehc/EHC/CompileRun.chs" #-} instance CompileRunStateInfo EHCompileRunStateInfo HsName () where crsiImportPosOfCUKey n i = () -{-# LINE 197 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 201 "src/ehc/EHC/CompileRun.chs" #-} type EHCompileRun = CompileRun HsName EHCompileUnit EHCompileRunStateInfo Err type EHCompilePhase a = CompilePhase HsName EHCompileUnit EHCompileRunStateInfo Err a -{-# LINE 206 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 210 "src/ehc/EHC/CompileRun.chs" #-} crBaseInfo' :: EHCompileRun -> (EHCompileRunStateInfo,EHCOpts) crBaseInfo' cr = (crsi,opts) where crsi = crStateInfo cr opts = crsiOpts crsi -crBaseInfo :: HsName -> EHCompileRun -> (EHCompileUnit,EHCompileRunStateInfo,EHCOpts,FPath)-crBaseInfo modNm cr- = ( ecu ,crsi+crMbBaseInfo :: HsName -> EHCompileRun -> (Maybe EHCompileUnit, EHCompileRunStateInfo, EHCOpts, Maybe FPath)+crMbBaseInfo modNm cr+ = ( mbEcu ,crsi -- if any per module opts are available, use those- , maybe opts id $ ecuMbOpts ecu- , fp+ , maybe opts id $ mbEcu >>= ecuMbOpts+ , fmap ecuFilePath mbEcu )- where ecu = crCU modNm cr+ where mbEcu = crMbCU modNm cr (crsi,opts) = crBaseInfo' cr- fp = ecuFilePath ecu -{-# LINE 233 "src/ehc/EHC/CompileRun.chs" #-}+crBaseInfo :: HsName -> EHCompileRun -> (EHCompileUnit,EHCompileRunStateInfo,EHCOpts,FPath)+crBaseInfo modNm cr+ = ( maybe (panic "crBaseInfo.mbEcu") id mbEcu+ , crsi+ , opts+ , maybe (panic "crBaseInfo.mbFp") id mbFp+ )+ where (mbEcu, crsi, opts, mbFp) = crMbBaseInfo modNm cr++{-# LINE 245 "src/ehc/EHC/CompileRun.chs" #-} cpMemUsage :: EHCompilePhase () cpMemUsage = return () -{-# LINE 256 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 268 "src/ehc/EHC/CompileRun.chs" #-} cpUpdOpts :: (EHCOpts -> EHCOpts) -> EHCompilePhase () cpUpdOpts upd = cpUpdSI (\crsi -> crsi {crsiOpts = upd $ crsiOpts crsi}) -{-# LINE 266 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 278 "src/ehc/EHC/CompileRun.chs" #-} cpRegisterFilesToRm :: [FPath] -> EHCompilePhase () cpRegisterFilesToRm fpL = cpUpdSI (\crsi -> crsi {crsiFilesToRm = fpL ++ crsiFilesToRm crsi}) -{-# LINE 272 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 284 "src/ehc/EHC/CompileRun.chs" #-} cpRmFilesToRm :: EHCompilePhase () cpRmFilesToRm = do { cr <- get@@ -192,18 +204,18 @@ where rm f = CE.catch (removeFile f) (\(e :: SomeException) -> hPutStrLn stderr (show f ++ ": " ++ show e)) -{-# LINE 289 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 301 "src/ehc/EHC/CompileRun.chs" #-} cpMsg :: HsName -> Verbosity -> String -> EHCompilePhase () cpMsg modNm v m = do { cr <- get- ; let (_,_,_,fp) = crBaseInfo modNm cr- ; cpMsg' modNm v m Nothing fp+ ; let (_,_,_,mbFp) = crMbBaseInfo modNm cr+ ; cpMsg' modNm v m Nothing (maybe emptyFPath id mbFp) } cpMsg' :: HsName -> Verbosity -> String -> Maybe String -> FPath -> EHCompilePhase () cpMsg' modNm v m mbInfo fp = do { cr <- get- ; let (ecu,crsi,opts,_) = crBaseInfo modNm cr+ ; let (mbEcu,crsi,opts,_) = crMbBaseInfo modNm cr ; ehcioinfo <- lift $ readIORef (crsiEHCIOInfo crsi) ; clockTime <- lift getEHCTime ; let clockStartTimePrev = ehcioinfoStartTime ehcioinfo@@ -212,7 +224,7 @@ clockTimeDiff = ehcTimeDiff clockTime clockTimePrev ; let t = if v >= VerboseALot then "<" ++ strBlankPad 35 (ehcTimeDiffFmt clockStartTimeDiff ++ "/" ++ ehcTimeDiffFmt clockTimeDiff) ++ ">" else ""- m' = show (ecuSeqNr ecu) ++ t ++ " " ++ m+ m' = maybe "" (\ecu -> show (ecuSeqNr ecu) ++ t ++ " ") mbEcu ++ m ; lift $ putCompileMsg v (ehcOptVerbosity opts) m' mbInfo modNm fp ; clockTime <- lift getEHCTime ; lift $ writeIORef (crsiEHCIOInfo crsi) (ehcioinfo {ehcioinfoLastTime = clockTime})@@ -220,7 +232,7 @@ ; cpMemUsage } -{-# LINE 330 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 342 "src/ehc/EHC/CompileRun.chs" #-} cpStepUID :: EHCompilePhase () cpStepUID = cpUpdSI (\crsi -> let (n,h) = mkNewLevUID (crsiNextUID crsi)@@ -231,7 +243,7 @@ cpSetUID u = cpUpdSI (\crsi -> crsi {crsiNextUID = u}) -{-# LINE 346 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 358 "src/ehc/EHC/CompileRun.chs" #-} cpSystem' :: Maybe FilePath -> (FilePath,[String]) -> EHCompilePhase () cpSystem' mbStdOut (cmd,args) = do { exitCode <- lift $ system $ showShellCmd $ (cmd,args ++ (maybe [] (\o -> [">", o]) mbStdOut))@@ -243,7 +255,7 @@ cpSystem :: (FilePath,[String]) -> EHCompilePhase () cpSystem = cpSystem' Nothing -{-# LINE 376 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 388 "src/ehc/EHC/CompileRun.chs" #-} cpSystemRaw :: String -> [String] -> EHCompilePhase () cpSystemRaw cmd args = do { exitCode <- lift $ rawSystem cmd args@@ -252,7 +264,7 @@ _ -> cpSetErrs [rngLift emptyRange Err_PP $ pp $ show exitCode] -- cpSetFail } -{-# LINE 390 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 402 "src/ehc/EHC/CompileRun.chs" #-} cpStopAt :: CompilePoint -> EHCompilePhase () cpStopAt atPhase = do { cr <- get@@ -261,7 +273,7 @@ cpSetStopAllSeq } -{-# LINE 404 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 416 "src/ehc/EHC/CompileRun.chs" #-} crPartitionNewerOlderImports :: HsName -> EHCompileRun -> ([EHCompileUnit],[EHCompileUnit]) crPartitionNewerOlderImports modNm cr = partition isNewer $ map (flip crCU cr) $ ecuImpNmL ecu@@ -273,7 +285,7 @@ where t' = panicJust "crPartitionNewerOlderImports2" $ ecuMbHIInfoTime ecu' mbt = ecuMbHIInfoTime ecu' -{-# LINE 421 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 433 "src/ehc/EHC/CompileRun.chs" #-} crModNeedsCompile :: HsName -> EHCompileRun -> Bool crModNeedsCompile modNm cr = ecuIsMainMod ecu -- ecuIsTopMod ecu@@ -285,13 +297,13 @@ (newer,_) = crPartitionNewerOlderImports modNm cr opts = crsiOpts $ crStateInfo cr -{-# LINE 442 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 454 "src/ehc/EHC/CompileRun.chs" #-} crModCanCompile :: HsName -> EHCompileRun -> Bool crModCanCompile modNm cr = isJust (ecuMbSrcTime ecu) && ecuDirIsWritable ecu where ecu = crCU modNm cr -{-# LINE 453 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 465 "src/ehc/EHC/CompileRun.chs" #-} -- | split module names in those part of a package, and others crPartitionIntoPkgAndOthers :: EHCompileRun -> [HsName] -> ([PkgModulePartition],[HsName]) crPartitionIntoPkgAndOthers cr modNmL@@ -306,7 +318,7 @@ FileLocKind_Pkg p d -> ([((p,d),[m])], [ ]) where (ecu,_,_,_) = crBaseInfo m cr -{-# LINE 473 "src/ehc/EHC/CompileRun.chs" #-}+{-# LINE 485 "src/ehc/EHC/CompileRun.chs" #-} crSetAndCheckMain :: HsName -> EHCompilePhase () crSetAndCheckMain modNm = do { cr <- get
@@ -13,6 +13,7 @@ import qualified UHC.Light.Compiler.Gam.ClGam as Pr (initClGam) import qualified UHC.Light.Compiler.HS.ModImpExp as HSSemMod import UHC.Light.Compiler.CodeGen.ImportUsedModules+import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl import UHC.Light.Compiler.Pred.ToCHR (initScopedPredStore) @@ -43,23 +44,25 @@ initialEHSem :: EHCOpts -> FPath -> EHSem.Inh_AGItf initialEHSem opts fp = EHSem.Inh_AGItf- { EHSem.moduleNm_Inh_AGItf = mkHNm (fpathBase fp)- , EHSem.gUniq_Inh_AGItf = uidStart- , EHSem.opts_Inh_AGItf = opts- , EHSem.isMainMod_Inh_AGItf = False- , EHSem.idQualGam_Inh_AGItf = emptyGam- , EHSem.valGam_Inh_AGItf = emptyGam- , EHSem.dataGam_Inh_AGItf = emptyGam- , EHSem.tyGam_Inh_AGItf = initTyGam- , EHSem.tyKiGam_Inh_AGItf = initTyKiGam- , EHSem.polGam_Inh_AGItf = initPolGam- , EHSem.kiGam_Inh_AGItf = initKiGam- , EHSem.clGam_Inh_AGItf = Pr.initClGam- , EHSem.clDfGam_Inh_AGItf = emptyGam- , EHSem.chrStore_Inh_AGItf = initScopedPredStore+ { EHSem.moduleNm_Inh_AGItf = mkHNm (fpathBase fp)+ , EHSem.gUniq_Inh_AGItf = uidStart+ , EHSem.opts_Inh_AGItf = opts+ , EHSem.isMainMod_Inh_AGItf = False+ , EHSem.idQualGam_Inh_AGItf = emptyGam+ , EHSem.valGam_Inh_AGItf = emptyGam+ , EHSem.dataGam_Inh_AGItf = emptyGam+ , EHSem.tyGam_Inh_AGItf = initTyGam+ , EHSem.tyKiGam_Inh_AGItf = initTyKiGam+ , EHSem.polGam_Inh_AGItf = initPolGam+ , EHSem.kiGam_Inh_AGItf = initKiGam+ , EHSem.clGam_Inh_AGItf = Pr.initClGam+ , EHSem.clDfGam_Inh_AGItf = emptyGam+ , EHSem.chrStore_Inh_AGItf = initScopedPredStore+ , EHSem.importUsedModules_Inh_AGItf = emptyImportUsedModules+ , EHSem.moduleImportExportImpl_Inh_AGItf = emptyModuleImportExportImpl } -{-# LINE 98 "src/ehc/EHC/InitialSetup.chs" #-}+{-# LINE 102 "src/ehc/EHC/InitialSetup.chs" #-} initialCore2GrSem :: EHCOpts -> Core2GrSem.Inh_CodeAGItf initialCore2GrSem opts = Core2GrSem.Inh_CodeAGItf@@ -70,7 +73,7 @@ , Core2GrSem.importUsedModules_Inh_CodeAGItf = emptyImportUsedModules } -{-# LINE 112 "src/ehc/EHC/InitialSetup.chs" #-}+{-# LINE 116 "src/ehc/EHC/InitialSetup.chs" #-} initialHSSemMod :: EHCOpts -> HSSemMod.Inh_AGItf initialHSSemMod opts = HSSemMod.Inh_AGItf
@@ -163,6 +163,7 @@ [ "let", "in", "case", "of", "rec", "foreign", "uniq" , "Int", "Char", "String", "Tag", "Rec" , "module", "default"+ , "import", "export" , "BINDPLAIN", "BINDFUNCTION0", "BINDFUNCTION1", "BINDAPPLY0" , "VAL" , "FAIL"@@ -182,7 +183,7 @@ where hsScanOpts' = hsScanOpts opts ehScanOpts' = ehScanOpts opts -{-# LINE 300 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 301 "src/ehc/Scanner/Common.chs" #-} tycoreScanOpts :: ScanOpts tycoreScanOpts = defaultScanOpts@@ -202,7 +203,7 @@ , scoDollarIdent = True } -{-# LINE 331 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 332 "src/ehc/Scanner/Common.chs" #-} grinScanOpts :: ScanOpts grinScanOpts = defaultScanOpts@@ -227,14 +228,14 @@ , scoDollarIdent = True } -{-# LINE 363 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 364 "src/ehc/Scanner/Common.chs" #-} tyScanOpts :: ScanOpts tyScanOpts = defaultScanOpts { scoKeywordsTxt = Set.fromList [ "uid" ] } -{-# LINE 371 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 372 "src/ehc/Scanner/Common.chs" #-} hsnScanOpts :: ScanOpts hsnScanOpts = defaultScanOpts@@ -269,7 +270,7 @@ } where hsScanOpts' = hsScanOpts emptyEHCOpts -{-# LINE 420 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 421 "src/ehc/Scanner/Common.chs" #-} foreignEntScanOpts :: FFIWay -> ScanOpts foreignEntScanOpts way = o { scoKeywordsTxt = Set.fromList [ "dynamic", "wrapper", "h", "static", "new", "js" ]@@ -285,7 +286,7 @@ _ -> ("" , "" ) -{-# LINE 459 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 460 "src/ehc/Scanner/Common.chs" #-} splitTokensOnModuleTrigger :: ScanOpts -> [Token] -> Maybe ([Token],[Token]) splitTokensOnModuleTrigger scanOpts ts = case break ismod ts of@@ -294,7 +295,7 @@ where ismod (Reserved s _) | s == scoOffsideModule scanOpts = True ismod _ = False -{-# LINE 469 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 470 "src/ehc/Scanner/Common.chs" #-} offsideScanHandle :: ScanOpts -> FilePath -> Handle -> IO (OffsideInput [Token] Token (Maybe Token)) offsideScanHandle scanOpts fn fh = do { tokens <- scanHandle scanOpts fn fh@@ -310,7 +311,7 @@ triggers = [ (Trigger_IndentGT,reserved x noPos) | x <- scoOffsideTrigs scanOpts ] ++ [ (Trigger_IndentGE,reserved x noPos) | x <- scoOffsideTrigsGE scanOpts ] -{-# LINE 494 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 495 "src/ehc/Scanner/Common.chs" #-} floatDenot2NomDenom :: String -> (Integer,Integer) floatDenot2NomDenom denot = (numerator f,denominator f)@@ -329,7 +330,7 @@ intDenot2Integer :: Int -> String -> Integer intDenot2Integer b s = getBaseNumber (toInteger b) s -{-# LINE 519 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 520 "src/ehc/Scanner/Common.chs" #-} pKeyTk, pKeyTk' :: IsParser p Token => String -> p Token pKeyTk key = pCostReserved' 9 key@@ -338,18 +339,18 @@ pKeyw :: (IsParser p Token,Show k) => k -> p Token pKeyw k = pKeyTk (show k) -{-# LINE 529 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 530 "src/ehc/Scanner/Common.chs" #-} pKeywHsNname :: (IsParser p Token,Show k) => k -> p HsName pKeywHsNname k = tokMkQName <$> pKeyw k -{-# LINE 535 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 536 "src/ehc/Scanner/Common.chs" #-} pStringTk, pCharTk, pInteger8Tk, pInteger10Tk, pInteger16Tk, pFractionTk,-{-# LINE 543 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 544 "src/ehc/Scanner/Common.chs" #-} pQVaridTk, pQConidTk, pQVarsymTk, pQConsymTk,-{-# LINE 547 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 548 "src/ehc/Scanner/Common.chs" #-} pVaridTk , pConidTk , pVaridTk', pConidTk', pTextnmTk, pTextlnTk, pIntegerTk, pVarsymTk, pConsymTk@@ -370,13 +371,13 @@ pTextnmTk = pHsCostValToken' 7 TkTextnm "<name>" pTextlnTk = pHsCostValToken' 7 TkTextln "<line>" pIntegerTk = pInteger10Tk-{-# LINE 575 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 576 "src/ehc/Scanner/Common.chs" #-} pQVaridTk = pHsCostValToken' 7 TkQVarid "<identifier>" pQConidTk = pHsCostValToken' 7 TkQConid "<Identifier>" pQConsymTk = pHsCostValToken' 7 TkQConOp "<conoperator>" pQVarsymTk = pHsCostValToken' 7 TkQOp "<operator>" -{-# LINE 586 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 587 "src/ehc/Scanner/Common.chs" #-} pCONID, pCONID', pCONSYM, pVARID, pVARID', pVARSYM :: IsParser p Token => p Token pCONID = pConidTk@@ -386,7 +387,7 @@ pVARID' = pVaridTk' pVARSYM = pVarsymTk -{-# LINE 606 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 607 "src/ehc/Scanner/Common.chs" #-} pQCONID, pQCONSYM, pQVARID, pQVARSYM :: IsParser p Token => p Token pQCONID = pQConidTk@@ -394,7 +395,7 @@ pQVARID = pQVaridTk pQVARSYM = pQVarsymTk -{-# LINE 619 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 620 "src/ehc/Scanner/Common.chs" #-} tokGetVal :: Token -> String tokGetVal x = tokenVal x@@ -405,14 +406,14 @@ pHNm :: (IsParser p Token) => p Token -> p HsName pHNm p = (hsnFromString . tokGetVal) <$> p -{-# LINE 641 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 642 "src/ehc/Scanner/Common.chs" #-} tokConcat :: Token -> Token -> Token tokConcat t1 t2 = Reserved (tokenVal t1 ++ tokenVal t2) (position t1) tokEmpty :: Token tokEmpty = Reserved "" noPos -{-# LINE 653 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 654 "src/ehc/Scanner/Common.chs" #-} pMODULE , pWHERE , pSEMI ,@@ -446,7 +447,7 @@ pIN :: IsParser p Token => p Token -{-# LINE 688 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 689 "src/ehc/Scanner/Common.chs" #-} pMODULE = pKeyTk "module" pWHERE = pKeyTk "where" pSEMI = pKeyTk ";"@@ -484,29 +485,29 @@ tokOpStrsEH1 = [ "=", "\\", show hsnArrow, "::", "@" ] tokOpStrsHS1 = [ "-", "*", "!", "_", "%", "." ] -{-# LINE 727 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 728 "src/ehc/Scanner/Common.chs" #-} pTDOT , pQDOT :: IsParser p Token => p Token -{-# LINE 733 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 734 "src/ehc/Scanner/Common.chs" #-} pTDOT = pKeyTk "..." pQDOT = pKeyTk "...." tokOpStrsEH2 = [ "...", "...." ] tokOpStrsHS2 = [ ] -{-# LINE 741 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 742 "src/ehc/Scanner/Common.chs" #-} tokOpStrsEH3 = [ "%" ] tokOpStrsHS3 = [ ] -{-# LINE 746 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 747 "src/ehc/Scanner/Common.chs" #-} pFORALL , pEXISTS , pTILDE :: IsParser p Token => p Token -{-# LINE 753 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 754 "src/ehc/Scanner/Common.chs" #-} pFORALL = pKeyTk "forall" pEXISTS = pKeyTk "exists" pTILDE = pKeyTk (show hsnEqTilde)@@ -516,7 +517,7 @@ tokOpStrsEH4 = [ ".", show hsnEqTilde ] tokOpStrsHS4 = [ ] -{-# LINE 764 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 765 "src/ehc/Scanner/Common.chs" #-} pLARROW , pVBAR , pDATA ,@@ -529,7 +530,7 @@ pDOTDOT :: IsParser p Token => p Token -{-# LINE 778 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 779 "src/ehc/Scanner/Common.chs" #-} pLARROW = pKeyTk "<-" pVBAR = pKeyTk "|" pDATA = pKeyTk "data"@@ -546,12 +547,12 @@ tokOpStrsEH5 = [ "|" ] tokOpStrsHS5 = [ "<-", "..", ":" ] -{-# LINE 796 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 797 "src/ehc/Scanner/Common.chs" #-} pFFORALL , pEEXISTS :: IsParser p Token => p Token -{-# LINE 802 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 803 "src/ehc/Scanner/Common.chs" #-} pFFORALL = pKeyTk "Forall" pEEXISTS = pKeyTk "Exists" @@ -561,7 +562,7 @@ tokOpStrsEH6 = [ "*" ] tokOpStrsHS6 = [ ] -{-# LINE 813 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 814 "src/ehc/Scanner/Common.chs" #-} pOROWREC , pCROWREC , pOROWROW ,@@ -572,7 +573,7 @@ pHASH :: IsParser p Token => p Token -{-# LINE 825 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 826 "src/ehc/Scanner/Common.chs" #-} pOROWREC = pKeyTk (show hsnORec) pCROWREC = pKeyTk (show hsnCRec) pOROWROW = pKeyTk (show hsnORow)@@ -582,11 +583,11 @@ pCOLEQUAL = pKeyTk ":=" pHASH = pKeyTk "#" -{-# LINE 836 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 837 "src/ehc/Scanner/Common.chs" #-} tokOpStrsEH7 = [ ":=", "#" ] tokOpStrsHS7 = [ ] -{-# LINE 841 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 842 "src/ehc/Scanner/Common.chs" #-} pLABEL , pLETSTRICT , pSAFE ,@@ -596,7 +597,7 @@ pEXPORT :: IsParser p Token => p Token -{-# LINE 852 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 853 "src/ehc/Scanner/Common.chs" #-} pLABEL = pKeyTk "label" pLETSTRICT = pKeyTk "letstrict" pSAFE = pKeyTk "safe"@@ -610,13 +611,13 @@ ++ map show allFFIWays tokKeywStrsHS8 = [ "default", "export", "label", "safe" ] -{-# LINE 869 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 870 "src/ehc/Scanner/Common.chs" #-} pFFIWay :: IsParser p Token => p (FFIWay,Token) pFFIWay = pAnyKey (\way -> (,) way <$> pKeyTk (show way)) allFFIWays <?> "pFFIWay" -{-# LINE 879 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 880 "src/ehc/Scanner/Common.chs" #-} pDARROW , pLTCOLON , pOIMPL ,@@ -626,7 +627,7 @@ pDO :: IsParser p Token => p Token -{-# LINE 890 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 891 "src/ehc/Scanner/Common.chs" #-} pDARROW = pKeyTk (show hsnPrArrow) pLTCOLON = pKeyTk "<:" pOIMPL = pKeyTk (show hsnOImpl)@@ -640,31 +641,31 @@ tokOpStrsEH9 = [ show hsnPrArrow, "<:" ] tokOpStrsHS9 = [ ] -{-# LINE 905 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 906 "src/ehc/Scanner/Common.chs" #-} tokOpStrsEH10 = [] -- [ show hsnDynVar ] tokOpStrsHS10 = [ ] -{-# LINE 913 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 914 "src/ehc/Scanner/Common.chs" #-} pTYPE :: IsParser p Token => p Token -{-# LINE 918 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 919 "src/ehc/Scanner/Common.chs" #-} pTYPE = pKeyTk "type" -{-# LINE 922 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 923 "src/ehc/Scanner/Common.chs" #-} tokKeywStrsEH11 = [ "type" ] tokKeywStrsHS11 = [ ] tokOpStrsEH11 = [ ] tokOpStrsHS11 = [ ] -{-# LINE 929 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 930 "src/ehc/Scanner/Common.chs" #-} pQUALIFIED , pQUESTQUEST , pAS , pHIDING :: IsParser p Token => p Token -{-# LINE 937 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 938 "src/ehc/Scanner/Common.chs" #-} pQUALIFIED = pKeyTk "qualified" pAS = pKeyTk "as" pHIDING = pKeyTk "hiding"@@ -673,7 +674,7 @@ tokKeywStrsEH12 = [ ] tokKeywStrsHS12 = [ "qualified", "as", "hiding" ] -{-# LINE 947 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 948 "src/ehc/Scanner/Common.chs" #-} pDERIVING :: IsParser p Token => p Token @@ -681,7 +682,7 @@ tokKeywStrsEH91 = [ "deriving" ] -{-# LINE 956 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 957 "src/ehc/Scanner/Common.chs" #-} pUNSAFE , pTHREADSAFE , pDYNAMIC ,@@ -706,7 +707,7 @@ tokKeywStrsEH90 = [ ] tokKeywStrsHS90 = [ "unsafe", "threadsafe", "dynamic" ] -{-# LINE 982 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 983 "src/ehc/Scanner/Common.chs" #-} pFUSE , -- pWITH , pCONVERT@@ -719,7 +720,7 @@ tokKeywStrsEH93 = [ ] tokKeywStrsHS93 = [ "fuse", "convert" ] -{-# LINE 996 "src/ehc/Scanner/Common.chs" #-}+{-# LINE 997 "src/ehc/Scanner/Common.chs" #-} pLANGUAGE_prag , pOPTIONSUHC_prag , pDERIVABLE_prag ,
@@ -1,3 +1,3 @@ module UHC.Light.Compiler.SourceCodeSig where-sig = "de8a05a61a5234b666f55ed72006ed9f"-timestamp = "20141119 +0100 190726"+sig = "34d166bebea7d73819cade937b1469a6"+timestamp = "20141126 +0100 171750"
@@ -1,5 +1,5 @@ Name: uhc-light-Version: 1.1.7.1+Version: 1.1.7.2 License: BSD3 Copyright: Utrecht University, Department of Information and Computing Sciences, Software Technology group Build-Type: Simple @@ -12,18 +12,18 @@ Synopsis: Part of UHC packaged as cabal/hackage installable library Description: A 'light' variant of UHC including only an API and an executable for compiling to Core representation. This version is just to test the infrastructure. Later versions will provide a fleshing out of the API etc.. Cabal-Version: >= 1.8-data-files: 103/lib/ag/AnaDomain/AbsSyn.ag,103/lib/ag/Cmm/AbsSyn.ag,103/lib/ag/Core/AbsSyn.ag,103/lib/ag/CoreRun/AbsSyn.ag,103/lib/ag/EH/AbsSyn.ag,103/lib/ag/Error/AbsSyn.ag,103/lib/ag/Foreign/AbsSyn.ag,103/lib/ag/GrinByteCode/AbsSyn.ag,103/lib/ag/GrinCode/AbsSyn.ag,103/lib/ag/HS/AbsSyn.ag,103/lib/ag/JavaScript/AbsSyn.ag,103/lib/ag/JVMClass/AbsSyn.ag,103/lib/ag/LLVM/AbsSyn.ag,103/lib/ag/Silly/AbsSyn.ag,103/lib/ag/Ty/AbsSyn.ag,103/lib/ag/TyCore/AbsSyn.ag,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi,103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/CompileAll,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/include/consUtils.h,103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.1/103/cr/plain/Unsafe/Coerce.hi +data-files: 103/lib/ag/AnaDomain/AbsSyn.ag,103/lib/ag/Cmm/AbsSyn.ag,103/lib/ag/Core/AbsSyn.ag,103/lib/ag/CoreRun/AbsSyn.ag,103/lib/ag/EH/AbsSyn.ag,103/lib/ag/Error/AbsSyn.ag,103/lib/ag/Foreign/AbsSyn.ag,103/lib/ag/GrinByteCode/AbsSyn.ag,103/lib/ag/GrinCode/AbsSyn.ag,103/lib/ag/HS/AbsSyn.ag,103/lib/ag/JavaScript/AbsSyn.ag,103/lib/ag/JVMClass/AbsSyn.ag,103/lib/ag/LLVM/AbsSyn.ag,103/lib/ag/Silly/AbsSyn.ag,103/lib/ag/Ty/AbsSyn.ag,103/lib/ag/TyCore/AbsSyn.ag,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.cr,103/lib/pkg/array-1.0.0.0/103/cr/plain/Data/Array.hi,103/lib/pkg/array-1.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/CompileAll,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Applicative.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Arrow.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Category.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Fix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/Instances.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST/Lazy.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Control/Monad/ST.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Bool.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Complex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Dynamic.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Eq.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Foldable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Function.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ix.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Monoid.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ord.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Ratio.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/String.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Data/Traversable.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/include/consUtils.h,103/lib/pkg/base-3.0.0.0/103/cr/plain/installed-pkg-config,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Numeric.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Prelude.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Console/GetOpt.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/System/Exit.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadP.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/ParserCombinators/ReadPrec.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read/Lex.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Read.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show/Functions.hi,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.cr,103/lib/pkg/base-3.0.0.0/103/cr/plain/Text/Show.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.2/103/cr/plain/Unsafe/Coerce.hi extra-source-files: changelog.md Library Hs-Source-Dirs: src Build-Depends: fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale Extensions: RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,OverlappingInstances,LiberalTypeSynonyms,StandaloneDeriving,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables- Exposed-Modules: UHC.Light.Compiler.API,UHC.Light.Compiler.Core.API - Other-Modules: Paths_uhc_light,UHC.Light.Compiler.AbstractCore,UHC.Light.Compiler.AbstractCore.Utils,UHC.Light.Compiler.AnaDomain,UHC.Light.Compiler.AnaDomain.Ftv,UHC.Light.Compiler.AnaDomain.Pretty,UHC.Light.Compiler.AnaDomain.Trf.Instantiate,UHC.Light.Compiler.AnaDomain.Trf.Subst,UHC.Light.Compiler.AnaDomain.Utils,UHC.Light.Compiler.Base.CfgPP,UHC.Light.Compiler.Base.Common,UHC.Light.Compiler.Base.Debug,UHC.Light.Compiler.Base.FileSearchLocation,UHC.Light.Compiler.Base.Fld,UHC.Light.Compiler.Base.HsName,UHC.Light.Compiler.Base.HsName.Builtin,UHC.Light.Compiler.Base.Optimize,UHC.Light.Compiler.Base.PackageDatabase,UHC.Light.Compiler.Base.ParseUtils,UHC.Light.Compiler.Base.Parser,UHC.Light.Compiler.Base.Parser2,UHC.Light.Compiler.Base.Pragma,UHC.Light.Compiler.Base.RLList,UHC.Light.Compiler.Base.Range,UHC.Light.Compiler.Base.Strictness,UHC.Light.Compiler.Base.Target,UHC.Light.Compiler.Base.TermLike,UHC.Light.Compiler.Base.TreeTrie,UHC.Light.Compiler.Base.UID,UHC.Light.Compiler.CHR,UHC.Light.Compiler.CHR.Constraint,UHC.Light.Compiler.CHR.Key,UHC.Light.Compiler.CHR.Solve,UHC.Light.Compiler.CodeGen.BasicAnnot,UHC.Light.Compiler.CodeGen.Bits,UHC.Light.Compiler.CodeGen.BuiltinPrims,UHC.Light.Compiler.CodeGen.BuiltinSizeInfo,UHC.Light.Compiler.CodeGen.CVar,UHC.Light.Compiler.CodeGen.Const,UHC.Light.Compiler.CodeGen.ImportUsedModules,UHC.Light.Compiler.CodeGen.RefGenerator,UHC.Light.Compiler.CodeGen.Tag,UHC.Light.Compiler.CodeGen.TrfUtils,UHC.Light.Compiler.CodeGen.ValAccess,UHC.Light.Compiler.Config,UHC.Light.Compiler.ConfigCabal,UHC.Light.Compiler.ConfigDefines,UHC.Light.Compiler.ConfigInstall,UHC.Light.Compiler.ConfigInternalVersions,UHC.Light.Compiler.Core,UHC.Light.Compiler.Core.BindExtract,UHC.Light.Compiler.Core.Check,UHC.Light.Compiler.Core.Coercion,UHC.Light.Compiler.Core.ExtractFFE,UHC.Light.Compiler.Core.FFI,UHC.Light.Compiler.Core.FvS,UHC.Light.Compiler.Core.Merge,UHC.Light.Compiler.Core.ModAsMap,UHC.Light.Compiler.Core.Parser,UHC.Light.Compiler.Core.Pretty,UHC.Light.Compiler.Core.Subst,UHC.Light.Compiler.Core.SysF.AsTy,UHC.Light.Compiler.Core.ToCoreRun,UHC.Light.Compiler.Core.ToGrin,UHC.Light.Compiler.Core.Trf,UHC.Light.Compiler.Core.Trf.ANormal,UHC.Light.Compiler.Core.Trf.AnaRelevance,UHC.Light.Compiler.Core.Trf.AnnBasedSimplify,UHC.Light.Compiler.Core.Trf.CAFGlobalAsArg,UHC.Light.Compiler.Core.Trf.ConstProp,UHC.Light.Compiler.Core.Trf.ElimNonCodegenConstructs,UHC.Light.Compiler.Core.Trf.ElimTrivApp,UHC.Light.Compiler.Core.Trf.EraseExtractTysigCore,UHC.Light.Compiler.Core.Trf.EtaRed,UHC.Light.Compiler.Core.Trf.ExplicitStackTrace,UHC.Light.Compiler.Core.Trf.FixAfterParse,UHC.Light.Compiler.Core.Trf.FloatToGlobal,UHC.Light.Compiler.Core.Trf.InlineLetAlias,UHC.Light.Compiler.Core.Trf.LamGlobalAsArg,UHC.Light.Compiler.Core.Trf.LetDefBeforeUse,UHC.Light.Compiler.Core.Trf.LetFlattenStrict,UHC.Light.Compiler.Core.Trf.LetUnrec,UHC.Light.Compiler.Core.Trf.OptimizeStrictness,UHC.Light.Compiler.Core.Trf.RenUniq,UHC.Light.Compiler.Core.UsedModNms,UHC.Light.Compiler.Core.Utils,UHC.Light.Compiler.CoreRun,UHC.Light.Compiler.CoreRun.Pretty,UHC.Light.Compiler.CoreRun.Prim,UHC.Light.Compiler.CoreRun.Run,UHC.Light.Compiler.CoreRun.Run.Val,UHC.Light.Compiler.CoreRun.Run.Val.Prim,UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk,UHC.Light.Compiler.CoreRun.Run.Val.RunImplStk,UHC.Light.Compiler.Deriving,UHC.Light.Compiler.EH,UHC.Light.Compiler.EH.MainAG,UHC.Light.Compiler.EH.MainAG_AGItf,UHC.Light.Compiler.EH.MainAG_CaseAlt,UHC.Light.Compiler.EH.MainAG_CaseAlts,UHC.Light.Compiler.EH.MainAG_DataConstr,UHC.Light.Compiler.EH.MainAG_DataConstrs,UHC.Light.Compiler.EH.MainAG_DataField,UHC.Light.Compiler.EH.MainAG_DataFieldExpr,UHC.Light.Compiler.EH.MainAG_DataFieldPatExpr,UHC.Light.Compiler.EH.MainAG_DataFields,UHC.Light.Compiler.EH.MainAG_Decl,UHC.Light.Compiler.EH.MainAG_Decls,UHC.Light.Compiler.EH.MainAG_Expr,UHC.Light.Compiler.EH.MainAG_ExprAnn,UHC.Light.Compiler.EH.MainAG_FuncDep,UHC.Light.Compiler.EH.MainAG_FuncDeps,UHC.Light.Compiler.EH.MainAG_KiExpr,UHC.Light.Compiler.EH.MainAG_KiExprAnn,UHC.Light.Compiler.EH.MainAG_MbTyExpr,UHC.Light.Compiler.EH.MainAG_PatExpr,UHC.Light.Compiler.EH.MainAG_PatExprAnn,UHC.Light.Compiler.EH.MainAG_PrExpr,UHC.Light.Compiler.EH.MainAG_PrExprs,UHC.Light.Compiler.EH.MainAG_RecExpr,UHC.Light.Compiler.EH.MainAG_RecPatExpr,UHC.Light.Compiler.EH.MainAG_RowTyExpr,UHC.Light.Compiler.EH.MainAG_TyExpr,UHC.Light.Compiler.EH.MainAG_TyExprAnn,UHC.Light.Compiler.EH.MainAG_TyExprs,UHC.Light.Compiler.EH.MainAG_TyVar,UHC.Light.Compiler.EH.MainAG_TyVars,UHC.Light.Compiler.EH.MainAG_common,UHC.Light.Compiler.EH.Parser,UHC.Light.Compiler.EHC.Common,UHC.Light.Compiler.EHC.CompileGroup,UHC.Light.Compiler.EHC.CompilePhase.Cleanup,UHC.Light.Compiler.EHC.CompilePhase.CompileC,UHC.Light.Compiler.EHC.CompilePhase.FlowBetweenPhase,UHC.Light.Compiler.EHC.CompilePhase.Link,UHC.Light.Compiler.EHC.CompilePhase.Module,UHC.Light.Compiler.EHC.CompilePhase.Output,UHC.Light.Compiler.EHC.CompilePhase.Parsers,UHC.Light.Compiler.EHC.CompilePhase.Run,UHC.Light.Compiler.EHC.CompilePhase.Semantics,UHC.Light.Compiler.EHC.CompilePhase.TopLevelPhases,UHC.Light.Compiler.EHC.CompilePhase.Transformations,UHC.Light.Compiler.EHC.CompilePhase.Translations,UHC.Light.Compiler.EHC.CompileRun,UHC.Light.Compiler.EHC.CompileUnit,UHC.Light.Compiler.EHC.Environment,UHC.Light.Compiler.EHC.InitialSetup,UHC.Light.Compiler.Error,UHC.Light.Compiler.Error.Pretty,UHC.Light.Compiler.FinalEnv,UHC.Light.Compiler.Foreign,UHC.Light.Compiler.Foreign.Boxing,UHC.Light.Compiler.Foreign.Extract,UHC.Light.Compiler.Foreign.Parser,UHC.Light.Compiler.Foreign.Pretty,UHC.Light.Compiler.Gam,UHC.Light.Compiler.Gam.AppSpineGam,UHC.Light.Compiler.Gam.Base,UHC.Light.Compiler.Gam.ClGam,UHC.Light.Compiler.Gam.ClassDefaultGam,UHC.Light.Compiler.Gam.DataGam,UHC.Light.Compiler.Gam.FixityGam,UHC.Light.Compiler.Gam.Full,UHC.Light.Compiler.Gam.Instantiate,UHC.Light.Compiler.Gam.KiGam,UHC.Light.Compiler.Gam.PolGam,UHC.Light.Compiler.Gam.Quantify,UHC.Light.Compiler.Gam.TyGam,UHC.Light.Compiler.Gam.TyKiGam,UHC.Light.Compiler.Gam.Utils,UHC.Light.Compiler.Gam.ValGam,UHC.Light.Compiler.Generics,UHC.Light.Compiler.HI,UHC.Light.Compiler.HS,UHC.Light.Compiler.HS.MainAG,UHC.Light.Compiler.HS.ModImpExp,UHC.Light.Compiler.HS.Parser,UHC.Light.Compiler.LamInfo,UHC.Light.Compiler.Module.ImportExport,UHC.Light.Compiler.Module.Merge,UHC.Light.Compiler.NameAspect,UHC.Light.Compiler.Opts,UHC.Light.Compiler.Opts.Base,UHC.Light.Compiler.Opts.CommandLine,UHC.Light.Compiler.Pred,UHC.Light.Compiler.Pred.CHR,UHC.Light.Compiler.Pred.CommonCHR,UHC.Light.Compiler.Pred.Evidence,UHC.Light.Compiler.Pred.EvidenceToCore,UHC.Light.Compiler.Pred.Heuristics,UHC.Light.Compiler.Pred.RedGraph,UHC.Light.Compiler.Pred.ToCHR,UHC.Light.Compiler.Scanner.Common,UHC.Light.Compiler.Scanner.Machine,UHC.Light.Compiler.Scanner.Scanner,UHC.Light.Compiler.Scanner.Token,UHC.Light.Compiler.Scanner.TokenParser,UHC.Light.Compiler.SourceCodeSig,UHC.Light.Compiler.Substitutable,UHC.Light.Compiler.Ty,UHC.Light.Compiler.Ty.AppSpineGam,UHC.Light.Compiler.Ty.FIEnv,UHC.Light.Compiler.Ty.FIEnv2,UHC.Light.Compiler.Ty.FitsIn,UHC.Light.Compiler.Ty.FitsInCommon,UHC.Light.Compiler.Ty.FitsInCommon2,UHC.Light.Compiler.Ty.Ftv,UHC.Light.Compiler.Ty.Parser,UHC.Light.Compiler.Ty.Pretty,UHC.Light.Compiler.Ty.TreeTrieKey,UHC.Light.Compiler.Ty.Trf.BetaReduce,UHC.Light.Compiler.Ty.Trf.Canonic,UHC.Light.Compiler.Ty.Trf.FreshVar,UHC.Light.Compiler.Ty.Trf.Instantiate,UHC.Light.Compiler.Ty.Trf.MergePreds,UHC.Light.Compiler.Ty.Trf.Quantify,UHC.Light.Compiler.Ty.Trf.Subst,UHC.Light.Compiler.Ty.UsedNames,UHC.Light.Compiler.Ty.Utils1,UHC.Light.Compiler.Ty.Utils2,UHC.Light.Compiler.VarLookup,UHC.Light.Compiler.VarMp,UHC.Light.Compiler.VarMp.Utils + Exposed-Modules: UHC.Light.Compiler.API,UHC.Light.Compiler.Base.API,UHC.Light.Compiler.Core.API + Other-Modules: Paths_uhc_light,UHC.Light.Compiler.AbstractCore,UHC.Light.Compiler.AbstractCore.Utils,UHC.Light.Compiler.AnaDomain,UHC.Light.Compiler.AnaDomain.Ftv,UHC.Light.Compiler.AnaDomain.Pretty,UHC.Light.Compiler.AnaDomain.Trf.Instantiate,UHC.Light.Compiler.AnaDomain.Trf.Subst,UHC.Light.Compiler.AnaDomain.Utils,UHC.Light.Compiler.Base.CfgPP,UHC.Light.Compiler.Base.Common,UHC.Light.Compiler.Base.Debug,UHC.Light.Compiler.Base.FileSearchLocation,UHC.Light.Compiler.Base.Fld,UHC.Light.Compiler.Base.HsName,UHC.Light.Compiler.Base.HsName.Builtin,UHC.Light.Compiler.Base.Optimize,UHC.Light.Compiler.Base.PackageDatabase,UHC.Light.Compiler.Base.ParseUtils,UHC.Light.Compiler.Base.Parser,UHC.Light.Compiler.Base.Parser2,UHC.Light.Compiler.Base.Pragma,UHC.Light.Compiler.Base.RLList,UHC.Light.Compiler.Base.Range,UHC.Light.Compiler.Base.Strictness,UHC.Light.Compiler.Base.Target,UHC.Light.Compiler.Base.TermLike,UHC.Light.Compiler.Base.TreeTrie,UHC.Light.Compiler.Base.UID,UHC.Light.Compiler.CHR,UHC.Light.Compiler.CHR.Constraint,UHC.Light.Compiler.CHR.Key,UHC.Light.Compiler.CHR.Solve,UHC.Light.Compiler.CodeGen.BasicAnnot,UHC.Light.Compiler.CodeGen.Bits,UHC.Light.Compiler.CodeGen.BuiltinPrims,UHC.Light.Compiler.CodeGen.BuiltinSizeInfo,UHC.Light.Compiler.CodeGen.CVar,UHC.Light.Compiler.CodeGen.Const,UHC.Light.Compiler.CodeGen.ImportUsedModules,UHC.Light.Compiler.CodeGen.ModuleImportExportImpl,UHC.Light.Compiler.CodeGen.RefGenerator,UHC.Light.Compiler.CodeGen.Tag,UHC.Light.Compiler.CodeGen.TrfUtils,UHC.Light.Compiler.CodeGen.ValAccess,UHC.Light.Compiler.Config,UHC.Light.Compiler.ConfigCabal,UHC.Light.Compiler.ConfigDefines,UHC.Light.Compiler.ConfigInstall,UHC.Light.Compiler.ConfigInternalVersions,UHC.Light.Compiler.Core,UHC.Light.Compiler.Core.BindExtract,UHC.Light.Compiler.Core.Check,UHC.Light.Compiler.Core.Coercion,UHC.Light.Compiler.Core.ExtractFFE,UHC.Light.Compiler.Core.FFI,UHC.Light.Compiler.Core.FvS,UHC.Light.Compiler.Core.Merge,UHC.Light.Compiler.Core.ModAsMap,UHC.Light.Compiler.Core.Parser,UHC.Light.Compiler.Core.Pretty,UHC.Light.Compiler.Core.Subst,UHC.Light.Compiler.Core.SysF.AsTy,UHC.Light.Compiler.Core.ToCoreRun,UHC.Light.Compiler.Core.ToGrin,UHC.Light.Compiler.Core.Trf,UHC.Light.Compiler.Core.Trf.ANormal,UHC.Light.Compiler.Core.Trf.AnaRelevance,UHC.Light.Compiler.Core.Trf.AnnBasedSimplify,UHC.Light.Compiler.Core.Trf.CAFGlobalAsArg,UHC.Light.Compiler.Core.Trf.ConstProp,UHC.Light.Compiler.Core.Trf.ElimNonCodegenConstructs,UHC.Light.Compiler.Core.Trf.ElimTrivApp,UHC.Light.Compiler.Core.Trf.EraseExtractTysigCore,UHC.Light.Compiler.Core.Trf.EtaRed,UHC.Light.Compiler.Core.Trf.ExplicitStackTrace,UHC.Light.Compiler.Core.Trf.FixAfterParse,UHC.Light.Compiler.Core.Trf.FloatToGlobal,UHC.Light.Compiler.Core.Trf.InlineLetAlias,UHC.Light.Compiler.Core.Trf.LamGlobalAsArg,UHC.Light.Compiler.Core.Trf.LetDefBeforeUse,UHC.Light.Compiler.Core.Trf.LetFlattenStrict,UHC.Light.Compiler.Core.Trf.LetUnrec,UHC.Light.Compiler.Core.Trf.OptimizeStrictness,UHC.Light.Compiler.Core.Trf.RenUniq,UHC.Light.Compiler.Core.UsedModNms,UHC.Light.Compiler.Core.Utils,UHC.Light.Compiler.CoreRun,UHC.Light.Compiler.CoreRun.Pretty,UHC.Light.Compiler.CoreRun.Prim,UHC.Light.Compiler.CoreRun.Run,UHC.Light.Compiler.CoreRun.Run.Val,UHC.Light.Compiler.CoreRun.Run.Val.Prim,UHC.Light.Compiler.CoreRun.Run.Val.RunExplStk,UHC.Light.Compiler.CoreRun.Run.Val.RunImplStk,UHC.Light.Compiler.Deriving,UHC.Light.Compiler.EH,UHC.Light.Compiler.EH.MainAG,UHC.Light.Compiler.EH.MainAG_AGItf,UHC.Light.Compiler.EH.MainAG_CaseAlt,UHC.Light.Compiler.EH.MainAG_CaseAlts,UHC.Light.Compiler.EH.MainAG_DataConstr,UHC.Light.Compiler.EH.MainAG_DataConstrs,UHC.Light.Compiler.EH.MainAG_DataField,UHC.Light.Compiler.EH.MainAG_DataFieldExpr,UHC.Light.Compiler.EH.MainAG_DataFieldPatExpr,UHC.Light.Compiler.EH.MainAG_DataFields,UHC.Light.Compiler.EH.MainAG_Decl,UHC.Light.Compiler.EH.MainAG_Decls,UHC.Light.Compiler.EH.MainAG_Expr,UHC.Light.Compiler.EH.MainAG_ExprAnn,UHC.Light.Compiler.EH.MainAG_FuncDep,UHC.Light.Compiler.EH.MainAG_FuncDeps,UHC.Light.Compiler.EH.MainAG_KiExpr,UHC.Light.Compiler.EH.MainAG_KiExprAnn,UHC.Light.Compiler.EH.MainAG_MbTyExpr,UHC.Light.Compiler.EH.MainAG_PatExpr,UHC.Light.Compiler.EH.MainAG_PatExprAnn,UHC.Light.Compiler.EH.MainAG_PrExpr,UHC.Light.Compiler.EH.MainAG_PrExprs,UHC.Light.Compiler.EH.MainAG_RecExpr,UHC.Light.Compiler.EH.MainAG_RecPatExpr,UHC.Light.Compiler.EH.MainAG_RowTyExpr,UHC.Light.Compiler.EH.MainAG_TyExpr,UHC.Light.Compiler.EH.MainAG_TyExprAnn,UHC.Light.Compiler.EH.MainAG_TyExprs,UHC.Light.Compiler.EH.MainAG_TyVar,UHC.Light.Compiler.EH.MainAG_TyVars,UHC.Light.Compiler.EH.MainAG_common,UHC.Light.Compiler.EH.Parser,UHC.Light.Compiler.EHC.Common,UHC.Light.Compiler.EHC.CompileGroup,UHC.Light.Compiler.EHC.CompilePhase.Cleanup,UHC.Light.Compiler.EHC.CompilePhase.Common,UHC.Light.Compiler.EHC.CompilePhase.CompileC,UHC.Light.Compiler.EHC.CompilePhase.FlowBetweenPhase,UHC.Light.Compiler.EHC.CompilePhase.Link,UHC.Light.Compiler.EHC.CompilePhase.Module,UHC.Light.Compiler.EHC.CompilePhase.Output,UHC.Light.Compiler.EHC.CompilePhase.Parsers,UHC.Light.Compiler.EHC.CompilePhase.Run,UHC.Light.Compiler.EHC.CompilePhase.Semantics,UHC.Light.Compiler.EHC.CompilePhase.TopLevelPhases,UHC.Light.Compiler.EHC.CompilePhase.Transformations,UHC.Light.Compiler.EHC.CompilePhase.Translations,UHC.Light.Compiler.EHC.CompileRun,UHC.Light.Compiler.EHC.CompileUnit,UHC.Light.Compiler.EHC.Environment,UHC.Light.Compiler.EHC.InitialSetup,UHC.Light.Compiler.Error,UHC.Light.Compiler.Error.Pretty,UHC.Light.Compiler.FinalEnv,UHC.Light.Compiler.Foreign,UHC.Light.Compiler.Foreign.Boxing,UHC.Light.Compiler.Foreign.Extract,UHC.Light.Compiler.Foreign.Parser,UHC.Light.Compiler.Foreign.Pretty,UHC.Light.Compiler.Gam,UHC.Light.Compiler.Gam.AppSpineGam,UHC.Light.Compiler.Gam.Base,UHC.Light.Compiler.Gam.ClGam,UHC.Light.Compiler.Gam.ClassDefaultGam,UHC.Light.Compiler.Gam.DataGam,UHC.Light.Compiler.Gam.FixityGam,UHC.Light.Compiler.Gam.Full,UHC.Light.Compiler.Gam.Instantiate,UHC.Light.Compiler.Gam.KiGam,UHC.Light.Compiler.Gam.PolGam,UHC.Light.Compiler.Gam.Quantify,UHC.Light.Compiler.Gam.TyGam,UHC.Light.Compiler.Gam.TyKiGam,UHC.Light.Compiler.Gam.Utils,UHC.Light.Compiler.Gam.ValGam,UHC.Light.Compiler.Generics,UHC.Light.Compiler.HI,UHC.Light.Compiler.HS,UHC.Light.Compiler.HS.MainAG,UHC.Light.Compiler.HS.ModImpExp,UHC.Light.Compiler.HS.Parser,UHC.Light.Compiler.LamInfo,UHC.Light.Compiler.Module.ImportExport,UHC.Light.Compiler.Module.Merge,UHC.Light.Compiler.NameAspect,UHC.Light.Compiler.Opts,UHC.Light.Compiler.Opts.Base,UHC.Light.Compiler.Opts.CommandLine,UHC.Light.Compiler.Pred,UHC.Light.Compiler.Pred.CHR,UHC.Light.Compiler.Pred.CommonCHR,UHC.Light.Compiler.Pred.Evidence,UHC.Light.Compiler.Pred.EvidenceToCore,UHC.Light.Compiler.Pred.Heuristics,UHC.Light.Compiler.Pred.RedGraph,UHC.Light.Compiler.Pred.ToCHR,UHC.Light.Compiler.Scanner.Common,UHC.Light.Compiler.Scanner.Machine,UHC.Light.Compiler.Scanner.Scanner,UHC.Light.Compiler.Scanner.Token,UHC.Light.Compiler.Scanner.TokenParser,UHC.Light.Compiler.SourceCodeSig,UHC.Light.Compiler.Substitutable,UHC.Light.Compiler.Ty,UHC.Light.Compiler.Ty.AppSpineGam,UHC.Light.Compiler.Ty.FIEnv,UHC.Light.Compiler.Ty.FIEnv2,UHC.Light.Compiler.Ty.FitsIn,UHC.Light.Compiler.Ty.FitsInCommon,UHC.Light.Compiler.Ty.FitsInCommon2,UHC.Light.Compiler.Ty.Ftv,UHC.Light.Compiler.Ty.Parser,UHC.Light.Compiler.Ty.Pretty,UHC.Light.Compiler.Ty.TreeTrieKey,UHC.Light.Compiler.Ty.Trf.BetaReduce,UHC.Light.Compiler.Ty.Trf.Canonic,UHC.Light.Compiler.Ty.Trf.FreshVar,UHC.Light.Compiler.Ty.Trf.Instantiate,UHC.Light.Compiler.Ty.Trf.MergePreds,UHC.Light.Compiler.Ty.Trf.Quantify,UHC.Light.Compiler.Ty.Trf.Subst,UHC.Light.Compiler.Ty.UsedNames,UHC.Light.Compiler.Ty.Utils1,UHC.Light.Compiler.Ty.Utils2,UHC.Light.Compiler.VarLookup,UHC.Light.Compiler.VarMp,UHC.Light.Compiler.VarMp.Utils Executable uhcl Hs-Source-Dirs: src- Build-Depends: uhc-light==1.1.7.1, fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale+ Build-Depends: uhc-light==1.1.7.2, fgl,hashable>=1.1&&<1.3,uhc-util>=0.1.3.7,base>=4&&<5,vector,syb,uulib,network,binary,mtl,directory,containers,array,process,primitive,binary,syb,bytestring,uulib>=0.9.12,old-locale Extensions: RankNTypes,MultiParamTypeClasses,FunctionalDependencies,UndecidableInstances,DeriveDataTypeable,OverlappingInstances,LiberalTypeSynonyms,StandaloneDeriving,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,ScopedTypeVariables Main-Is: EHC.hs