uhc-light 1.1.7.3 → 1.1.7.4
raw patch · 269 files changed
+3204/−3140 lines, 269 filesdep ~uhc-lightbinary-addedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: uhc-light
API changes (from Hackage documentation)
Files
- 103/lib/ag/CoreRun/AbsSyn.ag +1/−1
- 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.hi 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.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.3/103/cr/plain/Control/Monad.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Control/Monad.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Either.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Either.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/IORef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/IORef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/List.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/List.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Maybe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Maybe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Typeable.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Typeable.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Debug/Trace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Debug/Trace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Error.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Error.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Fix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Fix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Unsafe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Unsafe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Array.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Array.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Base.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Base.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bounded.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bounded.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/BoxArray.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/BoxArray.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Enum.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Enum.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Eq.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Eq.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Float.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Float.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/GC.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/GC.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics/Tuple.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics/Tuple.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Handle.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Handle.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IOBase.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IOBase.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/LazyST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/LazyST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MutVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MutVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/OldException.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/OldException.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ord.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ord.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Prims.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Prims.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Read.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Read.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Real.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Real.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Run.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Run.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/ST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/ST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/STRef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/STRef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Show.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Show.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StackTrace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StackTrace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Types.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Types.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Weak.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Weak.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/WeakPtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/WeakPtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Unsafe/Coerce.cr binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Unsafe/Coerce.hi binary
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/CTypes.h +0/−231
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/HsBase.h +0/−757
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/HsBaseConfig.h +0/−944
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/IntLikeInstance.h +0/−242
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/MachDeps.h +0/−125
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/TupleInstance.h +0/−147
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/Typeable.h +0/−149
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/dirUtils.h +0/−11
- 103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/installed-pkg-config +0/−2
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.cr binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.hi binary
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/CTypes.h +231/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBase.h +757/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBaseConfig.h +944/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/IntLikeInstance.h +242/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/MachDeps.h +125/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/TupleInstance.h +147/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/Typeable.h +149/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/dirUtils.h +11/−0
- 103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/installed-pkg-config +2/−0
- changelog.md +7/−0
- src/UHC/Light/Compiler/Config.hs +3/−3
- src/UHC/Light/Compiler/ConfigInstall.hs +1/−1
- src/UHC/Light/Compiler/Core/API.hs +26/−7
- src/UHC/Light/Compiler/Core/Check.hs +339/−290
- src/UHC/Light/Compiler/Core/ToCoreRun.hs +77/−93
- src/UHC/Light/Compiler/Core/Trf.hs +20/−11
- src/UHC/Light/Compiler/CoreRun.hs +0/−1
- src/UHC/Light/Compiler/CoreRun/Pretty.hs +0/−15
- src/UHC/Light/Compiler/CoreRun/Run.hs +14/−7
- src/UHC/Light/Compiler/CoreRun/Run/Val.hs +19/−14
- src/UHC/Light/Compiler/CoreRun/Run/Val/RunExplStk.hs +15/−15
- src/UHC/Light/Compiler/CoreRun/Run/Val/RunImplStk.hs +9/−13
- src/UHC/Light/Compiler/EHC/CompilePhase/Transformations.hs +4/−2
- src/UHC/Light/Compiler/Opts.hs +39/−38
- src/UHC/Light/Compiler/Opts/Base.hs +15/−14
- src/UHC/Light/Compiler/SourceCodeSig.hs +2/−2
- uhc-light.cabal +3/−3
@@ -46,7 +46,7 @@ -- | Thunk expr : Exp -- expressed as parameterless Lam -- expr in a context to which must be returned (i.e. no tail rec)- | Ret expr : Exp+ -- | Ret expr : Exp -- expr in a case alternative result context (with local bindings to be removed) | RetCase nrBinds : {Int} expr : Exp
binary file changed (6272 → 6272 bytes)
@@ -1,2 +1,2 @@ exposed-modules: Data.Array-build-depends: uhcbase-1.1.7.3 base-3.0.0.0+build-depends: uhcbase-1.1.7.4 base-3.0.0.0
binary file changed (115937 → 115937 bytes)
binary file changed (140150 → 140150 bytes)
binary file changed (10045 → 10045 bytes)
binary file changed (18302 → 18302 bytes)
binary file changed (13430 → 13430 bytes)
binary file changed (7497 → 7497 bytes)
binary file changed (8458 → 8458 bytes)
binary file changed (4493 → 4493 bytes)
binary file changed (49047 → 49047 bytes)
binary file changed (28461 → 28461 bytes)
binary file changed (3879 → 3879 bytes)
binary file changed (32505 → 32505 bytes)
binary file changed (4931 → 4931 bytes)
binary file changed (4378 → 4378 bytes)
binary file changed (182317 → 182317 bytes)
binary file changed (5745 → 5745 bytes)
binary file changed (6454 → 6454 bytes)
binary file changed (7763 → 7763 bytes)
binary file changed (79702 → 79702 bytes)
binary file changed (6620 → 6620 bytes)
binary file changed (64078 → 64078 bytes)
binary file changed (77868 → 77868 bytes)
binary file changed (5235 → 5235 bytes)
binary file changed (69305 → 69305 bytes)
binary file changed (27804 → 27804 bytes)
binary file changed (4498 → 4498 bytes)
binary file changed (49978 → 49978 bytes)
binary file changed (5464 → 5464 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.3+build-depends: uhcbase-1.1.7.4
binary file changed (59274 → absent bytes)
binary file changed (27704 → absent bytes)
binary file changed (81556 → absent bytes)
binary file changed (24833 → absent bytes)
binary file changed (11057 → absent bytes)
binary file changed (5668 → absent bytes)
binary file changed (6448 → absent bytes)
binary file changed (3864 → absent bytes)
binary file changed (3362 → absent bytes)
binary file changed (3315 → absent bytes)
binary file changed (201705 → absent bytes)
binary file changed (46537 → absent bytes)
binary file changed (7855 → absent bytes)
binary file changed (4487 → absent bytes)
binary file changed (169654 → absent bytes)
binary file changed (112734 → absent bytes)
binary file changed (3050 → absent bytes)
binary file changed (4479 → absent bytes)
binary file changed (405 → absent bytes)
binary file changed (3275 → absent bytes)
binary file changed (149 → absent bytes)
binary file changed (2259 → absent bytes)
binary file changed (19571 → absent bytes)
binary file changed (14489 → absent bytes)
binary file changed (28631 → absent bytes)
binary file changed (16760 → absent bytes)
binary file changed (4710 → absent bytes)
binary file changed (2294 → absent bytes)
binary file changed (951 → absent bytes)
binary file changed (1984 → absent bytes)
binary file changed (213991 → absent bytes)
binary file changed (64563 → absent bytes)
binary file changed (2083123 → absent bytes)
binary file changed (950228 → absent bytes)
binary file changed (12702 → absent bytes)
binary file changed (5335 → absent bytes)
binary file changed (120616 → absent bytes)
binary file changed (60961 → absent bytes)
binary file changed (29019 → absent bytes)
binary file changed (21229 → absent bytes)
binary file changed (5196 → absent bytes)
binary file changed (1288 → absent bytes)
binary file changed (8067 → absent bytes)
binary file changed (4111 → absent bytes)
binary file changed (105918 → absent bytes)
binary file changed (66535 → absent bytes)
binary file changed (58776 → absent bytes)
binary file changed (4807 → absent bytes)
binary file changed (651 → absent bytes)
binary file changed (1259 → absent bytes)
binary file changed (207 → absent bytes)
binary file changed (16434 → absent bytes)
binary file changed (660787 → absent bytes)
binary file changed (421402 → absent bytes)
binary file changed (17942 → absent bytes)
binary file changed (11367 → absent bytes)
binary file changed (15077 → absent bytes)
binary file changed (5975 → absent bytes)
binary file changed (274670 → absent bytes)
binary file changed (144192 → absent bytes)
binary file changed (75873 → absent bytes)
binary file changed (30408 → absent bytes)
binary file changed (36959 → absent bytes)
binary file changed (23239 → absent bytes)
binary file changed (28401 → absent bytes)
binary file changed (10285 → absent bytes)
binary file changed (18012 → absent bytes)
binary file changed (10662 → absent bytes)
binary file changed (12018 → absent bytes)
binary file changed (5421 → absent bytes)
binary file changed (68629 → absent bytes)
binary file changed (21837 → absent bytes)
binary file changed (192936 → absent bytes)
binary file changed (73547 → absent bytes)
binary file changed (24745 → absent bytes)
binary file changed (21209 → absent bytes)
binary file changed (87122 → absent bytes)
binary file changed (17136 → absent bytes)
binary file changed (7166 → absent bytes)
binary file changed (1916 → absent bytes)
binary file changed (11555 → absent bytes)
binary file changed (5056 → absent bytes)
binary file changed (47124 → absent bytes)
binary file changed (31438 → absent bytes)
binary file changed (22510 → absent bytes)
binary file changed (15348 → absent bytes)
binary file changed (151263 → absent bytes)
binary file changed (36709 → absent bytes)
binary file changed (21492 → absent bytes)
binary file changed (16107 → absent bytes)
binary file changed (141 → absent bytes)
binary file changed (1380 → absent bytes)
binary file changed (67781 → absent bytes)
binary file changed (51972 → absent bytes)
binary file changed (26655 → absent bytes)
binary file changed (18131 → absent bytes)
binary file changed (13463 → absent bytes)
binary file changed (9775 → absent bytes)
binary file changed (140 → 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,12 @@ # Changelog +## 1.1.7.4++- [core] Detection of yes/no ANormal form of parsed Core and corresponding no/yes transformation (not tested for cases where it matters; unknown whether this is good enough for codegen to work properly)+- [cleanup] Removal of src/ruler from source tree (has its own repo)+- [api] Added better documentation and one small example program+- [api] Fix issue #36 (wrong runtime behaviour and/or crashes)+ ## 1.1.7.3 - 20141127 - [core] Core running engine works (FFI stuff still to be done).
@@ -64,12 +64,12 @@ , verMajor = "1" , verMinor = "1" , verMinorMinor = "7"- , verMinorMinorMinor = "3"+ , verMinorMinorMinor = "4" , verQuality = "alpha" , verShort = "1.1" , verMedium = "1.1.7"- , verFull = "1.1.7.3"- , verAsNumber = "1173"+ , verFull = "1.1.7.4"+ , verAsNumber = "1174" , verProg = "ehc" }
@@ -11,7 +11,7 @@ cppOpts = fst $ parseCmdLineOpts Cmd_CPP "-Wno-invalid-pp-token" -- cppOpts = showCmdLineOpts cppOpts' -ehcSvnRevision = "master@2f2d76bc15"+ehcSvnRevision = "master@b0046838b1" ehcDefaultInplaceInstallDir = "/Volumes/Work/Programming/uhc/EHC/install"
@@ -1,20 +1,28 @@ {-# LINE 2 "src/ehc/Core/API.chs" #-} --- | Core Public API (provisional, to be refactored)+-- | Core Public API (provisional) -- -- 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.+-- You will need to install the full UHC Compiler Suite in addition to uhc-light for this, and Core support+-- in UHC has to be enabled (use the @--enable-core-asinpoutp@ configure option). See <https://github.com/UU-ComputerScience/uhc> for more details. --+-- A small example program can be found at <https://github.com/UU-ComputerScience/uhc/tree/master/EHC/demo/CoreApi/> .+-- In general, it is also a good idea to see what kind of Core UHC generates for Haskell files. To do this,+-- call UHC with the option @--coreopt=dump@. This will produce an additional XXX.tcr file which you can+-- read in any text editor. It may also be a good idea to add the @NoGenericDeriving@ pragma+-- to your haskell files, as this will make the produced Core code much smaller.+-- -- 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.------ TODO:--- - Constructor applications (mkCon) always have to be fully saturated. (move to acoreTagTup)--- - Haskell constructor names must be unambigous per module (mkHSCTag)-+-- The pretty printing should work good enough for dumping generated core+-- code as debug output.+-- - Calling Haskell functions which use the haskell class system is not (yet?) supported.+-- - Avoiding name clashes is the responsibility of the user. The behaviour if duplicate+-- names exists is undefined. module UHC.Light.Compiler.Core.API ( -- * Core AST@@ -323,7 +331,18 @@ -> [EC.CDeclMeta] -- ^ The meta information. -> EC.CExpr -- ^ The body of the module. -> EC.CModule-mkModule = EC.CModule_Mod+mkModule mod exps imps meta body =+ EC.CModule_Mod mod exps imps meta body'+ -- TODO this is a work around, it forces UHC to recognize that+ -- this core file is not yet lambda-lifted.+ -- See issue #36.+ where body' = mkLet1Plain dummyName (mkApp+ (mkLam [mkUniqueHsName prefix [] "dummy-arg"] unit)+ [ unit ]+ ) body+ unit = mkUnit defaultEHCOpts+ dummyName = hsnUniqifyStr HsNameUniqifier_CoreAPI prefix $ hsnPrefixQual mod (hsnFromString "dummy")+ prefix = "nl.uu.uhc.core-api.lambda-lift-fix" -- | Creates an import. mkImport :: HsName -- ^ The module to import.
@@ -1,7 +1,8 @@ -- UUAGC 0.9.50.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Check.ag)-module UHC.Light.Compiler.Core.Check(cmodCheck', Inh_CodeAGItf (..), Syn_CodeAGItf (..)) where+module UHC.Light.Compiler.Core.Check(NotYetTransformed (..), NotYetTransformedS+, cmodCheck', Inh_CodeAGItf (..), Syn_CodeAGItf (..)) where import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Base.Common@@ -39,6 +40,16 @@ +-- | What not yet has been transformed in the given Core, absence means some aspect has been transformed everywhere+data NotYetTransformed+ = NotYetTransformed_LambdaLifted+ | NotYetTransformed_ANormal+ deriving (Eq, Ord, Show, Enum, Bounded)++type NotYetTransformedS = Set.Set NotYetTransformed+++ cmodCheck' :: Inh_CodeAGItf -> CModule@@ -115,7 +126,7 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_lhsIopts) of { _patOopts -> (case (_lev) of@@ -222,9 +233,9 @@ errs : ErrSq hasMain : Bool isFreeOfLam : Bool- isLamLifted : Bool modDefsRel : ModEntRel nm : HsName+ notYetTransformed : NotYetTransformedS undefNmMp : UndefNmMp alternatives: alternative Bind:@@ -243,7 +254,7 @@ CBindCateg -> Int -> EHCOpts ->- ( ErrSq,Bool,Bool,Bool,ModEntRel,HsName,UndefNmMp)+ ( ErrSq,Bool,Bool,ModEntRel,HsName,NotYetTransformedS,UndefNmMp) sem_CBind_Bind :: HsName -> T_CBoundL -> T_CBind@@ -269,23 +280,23 @@ (case (nm_) of { _bindAspectsOnm -> (case (bindAspects_ _bindAspectsOdataGam _bindAspectsOevalCtx _bindAspectsOisGlobal _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm _bindAspectsOopts) of- { ( _bindAspectsIerrs,_bindAspectsIisFreeOfLam,_bindAspectsIisLamLifted,_bindAspectsIundefNmMp) ->+ { ( _bindAspectsIerrs,_bindAspectsIisFreeOfLam,_bindAspectsInotYetTransformed,_bindAspectsIundefNmMp) -> (case (_bindAspectsIerrs) of { _lhsOerrs -> (case (nm_ == hsnMain) of { _lhsOhasMain -> (case (_bindAspectsIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_bindAspectsIisLamLifted) of- { _lhsOisLamLifted ->- (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 (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 (_bindAspectsInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_bindAspectsIundefNmMp) of { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOnm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOmodDefsRel,_lhsOnm,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CBindAnn ---------------------------------------------------- {- visit 0:@@ -407,8 +418,8 @@ errs : ErrSq hasMain : Bool isFreeOfLam : Bool- isLamLifted : Bool modDefsRel : ModEntRel+ notYetTransformed : NotYetTransformedS undefNmMp : UndefNmMp alternatives: alternative Cons:@@ -428,7 +439,7 @@ CBindCateg -> Int -> EHCOpts ->- ( ErrSq,Bool,Bool,Bool,ModEntRel,UndefNmMp)+ ( ErrSq,Bool,Bool,ModEntRel,NotYetTransformedS,UndefNmMp) sem_CBindL_Cons :: T_CBind -> T_CBindL -> T_CBindL@@ -452,7 +463,7 @@ (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_ _tlOdataGam _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOopts) of- { ( _tlIerrs,_tlIhasMain,_tlIisFreeOfLam,_tlIisLamLifted,_tlImodDefsRel,_tlIundefNmMp) ->+ { ( _tlIerrs,_tlIhasMain,_tlIisFreeOfLam,_tlImodDefsRel,_tlInotYetTransformed,_tlIundefNmMp) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsIlev) of@@ -466,20 +477,20 @@ (case (_lhsIdataGam) of { _hdOdataGam -> (case (hd_ _hdOdataGam _hdOevalCtx _hdOisGlobal _hdOletBindingsCateg _hdOlev _hdOopts) of- { ( _hdIerrs,_hdIhasMain,_hdIisFreeOfLam,_hdIisLamLifted,_hdImodDefsRel,_hdInm,_hdIundefNmMp) ->+ { ( _hdIerrs,_hdIhasMain,_hdIisFreeOfLam,_hdImodDefsRel,_hdInm,_hdInotYetTransformed,_hdIundefNmMp) -> (case (_hdIerrs `Seq.union` _tlIerrs) of { _lhsOerrs -> (case (_hdIhasMain || _tlIhasMain) of { _lhsOhasMain -> (case (_hdIisFreeOfLam && _tlIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_hdIisLamLifted && _tlIisLamLifted) of- { _lhsOisLamLifted ->- (case (_hdImodDefsRel `Rel.union` _tlImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (_hdImodDefsRel `Rel.union` _tlImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_hdInotYetTransformed `Set.union` _tlInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBindL_Nil :: T_CBindL sem_CBindL_Nil = (\ _lhsIdataGam@@ -494,13 +505,13 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmodDefsRel,_lhsOundefNmMp) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) })) -- CBound ------------------------------------------------------ {- visit 0:@@ -517,7 +528,8 @@ synthesized attributes: errs : ErrSq isFreeOfLam : Bool- isLamLifted : Bool+ isSimple : Bool+ notYetTransformed : NotYetTransformedS undefNmMp : UndefNmMp alternatives: alternative Bind:@@ -525,7 +537,8 @@ child expr : CExpr visit 0: local whatAbove : {WhatExpr}- local isLamLifted : _+ local isSimple : _+ local bindNotYetTransformed : _ alternative Meta: child aspectKeyS : {ACoreBindAspectKeyS} child cmetas : CMetas @@ -539,7 +552,8 @@ child expr : CExpr visit 0: local whatAbove : {WhatExpr}- local isLamLifted : _+ local isSimple : _+ local bindNotYetTransformed : _ alternative Ty: child aspectKeyS : {ACoreBindAspectKeyS} child ty : {Ty}@@ -576,7 +590,7 @@ Int -> HsName -> EHCOpts ->- ( ErrSq,Bool,Bool,UndefNmMp)+ ( ErrSq,Bool,Bool,NotYetTransformedS,UndefNmMp) sem_CBound_Bind :: T_CMetas -> T_CExpr -> T_CBound@@ -607,7 +621,7 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_lhsIopts) of { _bindMetaOopts -> (case (_lhsIlev) of@@ -620,15 +634,27 @@ { _lhsOerrs -> (case (_bindMetaIisFreeOfLam && _exprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (if whatExprIsLam _exprIwhatBelow- then _lhsIisGlobal && _exprIlamBodyIsFreeOfLam- else _exprIisFreeOfLam) of- { _isLamLifted ->- (case (_isLamLifted) of- { _lhsOisLamLifted ->- (case (_bindMetaIundefNmMp `undefmpUnion` _exprIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (case _exprIwhatBelow of+ ExprIsVar _ -> True+ ExprIsInt _ -> True+ ExprIsOtherWHNF -> True+ _ -> False) of+ { _isSimple ->+ (case (_isSimple) of+ { _lhsOisSimple ->+ (case (if whatExprIsLam _exprIwhatBelow+ then if _lhsIisGlobal && _exprIlamBodyIsFreeOfLam+ then Set.empty+ else Set.singleton NotYetTransformed_LambdaLifted+ else if _exprIisFreeOfLam+ then Set.empty+ else Set.singleton NotYetTransformed_LambdaLifted) of+ { _bindNotYetTransformed ->+ (case (Set.unions [_bindNotYetTransformed, _exprInotYetTransformed]) of+ { _lhsOnotYetTransformed ->+ (case (_bindMetaIundefNmMp `undefmpUnion` _exprIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_Meta :: ACoreBindAspectKeyS -> T_CMetas -> T_CBound@@ -654,11 +680,13 @@ { _lhsOerrs -> (case (_cmetasIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (_cmetasIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }))+ (case (False) of+ { _lhsOisSimple ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed ->+ (case (_cmetasIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) })) sem_CBound_RelevTy :: ACoreBindAspectKeyS -> RelevTy -> T_CBound@@ -676,11 +704,13 @@ { _lhsOerrs -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (Map.empty) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }))+ (case (False) of+ { _lhsOisSimple ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) })) sem_CBound_Val :: ACoreBindAspectKeyS -> MetaLev -> CLbl ->@@ -713,20 +743,32 @@ (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs) of { _lhsOerrs -> (case (_exprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (if whatExprIsLam _exprIwhatBelow- then _lhsIisGlobal && _exprIlamBodyIsFreeOfLam- else _exprIisFreeOfLam) of- { _isLamLifted ->- (case (_isLamLifted) of- { _lhsOisLamLifted ->- (case (_exprIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (case _exprIwhatBelow of+ ExprIsVar _ -> True+ ExprIsInt _ -> True+ ExprIsOtherWHNF -> True+ _ -> False) of+ { _isSimple ->+ (case (_isSimple) of+ { _lhsOisSimple ->+ (case (if whatExprIsLam _exprIwhatBelow+ then if _lhsIisGlobal && _exprIlamBodyIsFreeOfLam+ then Set.empty+ else Set.singleton NotYetTransformed_LambdaLifted+ else if _exprIisFreeOfLam+ then Set.empty+ else Set.singleton NotYetTransformed_LambdaLifted) of+ { _bindNotYetTransformed ->+ (case (Set.unions [_bindNotYetTransformed, _exprInotYetTransformed]) of+ { _lhsOnotYetTransformed ->+ (case (_exprIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_Ty :: ACoreBindAspectKeyS -> Ty -> T_CBound@@ -744,11 +786,13 @@ { _lhsOerrs -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (Map.empty) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }))+ (case (False) of+ { _lhsOisSimple ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed ->+ (case (Map.empty) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) })) sem_CBound_FFE :: FFIWay -> ForeignEnt -> T_CExpr ->@@ -781,16 +825,18 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs) of { _lhsOerrs -> (case (_exprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted) of- { _lhsOisLamLifted ->- (case (_exprIundefNmMp) of- { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (False) of+ { _lhsOisSimple ->+ (case (_exprInotYetTransformed) of+ { _lhsOnotYetTransformed ->+ (case (_exprIundefNmMp) of+ { _lhsOundefNmMp ->+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisSimple,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CBoundL ----------------------------------------------------- {- visit 0:@@ -805,7 +851,7 @@ synthesized attributes: errs : ErrSq isFreeOfLam : Bool- isLamLifted : Bool+ notYetTransformed : NotYetTransformedS undefNmMp : UndefNmMp alternatives: alternative Cons:@@ -826,7 +872,7 @@ Int -> HsName -> EHCOpts ->- ( ErrSq,Bool,Bool,UndefNmMp)+ ( ErrSq,Bool,NotYetTransformedS,UndefNmMp) sem_CBoundL_Cons :: T_CBound -> T_CBoundL -> T_CBoundL@@ -853,7 +899,7 @@ (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_ _tlOdataGam _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOnm _tlOopts) of- { ( _tlIerrs,_tlIisFreeOfLam,_tlIisLamLifted,_tlIundefNmMp) ->+ { ( _tlIerrs,_tlIisFreeOfLam,_tlInotYetTransformed,_tlIundefNmMp) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsInm) of@@ -873,16 +919,16 @@ (case (True) of { _hdOisTopApp -> (case (hd_ _hdOdataGam _hdOevalCtx _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOletBindingsCateg _hdOlev _hdOnm _hdOopts) of- { ( _hdIerrs,_hdIisFreeOfLam,_hdIisLamLifted,_hdIundefNmMp) ->+ { ( _hdIerrs,_hdIisFreeOfLam,_hdIisSimple,_hdInotYetTransformed,_hdIundefNmMp) -> (case (_hdIerrs `Seq.union` _tlIerrs) of { _lhsOerrs -> (case (_hdIisFreeOfLam && _tlIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_hdIisLamLifted && _tlIisLamLifted) of- { _lhsOisLamLifted ->+ (case (_hdInotYetTransformed `Set.union` _tlInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_hdIundefNmMp `undefmpUnion` _tlIundefNmMp) of { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBoundL_Nil :: T_CBoundL sem_CBoundL_Nil = (\ _lhsIdataGam@@ -896,11 +942,11 @@ { _lhsOerrs -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOundefNmMp) }) }) }) }))+ ( _lhsOerrs,_lhsOisFreeOfLam,_lhsOnotYetTransformed,_lhsOundefNmMp) }) }) }) })) -- CDataCon ---------------------------------------------------- {- visit 0:@@ -1147,9 +1193,9 @@ errs : ErrSq hasMain : Bool isFreeOfLam : Bool- isLamLifted : Bool lamBodyIsFreeOfLam : Bool modDefsRel : ModEntRel+ notYetTransformed : NotYetTransformedS undefNmMp : UndefNmMp whatBelow : WhatExpr alternatives:@@ -1198,6 +1244,7 @@ local isTopTup : _ local isGlobal : _ local whatAbove : {WhatExpr}+ local appNotYetTransformed : _ local whatBelow : _ alternative Lam: child bind : CBind @@ -1359,7 +1406,7 @@ Int -> EHCOpts -> WhatExpr ->- ( ErrSq,Bool,Bool,Bool,Bool,ModEntRel,UndefNmMp,WhatExpr)+ ( ErrSq,Bool,Bool,Bool,ModEntRel,NotYetTransformedS,UndefNmMp,WhatExpr) sem_CExpr_Var :: ACoreBindRef -> T_CExpr sem_CExpr_Var ref_ =@@ -1376,12 +1423,12 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (acbrefNm ref_) of@@ -1390,7 +1437,7 @@ { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Int :: Int -> T_CExpr sem_CExpr_Int int_ =@@ -1407,19 +1454,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsInt int_) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Char :: Char -> T_CExpr sem_CExpr_Char char_ =@@ -1436,19 +1483,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsOtherWHNF) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_String :: String -> T_CExpr sem_CExpr_String str_ =@@ -1465,19 +1512,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsOtherWHNF) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Integer :: Integer -> T_CExpr sem_CExpr_Integer integer_ =@@ -1494,19 +1541,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsOtherWHNF) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Tup :: CTag -> T_CExpr sem_CExpr_Tup tag_ =@@ -1523,19 +1570,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsTup tag_) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Let :: CBindCateg -> T_CBindL -> T_CExpr ->@@ -1573,7 +1620,7 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyInotYetTransformed,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_lhsIopts) of { _bindsOopts -> (case (categ_) of@@ -1591,26 +1638,26 @@ (case (_lhsIlev + 1) of { _bindsOlev -> (case (binds_ _bindsOdataGam _bindsOevalCtx _bindsOisGlobal _bindsOletBindingsCateg _bindsOlev _bindsOopts) of- { ( _bindsIerrs,_bindsIhasMain,_bindsIisFreeOfLam,_bindsIisLamLifted,_bindsImodDefsRel,_bindsIundefNmMp) ->+ { ( _bindsIerrs,_bindsIhasMain,_bindsIisFreeOfLam,_bindsImodDefsRel,_bindsInotYetTransformed,_bindsIundefNmMp) -> (case (_bindsIerrs `Seq.union` _bodyIerrs) of { _lhsOerrs -> (case (_bindsIhasMain || _bodyIhasMain) of { _lhsOhasMain -> (case (_bindsIisFreeOfLam && _bodyIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_bindsIisLamLifted && _bodyIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_bindsImodDefsRel `Rel.union` _bodyImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_bindsImodDefsRel `Rel.union` _bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bindsInotYetTransformed `Set.union` _bodyInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_bindsIundefNmMp `undefmpUnion` _bodyIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_App :: T_CExpr -> T_CBound -> T_CExpr@@ -1647,7 +1694,7 @@ (case (True) of { _argOisTopApp -> (case (arg_ _argOdataGam _argOevalCtx _argOisGlobal _argOisTopApp _argOisTopTup _argOletBindingsCateg _argOlev _argOnm _argOopts) of- { ( _argIerrs,_argIisFreeOfLam,_argIisLamLifted,_argIundefNmMp) ->+ { ( _argIerrs,_argIisFreeOfLam,_argIisSimple,_argInotYetTransformed,_argIundefNmMp) -> (case (maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove) of { _whatAbove -> (case (_whatAbove) of@@ -1665,26 +1712,28 @@ (case (False) of { _funcOisTopApp -> (case (func_ _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOwhatAbove) of- { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcIundefNmMp,_funcIwhatBelow) ->+ { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcInotYetTransformed,_funcIundefNmMp,_funcIwhatBelow) -> (case (_funcIerrs `Seq.union` _argIerrs) of { _lhsOerrs -> (case (_funcIhasMain) of { _lhsOhasMain -> (case (_funcIisFreeOfLam && _argIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_funcIisLamLifted && _argIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (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) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_funcImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (if _argIisSimple then Set.empty else Set.singleton NotYetTransformed_ANormal) of+ { _appNotYetTransformed ->+ (case (Set.unions [_appNotYetTransformed, _funcInotYetTransformed, _argInotYetTransformed]) of+ { _lhsOnotYetTransformed ->+ (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,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Lam :: T_CBind -> T_CExpr -> T_CExpr@@ -1722,7 +1771,7 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyInotYetTransformed,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_lhsIopts) of { _bindOopts -> (case (_lev) of@@ -1740,28 +1789,28 @@ (case (_lhsIdataGam) of { _bindOdataGam -> (case (bind_ _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of- { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindImodDefsRel,_bindInm,_bindIundefNmMp) ->+ { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindImodDefsRel,_bindInm,_bindInotYetTransformed,_bindIundefNmMp) -> (case (_bindIerrs `Seq.union` _bodyIerrs) of { _lhsOerrs -> (case (_bindIhasMain || _bodyIhasMain) of { _lhsOhasMain -> (case (False) of { _lhsOisFreeOfLam ->- (case (_bindIisLamLifted && _bodyIisLamLifted) of- { _lhsOisLamLifted ->- (case (if whatExprIsLam _bodyIwhatBelow- then _bodyIlamBodyIsFreeOfLam- else _bodyIisFreeOfLam) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_bindImodDefsRel `Rel.union` _bodyImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (if whatExprIsLam _bodyIwhatBelow+ then _bodyIlamBodyIsFreeOfLam+ else _bodyIisFreeOfLam) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_bindImodDefsRel `Rel.union` _bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bindInotYetTransformed `Set.union` _bodyInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_bindIundefNmMp `undefmpUnion` _bodyIundefNmMp) of { _lhsOundefNmMp -> (case (maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Case :: T_CExpr -> T_CAltL -> T_CExpr ->@@ -1795,7 +1844,7 @@ (case (_lhsIdataGam) of { _dfltOdataGam -> (case (dflt_ _dfltOdataGam _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlev _dfltOopts _dfltOwhatAbove) of- { ( _dfltIerrs,_dfltIhasMain,_dfltIisFreeOfLam,_dfltIisLamLifted,_dfltIlamBodyIsFreeOfLam,_dfltImodDefsRel,_dfltIundefNmMp,_dfltIwhatBelow) ->+ { ( _dfltIerrs,_dfltIhasMain,_dfltIisFreeOfLam,_dfltIlamBodyIsFreeOfLam,_dfltImodDefsRel,_dfltInotYetTransformed,_dfltIundefNmMp,_dfltIwhatBelow) -> (case (_lhsIopts) of { _altsOopts -> (case (_lhsIlev) of@@ -1821,26 +1870,26 @@ (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _altsIerrs `Seq.union` _dfltIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _dfltIhasMain) of { _lhsOhasMain -> (case (_exprIisFreeOfLam && _altsIisFreeOfLam && _dfltIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted && _dfltIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_exprImodDefsRel `Rel.union` _dfltImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_exprImodDefsRel `Rel.union` _dfltImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprInotYetTransformed `Set.union` _dfltInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_exprIundefNmMp `undefmpUnion` _altsIundefNmMp `undefmpUnion` _dfltIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_CaseAltFail :: CaseAltFailReason -> T_CExpr -> T_CExpr@@ -1873,24 +1922,24 @@ (case (_lhsIdataGam) of { _errorExprOdataGam -> (case (errorExpr_ _errorExprOdataGam _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlev _errorExprOopts _errorExprOwhatAbove) of- { ( _errorExprIerrs,_errorExprIhasMain,_errorExprIisFreeOfLam,_errorExprIisLamLifted,_errorExprIlamBodyIsFreeOfLam,_errorExprImodDefsRel,_errorExprIundefNmMp,_errorExprIwhatBelow) ->+ { ( _errorExprIerrs,_errorExprIhasMain,_errorExprIisFreeOfLam,_errorExprIlamBodyIsFreeOfLam,_errorExprImodDefsRel,_errorExprInotYetTransformed,_errorExprIundefNmMp,_errorExprIwhatBelow) -> (case (_errorExprIerrs) of { _lhsOerrs -> (case (_errorExprIhasMain) of { _lhsOhasMain -> (case (_errorExprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_errorExprIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_errorExprImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_errorExprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_errorExprInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_errorExprIundefNmMp) of { _lhsOundefNmMp -> (case (_errorExprIwhatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupDel :: T_CExpr -> CTag -> HsName ->@@ -1925,7 +1974,7 @@ (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetInotYetTransformed,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of@@ -1941,26 +1990,26 @@ (case (False) of { _exprOisTopTup -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _offsetIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _offsetIhasMain) of { _lhsOhasMain -> (case (_exprIisFreeOfLam && _offsetIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted && _offsetIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprInotYetTransformed `Set.union` _offsetInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupIns :: T_CExpr -> CTag -> HsName ->@@ -1996,7 +2045,7 @@ (case (_lhsIdataGam) of { _fldExprOdataGam -> (case (fldExpr_ _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOwhatAbove) of- { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprIundefNmMp,_fldExprIwhatBelow) ->+ { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprInotYetTransformed,_fldExprIundefNmMp,_fldExprIwhatBelow) -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of@@ -2012,7 +2061,7 @@ (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetInotYetTransformed,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of@@ -2028,26 +2077,26 @@ (case (False) of { _exprOisTopTup -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _offsetIerrs `Seq.union` _fldExprIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _offsetIhasMain || _fldExprIhasMain) of { _lhsOhasMain -> (case (_exprIisFreeOfLam && _offsetIisFreeOfLam && _fldExprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted && _offsetIisLamLifted && _fldExprIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprInotYetTransformed `Set.union` _offsetInotYetTransformed `Set.union` _fldExprInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupUpd :: T_CExpr -> CTag -> HsName ->@@ -2083,7 +2132,7 @@ (case (_lhsIdataGam) of { _fldExprOdataGam -> (case (fldExpr_ _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOwhatAbove) of- { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIisLamLifted,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprIundefNmMp,_fldExprIwhatBelow) ->+ { ( _fldExprIerrs,_fldExprIhasMain,_fldExprIisFreeOfLam,_fldExprIlamBodyIsFreeOfLam,_fldExprImodDefsRel,_fldExprInotYetTransformed,_fldExprIundefNmMp,_fldExprIwhatBelow) -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of@@ -2099,7 +2148,7 @@ (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetInotYetTransformed,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of@@ -2115,26 +2164,26 @@ (case (False) of { _exprOisTopTup -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_exprIerrs `Seq.union` _offsetIerrs `Seq.union` _fldExprIerrs) of { _lhsOerrs -> (case (_exprIhasMain || _offsetIhasMain || _fldExprIhasMain) of { _lhsOhasMain -> (case (_exprIisFreeOfLam && _offsetIisFreeOfLam && _fldExprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted && _offsetIisLamLifted && _fldExprIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_exprImodDefsRel `Rel.union` _offsetImodDefsRel `Rel.union` _fldExprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprInotYetTransformed `Set.union` _offsetInotYetTransformed `Set.union` _fldExprInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_exprIundefNmMp `undefmpUnion` _offsetIundefNmMp `undefmpUnion` _fldExprIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_FFI :: FFIWay -> String -> ForeignEnt ->@@ -2154,19 +2203,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsFFI) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Dbg :: String -> T_CExpr sem_CExpr_Dbg info_ =@@ -2183,19 +2232,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_Hole :: UID -> T_CExpr sem_CExpr_Hole uid_ =@@ -2212,19 +2261,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_HoleLet :: UID -> T_CExpr -> T_CExpr@@ -2257,26 +2306,26 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyInotYetTransformed,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_bodyIerrs) of { _lhsOerrs -> (case (_bodyIhasMain) of { _lhsOhasMain -> (case (_bodyIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_bodyIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_bodyImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bodyInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_bodyIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_CoeArg :: T_CExpr sem_CExpr_CoeArg = (\ _lhsIdataGam@@ -2292,19 +2341,19 @@ { _lhsOhasMain -> (case (True) of { _lhsOisFreeOfLam ->- (case (True) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (Rel.empty) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (Rel.empty) of+ { _lhsOmodDefsRel ->+ (case (Set.empty) of+ { _lhsOnotYetTransformed -> (case (Map.empty) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) sem_CExpr_ImplsApp :: T_CExpr -> ImplsVarId -> T_CExpr@@ -2337,26 +2386,26 @@ (case (_lhsIdataGam) of { _funcOdataGam -> (case (func_ _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOwhatAbove) of- { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIisLamLifted,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcIundefNmMp,_funcIwhatBelow) ->+ { ( _funcIerrs,_funcIhasMain,_funcIisFreeOfLam,_funcIlamBodyIsFreeOfLam,_funcImodDefsRel,_funcInotYetTransformed,_funcIundefNmMp,_funcIwhatBelow) -> (case (_funcIerrs) of { _lhsOerrs -> (case (_funcIhasMain) of { _lhsOhasMain -> (case (_funcIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_funcIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_funcImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_funcImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_funcInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_funcIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_ImplsLam :: ImplsVarId -> T_CExpr -> T_CExpr@@ -2389,26 +2438,26 @@ (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_ _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOwhatAbove) of- { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIisLamLifted,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyIundefNmMp,_bodyIwhatBelow) ->+ { ( _bodyIerrs,_bodyIhasMain,_bodyIisFreeOfLam,_bodyIlamBodyIsFreeOfLam,_bodyImodDefsRel,_bodyInotYetTransformed,_bodyIundefNmMp,_bodyIwhatBelow) -> (case (_bodyIerrs) of { _lhsOerrs -> (case (_bodyIhasMain) of { _lhsOhasMain -> (case (_bodyIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_bodyIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_bodyImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_bodyImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_bodyInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_bodyIundefNmMp) of { _lhsOundefNmMp -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Ann :: T_CExprAnn -> T_CExpr -> T_CExpr@@ -2435,7 +2484,7 @@ (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (_lhsIopts) of { _annOopts -> (case (_lhsIlev) of@@ -2450,17 +2499,17 @@ { _lhsOhasMain -> (case (_annIisFreeOfLam && _exprIisFreeOfLam) of { _lhsOisFreeOfLam ->- (case (_exprIisLamLifted) of- { _lhsOisLamLifted ->- (case (False) of- { _lhsOlamBodyIsFreeOfLam ->- (case (_exprImodDefsRel) of- { _lhsOmodDefsRel ->+ (case (False) of+ { _lhsOlamBodyIsFreeOfLam ->+ (case (_exprImodDefsRel) of+ { _lhsOmodDefsRel ->+ (case (_exprInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_annIundefNmMp `undefmpUnion` _exprIundefNmMp) of { _lhsOundefNmMp -> (case (_exprIwhatBelow) of { _lhsOwhatBelow ->- ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOhasMain,_lhsOisFreeOfLam,_lhsOlamBodyIsFreeOfLam,_lhsOmodDefsRel,_lhsOnotYetTransformed,_lhsOundefNmMp,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CExprAnn ---------------------------------------------------- {- visit 0:@@ -2866,8 +2915,8 @@ hasMain : Bool impModNmL : [HsName] isFreeOfLam : Bool- isLamLifted : Bool mod : Mod+ notYetTransformed : NotYetTransformedS realModuleNm : HsName undefNmMp : UndefNmMp alternatives:@@ -2892,7 +2941,7 @@ Int -> HsName -> EHCOpts ->- ( ErrSq,DataGam,Bool,([HsName]),Bool,Bool,Mod,HsName,UndefNmMp)+ ( ErrSq,DataGam,Bool,([HsName]),Bool,Mod,NotYetTransformedS,HsName,UndefNmMp) sem_CModule_Mod :: HsName -> T_CExportL -> T_CImportL ->@@ -2925,7 +2974,7 @@ (case (True) of { _exprOisTopApp -> (case (expr_ _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOwhatAbove) of- { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIisLamLifted,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprIundefNmMp,_exprIwhatBelow) ->+ { ( _exprIerrs,_exprIhasMain,_exprIisFreeOfLam,_exprIlamBodyIsFreeOfLam,_exprImodDefsRel,_exprInotYetTransformed,_exprIundefNmMp,_exprIwhatBelow) -> (case (imports_) of { ( _importsIerrs,_importsIimpModNmL,_importsImodImpL,_importsIundefNmMp) -> (case (exports_) of@@ -2940,17 +2989,17 @@ { _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 (moduleNm_) of+ { _realModuleNm ->+ (case (Mod _realModuleNm (Just _realModuleNm) (Just _exportsImodExpL) _importsImodImpL _exprImodDefsRel Rel.empty []) of+ { _lhsOmod ->+ (case (_exprInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_realModuleNm) of { _lhsOrealModuleNm -> (case (_exportsIundefNmMp `undefmpUnion` _importsIundefNmMp `undefmpUnion` _declMetasIundefNmMp `undefmpUnion` _exprIundefNmMp) of { _lhsOundefNmMp ->- ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisFreeOfLam,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisFreeOfLam,_lhsOmod,_lhsOnotYetTransformed,_lhsOrealModuleNm,_lhsOundefNmMp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0:@@ -3150,7 +3199,7 @@ (case (acoreBindcategPlain) of { _bindOletBindingsCateg -> (case (bind_ _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of- { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindIisLamLifted,_bindImodDefsRel,_bindInm,_bindIundefNmMp) ->+ { ( _bindIerrs,_bindIhasMain,_bindIisFreeOfLam,_bindImodDefsRel,_bindInm,_bindInotYetTransformed,_bindIundefNmMp) -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of@@ -3168,7 +3217,7 @@ (case (True) of { _offsetOisTopApp -> (case (offset_ _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOwhatAbove) of- { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIisLamLifted,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetIundefNmMp,_offsetIwhatBelow) ->+ { ( _offsetIerrs,_offsetIhasMain,_offsetIisFreeOfLam,_offsetIlamBodyIsFreeOfLam,_offsetImodDefsRel,_offsetInotYetTransformed,_offsetIundefNmMp,_offsetIwhatBelow) -> (case (_offsetIerrs `Seq.union` _bindIerrs `Seq.union` _fldAnnsIerrs) of { _lhsOerrs -> (case (_bindInm) of@@ -3319,8 +3368,8 @@ gathDataGam : DataGam hasMain : Bool impModNmL : [HsName]- isLamLifted : Bool mod : Mod+ notYetTransformed : NotYetTransformedS realModuleNm : HsName alternatives: alternative AGItf:@@ -3335,15 +3384,15 @@ type T_CodeAGItf = DataGam -> HsName -> EHCOpts ->- ( ErrSq,DataGam,Bool,([HsName]),Bool,Mod,HsName)+ ( ErrSq,DataGam,Bool,([HsName]),Mod,NotYetTransformedS,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)}+data Syn_CodeAGItf = Syn_CodeAGItf {errs_Syn_CodeAGItf :: !(ErrSq),gathDataGam_Syn_CodeAGItf :: !(DataGam),hasMain_Syn_CodeAGItf :: !(Bool),impModNmL_Syn_CodeAGItf :: !(([HsName])),mod_Syn_CodeAGItf :: !(Mod),notYetTransformed_Syn_CodeAGItf :: !(NotYetTransformedS),realModuleNm_Syn_CodeAGItf :: !(HsName)} wrap_CodeAGItf :: T_CodeAGItf -> Inh_CodeAGItf -> Syn_CodeAGItf 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))+ (let ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOmod,_lhsOnotYetTransformed,_lhsOrealModuleNm) = sem _lhsIdataGam _lhsImoduleNm _lhsIopts+ in (Syn_CodeAGItf _lhsOerrs _lhsOgathDataGam _lhsOhasMain _lhsOimpModNmL _lhsOmod _lhsOnotYetTransformed _lhsOrealModuleNm)) sem_CodeAGItf_AGItf :: T_CModule -> T_CodeAGItf sem_CodeAGItf_AGItf module_ =@@ -3359,7 +3408,7 @@ (case (cLevModule) of { _moduleOlev -> (case (module_ _moduleOdataGam _moduleOlev _moduleOmoduleNm _moduleOopts) of- { ( _moduleIerrs,_moduleIgathDataGam,_moduleIhasMain,_moduleIimpModNmL,_moduleIisFreeOfLam,_moduleIisLamLifted,_moduleImod,_moduleIrealModuleNm,_moduleIundefNmMp) ->+ { ( _moduleIerrs,_moduleIgathDataGam,_moduleIhasMain,_moduleIimpModNmL,_moduleIisFreeOfLam,_moduleImod,_moduleInotYetTransformed,_moduleIrealModuleNm,_moduleIundefNmMp) -> (case (_moduleIerrs) of { _lhsOerrs -> (case (_moduleIgathDataGam) of@@ -3368,10 +3417,10 @@ { _lhsOhasMain -> (case (_moduleIimpModNmL) of { _lhsOimpModNmL ->- (case (_moduleIisLamLifted) of- { _lhsOisLamLifted ->- (case (_moduleImod) of- { _lhsOmod ->+ (case (_moduleImod) of+ { _lhsOmod ->+ (case (_moduleInotYetTransformed) of+ { _lhsOnotYetTransformed -> (case (_moduleIrealModuleNm) of { _lhsOrealModuleNm ->- ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOisLamLifted,_lhsOmod,_lhsOrealModuleNm) }) }) }) }) }) }) }) }) }) }) }) }))+ ( _lhsOerrs,_lhsOgathDataGam,_lhsOhasMain,_lhsOimpModNmL,_lhsOmod,_lhsOnotYetTransformed,_lhsOrealModuleNm) }) }) }) }) }) }) }) }) }) }) }) }))
@@ -95,7 +95,7 @@ -- | Construct application mkApp :: CR.Exp -> CR.CRArray CR.Exp -> CR.Exp-mkApp f as = CR.Exp_App (CR.Exp_Ret $ CR.Exp_Force f) as+mkApp f as = CR.Exp_App ({- CR.Exp_Ret $ -} CR.Exp_Force f) as @@ -803,8 +803,6 @@ local refOffsetExpr : _ visit 1: local tailCtx : _- local isToBeReturned : _- local creMkReturned : _ local nm2refNew : _ local isToBeALam : _ local stackDepthMaxThunked : _@@ -834,8 +832,6 @@ local refOffsetExpr : _ visit 1: local tailCtx : _- local isToBeReturned : _- local creMkReturned : _ local nm2refNew : _ local isToBeALam : _ local stackDepthMaxThunked : _@@ -955,50 +951,44 @@ { _exprOtailCtx -> (case (_lhsInm2ref) of { _exprOnm2ref ->- (case (case _lhsIevalCtx of- EvalCtx_Eval -> True- _ -> False) of- { _isToBeReturned ->- (case (if _isToBeReturned then CR.Exp_Ret else id) of- { _creMkReturned ->- (case (if _isToBeThunked then _exprInm2refGath else Map.empty) of- { _nm2refNew ->- (case (_isToBeThunked || whatExprIsLam _exprIwhatBelow) of- { _isToBeALam ->- (case (if _isToBeALam then 0 else _lhsIstackDepth) of- { _exprOstackDepth ->- (case (_lhsIopts) of- { _exprOopts ->- (case (_lhsIevalCtx) of- { _exprOevalCtx ->- (case (True) of- { _exprOisTopTup ->- (case (True) of- { _exprOisTopApp ->- (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of- { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->- (case (max _exprIstackDepth _exprIstackDepthMax) of- { _stackDepthMaxThunked ->- (case (case _toBe of- ToBe_Forced -> tailrec _tailCtx . CR.Exp_Force- ToBe_Thunked -> CR.Exp_Lam (Just _lhsInm) _lev 0 (_exprIrefOffsetMax) (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)- ToBe_LeftAsIs -> id) of- { _creMkForce ->- (case (_creMkReturned $ _creMkForce _exprIcre) of- { _creBind ->- (case ([( _lhsInm, _creBind )]) of- { _crb ->- (case (_crb) of- { _lhsOcrb ->- (case (if _isToBeThunked then _lhsIrefOffset else max _exprIrefOffset _exprIrefOffsetMax) of- { _lhsOrefOffsetMax ->- (case (if _isToBeALam then _lhsIstackDepth+1 else _exprIstackDepth) of- { _stackDepthExpr ->- (case (_stackDepthExpr) of- { _lhsOstackDepth ->- (case (if _isToBeALam then _stackDepthExpr else _stackDepthMaxThunked) of- { _lhsOstackDepthMax ->- ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (if _isToBeThunked then _exprInm2refGath else Map.empty) of+ { _nm2refNew ->+ (case (_isToBeThunked || whatExprIsLam _exprIwhatBelow) of+ { _isToBeALam ->+ (case (if _isToBeALam then 0 else _lhsIstackDepth) of+ { _exprOstackDepth ->+ (case (_lhsIopts) of+ { _exprOopts ->+ (case (_lhsIevalCtx) of+ { _exprOevalCtx ->+ (case (True) of+ { _exprOisTopTup ->+ (case (True) of+ { _exprOisTopApp ->+ (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of+ { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+ (case (max _exprIstackDepth _exprIstackDepthMax) of+ { _stackDepthMaxThunked ->+ (case (case _toBe of+ ToBe_Forced -> tailrec _tailCtx . CR.Exp_Force+ ToBe_Thunked -> CR.Exp_Lam (Just _lhsInm) _lev 0 (_exprIrefOffsetMax) (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)+ ToBe_LeftAsIs -> id) of+ { _creMkForce ->+ (case (_creMkForce _exprIcre) of+ { _creBind ->+ (case ([( _lhsInm, _creBind )]) of+ { _crb ->+ (case (_crb) of+ { _lhsOcrb ->+ (case (if _isToBeThunked then _lhsIrefOffset else max _exprIrefOffset _exprIrefOffsetMax) of+ { _lhsOrefOffsetMax ->+ (case (if _isToBeALam then _lhsIstackDepth+1 else _exprIstackDepth) of+ { _stackDepthExpr ->+ (case (_stackDepthExpr) of+ { _lhsOstackDepth ->+ (case (if _isToBeALam then _stackDepthExpr else _stackDepthMaxThunked) of+ { _lhsOstackDepthMax ->+ ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBound_Bind_1)) of { ( sem_CBound_1) -> ( _lhsOnm2refGath,_lhsOrefOffset,sem_CBound_1) }) }) }) }) }) }) }) }) }) }) }) }) }) }))@@ -1154,50 +1144,44 @@ { _exprOtailCtx -> (case (_lhsInm2ref) of { _exprOnm2ref ->- (case (case _lhsIevalCtx of- EvalCtx_Eval -> True- _ -> False) of- { _isToBeReturned ->- (case (if _isToBeReturned then CR.Exp_Ret else id) of- { _creMkReturned ->- (case (if _isToBeThunked then _exprInm2refGath else Map.empty) of- { _nm2refNew ->- (case (_isToBeThunked || whatExprIsLam _exprIwhatBelow) of- { _isToBeALam ->- (case (if _isToBeALam then 0 else _lhsIstackDepth) of- { _exprOstackDepth ->- (case (_lhsIopts) of- { _exprOopts ->- (case (_lhsIisTopTup) of- { _exprOisTopTup ->- (case (_lhsIisTopApp) of- { _exprOisTopApp ->- (case (_lhsIevalCtx) of- { _exprOevalCtx ->- (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of- { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->- (case (max _exprIstackDepth _exprIstackDepthMax) of- { _stackDepthMaxThunked ->- (case (case _toBe of- ToBe_Forced -> tailrec _tailCtx . CR.Exp_Force- ToBe_Thunked -> CR.Exp_Lam (Just _lhsInm) _lev 0 (_exprIrefOffsetMax) (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)- ToBe_LeftAsIs -> id) of- { _creMkForce ->- (case (_creMkReturned $ _creMkForce _exprIcre) of- { _creBind ->- (case ([( _lhsInm, _creBind )]) of- { _crb ->- (case (_crb) of- { _lhsOcrb ->- (case (if _isToBeThunked then _lhsIrefOffset else max _exprIrefOffset _exprIrefOffsetMax) of- { _lhsOrefOffsetMax ->- (case (if _isToBeALam then _lhsIstackDepth+1 else _exprIstackDepth) of- { _stackDepthExpr ->- (case (_stackDepthExpr) of- { _lhsOstackDepth ->- (case (if _isToBeALam then _stackDepthExpr else _stackDepthMaxThunked) of- { _lhsOstackDepthMax ->- ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))+ (case (if _isToBeThunked then _exprInm2refGath else Map.empty) of+ { _nm2refNew ->+ (case (_isToBeThunked || whatExprIsLam _exprIwhatBelow) of+ { _isToBeALam ->+ (case (if _isToBeALam then 0 else _lhsIstackDepth) of+ { _exprOstackDepth ->+ (case (_lhsIopts) of+ { _exprOopts ->+ (case (_lhsIisTopTup) of+ { _exprOisTopTup ->+ (case (_lhsIisTopApp) of+ { _exprOisTopApp ->+ (case (_lhsIevalCtx) of+ { _exprOevalCtx ->+ (case (expr_2 _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOnm2ref _exprOopts _exprOstackDepth _exprOtailCtx) of+ { ( _exprIappFunKind,_exprIcrb,_exprIcre,_exprIcreAppArgL,_exprIcreAppFun,_exprIcreLamArgL,_exprIcreLamBody,_exprIcrse,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIrefOffsetMax,_exprIstackDepth,_exprIstackDepthMax) ->+ (case (max _exprIstackDepth _exprIstackDepthMax) of+ { _stackDepthMaxThunked ->+ (case (case _toBe of+ ToBe_Forced -> tailrec _tailCtx . CR.Exp_Force+ ToBe_Thunked -> CR.Exp_Lam (Just _lhsInm) _lev 0 (_exprIrefOffsetMax) (_stackDepthMaxThunked) (CR.nm2RefMpInverse _nm2refNew)+ ToBe_LeftAsIs -> id) of+ { _creMkForce ->+ (case (_creMkForce _exprIcre) of+ { _creBind ->+ (case ([( _lhsInm, _creBind )]) of+ { _crb ->+ (case (_crb) of+ { _lhsOcrb ->+ (case (if _isToBeThunked then _lhsIrefOffset else max _exprIrefOffset _exprIrefOffsetMax) of+ { _lhsOrefOffsetMax ->+ (case (if _isToBeALam then _lhsIstackDepth+1 else _exprIstackDepth) of+ { _stackDepthExpr ->+ (case (_stackDepthExpr) of+ { _lhsOstackDepth ->+ (case (if _isToBeALam then _stackDepthExpr else _stackDepthMaxThunked) of+ { _lhsOstackDepthMax ->+ ( _lhsOcrb,_lhsOrefOffsetMax,_lhsOstackDepth,_lhsOstackDepthMax) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBound_Val_1)) of { ( sem_CBound_1) -> ( _lhsOnm2refGath,_lhsOrefOffset,sem_CBound_1) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
@@ -13,6 +13,7 @@ import UHC.Light.Compiler.CodeGen.ValAccess as VA import UHC.Light.Compiler.LamInfo import UHC.Light.Compiler.Core+import UHC.Light.Compiler.Core.Check import UHC.Light.Compiler.Core.Trf.RenUniq import UHC.Light.Compiler.Core.Trf.ANormal import UHC.Light.Compiler.Core.Trf.InlineLetAlias@@ -35,13 +36,15 @@ -{-# LINE 77 "src/ehc/Core/Trf.chs" #-}+++{-# LINE 79 "src/ehc/Core/Trf.chs" #-} type TrfCore = TrfState CModule TrfCoreExtra emptyTrfCore :: TrfCore emptyTrfCore = mkEmptyTrfState emptyCModule emptyTrfCoreExtra -{-# LINE 84 "src/ehc/Core/Trf.chs" #-}+{-# LINE 86 "src/ehc/Core/Trf.chs" #-} data TrfCoreExtra = TrfCoreExtra { trfcoreInhLamMp :: LamMp -- from context, possibly overridden from gathered one@@ -49,7 +52,8 @@ , trfcoreExpNmOffMp :: !HsName2FldMp , trfcoreExtraExports :: !FvS -- extra exported names, introduced by transformations , trfcoreECUState :: !EHCompileUnitState- , trfcoreIsLamLifted :: !Bool+ -- , trfcoreIsLamLifted :: !Bool+ , trfcoreNotYetTransformed:: !NotYetTransformedS } emptyTrfCoreExtra :: TrfCoreExtra@@ -58,19 +62,24 @@ Map.empty Set.empty ECUS_Unknown- False+ -- False+ (Set.fromList [minBound .. maxBound]) -{-# LINE 116 "src/ehc/Core/Trf.chs" #-}+{-# LINE 124 "src/ehc/Core/Trf.chs" #-} -- | Perform Core transformations. -- The 'optScope' tells at which compilation phase (per module, whole program) the transformations are done, default only per module trfCore :: EHCOpts -> OptimizationScope -> DataGam -> HsName -> TrfCore -> TrfCore trfCore opts optimScope dataGam modNm trfcore -- = execState trf trfcore = runTrf opts modNm ehcOptDumpCoreStages (optimScope `elem`) trfcore trf- where isFromCoreSrc = ecuStateIsCore $ trfcoreECUState $ trfstExtra trfcore- isLamLifted = trfcoreIsLamLifted $ trfstExtra trfcore- noOptims = ehcOptOptimizationLevel opts <= OptimizationLevel_Off- isCoreTarget = targetIsCore $ ehcOptTarget opts+ where isFromCoreSrc = ecuStateIsCore $ trfcoreECUState $ trfstExtra trfcore+ notYetTransformed = trfcoreNotYetTransformed $ trfstExtra trfcore+ isNotLamLifted = NotYetTransformed_LambdaLifted `Set.member` notYetTransformed+ isNotANormal = NotYetTransformed_ANormal `Set.member` notYetTransformed+ isLamLifted = not isNotLamLifted+ isANormal = not isNotANormal+ noOptims = ehcOptOptimizationLevel opts <= OptimizationLevel_Off+ isCoreTarget = targetIsCore $ ehcOptTarget opts isUnOptimCoreTarget = isCoreTarget && noOptims trf = do { -- initial is just to obtain Core for dumping stages@@ -145,7 +154,7 @@ ; t_elim_trivapp } - ; when (isUnOptimCoreTarget || not isLamLifted) $ do+ ; when (isUnOptimCoreTarget || isNotLamLifted || isNotANormal) $ do { -- put in A-normal form, where args to app only may be identifiers ; u1 <- freshInfUID@@ -153,7 +162,7 @@ } - ; when (not isLamLifted && not isUnOptimCoreTarget) $ do+ ; when (isNotLamLifted && not isUnOptimCoreTarget) $ do { -- pass all globals used in lambda explicit as argument ; t_lam_asarg
@@ -166,7 +166,6 @@ | Exp_App {func_Exp_App :: !(Exp),args_Exp_App :: !((CRArray Exp))} | Exp_Lam {mbNm_Exp_Lam :: !((Maybe HsName)),lev_Exp_Lam :: !(Int),nrArgs_Exp_Lam :: !(Int),nrBinds_Exp_Lam :: !(Int),stkDepth_Exp_Lam :: !(Int),ref2nm_Exp_Lam :: !(Ref2Nm),body_Exp_Lam :: !(Exp)} | Exp_Force {expr_Exp_Force :: !(Exp)}- | Exp_Ret {expr_Exp_Ret :: !(Exp)} | Exp_RetCase {nrBinds_Exp_RetCase :: !(Int),expr_Exp_RetCase :: !(Exp)} | Exp_Tail {expr_Exp_Tail :: !(Exp)} | Exp_Case {expr_Exp_Case :: !(SExp),alts_Exp_Case :: !((CRArray Alt))}
@@ -199,8 +199,6 @@ local inhpp : _ alternative Force: child expr : Exp - alternative Ret:- child expr : Exp alternative RetCase: child nrBinds : {Int} child expr : Exp @@ -230,8 +228,6 @@ (sem_Exp_Lam _mbNm _lev _nrArgs _nrBinds _stkDepth _ref2nm (sem_Exp _body)) sem_Exp (Exp_Force _expr) = (sem_Exp_Force (sem_Exp _expr))-sem_Exp (Exp_Ret _expr) =- (sem_Exp_Ret (sem_Exp _expr)) sem_Exp (Exp_RetCase _nrBinds _expr) = (sem_Exp_RetCase _nrBinds (sem_Exp _expr)) sem_Exp (Exp_Tail _expr) =@@ -329,17 +325,6 @@ (case (expr_ _exprOinhpp) of { ( _exprIpp) -> (case ("eval" >|< ppParens _exprIpp) of- { _lhsOpp ->- ( _lhsOpp) }) }) }))-sem_Exp_Ret :: T_Exp ->- T_Exp-sem_Exp_Ret expr_ =- (\ _lhsIinhpp ->- (case (_lhsIinhpp) of- { _exprOinhpp ->- (case (expr_ _exprOinhpp) of- { ( _exprIpp) ->- (case ("ret" >|< ppParens _exprIpp) of { _lhsOpp -> ( _lhsOpp) }) }) })) sem_Exp_RetCase :: Int ->
@@ -58,10 +58,17 @@ -- | Setup whatever needs to be setup rsemSetup :: EHCOpts -> [Mod] -> Mod -> RunT' r s v m () - -- | Set tracing on/off- rsemSetTrace :: Bool -> RunT' r s v m ()- rsemSetTrace _ = return ()+ -- | Setup tracing+ rsemSetupTracing :: EHCOpts -> RunT' r s v m ()+ rsemSetupTracing opts = do+ let dotr = CoreOpt_RunTrace `elem` ehcOptCoreOpts opts+ dotre = CoreOpt_RunTraceExtensive `elem` ehcOptCoreOpts opts+ rsemSetTrace (dotre || dotr) dotre + -- | Set tracing on/off, 2nd param to tell to do it extensively+ rsemSetTrace :: Bool -> Bool -> RunT' r s v m ()+ rsemSetTrace _ _ = return ()+ -- | Exp rsemExp :: Exp -> RunT' r s v m a @@ -104,18 +111,18 @@ rsemGcLeaveRootLevel = return () {-# INLINE rsemGcLeaveRootLevel #-} -{-# LINE 136 "src/ehc/CoreRun/Run.chs" #-}+{-# LINE 143 "src/ehc/CoreRun/Run.chs" #-} -- type RunT' s m a = ErrorT Err (RWST r w s m) a -- type RunT m a = RunT' RunRd RunWr RunSt m a -- type RunT' s m a = ErrorT Err (StateT s m) a type RunT' r s v m a = ErrorT Err (RWST r () s m) a type RunT v m a = RunT' RunRd RunSt v m a -{-# LINE 148 "src/ehc/CoreRun/Run.chs" #-}+{-# LINE 155 "src/ehc/CoreRun/Run.chs" #-} err :: (RunSem r s v m a, PP msg) => msg -> RunT' r s v m b err msg = throwError $ rngLift emptyRange Err_PP $ pp msg -{-# LINE 158 "src/ehc/CoreRun/Run.chs" #-}+{-# LINE 165 "src/ehc/CoreRun/Run.chs" #-} runCoreRun :: forall r s v m a . (RunSem r s v m a)@@ -135,7 +142,7 @@ r s return e -{-# LINE 183 "src/ehc/CoreRun/Run.chs" #-}+{-# LINE 190 "src/ehc/CoreRun/Run.chs" #-} modifyIORefM :: IORef a -> (a -> IO a) -> IO () modifyIORefM r m = readIORef r >>= m >>= writeIORef r {-# INLINE modifyIORefM #-}
@@ -672,6 +672,7 @@ -- , renvFrSP :: !(IORef Int) -- ^ top of expr stack embedded in higher end of top frame , renvHeap :: !Heap -- ^ heap , renvDoTrace :: !Bool+ , renvDoTraceExt :: !Bool -- ^ when tracing, do it extensively? , renvGcRootStack :: !(IORef [[RVal]]) -- ^ stack of roots for GC, use is optional } @@ -682,9 +683,9 @@ hp <- newHeap hpSz -- sp <- newIORef 0 rtst <- newIORef []- return $ RValEnv V.empty st tp hp False rtst+ return $ RValEnv V.empty st tp hp False False rtst -{-# LINE 756 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 757 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Get the top most frame from the stack, 'nullPtr' if absent renvTopFrameM :: (RunSem RValCxt RValEnv RVal m x) => RValT m HpPtr renvTopFrameM = do@@ -692,7 +693,7 @@ liftIO $ readIORef tf {-# INLINE renvTopFrameM #-} -{-# LINE 765 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 766 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Get all non empty stack frames, still split up in (possibly null) top frame and rest of stack renvAllFrameM' :: (RunSem RValCxt RValEnv RVal m x) => RValT m (Maybe HpPtr,[HpPtr]) renvAllFrameM' = do@@ -707,7 +708,7 @@ (mbtop,st) <- renvAllFrameM' return $ maybe [] (:[]) mbtop ++ st -{-# LINE 781 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 782 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Dump environment dumpPpEnvM :: (RunSem RValCxt RValEnv RVal m x) => Bool -> RValT m PP_Doc dumpPpEnvM extensive = do@@ -748,18 +749,18 @@ ppb hp k v = (liftIO $ ppRValWithHp hp v) >>= \vpp -> return $ k >|< ":" >#< vpp ppa off hp sz vs = forM [0 .. sz - 1] $ \i -> liftIO (MV.read vs i) >>= ppb hp (i + off) -{-# LINE 823 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 824 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Dump environment dumpEnvM :: (RunSem RValCxt RValEnv RVal m x) => Bool -> RValT m () dumpEnvM extensive = dumpPpEnvM extensive >>= \p -> liftIO $ putPPLn p >> hFlush stdout -{-# LINE 833 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 834 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Update top frame updTopFrameM :: (RunSem RValCxt RValEnv RVal m x) => (RVal -> RValT m RVal) -> RValT m () updTopFrameM f = renvTopFrameM >>= flip heapUpdM f {-# INLINE updTopFrameM #-} -{-# LINE 845 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 846 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Push on the stack embedded in the top frame renvFrStkPush' :: RunSem RValCxt RValEnv RVal m x => (Int -> RValMV -> v -> IO Int) -> v -> RValT m () renvFrStkPush' pushvOn v = do@@ -795,7 +796,7 @@ renvFrStkReversePushV = renvFrStkPush' (\sp frvs vs -> mvecReverseFillFromV sp frvs vs >> return (sp + V.length vs)) {-# INLINE renvFrStkReversePushV #-} -{-# LINE 882 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 883 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Pop from the stack embedded in the top frame renvFrStkPop' :: RunSem RValCxt RValEnv RVal m x => (RValMV -> Int -> IO v) -> Int -> RValT m v renvFrStkPop' popvFrom sz = do@@ -839,19 +840,23 @@ renvFrStkReversePopMV sz = (liftIO $ mvecAlloc sz) >>= \vs -> renvFrStkReversePopInMV 0 sz vs >> return vs {-# INLINE renvFrStkReversePopMV #-} -{-# LINE 931 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 932 "src/ehc/CoreRun/Run/Val.chs" #-} -- | Trace rsemTr' :: (PP msg, RunSem RValCxt RValEnv RVal m x) => Bool -> msg -> RValT m ()-rsemTr' dumpExtensive msg = whenM (gets renvDoTrace) $ do- liftIO $ putStrLn $ show $ pp msg- dumpEnvM dumpExtensive- liftIO $ hFlush stdout+rsemTr' dumpExtensive msg = do+ env <- get+ when (renvDoTrace env) $ do+ liftIO $ putStrLn $ show $ pp msg+ dumpEnvM (dumpExtensive || renvDoTraceExt env)+ liftIO $ hFlush stdout+{- INLINE rsemTr' #-} -- | Trace rsemTr :: (PP msg, RunSem RValCxt RValEnv RVal m x) => msg -> RValT m () rsemTr = rsemTr' False+{- INLINE rsemTr #-} -{-# LINE 948 "src/ehc/CoreRun/Run/Val.chs" #-}+{-# LINE 953 "src/ehc/CoreRun/Run/Val.chs" #-} -- | RunT' variant for Val type RValT m a = RunT' RValCxt RValEnv RVal m a -- type RValT m a = RunT' () () RValEnv m a
@@ -105,7 +105,7 @@ cmodRun :: (RunSem RValCxt RValEnv RVal m ()) => EHCOpts -> Mod -> RValT m () cmodRun opts (Mod_Mod {body_Mod_Mod=e}) = do -- dumpEnvM True- rsemExp e+ mustReturn $ rsemExp e -- v <- renvFrStkPop1 -- return v @@ -173,13 +173,14 @@ {-# SPECIALIZE rvalExplStkExp :: RunSem RValCxt RValEnv RVal IO () => Exp -> RValT IO () #-} -- {-# INLINE rvalExplStkExp #-} rvalExplStkExp e = do- -- rsemTr' False $ ">E:" >#< e -- e' <- case e of case e of -- app, call Exp_App f as -> do- vecReverseForM_ as rsemExp- rsemExp f >>= rsemPop >>= ptr2valM >>= \f' -> rvalExplStkApp f' (emptyExplArgs {eaStk=V.length as})+ f' <- mustReturn $ do+ vecReverseForM_ as rsemExp+ rsemExp f+ rsemPop f' >>= ptr2valM >>= \f' -> rvalExplStkApp f' (emptyExplArgs {eaStk=V.length as}) -- heap node Exp_Tup t as -> do@@ -188,16 +189,16 @@ -- lam as is, being a heap allocated thunk when 0 args are required Exp_Lam {nrArgs_Exp_Lam=na, mbNm_Exp_Lam=mn}- | na == 0 -> mk (RVal_Thunk mn) >>= heapAllocAsPtrM >>= rsemPush- | otherwise -> mk (RVal_Lam mn) >>= heapAllocAsPtrM >>= rsemPush+ | na == 0 -> mk RVal_Thunk+ | otherwise -> mk RVal_Lam where mk rv = do sl <- renvTopFrameM slref <- liftIO $ newIORef sl- return $ rv e slref+ heapAllocAsPtrM (rv mn e slref) >>= rsemPush -- let Exp_Let {firstOff_Exp_Let=fillFrom, ref2nm_Exp_Let=r2n, binds_Exp_Let=bs, body_Exp_Let=b} -> do- V.forM_ bs rsemExp+ mustReturn $ V.forM_ bs rsemExp rsemExp b -- case, scrutinee already evaluated@@ -211,7 +212,7 @@ Exp_Force e -> rsemExp e >>= rsemPop >>= rsemEvl -- setup for context requiring a return (TBD: should be done via CPS style, but is other issue)- Exp_Ret e -> mustReturn $ rsemExp e+ -- Exp_Ret e -> mustReturn $ rsemExp e -- setup for context requiring a return from case alternative Exp_RetCase _ e -> rsemExp e@@ -227,15 +228,14 @@ e -> err $ "CoreRun.Run.Val.RunExplStk.rvalExplStkExp:" >#< e - -- rsemTr' False $ "<E:" >#< (e) -- >-< e') -- return e' -{-# LINE 265 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-}+{-# LINE 273 "src/ehc/CoreRun/Run/Val/RunExplStk.chs" #-} instance ( Monad m, MonadIO m, Functor m ) => RunSem RValCxt RValEnv RVal m () where- -- {-# SPECIALIZE instance RunSem RValCxt RValEnv RVal IO () #-}+ {-# SPECIALIZE instance RunSem RValCxt RValEnv RVal IO () #-} rsemInitial = do s <- liftIO $ newRValEnv 1000 -- 100000 -- return (emptyRValCxt, s, undefined)@@ -259,10 +259,10 @@ -- use the main module's stackframe for evaluating 'main' explStkPushFrameM $ ms' V.! mainModNr rsemGcLeaveRootLevel- rsemSetTrace $ CoreOpt_RunTrace `elem` ehcOptCoreOpts opts+ rsemSetupTracing opts - rsemSetTrace doTrace = modify $ \env ->- env {renvDoTrace = doTrace}+ rsemSetTrace doTrace doExtensive = modify $ \env ->+ env {renvDoTrace = doTrace, renvDoTraceExt = doExtensive} rsemExp = rvalExplStkExp
@@ -75,7 +75,7 @@ cmodRun :: (RunSem RValCxt RValEnv RVal m RVal) => EHCOpts -> Mod -> RValT m RVal cmodRun opts (Mod_Mod {body_Mod_Mod=e}) = do -- dumpEnvM True- v <- rsemExp e+ v <- mustReturn $ rsemExp e return v {-# LINE 110 "src/ehc/CoreRun/Run/Val/RunImplStk.chs" #-}@@ -131,13 +131,11 @@ -- {-# SPECIALIZE rvalImplStkExp :: RunSem RValCxt RValEnv RVal IO RVal => Exp -> RValT IO RVal #-} {-# INLINE rvalImplStkExp #-} rvalImplStkExp e = do- -- rsemTr $ "E:" >#< e- -- e' <- case e of case e of -- app, call Exp_App f as -> do- f' <- {- mustReturn $ -} rsemExp f {- >>= rsemEvl -}- V.mapM rsemExp as >>= (liftIO . V.thaw) >>= rvalImplStkApp f'+ f' <- mustReturn $ rsemExp f {- >>= rsemEvl -}+ (mustReturn $ V.mapM rsemExp as) >>= (liftIO . V.thaw) >>= rvalImplStkApp f' -- heap node Exp_Tup t as -> do@@ -155,7 +153,7 @@ -- let Exp_Let {firstOff_Exp_Let=fillFrom, ref2nm_Exp_Let=r2n, binds_Exp_Let=bs, body_Exp_Let=b} -> do- bs' <- (liftIO . V.thaw) =<< V.forM bs rsemExp+ bs' <- mustReturn $ (liftIO . V.thaw) =<< V.forM bs rsemExp fr <- renvTopFrameM >>= heapGetM -- >>= rsemDeref fillFrameM fillFrom bs' fr rsemExp b@@ -169,7 +167,7 @@ Exp_Force e -> rsemExp e >>= rsemPop >>= rsemEvl -- setup for context requiring a return (TBD: should be done via CPS style, but is other issue)- Exp_Ret e -> mustReturn $ rsemExp e+ -- Exp_Ret e -> mustReturn $ rsemExp e -- setup for context requiring a return from case alternative Exp_RetCase _ e -> rsemExp e@@ -185,11 +183,9 @@ e -> err $ "CoreRun.Run.Val.RunExplStk.rvalImplStkExp:" >#< e - -- rsemTr $ "E->:" >#< (e >-< e')- -- return e' -{-# LINE 223 "src/ehc/CoreRun/Run/Val/RunImplStk.chs" #-}+{-# LINE 229 "src/ehc/CoreRun/Run/Val/RunImplStk.chs" #-} instance ( Monad m, MonadIO m, Functor m ) => RunSem RValCxt RValEnv RVal m RVal@@ -209,11 +205,11 @@ liftIO $ MV.write ms nr p ms' <- liftIO $ V.freeze ms modify $ \env -> env {renvGlobals = ms'}- rsemSetTrace $ CoreOpt_RunTrace `elem` ehcOptCoreOpts opts+ rsemSetupTracing opts -- return RVal_None - rsemSetTrace doTrace = modify $ \env ->- env {renvDoTrace = doTrace}+ rsemSetTrace doTrace doExtensive = modify $ \env ->+ env {renvDoTrace = doTrace, renvDoTraceExt = doExtensive} rsemExp = rvalImplStkExp
@@ -41,14 +41,16 @@ , trfstUniq = crsiNextUID crsi , trfstExtra = emptyTrfCoreExtra { trfcoreECUState = ecuState ecu- , trfcoreIsLamLifted = maybe False Core2ChkSem.isLamLifted_Syn_CodeAGItf $ ecuMbCoreSemMod ecu+ -- , trfcoreIsLamLifted = maybe False Core2ChkSem.isLamLifted_Syn_CodeAGItf $ ecuMbCoreSemMod ecu+ , trfcoreNotYetTransformed+ = maybe (trfcoreNotYetTransformed emptyTrfCoreExtra) Core2ChkSem.notYetTransformed_Syn_CodeAGItf $ ecuMbCoreSemMod ecu , trfcoreExpNmOffMp = crsiExpNmOffMpDbg "cpTransformCore" modNm crsi , trfcoreInhLamMp = Core2GrSem.lamMp_Inh_CodeAGItf $ crsiCoreInh crsi } } trfcoreOut = trfCore opts optimScope (Core2GrSem.dataGam_Inh_CodeAGItf $ crsiCoreInh crsi) modNm trfcoreIn - -- ; lift $ putStrLn $ "cpTransformCore trfcoreIsLamLifted: " ++ show (trfcoreIsLamLifted $ trfstExtra trfcoreIn)+ -- ; lift $ putStrLn $ "cpTransformCore trfcoreNotYetTransformed: " ++ show (trfcoreNotYetTransformed $ trfstExtra trfcoreIn) -- put back result: Core ; cpUpdCU modNm $! ecuStoreCore (trfstMod trfcoreOut)
@@ -107,13 +107,14 @@ show CoreOpt_Run = "run" show CoreOpt_RunDump = "dump-run" show CoreOpt_RunTrace = "run-trace"+ show CoreOpt_RunTraceExtensive = "run-trace-extensive" show CoreOpt_RunPPNames = "run-ppnames" show _ = "-" coreOptMp :: Map.Map String CoreOpt coreOptMp = str2stMpWithOmit [CoreOpt_NONE] -{-# LINE 178 "src/ehc/Opts.chs" #-}+{-# LINE 179 "src/ehc/Opts.chs" #-} instance Show PgmExec where show PgmExec_CPP = "P" show PgmExec_C = "c"@@ -122,36 +123,36 @@ pgmExecMp :: Map.Map String PgmExec pgmExecMp = str2stMp -{-# LINE 194 "src/ehc/Opts.chs" #-}+{-# LINE 195 "src/ehc/Opts.chs" #-} -- do something with whole program ehcOptWholeProgOptimizationScope :: EHCOpts -> Bool ehcOptWholeProgOptimizationScope opts = ehcOptOptimizationScope opts > OptimizationScope_PerModule -{-# LINE 201 "src/ehc/Opts.chs" #-}+{-# LINE 202 "src/ehc/Opts.chs" #-} -- compatibility option ehcOptEarlyModMerge :: EHCOpts -> Bool ehcOptEarlyModMerge opts = ehcOptOptimizationScope opts >= OptimizationScope_WholeCore -{-# LINE 208 "src/ehc/Opts.chs" #-}+{-# LINE 209 "src/ehc/Opts.chs" #-} -- do whole program analysis, with HPT ehcOptWholeProgHPTAnalysis :: EHCOpts -> Bool ehcOptWholeProgHPTAnalysis opts = False -{-# LINE 256 "src/ehc/Opts.chs" #-}+{-# LINE 257 "src/ehc/Opts.chs" #-} -- generate Core ehcOptEmitCore :: EHCOpts -> Bool ehcOptEmitCore opts = ehcOptWholeProgHPTAnalysis opts || targetIsCore (ehcOptTarget opts) -{-# LINE 274 "src/ehc/Opts.chs" #-}+{-# LINE 275 "src/ehc/Opts.chs" #-} -- | optimizes a particular option ehcOptOptimizes :: Optimize -> EHCOpts -> Bool ehcOptOptimizes o opts = o `Set.member` ehcOptOptimizations opts -{-# LINE 284 "src/ehc/Opts.chs" #-}+{-# LINE 285 "src/ehc/Opts.chs" #-} -- | The default EHC options. defaultEHCOpts = emptyEHCOpts@@ -160,7 +161,7 @@ ] } -{-# LINE 300 "src/ehc/Opts.chs" #-}+{-# LINE 301 "src/ehc/Opts.chs" #-} ehcCmdLineOpts = [ Option "h" ["help"] (NoArg oHelp) "print this help (then stop)" , Option "" ["version"] (NoArg oVersion) "print version info (then stop)"@@ -220,7 +221,7 @@ "pgm: alternate executable used by compiler, currently only P (preprocessing)" , Option "" ["coreopt"] (ReqArg oOptCore "opt[,...]") ("opts (specific) for core: " ++ showStr2stMp coreOptMp) ]-{-# LINE 477 "src/ehc/Opts.chs" #-}+{-# LINE 478 "src/ehc/Opts.chs" #-} where oPretty ms o = case ms of Just "-" -> o { ehcOptShowEH = False } Just "no" -> o { ehcOptShowEH = False }@@ -381,14 +382,14 @@ nub $ ehcOptCmdLineOpts o ++ fst (parseCmdLineOpts cmd s) } oPgmExec cmd s o = o { ehcOptPgmExecMp = Map.insert cmd s $ ehcOptPgmExecMp o } -{-# LINE 774 "src/ehc/Opts.chs" #-}+{-# LINE 775 "src/ehc/Opts.chs" #-} intArg tr = ReqArg (optInt tr) "<nr>" optInt :: (EHCOpts -> Int -> EHCOpts) -> String -> EHCOpts -> EHCOpts optInt tr s o = tr o $ read s -{-# LINE 782 "src/ehc/Opts.chs" #-}+{-# LINE 783 "src/ehc/Opts.chs" #-} -- | What kind of optional args are allowed data OptArgAllow = OptArgAllow_Bool@@ -398,13 +399,13 @@ optArgAllAllow :: [OptArgAllow] optArgAllAllow = [minBound .. maxBound] -{-# LINE 793 "src/ehc/Opts.chs" #-}+{-# LINE 794 "src/ehc/Opts.chs" #-} -- | An optional arg, universal type for all occurring variants data OptArg = OptArg_Bool Bool | OptArg_Int Int -{-# LINE 800 "src/ehc/Opts.chs" #-}+{-# LINE 801 "src/ehc/Opts.chs" #-} optArgTake :: [OptArgAllow] -> String -> Maybe (OptArg,String) optArgTake allow s = case s of@@ -425,7 +426,7 @@ where yesInt = OptArgAllow_Int `elem` allow noInt = not yesInt -{-# LINE 822 "src/ehc/Opts.chs" #-}+{-# LINE 823 "src/ehc/Opts.chs" #-} optBooleanTake :: String -> Maybe (Bool,String) optBooleanTake s = case optArgTake [OptArgAllow_Bool] s of@@ -441,22 +442,22 @@ boolArgStr = "Bool" boolArg tr = OptArg (optBoolean tr) boolArgStr -{-# LINE 843 "src/ehc/Opts.chs" #-}+{-# LINE 844 "src/ehc/Opts.chs" #-} oPriv o b = o { ehcOptPriv = b } -{-# LINE 847 "src/ehc/Opts.chs" #-}+{-# LINE 848 "src/ehc/Opts.chs" #-} optDumpCoreStages o b = o { ehcOptDumpCoreStages = b } -{-# LINE 855 "src/ehc/Opts.chs" #-}+{-# LINE 856 "src/ehc/Opts.chs" #-} oSetGenTrampoline o b = o { ehcOptGenTrampoline_ = b } -{-# LINE 875 "src/ehc/Opts.chs" #-}+{-# LINE 876 "src/ehc/Opts.chs" #-} oStopAtCoreError o b = o { ehcDebugStopAtCoreError = b } -{-# LINE 879 "src/ehc/Opts.chs" #-}+{-# LINE 880 "src/ehc/Opts.chs" #-} oStopAtHIError o b = o { ehcDebugStopAtHIError = b } -{-# LINE 887 "src/ehc/Opts.chs" #-}+{-# LINE 888 "src/ehc/Opts.chs" #-} -- | Apply the cmdline opts description to a EHCOpts, returning Nothing when there were no options ehcCmdLineOptsApply :: [EHCOpts -> EHCOpts] -> [String] -> EHCOpts -> (Maybe EHCOpts, [String], [String]) ehcCmdLineOptsApply postopts args opts@@ -464,7 +465,7 @@ where oo@(o,n,errs) = getOpt Permute ehcCmdLineOpts args o' = o ++ postopts -{-# LINE 900 "src/ehc/Opts.chs" #-}+{-# LINE 901 "src/ehc/Opts.chs" #-} optsDiscrRecompileRepr :: EHCOpts -> String optsDiscrRecompileRepr opts = concat@@ -478,12 +479,12 @@ ] where o m v = if v then m else "" -{-# LINE 921 "src/ehc/Opts.chs" #-}+{-# LINE 922 "src/ehc/Opts.chs" #-} data FIOBind = FIOBindYes | FIOBindNoBut TyVarIdS deriving (Show) -{-# LINE 927 "src/ehc/Opts.chs" #-}+{-# LINE 928 "src/ehc/Opts.chs" #-} data FIOpts = FIOpts { fioLeaveRInst :: !Bool , fioBindRFirst :: !Bool , fioBindLFirst :: !Bool , fioBindLBeforeR :: !Bool , fioMode :: !FIMode , fioUniq :: !UID@@ -496,7 +497,7 @@ , fiMbMkErrClash :: Maybe (Ty -> Ty -> Err) -- alternate error construction for type clash } -{-# LINE 961 "src/ehc/Opts.chs" #-}+{-# LINE 962 "src/ehc/Opts.chs" #-} fioBindNoSet :: FIOBind -> TyVarIdS fioBindNoSet (FIOBindNoBut s) = s fioBindNoSet _ = Set.empty@@ -505,7 +506,7 @@ fioBindIsYes FIOBindYes = True fioBindIsYes _ = False -{-# LINE 971 "src/ehc/Opts.chs" #-}+{-# LINE 972 "src/ehc/Opts.chs" #-} strongFIOpts :: FIOpts strongFIOpts = FIOpts { fioLeaveRInst = False , fioBindRFirst = True , fioBindLFirst = True , fioBindLBeforeR = True@@ -519,11 +520,11 @@ , fiMbMkErrClash = Nothing } -{-# LINE 1001 "src/ehc/Opts.chs" #-}+{-# LINE 1002 "src/ehc/Opts.chs" #-} instance Show FIOpts where show o = "FIOpts" -{-# LINE 1006 "src/ehc/Opts.chs" #-}+{-# LINE 1007 "src/ehc/Opts.chs" #-} instance PP FIOpts where pp o = "FIOpts{" >#< "leaveRInst=" >|< pp (fioLeaveRInst o)@@ -534,33 +535,33 @@ >#< "allowRPredElim=" >|< pp (fioAllowRPredElim o) >#< "}" -{-# LINE 1022 "src/ehc/Opts.chs" #-}+{-# LINE 1023 "src/ehc/Opts.chs" #-} instLFIOpts :: FIOpts instLFIOpts = strongFIOpts {fioBindRFirst = False} -{-# LINE 1027 "src/ehc/Opts.chs" #-}+{-# LINE 1028 "src/ehc/Opts.chs" #-} instLRFIOpts :: FIOpts instLRFIOpts = strongFIOpts {fioBindRFirst = False, fioBindLFirst = False} -{-# LINE 1032 "src/ehc/Opts.chs" #-}+{-# LINE 1033 "src/ehc/Opts.chs" #-} unifyFIOpts :: FIOpts unifyFIOpts = strongFIOpts {fioMode = FitUnify} instFIOpts :: FIOpts instFIOpts = instLFIOpts {fioLeaveRInst = True, fioBindLFirst = False} -{-# LINE 1051 "src/ehc/Opts.chs" #-}+{-# LINE 1052 "src/ehc/Opts.chs" #-} weakFIOpts :: FIOpts weakFIOpts = fioMkWeak strongFIOpts -{-# LINE 1056 "src/ehc/Opts.chs" #-}+{-# LINE 1057 "src/ehc/Opts.chs" #-} predFIOpts :: FIOpts predFIOpts = strongFIOpts {fioPredAsTy = True, fioLeaveRInst = True} implFIOpts :: FIOpts implFIOpts = strongFIOpts {fioAllowRPredElim = False} -{-# LINE 1064 "src/ehc/Opts.chs" #-}+{-# LINE 1065 "src/ehc/Opts.chs" #-} fioSwapOpts :: FIOpts -> FIOpts fioSwapOpts fio = fio@@ -574,24 +575,24 @@ fioSwapPolarity :: Polarity -> FIOpts -> FIOpts fioSwapPolarity pol fio = fio {fioMode = fimSwapPol pol (fioMode fio)} -{-# LINE 1081 "src/ehc/Opts.chs" #-}+{-# LINE 1082 "src/ehc/Opts.chs" #-} fioMkStrong :: FIOpts -> FIOpts fioMkStrong fi = fi {fioLeaveRInst = False, fioBindRFirst = True, fioBindLFirst = True} -{-# LINE 1086 "src/ehc/Opts.chs" #-}+{-# LINE 1087 "src/ehc/Opts.chs" #-} fioMkWeak :: FIOpts -> FIOpts fioMkWeak fi = fi {fioLeaveRInst = True, fioBindRFirst = False} -{-# LINE 1091 "src/ehc/Opts.chs" #-}+{-# LINE 1092 "src/ehc/Opts.chs" #-} -- | Adapt options for extracting final ty fioMkFinal :: FIOpts -> FIOpts fioMkFinal fi = fi {fioBindLFirst = False, fioBindRFirst = False, fioExpandEqTyVar = True} -{-# LINE 1097 "src/ehc/Opts.chs" #-}+{-# LINE 1098 "src/ehc/Opts.chs" #-} fioMkUnify :: FIOpts -> FIOpts fioMkUnify fi = fi {fioMode = FitUnify} -{-# LINE 1106 "src/ehc/Opts.chs" #-}+{-# LINE 1107 "src/ehc/Opts.chs" #-} fioIsSubsume :: FIOpts -> Bool fioIsSubsume fio = case fioMode fio of {FitSubLR -> True ; _ -> False}
@@ -86,10 +86,11 @@ | CoreOpt_Run -- run after compilation | CoreOpt_RunDump -- dump CoreRun | CoreOpt_RunTrace -- trace during running CoreRun+ | CoreOpt_RunTraceExtensive -- trace during running CoreRun, with extensive info, implies CoreOpt_RunTrace | CoreOpt_RunPPNames -- when dump/run CoreRun print names instead of deriving (Eq,Enum,Bounded) -{-# LINE 170 "src/ehc/Opts/Base.chs" #-}+{-# LINE 171 "src/ehc/Opts/Base.chs" #-} -- | Pgm (internal program used) options, in particular alternate internal shell commands data PgmExec = PgmExec_CPP -- alternate CPP@@ -97,7 +98,7 @@ | PgmExec_Linker -- alternate linker deriving (Eq,Ord,Enum,Bounded) -{-# LINE 179 "src/ehc/Opts/Base.chs" #-}+{-# LINE 180 "src/ehc/Opts/Base.chs" #-} -- | Wrapper around options, adding semantics for adapting cmd specific behavior data ExecOpt = ExecOpt_Plain String -- ^ plain option@@ -106,7 +107,7 @@ execOptsPlain :: [ExecOpt] -> [String] execOptsPlain o = [ s | ExecOpt_Plain s <- o ] -{-# LINE 195 "src/ehc/Opts/Base.chs" #-}+{-# LINE 196 "src/ehc/Opts/Base.chs" #-} -- | The options to use. data EHCOpts = EHCOpts@@ -190,7 +191,7 @@ -- default options for commands } -{-# LINE 360 "src/ehc/Opts/Base.chs" #-}+{-# LINE 361 "src/ehc/Opts/Base.chs" #-} emptyEHCOpts = EHCOpts { ehcOptTrace = \_ x -> x@@ -263,14 +264,14 @@ , ehcOptExecOptsMp = Map.empty } -{-# LINE 531 "src/ehc/Opts/Base.chs" #-}+{-# LINE 532 "src/ehc/Opts/Base.chs" #-} ehcOptTarget :: EHCOpts -> Target ehcOptTarget = maybeOk (\s -> panic ("ehcOptTarget: " ++ s)) id . ehcOptMbTarget ehcOptTargetFlavor :: EHCOpts -> TargetFlavor ehcOptTargetFlavor = maybeOk (\s -> panic ("ehcOptTargetFlavor: " ++ s)) id . ehcOptMbTargetFlavor -{-# LINE 539 "src/ehc/Opts/Base.chs" #-}+{-# LINE 540 "src/ehc/Opts/Base.chs" #-} -- | Generate system F (20120421 AD: very much under construction) ehcOptCoreSysF :: EHCOpts -> Bool ehcOptCoreSysF _ = False@@ -287,7 +288,7 @@ ehcOptCoreSysFCheckOnlyVal :: EHCOpts -> Bool ehcOptCoreSysFCheckOnlyVal opts = ehcOptCoreSysFCheck opts -{-# LINE 573 "src/ehc/Opts/Base.chs" #-}+{-# LINE 574 "src/ehc/Opts/Base.chs" #-} -- generate bytecode ehcOptEmitExecBytecode :: EHCOpts -> Bool ehcOptEmitExecBytecode _ = False@@ -295,12 +296,12 @@ ehcOptEmitBytecode :: EHCOpts -> Bool ehcOptEmitBytecode _ = False -{-# LINE 630 "src/ehc/Opts/Base.chs" #-}+{-# LINE 631 "src/ehc/Opts/Base.chs" #-} -- | Check Cmm ehcOptCmmCheck :: EHCOpts -> Bool ehcOptCmmCheck _ = False -{-# LINE 640 "src/ehc/Opts/Base.chs" #-}+{-# LINE 641 "src/ehc/Opts/Base.chs" #-} -- | Via Core -> Grin -> CMM -> JS ? ehcOptIsViaGrinCmmJavaScript :: EHCOpts -> Bool ehcOptIsViaGrinCmmJavaScript opts@@ -312,31 +313,31 @@ = targetIsViaCoreJavaScript t where t = ehcOptTarget opts -{-# LINE 661 "src/ehc/Opts/Base.chs" #-}+{-# LINE 662 "src/ehc/Opts/Base.chs" #-} ehcOptIsViaCmm :: EHCOpts -> Bool ehcOptIsViaCmm opts = ehcOptIsViaGrinCmmJavaScript opts {-# INLINE ehcOptIsViaCmm #-} -{-# LINE 667 "src/ehc/Opts/Base.chs" #-}+{-# LINE 668 "src/ehc/Opts/Base.chs" #-} ehcOptIsViaGrin :: EHCOpts -> Bool ehcOptIsViaGrin opts = ehcOptIsViaGrinCmmJavaScript opts || targetIsGrinBytecode t || targetDoesHPTAnalysis t where t = ehcOptTarget opts -{-# LINE 677 "src/ehc/Opts/Base.chs" #-}+{-# LINE 678 "src/ehc/Opts/Base.chs" #-} ehcOptBuiltin :: EHCOpts -> (EHBuiltinNames -> x) -> x ehcOptBuiltin o f = f $ ehcOptBuiltinNames o ehcOptBuiltin2 :: EHCOpts -> (EHBuiltinNames -> Int -> HsName) -> Int -> HsName ehcOptBuiltin2 o f i = f (ehcOptBuiltinNames o) i -{-# LINE 689 "src/ehc/Opts/Base.chs" #-}+{-# LINE 690 "src/ehc/Opts/Base.chs" #-} -- | Either fromJust with a possible panic, or with a default value (when debugging) ehcOptFromJust :: EHCOpts -> String -> a -> Maybe a -> a ehcOptFromJust opts panicMsg n m | ehcOptDebug opts = maybe n id m | otherwise = panicJust panicMsg m -{-# LINE 701 "src/ehc/Opts/Base.chs" #-}+{-# LINE 702 "src/ehc/Opts/Base.chs" #-} -- | Do linking into executable? ehcOptDoExecLinking :: EHCOpts -> Bool ehcOptDoExecLinking opts = ehcOptLinkingStyle opts == LinkingStyle_Exec
@@ -1,3 +1,3 @@ module UHC.Light.Compiler.SourceCodeSig where-sig = "91ec134501c89c7338c1ba5c8f79b3d9"-timestamp = "20141127 +0100 174525"+sig = "e362a66c2b262f178ba80e9829fe11ef"+timestamp = "20141203 +0100 194158"
@@ -1,5 +1,5 @@ Name: uhc-light-Version: 1.1.7.3+Version: 1.1.7.4 License: BSD3 Copyright: Utrecht University, Department of Information and Computing Sciences, Software Technology group Build-Type: Simple @@ -12,7 +12,7 @@ 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.3/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.3/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.3/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.4/103/cr/plain/Control/Monad.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Control/Monad.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Bits.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Char.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Either.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/IORef.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/List.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Maybe.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Data/Typeable.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Debug/Trace.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Foreign/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/CTypes.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/dirUtils.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBase.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/HsBaseConfig.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/IntLikeInstance.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/MachDeps.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/TupleInstance.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/include/Typeable.h,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/installed-pkg-config,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Error.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Fix.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO/Unsafe.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/System/IO.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Array.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Base.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bits.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Bounded.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/BoxArray.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Char.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Enum.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Eq.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Float.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/GC.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics/Tuple.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Generics.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Handle.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IO.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/IOBase.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ix.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/LazyST.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MutVar.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/MVar.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/OldException.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ord.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Prims.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Ptr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Read.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Real.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Run.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Show.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/ST.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StablePtr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/StackTrace.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/STRef.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Types.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/Weak.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/UHC/WeakPtr.hi,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.cr,103/lib/pkg/uhcbase-1.1.7.4/103/cr/plain/Unsafe/Coerce.hi extra-source-files: changelog.md Library@@ -24,6 +24,6 @@ Executable uhcl Hs-Source-Dirs: src- Build-Depends: uhc-light==1.1.7.3, 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.4, 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