Merge pull request #616 from Plutonomicon/cjay/mapzip-tests
Property test for AssocMap pzipWith
Property test for AssocMap pzipWith
# Revision history for plutarch
# 1.4.0
- Renamed `punionWith` and `punionWithData` of `Plutarch.Api.V1.AssocMap` to
`punionResolvingCollisionsWith` and `punionResolvingCollisionsWithData`, since
they have been misused for what should have been `pzipWith` and `pzipWithData`.
- Renamed `punionWith` and `punionWithData` of `Plutarch.Api.V1.Value` to
`punionResolvingCollisionsWith` and `punionResolvingCollisionsWithData`, since
they have been misused for what should have been `pzipWith` and `pzipWithData`.
- Introduced `pzipWith`, `pzipWithData`, `pzipWithDefault`, `pzipWithDataDefault`,
`pzipWithDefaults`, `pzipWithDataDefaults`, `pintersectionWith`, and
`pintersectionWithData` in `Plutarch.Api.V1.AssocMap`. Also introduced the
types `BothPresentHandler`, `BothPresentHandlerCommutative`,
`OnePresentHandler`, `MergeHandler` and `SomeMergeHandler` for instructing
`pzipWith` and `pzipWithData`.
- Added `Commutativity` in `AssocMap` for instructing various `AssocMap` and
`Value` operations about the commutativity of the given value-merging
function.
- Renamed `pdifference` in `AssocMap` to `punsortedDifference` (O(n^2)).
Introduced new `pdifference` with stricter constraints and O(n).
- Added `pleftBiasedUnion` in `Plutarch.Api.V1.AssocMap`.
- Added `pleftBiasedCurrencyUnion` and `pleftBiasedTokenUnion` in
`Plutarch.Api.V1.Value`.
# 1.3.0
- Support newer Plutus
- Remove most of the Nix code and switch to mlabs-tooling.nix
# 1.2.1
# 1.2.1
- Exported data constructors instance for `Plutarch.Lift (LiftError)`
# 1.2 (WIP changelog)
- Changed fields of `PTxInfo` whose only representation is data to not be wrapped by `PAsData`.
Started by [#335](https://github.com/Plutonomicon/plutarch/pull/335)
- `Plutarch.Prelude` and `Plutarch.List` now export pfind, pelemAt, preverse and pcheckSroted.
Started by: [#306](https://github.com/Plutonomicon/plutarch/pull/306)
Started by: [#306](https://github.com/Plutonomicon/plutarch/pull/306)
- Added module `Plutarch.FFI` for interoperability with PlutusTx.
- Benchmarks and perf diffing on PRs to keep track of performance regressions.
Worked on through:
* [#102](https://github.com/Plutonomicon/plutarch/pull/102)
* [#144](https://github.com/Plutonomicon/plutarch/pull/144)
* [#146](https://github.com/Plutonomicon/plutarch/pull/146)
* [#164](https://github.com/Plutonomicon/plutarch/pull/164)
* [#167](https://github.com/Plutonomicon/plutarch/pull/167)
* [#178](https://github.com/Plutonomicon/plutarch/pull/178)
- [#102](https://github.com/Plutonomicon/plutarch/pull/102)
- [#144](https://github.com/Plutonomicon/plutarch/pull/144)
- [#146](https://github.com/Plutonomicon/plutarch/pull/146)
- [#164](https://github.com/Plutonomicon/plutarch/pull/164)
- [#167](https://github.com/Plutonomicon/plutarch/pull/167)
- [#178](https://github.com/Plutonomicon/plutarch/pull/178)
- Significantly improve `plam` type inference - works seamlessly now (!!!)
Worked on through:
* [#29](https://github.com/Plutonomicon/plutarch/pull/29)
* [#149](https://github.com/Plutonomicon/plutarch/pull/149)
* [#162](https://github.com/Plutonomicon/plutarch/pull/162)
* [#168](https://github.com/Plutonomicon/plutarch/pull/168)
* [#170](https://github.com/Plutonomicon/plutarch/pull/170)
- [#29](https://github.com/Plutonomicon/plutarch/pull/29)
- [#149](https://github.com/Plutonomicon/plutarch/pull/149)
- [#162](https://github.com/Plutonomicon/plutarch/pull/162)
- [#168](https://github.com/Plutonomicon/plutarch/pull/168)
- [#170](https://github.com/Plutonomicon/plutarch/pull/170)
Relevant issue: [#2](https://github.com/Plutonomicon/plutarch/issues/2)
- Many, many optimizations on generated code.
Worked on through:
* [#34](https://github.com/Plutonomicon/plutarch/pull/34)
* [#37](https://github.com/Plutonomicon/plutarch/pull/37)
* [#42](https://github.com/Plutonomicon/plutarch/pull/42)
* [#44](https://github.com/Plutonomicon/plutarch/pull/44)
- [#34](https://github.com/Plutonomicon/plutarch/pull/34)
- [#37](https://github.com/Plutonomicon/plutarch/pull/37)
- [#42](https://github.com/Plutonomicon/plutarch/pull/42)
- [#44](https://github.com/Plutonomicon/plutarch/pull/44)
- Add haddocks and examples to many functions
Started by: [#49](https://github.com/Plutonomicon/plutarch/pull/49)
Module: `Plutarch.Trace`
Added in: [#39](https://github.com/Plutonomicon/plutarch/pull/39)
- Builtin pair construction utility:- `ppairDataBuiltin `
- Builtin pair construction utility:- `ppairDataBuiltin`
Module: `Plutarch.Builtin`
Module: `Plutarch.DataRepr`
Worked on through
* [#31](https://github.com/Plutonomicon/plutarch/pull/31)
* [#169](https://github.com/Plutonomicon/plutarch/pull/169)
* [#173](https://github.com/Plutonomicon/plutarch/pull/173)
* [#176](https://github.com/Plutonomicon/plutarch/pull/176)
* [#171](https://github.com/Plutonomicon/plutarch/pull/171)
* [#185](https://github.com/Plutonomicon/plutarch/pull/185)
- [#31](https://github.com/Plutonomicon/plutarch/pull/31)
- [#169](https://github.com/Plutonomicon/plutarch/pull/169)
- [#173](https://github.com/Plutonomicon/plutarch/pull/173)
- [#176](https://github.com/Plutonomicon/plutarch/pull/176)
- [#171](https://github.com/Plutonomicon/plutarch/pull/171)
- [#185](https://github.com/Plutonomicon/plutarch/pull/185)
- Add `PLift` and `PConstant` - enabling conversion between Plutarch terms and Haskell types.
This comes with convenient derivers. See the relevant section on the guide.
Module: `Plutarch.Lift`; another deriver within `Plutarch.DataRepr.Internal`
Worked on through
* [#62](https://github.com/Plutonomicon/plutarch/pull/62)
* [#109](https://github.com/Plutonomicon/plutarch/pull/109)
* [#130](https://github.com/Plutonomicon/plutarch/pull/130)
- [#62](https://github.com/Plutonomicon/plutarch/pull/62)
- [#109](https://github.com/Plutonomicon/plutarch/pull/109)
- [#130](https://github.com/Plutonomicon/plutarch/pull/130)
- Deprecate `punsafeConstant`. Use `pconstant` instead!
- Add `PIsList` & `PList` + instances for `PBuiltinList` - ergonomic list functions for all!
Module: `Plutarch.Rec`
Worked on through:
* [#60](https://github.com/Plutonomicon/plutarch/pull/60)
* [#114](https://github.com/Plutonomicon/plutarch/pull/114)
* [#125](https://github.com/Plutonomicon/plutarch/pull/125)
* [#175](https://github.com/Plutonomicon/plutarch/pull/175)
- [#60](https://github.com/Plutonomicon/plutarch/pull/60)
- [#114](https://github.com/Plutonomicon/plutarch/pull/114)
- [#125](https://github.com/Plutonomicon/plutarch/pull/125)
- [#175](https://github.com/Plutonomicon/plutarch/pull/175)
- The Plutus V1 ledger api types implemented in Plutarch!
Module: `Plutarch.Api.V1`
Worked on through:
* [#66](https://github.com/Plutonomicon/plutarch/pull/66)
* [#130](https://github.com/Plutonomicon/plutarch/pull/130)
* [#151](https://github.com/Plutonomicon/plutarch/pull/151)
* [#161](https://github.com/Plutonomicon/plutarch/pull/161)
* [#163](https://github.com/Plutonomicon/plutarch/pull/163)
* [#173](https://github.com/Plutonomicon/plutarch/pull/173)
- [#66](https://github.com/Plutonomicon/plutarch/pull/66)
- [#130](https://github.com/Plutonomicon/plutarch/pull/130)
- [#151](https://github.com/Plutonomicon/plutarch/pull/151)
- [#161](https://github.com/Plutonomicon/plutarch/pull/161)
- [#163](https://github.com/Plutonomicon/plutarch/pull/163)
- [#173](https://github.com/Plutonomicon/plutarch/pull/173)
- Implement Plutarch rational type.
Module: `Plutarch.Rational`
Added in: [#189](https://github.com/Plutonomicon/plutarch/pull/189)
Thanks to:
- @blamario
- @emiflake
- @Geometer1729
pmapMaybeData,
-- * Combining
BothPresentHandler,
BothPresentHandler_ (..),
BothPresentHandlerCommutative,
BothPresentHandlerCommutative_ (..),
OnePresentHandler,
OnePresentHandler_ (..),
MergeHandler,
MergeHandler_ (..),
MergeHandlerCommutative,
MergeHandlerCommutative_ (..),
SomeMergeHandler,
SomeMergeHandler_ (..),
Commutativity (..),
pzipWith,
pzipWithData,
pzipWithDefault,
pzipWithDataDefault,
pzipWithDefaults,
pzipWithDataDefaults,
pintersectionWith,
pintersectionWithData,
pleftBiasedUnion,
punionResolvingCollisionsWith,
punionResolvingCollisionsWithData,
pdifference,
punionWith,
punionWithData,
punsortedDifference,
-- * Partial order operations
pcheckBinRel,
pconstantToRepr,
)
import Plutarch.List qualified as List
import Plutarch.Prelude hiding (pall, pany, pfilter, pmap, pnull, psingleton)
import Plutarch.Prelude hiding (pall, pany, pfilter, pmap, pnull, psingleton, pzipWith)
import Plutarch.Prelude qualified as PPrelude
import Plutarch.TryFrom (PTryFrom (PTryFromExcess, ptryFrom'))
import Plutarch.Unsafe (punsafeCoerce, punsafeDowncast)
import Data.Traversable (for)
import Data.Bifunctor (bimap)
import Plutarch.Bool (PSBool (PSFalse, PSTrue), psfalse, pstrue)
data KeyGuarantees = Sorted | Unsorted
(POrd k, PIsData k, PIsData v, Semigroup (Term s v)) =>
Semigroup (Term s (PMap 'Sorted k v))
where
a <> b = punionWith # plam (<>) # a # b
a <> b = punionResolvingCollisionsWith NonCommutative # plam (<>) # a # b
instance
(POrd k, PIsData k, PIsData v, Semigroup (Term s v)) =>
(POrd k, PIsData k, PIsData v, forall (s' :: S). Monoid (Term s' v)) =>
Monoid (Term s (PMap 'Sorted k v))
where
mempty = pempty
(POrd k, PIsData k, PIsData v, PlutusTx.Semigroup (Term s v)) =>
PlutusTx.Semigroup (Term s (PMap 'Sorted k v))
where
a <> b = punionWith # plam (PlutusTx.<>) # a # b
a <> b = punionResolvingCollisionsWith NonCommutative # plam (PlutusTx.<>) # a # b
instance
(POrd k, PIsData k, PIsData v, PlutusTx.Semigroup (Term s v)) =>
(POrd k, PIsData k, PIsData v, forall (s' :: S). PlutusTx.Monoid (Term s' v)) =>
PlutusTx.Monoid (Term s (PMap 'Sorted k v))
where
mempty = pempty
instance
(POrd k, PIsData k, PIsData v, PlutusTx.Group (Term s v)) =>
(POrd k, PIsData k, PIsData v, forall (s' :: S). PlutusTx.Group (Term s' v)) =>
PlutusTx.Group (Term s (PMap 'Sorted k v))
where
inv a = pmap # plam PlutusTx.inv # a
{- | Combine two 'PMap's applying the given function to any two values that
share the same key.
type BothPresentHandler k v s = BothPresentHandler_ (->) (Term s k) (Term s v)
data BothPresentHandler_ f k v
= DropBoth
| -- | True ~ left, False ~ right
PassArg Bool
| HandleBoth (k `f` (v `f` (v `f` v)))
deriving stock instance (forall a b. Show (f a b)) => Show (BothPresentHandler_ f k v)
type BothPresentHandlerCommutative k v s = BothPresentHandlerCommutative_ (->) (Term s k) (Term s v)
data BothPresentHandlerCommutative_ f k v
= DropBothCommutative
| HandleBothCommutative (k `f` (v `f` (v `f` v)))
deriving stock instance (forall a b. Show (f a b)) => Show (BothPresentHandlerCommutative_ f k v)
type OnePresentHandler k v s = OnePresentHandler_ (->) (Term s k) (Term s v)
data OnePresentHandler_ f k v
= DropOne
| PassOne
| HandleOne (k `f` (v `f` v))
deriving stock instance (forall a b. Show (f a b)) => Show (OnePresentHandler_ f k v)
type MergeHandler k v s = MergeHandler_ (->) (Term s k) (Term s v)
{- | Signals how to handle value merging for matching keys in 'pzipWith'.
No restrictions on commutativity: Safe to use for both commutative and
non-commutative merging operations.
-}
punionWith ::
(POrd k, PIsData k, PIsData v) =>
Term s ((v :--> v :--> v) :--> PMap 'Sorted k v :--> PMap 'Sorted k v :--> PMap 'Sorted k v)
punionWith = phoistAcyclic $
plam $
\combine -> punionWithData #$ plam $
\x y -> pdata (combine # pfromData x # pfromData y)
data MergeHandler_ f k v = MergeHandler
{ mhBoth :: BothPresentHandler_ f k v
, mhLeft :: OnePresentHandler_ f k v
, mhRight :: OnePresentHandler_ f k v
}
deriving stock instance (forall a b. Show (f a b)) => Show (MergeHandler_ f k v)
type MergeHandlerCommutative k v s = MergeHandlerCommutative_ (->) (Term s k) (Term s v)
{- | Signals how to handle value merging for matching keys in 'pzipWith'.
data MapUnionCarrier k v s = MapUnionCarrier
{ merge :: Term s (PBuiltinListOfPairs k v :--> PBuiltinListOfPairs k v :--> PBuiltinListOfPairs k v)
, mergeInsert :: Term s (PBuiltinPair (PAsData k) (PAsData v) :--> PBuiltinListOfPairs k v :--> PBuiltinListOfPairs k v :--> PBuiltinListOfPairs k v)
Safe to use for commutative merging operations only.
-}
data MergeHandlerCommutative_ f k v = MergeHandlerCommutative
{ mhcBoth :: BothPresentHandlerCommutative_ f k v
, mhcOne :: OnePresentHandler_ f k v
}
deriving stock (Generic)
deriving anyclass (PlutusType)
instance DerivePlutusType (MapUnionCarrier k v) where type DPTStrat _ = PlutusTypeScott
mapUnionCarrier :: (POrd k, PIsData k) => Term s ((PAsData v :--> PAsData v :--> PAsData v) :--> MapUnionCarrier k v :--> MapUnionCarrier k v)
mapUnionCarrier = phoistAcyclic $ plam \combine self ->
let mergeInsert = pmatch self \(MapUnionCarrier {mergeInsert}) -> mergeInsert
merge = pmatch self \(MapUnionCarrier {merge}) -> merge
in pcon $
MapUnionCarrier
{ merge = plam $ \xs ys -> pmatch xs $ \case
PNil -> ys
PCons x xs' -> mergeInsert # x # xs' # ys
, mergeInsert = plam $ \x xs ys ->
pmatch ys $ \case
PNil -> pcons # x # xs
PCons y1 ys' ->
plet y1 $ \y ->
plet (pfstBuiltin # x) $ \xk ->
plet (pfstBuiltin # y) $ \yk ->
pif
(xk #== yk)
( pcons
# (ppairDataBuiltin # xk #$ combine # (psndBuiltin # x) # (psndBuiltin # y))
#$ merge
# xs
# ys'
)
( pif
(pfromData xk #< pfromData yk)
( pcons
# x
# (mergeInsert # y # ys' # xs)
)
( pcons
# y
# (mergeInsert # x # xs # ys')
)
)
}
mapUnion :: forall k v s. (POrd k, PIsData k) => Term s ((PAsData v :--> PAsData v :--> PAsData v) :--> MapUnionCarrier k v)
mapUnion = phoistAcyclic $ plam \combine -> punsafeCoerce pfix # (mapUnionCarrier # combine :: Term _ (MapUnionCarrier k v :--> MapUnionCarrier k v))
{- | Combine two 'PMap's applying the given function to any two data-encoded
values that share the same key.
deriving stock instance (forall a b. Show (f a b)) => Show (MergeHandlerCommutative_ f k v)
type SomeMergeHandler k v s = SomeMergeHandler_ (->) (Term s k) (Term s v)
pconstantPositiveSingleton,
-- * Combining values
punionWith,
punionWithData,
pleftBiasedCurrencyUnion,
pleftBiasedTokenUnion,
punionResolvingCollisionsWith,
punionResolvingCollisionsWithData,
-- * Partial ordering operations
pcheckBinRel,
import PlutusLedgerApi.V1 qualified as Plutus
import Plutarch.Api.V1.AssocMap (KeyGuarantees (Sorted, Unsorted), PMap (..))
import Plutarch.Api.V1.AssocMap (Commutativity (Commutative, NonCommutative), KeyGuarantees (Sorted, Unsorted), PMap (..))
import Plutarch.Api.V1.AssocMap qualified as AssocMap
import Plutarch.Bool (pand', pif')
import Plutarch.Lift (
f = phoistAcyclic $ pcheckBinRel #$ phoistAcyclic $ plam (#<=)
instance PEq (PValue 'Sorted 'NoGuarantees) where
a #== b = AssocMap.pall # (AssocMap.pall # plam (#== 0)) # pto (punionWith # plam (-) # a # b)
a #== b =
AssocMap.pall
# (AssocMap.pall # plam (#== 0))
-- While '(-)' is not commutative, we don't need that property here.
-- TODO benchmark with '(==)'
# pto (punionResolvingCollisionsWith Commutative # plam (-) # a # b)
instance Semigroup (Term s (PValue 'Sorted 'Positive)) where
a <> b = punsafeDowncast (pto $ punionWith # plam (+) # a # b)
a <> b = punsafeDowncast (pto $ punionResolvingCollisionsWith Commutative # plam (+) # a # b)
instance PlutusTx.Semigroup (Term s (PValue 'Sorted 'Positive)) where
a <> b = punsafeDowncast (pto $ punionWith # plam (+) # a # b)
a <> b = punsafeDowncast (pto $ punionResolvingCollisionsWith Commutative # plam (+) # a # b)
instance Semigroup (Term s (PValue 'Sorted 'NonZero)) where
a <> b = pnormalize #$ punionWith # plam (+) # a # b
a <> b = pnormalize #$ punionResolvingCollisionsWith Commutative # plam (+) # a # b
instance PlutusTx.Semigroup (Term s (PValue 'Sorted 'NonZero)) where
a <> b = pnormalize #$ punionWith # plam (+) # a # b
a <> b = pnormalize #$ punionResolvingCollisionsWith Commutative # plam (+) # a # b
instance Semigroup (Term s (PValue 'Sorted 'NoGuarantees)) where
a <> b = punionWith # plam (+) # a # b
a <> b = punionResolvingCollisionsWith Commutative # plam (+) # a # b
instance PlutusTx.Semigroup (Term s (PValue 'Sorted 'NoGuarantees)) where
a <> b = punionWith # plam (+) # a # b
a <> b = punionResolvingCollisionsWith Commutative # plam (+) # a # b
instance
Semigroup (Term s (PValue 'Sorted normalization)) =>
# pfromData (psndBuiltin #$ phead #$ pto $ pfromData $ psndBuiltin # x)
# 0
-- | Combine two 'PValue's, taking the tokens from the left only, if a currency occurs on both sides.
pleftBiasedCurrencyUnion ::
Term
s
( PValue 'Sorted any0
:--> PValue 'Sorted any1
:--> PValue 'Sorted 'NoGuarantees
)
pleftBiasedCurrencyUnion = phoistAcyclic $
plam \x y -> pcon . PValue $ AssocMap.pleftBiasedUnion # pto x # pto y
{- | Combine two 'PValue's, taking the tokens from the left only, if a token name
of the same currency occurs on both sides.
Prefer this over 'punionResolvingCollisionsWith NonCommutative # plam const'.
It is equivalent, but performs better.
-}
pleftBiasedTokenUnion ::
Term
s
( PValue 'Sorted any0
:--> PValue 'Sorted any1
:--> PValue 'Sorted 'NoGuarantees
)
pleftBiasedTokenUnion = phoistAcyclic $
plam $ \x y ->
pcon . PValue $
AssocMap.punionResolvingCollisionsWith NonCommutative
# plam (\x y -> AssocMap.pleftBiasedUnion # x # y)
# pto x
# pto y
{- | Combine two 'PValue's applying the given function to any pair of
quantities with the same asset class. Note that the result is _not_
'normalize'd and may contain zero quantities.
-}
punionWith ::
punionResolvingCollisionsWith ::
Commutativity ->
Term
s
( (PInteger :--> PInteger :--> PInteger)
:--> PValue 'Sorted any0
:--> PValue 'Sorted any1
:--> PValue 'Sorted 'NoGuarantees
)
punionWith = phoistAcyclic $
punionResolvingCollisionsWith commutativity = phoistAcyclic $
plam $ \combine x y ->
pcon . PValue $
AssocMap.punionWith
# plam (\x y -> AssocMap.punionWith # combine # x # y)
AssocMap.punionResolvingCollisionsWith commutativity
# plam (\x y -> AssocMap.punionResolvingCollisionsWith commutativity # combine # x # y)
# pto x
# pto y
{- | Combine two 'PValue's applying the given function to any pair of
data-encoded quantities with the same asset class. Note that the result is
_not_ 'normalize'd and may contain zero quantities.
-}
punionWithData ::
punionResolvingCollisionsWithData ::
Commutativity ->
Term
s
( (PAsData PInteger :--> PAsData PInteger :--> PAsData PInteger)
:--> PValue 'Sorted any0
:--> PValue 'Sorted any1
:--> PValue 'Sorted 'NoGuarantees
)
punionWithData = phoistAcyclic $
punionResolvingCollisionsWithData commutativity = phoistAcyclic $
plam $ \combine x y ->
pcon . PValue $
AssocMap.punionWith
# plam (\x y -> AssocMap.punionWithData # combine # x # y)
AssocMap.punionResolvingCollisionsWith commutativity
# plam (\x y -> AssocMap.punionResolvingCollisionsWithData commutativity # combine # x # y)
# pto x
# pto y
pand,
pand',
por',
PSBool (..),
pmatchStrict,
pstrue,
psfalse,
psif,
psif',
psnot,
psand,
psand',
psor,
psor',
) where
import Data.List.NonEmpty (nonEmpty)
ccompare_NS,
hcliftA2,
)
import Plutarch.Internal (
PDelayed,
S,
Term,
pdelay,
pforce,
phoistAcyclic,
plet,
(#),
(#$),
(:-->),
)
import Plutarch.Internal (PDelayed, PType, S, Term, pdelay, pforce, phoistAcyclic, plet, (#), (#$), (:-->))
import Plutarch.Internal.Generic (PCode, PGeneric, gpfrom)
import Plutarch.Internal.Other (
pto,
)
import Plutarch.Internal.PLam (plam)
import Plutarch.Internal.PlutusType (PInner, PlutusType, pcon, pcon', pmatch, pmatch')
import Plutarch.Internal.Quantification (PForall (PForall))
import Plutarch.Lift (
DerivePConstantDirect (DerivePConstantDirect),
PConstantDecl,
eqTerm :: forall s a. PEq a => Term s a -> Term s a -> K (Term s PBool) a
eqTerm a b =
K $ a #== b
-- | 'PInner' of 'PSBool'.
newtype PSBoolRaw (a :: PType) (s :: S) = PSBoolRaw (Term s (a :--> a :--> a))
instance PlutusType (PSBoolRaw a) where
type PInner (PSBoolRaw a) = a :--> a :--> a
pcon' (PSBoolRaw x) = x
pmatch' x f = f (PSBoolRaw x)
-- | Scott-encoded bool.
data PSBool (s :: S)
= PSTrue
| PSFalse
deriving stock (Eq, Ord, Show)
instance PlutusType PSBool where
type PInner PSBool = PForall PSBoolRaw
pcon' PSTrue = pcon $ PForall $ pcon $ PSBoolRaw $ plam const
pcon' PSFalse = pcon $ PForall $ pcon $ PSBoolRaw $ plam (const id)
pmatch' x' f =
pmatch x' $ \(PForall raw) ->
pmatch raw $ \(PSBoolRaw x) ->
pforce $ x # pdelay (f PSTrue) # pdelay (f PSFalse)
-- | Strict version of 'pmatch' for 'PSBool'.
pmatchStrict ::
forall (r :: PType) (s :: S).
Term s PSBool ->
(PSBool s -> Term s r) ->
Term s r
pmatchStrict x' f =
pmatch (pto x') $ \(PForall raw) ->
pmatch raw $ \(PSBoolRaw x) ->
x # f PSTrue # f PSFalse
pstrue :: forall (s :: S). Term s PSBool
pstrue = pcon PSTrue
psfalse :: forall (s :: S). Term s PSBool
psfalse = pcon PSFalse
-- | Strict @if@ on Scott-encoded bool.
psif' :: forall (s :: S) (a :: PType). Term s PSBool -> Term s a -> Term s a -> Term s a
psif' b t f = pmatchStrict b \case
PSTrue -> t
PSFalse -> f
-- | Lazy @if@ on Scott-encoded bool.
psif :: forall (s :: S) (a :: PType). Term s PSBool -> Term s a -> Term s a -> Term s a
psif b t f = pforce $ psif' b (pdelay t) (pdelay f)
-- | @not@ on Scott-encoded bool.
psnot :: forall (s :: S). Term s PSBool -> Term s PSBool
psnot b = psif' b psfalse pstrue
psand' :: forall (s :: S). Term s PSBool -> Term s PSBool -> Term s PSBool
psand' a b = psif' a b psfalse
psand :: forall (s :: S). Term s PSBool -> Term s PSBool -> Term s PSBool
psand a b = psif a b psfalse
psor' :: forall (s :: S). Term s PSBool -> Term s PSBool -> Term s PSBool
psor' a = psif' a pstrue
psor :: forall (s :: S). Term s PSBool -> Term s PSBool -> Term s PSBool
psor a = psif a pstrue
lookupData.miss {"exBudgetCPU":4325532,"exBudgetMemory":11122,"scriptSizeBytes":124}
findWithDefault.itself {"exBudgetCPU":115100,"exBudgetMemory":600,"scriptSizeBytes":78}
findWithDefault.hit {"exBudgetCPU":4097533,"exBudgetMemory":10354,"scriptSizeBytes":117}
findWithDefault.hit2 {"exBudgetCPU":14871543,"exBudgetMemory":39532,"scriptSizeBytes":329}
findWithDefault.hit2 {"exBudgetCPU":13292868,"exBudgetMemory":33068,"scriptSizeBytes":406}
findWithDefault.miss {"exBudgetCPU":4532532,"exBudgetMemory":12022,"scriptSizeBytes":125}
singleton {"exBudgetCPU":742104,"exBudgetMemory":2828,"scriptSizeBytes":39}
singletonData {"exBudgetCPU":604104,"exBudgetMemory":2228,"scriptSizeBytes":34}
delete.miss {"exBudgetCPU":4366498,"exBudgetMemory":14786,"scriptSizeBytes":169}
delete.new {"exBudgetCPU":9803231,"exBudgetMemory":30904,"scriptSizeBytes":205}
delete.old {"exBudgetCPU":7780191,"exBudgetMemory":25178,"scriptSizeBytes":204}
difference.emptyLeft {"exBudgetCPU":2067458,"exBudgetMemory":7860,"scriptSizeBytes":162}
difference.emptyRight {"exBudgetCPU":4494995,"exBudgetMemory":15848,"scriptSizeBytes":165}
difference.emptyResult {"exBudgetCPU":7452717,"exBudgetMemory":22006,"scriptSizeBytes":179}
unionWith.const {"exBudgetCPU":9281337,"exBudgetMemory":29270,"scriptSizeBytes":263}
unionWith.double {"exBudgetCPU":9372814,"exBudgetMemory":28772,"scriptSizeBytes":259}
unionWith.(+) {"exBudgetCPU":9144040,"exBudgetMemory":28276,"scriptSizeBytes":265}
unionWith.flip (+) {"exBudgetCPU":9144040,"exBudgetMemory":28276,"scriptSizeBytes":265}
unionWithData.const {"exBudgetCPU":8848623,"exBudgetMemory":27674,"scriptSizeBytes":249}
unionWithData.emptyLeft {"exBudgetCPU":2757458,"exBudgetMemory":10860,"scriptSizeBytes":236}
unionWithData.emptyRight {"exBudgetCPU":4209736,"exBudgetMemory":15888,"scriptSizeBytes":236}
\ No newline at end of file
difference.emptyLeft {"exBudgetCPU":1814458,"exBudgetMemory":6760,"scriptSizeBytes":265}
difference.emptyRight {"exBudgetCPU":3312736,"exBudgetMemory":11988,"scriptSizeBytes":268}
difference.emptyResult {"exBudgetCPU":6740757,"exBudgetMemory":19746,"scriptSizeBytes":281}
difference.partialOverlap {"exBudgetCPU":20557164,"exBudgetMemory":60306,"scriptSizeBytes":390}
zipMapsWith.(-) {"exBudgetCPU":24608238,"exBudgetMemory":70720,"scriptSizeBytes":627}
leftBiasedUnion.const {"exBudgetCPU":20714657,"exBudgetMemory":60738,"scriptSizeBytes":407}
unionResolvingCollisionsWith.const {"exBudgetCPU":21694744,"exBudgetMemory":63730,"scriptSizeBytes":449}
unionResolvingCollisionsWith.flip const {"exBudgetCPU":21694744,"exBudgetMemory":63730,"scriptSizeBytes":449}
unionResolvingCollisionsWith.double {"exBudgetCPU":7716814,"exBudgetMemory":21572,"scriptSizeBytes":247}
unionResolvingCollisionsWith.(+) {"exBudgetCPU":7716814,"exBudgetMemory":21572,"scriptSizeBytes":247}
unionResolvingCollisionsWith.preservesCombineCommutativity {"exBudgetCPU":7716814,"exBudgetMemory":21572,"scriptSizeBytes":247}
unionResolvingCollisionsWithData.const {"exBudgetCPU":7652623,"exBudgetMemory":22474,"scriptSizeBytes":328}
unionResolvingCollisionsWithData.emptyLeft {"exBudgetCPU":2067458,"exBudgetMemory":7860,"scriptSizeBytes":316}
unionResolvingCollisionsWithData.emptyRight {"exBudgetCPU":3496736,"exBudgetMemory":12788,"scriptSizeBytes":315}
unionResolvingCollisionsWithData.distinctKeys {"exBudgetCPU":7634365,"exBudgetMemory":22112,"scriptSizeBytes":334}
intersectionWith.const {"exBudgetCPU":20881648,"exBudgetMemory":61334,"scriptSizeBytes":431}
intersectionWith.flip const {"exBudgetCPU":20881648,"exBudgetMemory":61334,"scriptSizeBytes":431}
intersectionWith.double {"exBudgetCPU":7716814,"exBudgetMemory":21572,"scriptSizeBytes":233}
intersectionWith.(+) {"exBudgetCPU":7716814,"exBudgetMemory":21572,"scriptSizeBytes":233}
intersectionWith.preservesCombineCommutativity {"exBudgetCPU":7716814,"exBudgetMemory":21572,"scriptSizeBytes":233}
intersectionWith.partialKeyMismatch {"exBudgetCPU":14730860,"exBudgetMemory":40352,"scriptSizeBytes":485}
intersectionWithData.const {"exBudgetCPU":7652623,"exBudgetMemory":22474,"scriptSizeBytes":310}
intersectionWithData.emptyLeft {"exBudgetCPU":2067458,"exBudgetMemory":7860,"scriptSizeBytes":298}
intersectionWithData.emptyRight {"exBudgetCPU":3339243,"exBudgetMemory":12356,"scriptSizeBytes":297}
intersectionWithData.keyMismatch {"exBudgetCPU":8024054,"exBudgetMemory":23912,"scriptSizeBytes":316}
\ No newline at end of file
difference.emptyLeft (program 1.0.0 [])
difference.emptyRight (program 1.0.0 [(#436b6579, #182a)])
difference.emptyResult (program 1.0.0 [])
unionWith.const (program 1.0.0 [(#436b6579, #182a)])
unionWith.double (program 1.0.0 [(#436b6579, #1854)])
unionWith.(+) (program 1.0.0 [(#436b6579, #182a), (#466e65776b6579, #06)])
unionWith.flip (+) (program 1.0.0 [(#436b6579, #182a), (#466e65776b6579, #06)])
unionWithData.const (program 1.0.0 [(#436b6579, #182a)])
unionWithData.emptyLeft (program 1.0.0 [(#436b6579, #182a)])
unionWithData.emptyRight (program 1.0.0 [(#436b6579, #182a)])
\ No newline at end of file
difference.partialOverlap (program 1.0.0 [(#4161, #182a)])
zipMapsWith.(-) (program 1.0.0 [(#4161, #182a), (#4162, #0d), (#4163, #26)])
leftBiasedUnion.const (program 1.0.0 [(#4161, #182a), (#4162, #06), (#4163, #17)])
unionResolvingCollisionsWith.const (program 1.0.0 [(#4161, #182a), (#4162, #06), (#4163, #17)])
unionResolvingCollisionsWith.flip const (program 1.0.0 [(#4161, #182a), (#4162, #07), (#4163, #17)])
unionResolvingCollisionsWith.double (program 1.0.0 [(#436b6579, #1854)])
unionResolvingCollisionsWith.(+) (program 1.0.0 [(#436b6579, #1841)])
unionResolvingCollisionsWith.preservesCombineCommutativity (program 1.0.0 [(#436b6579, #1841)])
unionResolvingCollisionsWithData.const (program 1.0.0 [(#436b6579, #182a)])
unionResolvingCollisionsWithData.emptyLeft (program 1.0.0 [(#436b6579, #182a)])
unionResolvingCollisionsWithData.emptyRight (program 1.0.0 [(#436b6579, #182a)])
unionResolvingCollisionsWithData.distinctKeys (program 1.0.0 [(#436b6579, #182a), (#466e65776b6579, #06)])
intersectionWith.const (program 1.0.0 [(#4162, #06)])
intersectionWith.flip const (program 1.0.0 [(#4162, #07)])
intersectionWith.double (program 1.0.0 [(#436b6579, #1854)])
intersectionWith.(+) (program 1.0.0 [(#436b6579, #1841)])
intersectionWith.preservesCombineCommutativity (program 1.0.0 [(#436b6579, #1841)])
intersectionWith.partialKeyMismatch (program 1.0.0 [(#436b6579, #1841)])
intersectionWithData.const (program 1.0.0 [(#436b6579, #182a)])
intersectionWithData.emptyLeft (program 1.0.0 [])
intersectionWithData.emptyRight (program 1.0.0 [])
intersectionWithData.keyMismatch (program 1.0.0 [])
\ No newline at end of file
lookupData.miss (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> force (force (force chooseList) i1 (delay (\i0 -> \i0 -> force i1)) (delay (force (force ifThenElse (equalsData (force (force fstPair) (i6 i1)) i4) (delay (i5 (i6 i1))) (delay (i2 (force tailList i1)))))))) i1) (\i0 -> (\i0 -> \i0 -> \i0 -> i2 i3) (force (force sndPair) i1)) (bData #6e6f6b6579) ((\i0 -> \i0 -> (\i0 -> \i0 -> force mkCons (mkPairData i2 i1) [ ]) (bData i2) (iData i1)) #6b6579 42)) (force headList)))
findWithDefault.itself (program 1.0.0 ((\i0 -> \i0 -> \i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> force (force (force chooseList) i1 (delay i5) (delay (force (force ifThenElse (equalsData (force (force fstPair) (i9 i1)) i6) (delay (i4 (force (force sndPair) (i9 i1)))) (delay (i2 (force tailList i1)))))))) i1) (bData i1) i2 unIData) (force headList)))
findWithDefault.hit (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> \i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> force (force (force chooseList) i1 (delay i5) (delay (force (force ifThenElse (equalsData (force (force fstPair) (i9 i1)) i6) (delay (i4 (force (force sndPair) (i9 i1)))) (delay (i2 (force tailList i1)))))))) i1) (bData i1) i2 unIData) 12 i2 ((\i0 -> (\i0 -> \i0 -> force mkCons (mkPairData i2 i1) [ ]) (bData i3) (iData i1)) 42)) (force headList)) #6b6579))
findWithDefault.hit2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> i7 (\i0 -> \i0 -> force (i13 i1 (delay i5) (delay (force (i11 (equalsData (i12 (i14 i1)) i6) (delay (i4 (i10 (i14 i1)))) (delay (i2 (i15 i1)))))))) i1) (bData i1) i2 unIData) 12 i12 ((\i0 -> (\i0 -> \i0 -> \i0 -> i5 (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i14 i1 (delay (i19 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i15 (equalsData i2 i1) (delay (i22 (mkPairData i2 (i11 (i14 i6) (i14 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i19 i4)))) (delay (force (i15 (lessThanByteString (unBData i2) (unBData i1)) (delay (i22 i6 (i8 (\i0 -> \i0 -> i1) i3 (i19 i4) i5))) (delay (i22 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i19 i4))))))))) (i15 i2)) (i14 i4)) (i15 i1)))))) (\i0 -> \i0 -> force (i12 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i13 i2) (i14 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> iData (i3 (unIData i2) (unIData i1)))) (\i0 -> \i0 -> i2) (i8 #6b6579 42) (i8 i12 6))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6e65776b6579))
findWithDefault.hit2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> i7 (\i0 -> \i0 -> force (i13 i1 (delay i5) (delay (force (i11 (equalsData (i12 (i14 i1)) i6) (delay (i4 (i10 (i14 i1)))) (delay (i2 (i15 i1)))))))) i1) (bData i1) i2 unIData) 12 i12 ((\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i1) (delay ((\i0 -> i5 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay (i19 i3 i2)) (delay (i19 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i15 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (i12 (unIData (i14 i6)) (unIData (i14 i3))))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (iData (i12 (unIData (i14 i3)) (unIData (i14 i6))))) (i9 i8 (i19 i4) i5)))))) (delay (force (i15 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i22 i6 (i9 i8 i5 i4))) (delay (i22 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i22 i3 (i9 i8 (i22 i6 i5) (i19 i4)))) (delay (i22 i3 (i9 i8 (i19 i4) (i22 i6 i5)))))))))))) (i15 i2)) (i14 i4)) (i15 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i12 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i9 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i2) (i8 #6b6579 42) (i8 i12 6))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6e65776b6579))
findWithDefault.miss (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> force (force (force chooseList) i1 (delay i5) (delay (force (force ifThenElse (equalsData (force (force fstPair) (i9 i1)) i6) (delay (i4 (force (force sndPair) (i9 i1)))) (delay (i2 (force tailList i1)))))))) i1) (bData i1) i2 unIData) 12 #6e6f6b6579 ((\i0 -> \i0 -> (\i0 -> \i0 -> force mkCons (mkPairData i2 i1) [ ]) (bData i2) (iData i1)) #6b6579 42)) (force headList)))
singleton (program 1.0.0 ((\i0 -> \i0 -> (\i0 -> \i0 -> force mkCons (mkPairData i2 i1) [ ]) (bData i2) (iData i1)) #6b6579 42))
singletonData (program 1.0.0 ((\i0 -> \i0 -> force mkCons (mkPairData i2 i1) [ ]) (bData #6b6579) (iData 42)))
delete.miss (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> force (force (force chooseList) i1 (delay (\i0 -> i1 (i6 i11))) (delay ((\i0 -> \i0 -> force (i8 (lessThanByteString i2 i6) (delay (i4 (i9 i3) (\i0 -> i2 (i12 (i11 i4) i1)))) (delay (force (i8 (equalsByteString i2 i6) (delay (i1 (i7 (i9 i3)))) (delay (i1 (i7 (i11 (i10 i3) (i9 i3)))))))))) (unBData (force (force fstPair) (i8 i1))))))) i1 (\i0 -> i1)) (\i0 -> i1) #6e6f6b6579 ((\i0 -> \i0 -> (\i0 -> \i0 -> i8 (mkPairData i2 i1) i9) (bData i2) (iData i1)) #6b6579 42)) (force ifThenElse)) (force tailList)) (force headList)) (force mkCons)) [ ]))
delete.new (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> i1) i8 ((\i0 -> i2 (\i0 -> i11 (mkPairData (bData i10) (iData i2)) i1) i9) 6 ((\i0 -> \i0 -> (\i0 -> \i0 -> i13 (mkPairData i2 i1) i14) (bData i2) (iData i1)) #6b6579 42))) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i16 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i15 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) #6e65776b6579) (force mkCons)) [ ]))
delete.old (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> i1) i10 ((\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2) #6e65776b6579 6 ((\i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i11) (iData i1)) 42))) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i14))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) [ ]) #6b6579))
difference.emptyLeft (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> \i0 -> force (i5 i1 (delay i10) (delay ((\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> i10 (\i0 -> \i0 -> force (i13 i1 (delay i5) (delay (force (force ifThenElse (equalsData (i14 (i15 i1)) i6) (delay (i4 (force (force sndPair) (i15 i1)))) (delay (i2 (i16 i1)))))))) i1) (bData i1)) (unBData (i7 (i8 i2))) (i10 (i8 i2) i1) (\i0 -> i2) i4) (i2 (i8 i1)))))) i8) ((\i0 -> \i0 -> (\i0 -> \i0 -> i10 (mkPairData i2 i1) i11) (bData i2) (iData i1)) #6b6579 42)) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force (force fstPair))) (force headList)) (force tailList)) (force mkCons)) [ ]))
difference.emptyRight (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i6 i1 (delay i11) (delay ((\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> i11 (\i0 -> \i0 -> force (i14 i1 (delay i5) (delay (force (force ifThenElse (equalsData (i15 (i16 i1)) i6) (delay (i4 (force (force sndPair) (i16 i1)))) (delay (i2 (i17 i1)))))))) i1) (bData i1)) (unBData (i8 (i9 i2))) (i11 (i9 i2) i1) (\i0 -> i2) i4) (i2 (i9 i1)))))) i2) ((\i0 -> \i0 -> (\i0 -> \i0 -> i10 (mkPairData i2 i1) i11) (bData i2) (iData i1)) #6b6579 42) i7) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force (force fstPair))) (force headList)) (force tailList)) (force mkCons)) [ ]))
difference.emptyResult (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i6 i1 (delay i13) (delay ((\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> \i0 -> i11 (\i0 -> \i0 -> force (i14 i1 (delay i5) (delay (force (force ifThenElse (equalsData (i15 (i16 i1)) i6) (delay (i4 (force (force sndPair) (i16 i1)))) (delay (i2 (i17 i1)))))))) i1) (bData i1)) (unBData (i8 (i9 i2))) (i13 (i9 i2) i1) (\i0 -> i2) i4) (i2 (i9 i1)))))) i2) (i6 i10 42) (i6 i10 84)) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force (force fstPair))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionWith.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i13 i1 (delay (i18 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (i21 (mkPairData i2 (i11 (i13 i6) (i13 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i18 i4)))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (i21 i6 (i8 (\i0 -> \i0 -> i1) i3 (i18 i4) i5))) (delay (i21 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i18 i4))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> force (i11 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i12 i2) (i13 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> iData (i3 (unIData i2) (unIData i1)))) (\i0 -> \i0 -> i2) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionWith.double (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i12 i1 (delay (i17 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i20 (mkPairData i2 (i11 (i12 i6) (i12 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i20 i6 (i8 (\i0 -> \i0 -> i1) i3 (i17 i4) i5))) (delay (i20 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i17 i4))))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i11 i2) (i12 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> iData (addInteger (unIData i2) (unIData i1))) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionWith.(+) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i12 i1 (delay (i17 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i20 (mkPairData i2 (i11 (i12 i6) (i12 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i20 i6 (i8 (\i0 -> \i0 -> i1) i3 (i17 i4) i5))) (delay (i20 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i17 i4))))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i11 i2) (i12 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> iData (addInteger (unIData i2) (unIData i1))) (i7 #6b6579 42) (i7 #6e65776b6579 6)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]))
unionWith.flip (+) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i12 i1 (delay (i17 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i20 (mkPairData i2 (i11 (i12 i6) (i12 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i20 i6 (i8 (\i0 -> \i0 -> i1) i3 (i17 i4) i5))) (delay (i20 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i17 i4))))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i11 i2) (i12 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> iData (addInteger (unIData i2) (unIData i1))) (i7 #6e65776b6579 6) (i7 #6b6579 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]))
unionWithData.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i12 i1 (delay (i17 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i20 (mkPairData i2 (i11 (i12 i6) (i12 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i20 i6 (i8 (\i0 -> \i0 -> i1) i3 (i17 i4) i5))) (delay (i20 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i17 i4))))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i11 i2) (i12 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> i2) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionWithData.emptyLeft (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i12 i1 (delay (i15 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i18 (mkPairData i2 (i11 (i12 i6) (i12 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i18 i6 (i8 (\i0 -> \i0 -> i1) i3 (i17 i4) i5))) (delay (i18 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i17 i4))))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i11 i2) (i12 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> i2) i8 ((\i0 -> \i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i2) (iData i1)) #6b6579 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
unionWithData.emptyRight (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (i12 i1 (delay (i15 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i18 (mkPairData i2 (i11 (i12 i6) (i12 i3))) (i8 (\i0 -> \i0 -> i2) i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i18 i6 (i8 (\i0 -> \i0 -> i1) i3 (i17 i4) i5))) (delay (i18 i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (i17 i4))))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (i11 i2) (i12 i2) i1))))) (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> i2) ((\i0 -> \i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i2) (iData i1)) #6b6579 42) i8) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
\ No newline at end of file
difference.emptyLeft (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> force (i4 i8 (delay i8) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i10 i1 (delay (force (i4 (delay (i13 i3 i2)) (delay i14)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i11 (equalsData i2 i1) (delay (force (i7 (delay (i9 i8 i5 (i15 i4))) (delay (i9 i8 (i15 i4) i5))))) (delay (force (i11 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i16 i6 (i9 i8 i5 i4))) (delay (i8 (\i0 -> \i0 -> i2) i3 (i15 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i15 i4))) (delay (i16 i3 (i9 i8 (i15 i4) (i16 i6 i5)))))))))))) (i11 i2)) (i10 i4)) (i11 i1)))))) (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i11) (delay (i3 (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) (i5 i8) (i6 i8) i1)))) ((\i0 -> \i0 -> (\i0 -> \i0 -> i10 (mkPairData i2 i1) i11) (bData i2) (iData i1)) #6b6579 42)) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
difference.emptyRight (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i5 i2 (delay i9) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay (force (i4 (delay (i14 i3 i2)) (delay i15)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (force (i7 (delay (i9 i8 i5 (i16 i4))) (delay (i9 i8 (i16 i4) i5))))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i17 i6 (i9 i8 i5 i4))) (delay (i8 (\i0 -> \i0 -> i2) i3 (i16 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i16 i4))) (delay (i17 i3 (i9 i8 (i16 i4) (i17 i6 i5)))))))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i12) (delay (i3 (\i0 -> \i0 -> i2) (i9 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i2) (i6 i2) (i7 i2) i1)))) ((\i0 -> \i0 -> (\i0 -> \i0 -> i10 (mkPairData i2 i1) i11) (bData i2) (iData i1)) #6b6579 42) i7) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
difference.emptyResult (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i5 i2 (delay i11) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay (force (i4 (delay (i16 i3 i2)) (delay i17)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (force (i7 (delay (i9 i8 i5 (i16 i4))) (delay (i9 i8 (i16 i4) i5))))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i19 i6 (i9 i8 i5 i4))) (delay (i8 (\i0 -> \i0 -> i2) i3 (i16 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i16 i4))) (delay (i19 i3 (i9 i8 (i16 i4) (i19 i6 i5)))))))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i14) (delay (i3 (\i0 -> \i0 -> i2) (i9 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i2) (i6 i2) (i7 i2) i1)))) (i6 i10 42) (i6 i10 84)) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
difference.partialOverlap (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i13) (delay ((\i0 -> i6 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i12 i1 (delay (force (i4 (delay (i17 i3 i2)) (delay i19)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i16 (equalsData i2 i1) (delay (force (i7 (delay (i9 i8 i5 (i17 i4))) (delay (i9 i8 (i17 i4) i5))))) (delay (force (i16 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i20 i6 (i9 i8 i5 i4))) (delay (i8 (\i0 -> \i0 -> i2) i3 (i17 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i17 i4))) (delay (i20 i3 (i9 i8 (i17 i4) (i20 i6 i5)))))))))))) (i17 i2)) (i16 i4)) (i16 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i16) (delay (i3 (\i0 -> \i0 -> i2) (i13 i2) (i11 i2) i1)))) (\i0 -> \i0 -> i2) (i10 i2) (i8 i2) i1)))) (i1 i10 23 (i1 #61 42 i11)) (i1 #63 8 (i1 i10 10 i11))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
zipMapsWith.(-) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i8 i2 (delay (i3 (\i0 -> (\i0 -> mkPairData i1 (iData (subtractInteger 1 (unIData (i6 i2))))) (i12 i1)) i1)) (delay ((\i0 -> i8 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay (i9 (\i0 -> (\i0 -> mkPairData i1 (iData (subtractInteger (unIData (i12 i2)) 0))) (i18 i1)) (i19 i3 i2))) (delay (i9 (\i0 -> (\i0 -> mkPairData i1 (iData (subtractInteger 1 (unIData (i12 i2))))) (i18 i1)) (i19 i3 i2)))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i18 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (subtractInteger (unIData (i13 i6)) (unIData (i13 i3))))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (iData (subtractInteger (unIData (i13 i3)) (unIData (i13 i6))))) (i9 i8 (i19 i4) i5)))))) (delay (force (i18 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (subtractInteger (unIData (i13 i6)) 0))) (i8 (\i0 -> \i0 -> i1) i3 (i19 i4) i5))) (delay (i22 (mkPairData i2 (iData (subtractInteger 1 (unIData (i13 i6))))) (i8 (\i0 -> \i0 -> i2) i3 (i19 i4) i5)))))) (delay (force (i7 (delay (i22 (mkPairData i1 (iData (subtractInteger 1 (unIData (i13 i3))))) (i8 i7 i6 i5 (i19 i4)))) (delay (i22 (mkPairData i1 (iData (subtractInteger (unIData (i13 i3)) 0))) (i8 i7 i6 i5 (i19 i4)))))))))))) (i19 i2)) (i18 i4)) (i18 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay (i6 (\i0 -> (\i0 -> mkPairData i1 (iData (subtractInteger 1 (unIData (i9 i2))))) (i15 i1)) i1)) (delay (i3 (\i0 -> \i0 -> i2) (i15 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i12 i2) (i10 i2) i1)))) (i3 i12 23 (i3 #61 42 i13)) (i3 #63 8 (i3 i12 10 i13))) (\i0 -> i5 (\i0 -> \i0 -> force (i8 i1 (delay i15) (delay (i13 (i3 (i12 i1)) (i2 (i10 i1)))))))) (force (force sndPair))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
leftBiasedUnion.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i1) (delay ((\i0 -> i6 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i12 i1 (delay (force (i4 (delay (i17 i3 i2)) (delay (i17 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i16 (equalsData i2 i1) (delay (force (i7 (delay (i20 i6 (i9 i8 i5 (i17 i4)))) (delay (i20 i3 (i9 i8 (i17 i4) i5)))))) (delay (force (i16 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i20 i6 (i9 i8 i5 i4))) (delay (i20 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i20 i3 (i9 i8 (i20 i6 i5) (i17 i4)))) (delay (i20 i3 (i9 i8 (i17 i4) (i20 i6 i5)))))))))))) (i17 i2)) (i16 i4)) (i16 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i13 i2) (i11 i2) i1)))) (\i0 -> \i0 -> i2) (i10 i2) (i8 i2) i1)))) (i1 i10 6 (i1 #61 42 i11)) (i1 #63 23 (i1 i10 7 i11))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
unionResolvingCollisionsWith.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i1) (delay ((\i0 -> i8 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay (i19 i3 i2)) (delay (i19 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i18 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i6)) (unIData (i13 i3))))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i3)) (unIData (i13 i6))))) (i9 i8 (i19 i4) i5)))))) (delay (force (i18 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i22 i6 (i9 i8 i5 i4))) (delay (i22 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i22 i3 (i9 i8 (i22 i6 i5) (i19 i4)))) (delay (i22 i3 (i9 i8 (i19 i4) (i22 i6 i5)))))))))))) (i19 i2)) (i18 i4)) (i18 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i15 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i12 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i2) (i2 i11 6 (i2 #61 42 i12)) (i2 #63 23 (i2 i11 7 i12))) (force (force sndPair))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
unionResolvingCollisionsWith.flip const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i1) (delay ((\i0 -> i8 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay (i19 i3 i2)) (delay (i19 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i18 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i6)) (unIData (i13 i3))))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i3)) (unIData (i13 i6))))) (i9 i8 (i19 i4) i5)))))) (delay (force (i18 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i22 i6 (i9 i8 i5 i4))) (delay (i22 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i22 i3 (i9 i8 (i22 i6 i5) (i19 i4)))) (delay (i22 i3 (i9 i8 (i19 i4) (i22 i6 i5)))))))))))) (i19 i2)) (i18 i4)) (i18 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i15 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i12 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i1) (i2 i11 6 (i2 #61 42 i12)) (i2 #63 23 (i2 i11 7 i12))) (force (force sndPair))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
unionResolvingCollisionsWith.double (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay (i16 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (i19 (mkPairData i2 (iData (addInteger (unIData (i11 i6)) (unIData (i11 i3))))) (i8 i7 i5 (i16 i4)))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (i19 i6 (i8 i7 i5 i4))) (delay (i19 i3 (i8 i7 (i16 i4) (i19 i6 i5))))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i1) (delay (i3 (i10 i2) (i11 i2) i1)))) (i7 i2) (i8 i2) i1)))) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionResolvingCollisionsWith.(+) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay (i16 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (i19 (mkPairData i2 (iData (addInteger (unIData (i11 i6)) (unIData (i11 i3))))) (i8 i7 i5 (i16 i4)))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (i19 i6 (i8 i7 i5 i4))) (delay (i19 i3 (i8 i7 (i16 i4) (i19 i6 i5))))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i1) (delay (i3 (i10 i2) (i11 i2) i1)))) (i7 i2) (i8 i2) i1)))) (i7 i11 42) (i7 i11 23)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionResolvingCollisionsWith.preservesCombineCommutativity (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay (i16 i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (i19 (mkPairData i2 (iData (addInteger (unIData (i11 i6)) (unIData (i11 i3))))) (i8 i7 i5 (i16 i4)))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (i19 i6 (i8 i7 i5 i4))) (delay (i19 i3 (i8 i7 (i16 i4) (i19 i6 i5))))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i1) (delay (i3 (i10 i2) (i11 i2) i1)))) (i7 i2) (i8 i2) i1)))) (i7 i11 23) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionResolvingCollisionsWithData.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay (i18 i3 i2)) (delay (i18 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i21 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i21 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i21 i6 (i9 i8 i5 i4))) (delay (i21 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i21 i3 (i9 i8 (i21 i6 i5) (i18 i4)))) (delay (i21 i3 (i9 i8 (i18 i4) (i21 i6 i5)))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
unionResolvingCollisionsWithData.emptyLeft (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay (i16 i3 i2)) (delay (i16 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i19 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i19 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i19 i6 (i9 i8 i5 i4))) (delay (i19 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i19 i3 (i9 i8 (i19 i6 i5) (i18 i4)))) (delay (i19 i3 (i9 i8 (i18 i4) (i19 i6 i5)))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) i8 ((\i0 -> \i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i2) (iData i1)) #6b6579 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
unionResolvingCollisionsWithData.emptyRight (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay (i16 i3 i2)) (delay (i16 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i19 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i19 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i19 i6 (i9 i8 i5 i4))) (delay (i19 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i19 i3 (i9 i8 (i19 i6 i5) (i18 i4)))) (delay (i19 i3 (i9 i8 (i18 i4) (i19 i6 i5)))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) ((\i0 -> \i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i2) (iData i1)) #6b6579 42) i8) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
unionResolvingCollisionsWithData.distinctKeys (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i1) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay (i18 i3 i2)) (delay (i18 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i21 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i21 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i21 i6 (i9 i8 i5 i4))) (delay (i21 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i21 i3 (i9 i8 (i21 i6 i5) (i18 i4)))) (delay (i21 i3 (i9 i8 (i18 i4) (i21 i6 i5)))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) (i7 #6b6579 42) (i7 #6e65776b6579 6)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]))
intersectionWith.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i15) (delay ((\i0 -> i8 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay i21) (delay i21)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i18 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i6)) (unIData (i13 i3))))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i3)) (unIData (i13 i6))))) (i9 i8 (i19 i4) i5)))))) (delay (force (i18 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i8 (\i0 -> \i0 -> i1) i3 (i19 i4) i5)) (delay (i8 (\i0 -> \i0 -> i2) i3 (i19 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i19 i4))) (delay (i8 i7 i6 i5 (i19 i4))))))))))) (i19 i2)) (i18 i4)) (i18 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay i18) (delay (i3 (\i0 -> \i0 -> i2) (i15 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i12 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i2) (i2 i11 6 (i2 #61 42 i12)) (i2 #63 23 (i2 i11 7 i12))) (force (force sndPair))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
intersectionWith.flip const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i15) (delay ((\i0 -> i8 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay i21) (delay i21)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i18 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i6)) (unIData (i13 i3))))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (iData (i12 (unIData (i13 i3)) (unIData (i13 i6))))) (i9 i8 (i19 i4) i5)))))) (delay (force (i18 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i8 (\i0 -> \i0 -> i1) i3 (i19 i4) i5)) (delay (i8 (\i0 -> \i0 -> i2) i3 (i19 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i19 i4))) (delay (i8 i7 i6 i5 (i19 i4))))))))))) (i19 i2)) (i18 i4)) (i18 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay i18) (delay (i3 (\i0 -> \i0 -> i2) (i15 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i12 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i1) (i2 i11 6 (i2 #61 42 i12)) (i2 #63 23 (i2 i11 7 i12))) (force (force sndPair))) (\i0 -> \i0 -> i3 (\i0 -> i11 (mkPairData (bData i3) (iData i2)) i1) i2)) (\i0 -> \i0 -> \i0 -> i4 (\i0 -> \i0 -> force (i7 i1 (delay (\i0 -> i1 (i6 i15))) (delay ((\i0 -> \i0 -> force (i10 (lessThanByteString i2 i6) (delay (i4 (i11 i3) (\i0 -> i2 (i15 (i14 i4) i1)))) (delay (force (i10 (equalsByteString i2 i6) (delay (i1 (i7 (i11 i3)))) (delay (i1 (i7 (i14 (i13 i3) (i11 i3)))))))))) (unBData (i10 (i11 i1))))))) i1 (\i0 -> i1))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force chooseList))) (force ifThenElse)) (force tailList)) (force (force fstPair))) (force headList)) (force mkCons)) #62) [ ]))
intersectionWith.double (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i12) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay i17) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (i19 (mkPairData i2 (iData (addInteger (unIData (i11 i6)) (unIData (i11 i3))))) (i8 i7 i5 (i16 i4)))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (i7 i3 (i16 i4) i5)) (delay (i7 i6 i5 (i16 i4)))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i15) (delay (i3 (i10 i2) (i11 i2) i1)))) (i7 i2) (i8 i2) i1)))) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
intersectionWith.(+) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i12) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay i17) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (i19 (mkPairData i2 (iData (addInteger (unIData (i11 i6)) (unIData (i11 i3))))) (i8 i7 i5 (i16 i4)))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (i7 i3 (i16 i4) i5)) (delay (i7 i6 i5 (i16 i4)))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i15) (delay (i3 (i10 i2) (i11 i2) i1)))) (i7 i2) (i8 i2) i1)))) (i7 i11 42) (i7 i11 23)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
intersectionWith.preservesCombineCommutativity (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i6 i2 (delay i12) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> force (i11 i1 (delay i17) (delay ((\i0 -> (\i0 -> (\i0 -> force (i12 (equalsData i2 i1) (delay (i19 (mkPairData i2 (iData (addInteger (unIData (i11 i6)) (unIData (i11 i3))))) (i8 i7 i5 (i16 i4)))) (delay (force (i12 (lessThanByteString (unBData i2) (unBData i1)) (delay (i7 i3 (i16 i4) i5)) (delay (i7 i6 i5 (i16 i4)))))))) (i12 i2)) (i11 i4)) (i12 i1)))))) (\i0 -> \i0 -> \i0 -> force (i9 i2 (delay i15) (delay (i3 (i10 i2) (i11 i2) i1)))) (i7 i2) (i8 i2) i1)))) (i7 i11 23) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
intersectionWith.partialKeyMismatch (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> force (i7 i2 (delay i13) (delay ((\i0 -> i4 (\i0 -> \i0 -> \i0 -> \i0 -> force (i12 i1 (delay i18) (delay ((\i0 -> (\i0 -> (\i0 -> force (i13 (equalsData i2 i1) (delay (i20 (mkPairData i2 (iData (addInteger (unIData (i12 i6)) (unIData (i12 i3))))) (i8 i7 i5 (i17 i4)))) (delay (force (i13 (lessThanByteString (unBData i2) (unBData i1)) (delay (i7 i3 (i17 i4) i5)) (delay (i7 i6 i5 (i17 i4)))))))) (i13 i2)) (i12 i4)) (i13 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i16) (delay (i3 (i11 i2) (i12 i2) i1)))) (i8 i2) (i9 i2) i1)))) ((\i0 -> \i0 -> \i0 -> force (i8 i2 (delay i1) (delay ((\i0 -> i5 (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i14 i1 (delay (force (i4 (delay (i19 i3 i2)) (delay (i19 i3 i2))))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i15 (equalsData i2 i1) (delay (force (i7 (delay (i22 (mkPairData i2 (i12 (i14 i6) (i14 i3))) (i9 i8 i5 (i19 i4)))) (delay (i22 (mkPairData i2 (i12 (i14 i3) (i14 i6))) (i9 i8 (i19 i4) i5)))))) (delay (force (i15 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i22 i6 (i9 i8 i5 i4))) (delay (i22 i6 (i9 i8 i4 i5)))))) (delay (force (i7 (delay (i22 i3 (i9 i8 (i22 i6 i5) (i19 i4)))) (delay (i22 i3 (i9 i8 (i19 i4) (i22 i6 i5)))))))))))) (i15 i2)) (i14 i4)) (i15 i1)))))) (\i0 -> \i0 -> \i0 -> force (i11 i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i2) (i12 i2) (i13 i2) i1)))) (\i0 -> \i0 -> i2) (i9 i2) (i10 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i12 42) (i8 #6e65776b6579 6)) (i8 i12 23)) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
intersectionWithData.const (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i13) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay i19) (delay i19)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i21 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i21 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i8 (\i0 -> \i0 -> i1) i3 (i18 i4) i5)) (delay (i8 (\i0 -> \i0 -> i2) i3 (i18 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i18 i4))) (delay (i8 i7 i6 i5 (i18 i4))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i16) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) (i7 i11 42) (i7 i11 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]) #6b6579))
intersectionWithData.emptyLeft (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i11) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay i17) (delay i17)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i19 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i19 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i8 (\i0 -> \i0 -> i1) i3 (i18 i4) i5)) (delay (i8 (\i0 -> \i0 -> i2) i3 (i18 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i18 i4))) (delay (i8 i7 i6 i5 (i18 i4))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i14) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) i8 ((\i0 -> \i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i2) (iData i1)) #6b6579 42)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
intersectionWithData.emptyRight (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i11) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay i17) (delay i17)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i19 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i19 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i8 (\i0 -> \i0 -> i1) i3 (i18 i4) i5)) (delay (i8 (\i0 -> \i0 -> i2) i3 (i18 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i18 i4))) (delay (i8 i7 i6 i5 (i18 i4))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i14) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) ((\i0 -> \i0 -> (\i0 -> \i0 -> i11 (mkPairData i2 i1) i12) (bData i2) (iData i1)) #6b6579 42) i8) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (force mkCons)) [ ]))
intersectionWithData.keyMismatch (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> force (i7 i2 (delay i13) (delay ((\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> \i0 -> \i0 -> force (i13 i1 (delay (force (i4 (delay i19) (delay i19)))) (delay ((\i0 -> (\i0 -> (\i0 -> force (i14 (equalsData i2 i1) (delay (force (i7 (delay (i21 (mkPairData i2 (i12 (i13 i6) (i13 i3))) (i9 i8 i5 (i18 i4)))) (delay (i21 (mkPairData i2 (i12 (i13 i3) (i13 i6))) (i9 i8 (i18 i4) i5)))))) (delay (force (i14 (lessThanByteString (unBData i2) (unBData i1)) (delay (force (i7 (delay (i8 (\i0 -> \i0 -> i1) i3 (i18 i4) i5)) (delay (i8 (\i0 -> \i0 -> i2) i3 (i18 i4) i5))))) (delay (force (i7 (delay (i8 i7 i6 i5 (i18 i4))) (delay (i8 i7 i6 i5 (i18 i4))))))))))) (i14 i2)) (i13 i4)) (i14 i1)))))) (\i0 -> \i0 -> \i0 -> force (i10 i2 (delay i16) (delay (i3 (\i0 -> \i0 -> i2) (i11 i2) (i12 i2) i1)))) (\i0 -> \i0 -> i2) (i8 i2) (i9 i2) i1)))) (\i0 -> \i0 -> i2) (i7 #6b6579 42) (i7 #6e65776b6579 6)) (force (force sndPair))) (force ifThenElse)) (force (force fstPair))) (force (force chooseList))) (force headList)) (force tailList)) (\i0 -> \i0 -> i3 (bData i2) (iData i1))) (\i0 -> \i0 -> i3 (mkPairData i2 i1) i4)) (force mkCons)) [ ]))
\ No newline at end of file
valueOf.itself {"exBudgetCPU":851100,"exBudgetMemory":3800,"scriptSizeBytes":115}
valueOf.applied {"exBudgetCPU":8887341,"exBudgetMemory":23308,"scriptSizeBytes":183}
valueOf.growing.1 {"exBudgetCPU":6189368,"exBudgetMemory":18450,"scriptSizeBytes":193}
valueOf.growing.2 {"exBudgetCPU":22282115,"exBudgetMemory":66140,"scriptSizeBytes":417}
valueOf.growing.3 {"exBudgetCPU":33723961,"exBudgetMemory":97446,"scriptSizeBytes":448}
valueOf.growing.4 {"exBudgetCPU":48921107,"exBudgetMemory":136512,"scriptSizeBytes":467}
valueOf.growing.5 {"exBudgetCPU":68218553,"exBudgetMemory":184838,"scriptSizeBytes":485}
valueOf.growing.6 {"exBudgetCPU":91616299,"exBudgetMemory":242424,"scriptSizeBytes":503}
valueOf.growing.7 {"exBudgetCPU":119114345,"exBudgetMemory":309270,"scriptSizeBytes":522}
valueOf.growing.8 {"exBudgetCPU":150712691,"exBudgetMemory":385376,"scriptSizeBytes":540}
valueOf.growing.9 {"exBudgetCPU":189165724,"exBudgetMemory":475900,"scriptSizeBytes":558}
valueOf.growing.10 {"exBudgetCPU":226546596,"exBudgetMemory":566596,"scriptSizeBytes":576}
valueOf.growing.11 {"exBudgetCPU":268027768,"exBudgetMemory":666552,"scriptSizeBytes":594}
valueOf.growing.12 {"exBudgetCPU":313609240,"exBudgetMemory":775768,"scriptSizeBytes":613}
valueOf.growing.13 {"exBudgetCPU":363291012,"exBudgetMemory":894244,"scriptSizeBytes":631}
valueOf.growing.14 {"exBudgetCPU":417073084,"exBudgetMemory":1021980,"scriptSizeBytes":649}
valueOf.growing.15 {"exBudgetCPU":474955456,"exBudgetMemory":1158976,"scriptSizeBytes":668}
valueOf.growing.16 {"exBudgetCPU":536938128,"exBudgetMemory":1305232,"scriptSizeBytes":686}
valueOf.growing.17 {"exBudgetCPU":603021100,"exBudgetMemory":1460748,"scriptSizeBytes":705}
unionWith.const {"exBudgetCPU":18572570,"exBudgetMemory":57640,"scriptSizeBytes":333}
unionWith.(+).itself {"exBudgetCPU":1012100,"exBudgetMemory":4500,"scriptSizeBytes":248}
unionWith.(+).applied {"exBudgetCPU":18664047,"exBudgetMemory":57142,"scriptSizeBytes":330}
unionWith.tokens {"exBudgetCPU":18435429,"exBudgetMemory":56646,"scriptSizeBytes":339}
unionWith.symbols {"exBudgetCPU":11422712,"exBudgetMemory":36632,"scriptSizeBytes":331}
unionWith.growing.1 {"exBudgetCPU":11491712,"exBudgetMemory":36932,"scriptSizeBytes":335}
unionWith.growing.2 {"exBudgetCPU":27515459,"exBudgetMemory":84322,"scriptSizeBytes":369}
unionWith.growing.3 {"exBudgetCPU":40363531,"exBudgetMemory":119758,"scriptSizeBytes":390}
unionWith.growing.4 {"exBudgetCPU":57242903,"exBudgetMemory":164154,"scriptSizeBytes":408}
unionWith.growing.5 {"exBudgetCPU":78222575,"exBudgetMemory":217810,"scriptSizeBytes":427}
unionWith.growing.6 {"exBudgetCPU":103302547,"exBudgetMemory":280726,"scriptSizeBytes":445}
unionWith.growing.7 {"exBudgetCPU":132482819,"exBudgetMemory":352902,"scriptSizeBytes":464}
unionWith.growing.8 {"exBudgetCPU":165763391,"exBudgetMemory":434338,"scriptSizeBytes":482}
unionWith.growing.9 {"exBudgetCPU":210282238,"exBudgetMemory":545648,"scriptSizeBytes":498}
unionWith.growing.10 {"exBudgetCPU":247663110,"exBudgetMemory":636344,"scriptSizeBytes":517}
unionWith.growing.11 {"exBudgetCPU":289144282,"exBudgetMemory":736300,"scriptSizeBytes":535}
unionWith.growing.12 {"exBudgetCPU":334725754,"exBudgetMemory":845516,"scriptSizeBytes":553}
unionWith.growing.13 {"exBudgetCPU":384407526,"exBudgetMemory":963992,"scriptSizeBytes":572}
unionWith.growing.14 {"exBudgetCPU":438189598,"exBudgetMemory":1091728,"scriptSizeBytes":590}
unionWith.growing.15 {"exBudgetCPU":496071970,"exBudgetMemory":1228724,"scriptSizeBytes":609}
unionWith.growing.16 {"exBudgetCPU":558054642,"exBudgetMemory":1374980,"scriptSizeBytes":627}
unionWith.growing.17 {"exBudgetCPU":624137614,"exBudgetMemory":1530496,"scriptSizeBytes":645}
unionWithData const.itself {"exBudgetCPU":1012100,"exBudgetMemory":4500,"scriptSizeBytes":238}
unionWithData const.applied {"exBudgetCPU":18208856,"exBudgetMemory":56344,"scriptSizeBytes":323}
valueOf.growing.2 {"exBudgetCPU":18173440,"exBudgetMemory":48676,"scriptSizeBytes":526}
valueOf.growing.3 {"exBudgetCPU":27783611,"exBudgetMemory":72418,"scriptSizeBytes":562}
valueOf.growing.4 {"exBudgetCPU":41321685,"exBudgetMemory":103784,"scriptSizeBytes":581}
valueOf.growing.5 {"exBudgetCPU":59270662,"exBudgetMemory":144874,"scriptSizeBytes":599}
valueOf.growing.6 {"exBudgetCPU":81630542,"exBudgetMemory":195688,"scriptSizeBytes":617}
valueOf.growing.7 {"exBudgetCPU":108401325,"exBudgetMemory":256226,"scriptSizeBytes":636}
valueOf.growing.8 {"exBudgetCPU":139583011,"exBudgetMemory":326488,"scriptSizeBytes":654}
valueOf.growing.9 {"exBudgetCPU":177929987,"exBudgetMemory":411632,"scriptSizeBytes":672}
valueOf.growing.10 {"exBudgetCPU":215515405,"exBudgetMemory":497412,"scriptSizeBytes":690}
valueOf.growing.11 {"exBudgetCPU":257511726,"exBudgetMemory":592916,"scriptSizeBytes":708}
valueOf.growing.12 {"exBudgetCPU":303918950,"exBudgetMemory":698144,"scriptSizeBytes":727}
valueOf.growing.13 {"exBudgetCPU":354737077,"exBudgetMemory":813096,"scriptSizeBytes":745}
valueOf.growing.14 {"exBudgetCPU":409966107,"exBudgetMemory":937772,"scriptSizeBytes":763}
valueOf.growing.15 {"exBudgetCPU":469606040,"exBudgetMemory":1072172,"scriptSizeBytes":782}
valueOf.growing.16 {"exBudgetCPU":533656876,"exBudgetMemory":1216296,"scriptSizeBytes":800}
valueOf.growing.17 {"exBudgetCPU":602118615,"exBudgetMemory":1370144,"scriptSizeBytes":819}
leftBiasedCurrencyUnion.growing.1 {"exBudgetCPU":9108037,"exBudgetMemory":26968,"scriptSizeBytes":329}
leftBiasedCurrencyUnion.growing.2 {"exBudgetCPU":21069109,"exBudgetMemory":57094,"scriptSizeBytes":668}
leftBiasedCurrencyUnion.growing.3 {"exBudgetCPU":32994109,"exBudgetMemory":88030,"scriptSizeBytes":706}
leftBiasedCurrencyUnion.growing.4 {"exBudgetCPU":48778012,"exBudgetMemory":126290,"scriptSizeBytes":724}
leftBiasedCurrencyUnion.growing.5 {"exBudgetCPU":68972818,"exBudgetMemory":174274,"scriptSizeBytes":743}
leftBiasedCurrencyUnion.growing.6 {"exBudgetCPU":93578527,"exBudgetMemory":231982,"scriptSizeBytes":761}
leftBiasedCurrencyUnion.growing.7 {"exBudgetCPU":122595139,"exBudgetMemory":299414,"scriptSizeBytes":780}
leftBiasedCurrencyUnion.growing.8 {"exBudgetCPU":156022654,"exBudgetMemory":376570,"scriptSizeBytes":798}
leftBiasedCurrencyUnion.growing.9 {"exBudgetCPU":193308957,"exBudgetMemory":462316,"scriptSizeBytes":813}
leftBiasedCurrencyUnion.growing.10 {"exBudgetCPU":232254653,"exBudgetMemory":552724,"scriptSizeBytes":832}
leftBiasedCurrencyUnion.growing.11 {"exBudgetCPU":274250974,"exBudgetMemory":648228,"scriptSizeBytes":850}
leftBiasedCurrencyUnion.growing.12 {"exBudgetCPU":320658198,"exBudgetMemory":753456,"scriptSizeBytes":868}
leftBiasedCurrencyUnion.growing.13 {"exBudgetCPU":371476325,"exBudgetMemory":868408,"scriptSizeBytes":887}
leftBiasedCurrencyUnion.growing.14 {"exBudgetCPU":426705355,"exBudgetMemory":993084,"scriptSizeBytes":905}
leftBiasedCurrencyUnion.growing.15 {"exBudgetCPU":486345288,"exBudgetMemory":1127484,"scriptSizeBytes":924}
leftBiasedCurrencyUnion.growing.16 {"exBudgetCPU":550396124,"exBudgetMemory":1271608,"scriptSizeBytes":942}
leftBiasedCurrencyUnion.growing.17 {"exBudgetCPU":618857863,"exBudgetMemory":1425456,"scriptSizeBytes":960}
leftBiasedTokenUnion.growing.1 {"exBudgetCPU":9499037,"exBudgetMemory":28668,"scriptSizeBytes":582}
leftBiasedTokenUnion.growing.2 {"exBudgetCPU":21276109,"exBudgetMemory":57994,"scriptSizeBytes":914}
leftBiasedTokenUnion.growing.3 {"exBudgetCPU":33201109,"exBudgetMemory":88930,"scriptSizeBytes":953}
leftBiasedTokenUnion.growing.4 {"exBudgetCPU":48985012,"exBudgetMemory":127190,"scriptSizeBytes":971}
leftBiasedTokenUnion.growing.5 {"exBudgetCPU":69179818,"exBudgetMemory":175174,"scriptSizeBytes":989}
leftBiasedTokenUnion.growing.6 {"exBudgetCPU":93785527,"exBudgetMemory":232882,"scriptSizeBytes":1008}
leftBiasedTokenUnion.growing.7 {"exBudgetCPU":122802139,"exBudgetMemory":300314,"scriptSizeBytes":1026}
leftBiasedTokenUnion.growing.8 {"exBudgetCPU":156229654,"exBudgetMemory":377470,"scriptSizeBytes":1044}
leftBiasedTokenUnion.growing.9 {"exBudgetCPU":201063000,"exBudgetMemory":482656,"scriptSizeBytes":1060}
leftBiasedTokenUnion.growing.10 {"exBudgetCPU":240008696,"exBudgetMemory":573064,"scriptSizeBytes":1078}
leftBiasedTokenUnion.growing.11 {"exBudgetCPU":282005017,"exBudgetMemory":668568,"scriptSizeBytes":1097}
leftBiasedTokenUnion.growing.12 {"exBudgetCPU":328412241,"exBudgetMemory":773796,"scriptSizeBytes":1115}
leftBiasedTokenUnion.growing.13 {"exBudgetCPU":379230368,"exBudgetMemory":888748,"scriptSizeBytes":1133}
leftBiasedTokenUnion.growing.14 {"exBudgetCPU":434459398,"exBudgetMemory":1013424,"scriptSizeBytes":1152}
leftBiasedTokenUnion.growing.15 {"exBudgetCPU":494099331,"exBudgetMemory":1147824,"scriptSizeBytes":1170}
leftBiasedTokenUnion.growing.16 {"exBudgetCPU":558150167,"exBudgetMemory":1291948,"scriptSizeBytes":1188}
leftBiasedTokenUnion.growing.17 {"exBudgetCPU":626611906,"exBudgetMemory":1445796,"scriptSizeBytes":1207}
unionResolvingCollisionsWith.const {"exBudgetCPU":15145570,"exBudgetMemory":42740,"scriptSizeBytes":619}
unionResolvingCollisionsWith.(+).itself {"exBudgetCPU":805100,"exBudgetMemory":3600,"scriptSizeBytes":358}
unionResolvingCollisionsWith.(+).applied {"exBudgetCPU":14731047,"exBudgetMemory":40042,"scriptSizeBytes":439}
unionResolvingCollisionsWith.tokens {"exBudgetCPU":14571429,"exBudgetMemory":39846,"scriptSizeBytes":449}
unionResolvingCollisionsWith.symbols {"exBudgetCPU":9246037,"exBudgetMemory":27568,"scriptSizeBytes":441}
unionResolvingCollisionsWith.growing.1 {"exBudgetCPU":9568037,"exBudgetMemory":28968,"scriptSizeBytes":621}
unionResolvingCollisionsWith.growing.2 {"exBudgetCPU":21345109,"exBudgetMemory":58294,"scriptSizeBytes":953}
unionResolvingCollisionsWith.growing.3 {"exBudgetCPU":33270109,"exBudgetMemory":89230,"scriptSizeBytes":991}
unionResolvingCollisionsWith.growing.4 {"exBudgetCPU":49054012,"exBudgetMemory":127490,"scriptSizeBytes":1009}
unionResolvingCollisionsWith.growing.5 {"exBudgetCPU":69248818,"exBudgetMemory":175474,"scriptSizeBytes":1028}
unionResolvingCollisionsWith.growing.6 {"exBudgetCPU":93854527,"exBudgetMemory":233182,"scriptSizeBytes":1046}
unionResolvingCollisionsWith.growing.7 {"exBudgetCPU":122871139,"exBudgetMemory":300614,"scriptSizeBytes":1065}
unionResolvingCollisionsWith.growing.8 {"exBudgetCPU":156298654,"exBudgetMemory":377770,"scriptSizeBytes":1083}
unionResolvingCollisionsWith.growing.9 {"exBudgetCPU":201132000,"exBudgetMemory":482956,"scriptSizeBytes":1098}
unionResolvingCollisionsWith.growing.10 {"exBudgetCPU":240077696,"exBudgetMemory":573364,"scriptSizeBytes":1117}
unionResolvingCollisionsWith.growing.11 {"exBudgetCPU":282074017,"exBudgetMemory":668868,"scriptSizeBytes":1135}
unionResolvingCollisionsWith.growing.12 {"exBudgetCPU":328481241,"exBudgetMemory":774096,"scriptSizeBytes":1153}
unionResolvingCollisionsWith.growing.13 {"exBudgetCPU":379299368,"exBudgetMemory":889048,"scriptSizeBytes":1172}
unionResolvingCollisionsWith.growing.14 {"exBudgetCPU":434528398,"exBudgetMemory":1013724,"scriptSizeBytes":1190}
unionResolvingCollisionsWith.growing.15 {"exBudgetCPU":494168331,"exBudgetMemory":1148124,"scriptSizeBytes":1209}
unionResolvingCollisionsWith.growing.16 {"exBudgetCPU":558219167,"exBudgetMemory":1292248,"scriptSizeBytes":1227}
unionResolvingCollisionsWith.growing.17 {"exBudgetCPU":626680906,"exBudgetMemory":1446096,"scriptSizeBytes":1245}
unionResolvingCollisionsWithData const.itself {"exBudgetCPU":805100,"exBudgetMemory":3600,"scriptSizeBytes":523}
unionResolvingCollisionsWithData const.applied {"exBudgetCPU":14919856,"exBudgetMemory":42044,"scriptSizeBytes":608}
inv {"exBudgetCPU":8006438,"exBudgetMemory":25962,"scriptSizeBytes":175}
equality.itself {"exBudgetCPU":23100,"exBudgetMemory":200,"scriptSizeBytes":15}
equality.triviallyTrue {"exBudgetCPU":5254875,"exBudgetMemory":13977,"scriptSizeBytes":100}
equality.triviallyFalse {"exBudgetCPU":5185875,"exBudgetMemory":13677,"scriptSizeBytes":109}
equality.swappedTokensTrue {"exBudgetCPU":38087299,"exBudgetMemory":111457,"scriptSizeBytes":393}
equality.swappedSymbolsTrue {"exBudgetCPU":24037139,"exBudgetMemory":70829,"scriptSizeBytes":384}
equality.swappedTokensTrue {"exBudgetCPU":30597624,"exBudgetMemory":79293,"scriptSizeBytes":507}
equality.swappedSymbolsTrue {"exBudgetCPU":20135464,"exBudgetMemory":54265,"scriptSizeBytes":498}
equality.growing.1 {"exBudgetCPU":5254875,"exBudgetMemory":13977,"scriptSizeBytes":100}
equality.growing.2 {"exBudgetCPU":38049229,"exBudgetMemory":111457,"scriptSizeBytes":388}
equality.growing.3 {"exBudgetCPU":55714907,"exBudgetMemory":163509,"scriptSizeBytes":423}
equality.growing.4 {"exBudgetCPU":81581185,"exBudgetMemory":234081,"scriptSizeBytes":459}
equality.growing.5 {"exBudgetCPU":115648063,"exBudgetMemory":323173,"scriptSizeBytes":494}
equality.growing.6 {"exBudgetCPU":157915541,"exBudgetMemory":430785,"scriptSizeBytes":529}
equality.growing.7 {"exBudgetCPU":208383619,"exBudgetMemory":556917,"scriptSizeBytes":564}
equality.growing.8 {"exBudgetCPU":267052297,"exBudgetMemory":701569,"scriptSizeBytes":600}
equality.growing.9 {"exBudgetCPU":333921575,"exBudgetMemory":864741,"scriptSizeBytes":635}
equality.growing.10 {"exBudgetCPU":408991453,"exBudgetMemory":1046433,"scriptSizeBytes":670}
equality.growing.11 {"exBudgetCPU":492261931,"exBudgetMemory":1246645,"scriptSizeBytes":705}
equality.growing.12 {"exBudgetCPU":583733009,"exBudgetMemory":1465377,"scriptSizeBytes":741}
equality.growing.13 {"exBudgetCPU":683404687,"exBudgetMemory":1702629,"scriptSizeBytes":776}
equality.growing.14 {"exBudgetCPU":791276965,"exBudgetMemory":1958401,"scriptSizeBytes":811}
equality.growing.15 {"exBudgetCPU":907349843,"exBudgetMemory":2232693,"scriptSizeBytes":846}
equality.growing.16 {"exBudgetCPU":1031623321,"exBudgetMemory":2525505,"scriptSizeBytes":882}
equality.growing.17 {"exBudgetCPU":1164097399,"exBudgetMemory":2836837,"scriptSizeBytes":917}
normalize.identity {"exBudgetCPU":36285548,"exBudgetMemory":108757,"scriptSizeBytes":560}
normalize.empty {"exBudgetCPU":25276001,"exBudgetMemory":75761,"scriptSizeBytes":443}
assertSorted.succeeds {"exBudgetCPU":30813271,"exBudgetMemory":97682,"scriptSizeBytes":516}
equality.growing.2 {"exBudgetCPU":30314879,"exBudgetMemory":78629,"scriptSizeBytes":502}
equality.growing.3 {"exBudgetCPU":44041207,"exBudgetMemory":114353,"scriptSizeBytes":538}
equality.growing.4 {"exBudgetCPU":66589341,"exBudgetMemory":169525,"scriptSizeBytes":573}
equality.growing.5 {"exBudgetCPU":97959281,"exBudgetMemory":244145,"scriptSizeBytes":608}
equality.growing.6 {"exBudgetCPU":138151027,"exBudgetMemory":338213,"scriptSizeBytes":643}
equality.growing.7 {"exBudgetCPU":187164579,"exBudgetMemory":451729,"scriptSizeBytes":679}
equality.growing.8 {"exBudgetCPU":244999937,"exBudgetMemory":584693,"scriptSizeBytes":714}
equality.growing.9 {"exBudgetCPU":311657101,"exBudgetMemory":737105,"scriptSizeBytes":749}
equality.growing.10 {"exBudgetCPU":387136071,"exBudgetMemory":908965,"scriptSizeBytes":784}
equality.growing.11 {"exBudgetCPU":471436847,"exBudgetMemory":1100273,"scriptSizeBytes":820}
equality.growing.12 {"exBudgetCPU":564559429,"exBudgetMemory":1311029,"scriptSizeBytes":855}
equality.growing.13 {"exBudgetCPU":666503817,"exBudgetMemory":1541233,"scriptSizeBytes":890}
equality.growing.14 {"exBudgetCPU":777270011,"exBudgetMemory":1790885,"scriptSizeBytes":925}
equality.growing.15 {"exBudgetCPU":896858011,"exBudgetMemory":2059985,"scriptSizeBytes":961}
equality.growing.16 {"exBudgetCPU":1025267817,"exBudgetMemory":2348533,"scriptSizeBytes":996}
equality.growing.17 {"exBudgetCPU":1162499429,"exBudgetMemory":2656529,"scriptSizeBytes":1031}
normalize.identity {"exBudgetCPU":34108873,"exBudgetMemory":99693,"scriptSizeBytes":670}
normalize.empty {"exBudgetCPU":21849001,"exBudgetMemory":60861,"scriptSizeBytes":728}
assertSorted.succeeds {"exBudgetCPU":28636596,"exBudgetMemory":88618,"scriptSizeBytes":625}
assertSorted.fails on malsorted symbols {"exBudgetCPU":20705777,"exBudgetMemory":62290,"scriptSizeBytes":340}
assertSorted.fails on zero quantities {"exBudgetCPU":21820727,"exBudgetMemory":62160,"scriptSizeBytes":515}
assertSorted.fails on zero quantities {"exBudgetCPU":21820727,"exBudgetMemory":62160,"scriptSizeBytes":800}
assertSorted.fails on empty token map {"exBudgetCPU":1240239,"exBudgetMemory":455,"scriptSizeBytes":262}
Ada.adaSymbol {"exBudgetCPU":23100,"exBudgetMemory":200,"scriptSizeBytes":8}
Ada.adaToken {"exBudgetCPU":23100,"exBudgetMemory":200,"scriptSizeBytes":8}
Ada.lovelaceValueOf {"exBudgetCPU":230100,"exBudgetMemory":1100,"scriptSizeBytes":53}
Ada.isAdaOnlyValue.itself {"exBudgetCPU":23100,"exBudgetMemory":200,"scriptSizeBytes":45}
Ada.isAdaOnlyValue.true on empty {"exBudgetCPU":497454,"exBudgetMemory":1532,"scriptSizeBytes":50}
Ada.isAdaOnlyValue.trivially false {"exBudgetCPU":4349105,"exBudgetMemory":10950,"scriptSizeBytes":107}
Ada.isAdaOnlyValue.less trivially false {"exBudgetCPU":13901877,"exBudgetMemory":40626,"scriptSizeBytes":366}
Ada.isAdaOnlyValue.less trivially false {"exBudgetCPU":11969877,"exBudgetMemory":32226,"scriptSizeBytes":476}
Ada.adaOnlyValue.itself {"exBudgetCPU":184100,"exBudgetMemory":900,"scriptSizeBytes":52}
Ada.adaOnlyValue.on empty {"exBudgetCPU":589454,"exBudgetMemory":1932,"scriptSizeBytes":51}
Ada.adaOnlyValue.on non-Ada {"exBudgetCPU":4356574,"exBudgetMemory":10950,"scriptSizeBytes":109}
valueOf.growing.15 (program 1.0.0 1)
valueOf.growing.16 (program 1.0.0 1)
valueOf.growing.17 (program 1.0.0 1)
unionWith.const (program 1.0.0 [(#41c0, #a149736f6d65746f6b656e01)])
unionWith.(+).itself (program 1.0.0 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) ((\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (force (force chooseList) i1 (delay (force mkCons i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (force ifThenElse (equalsData i2 i1) (delay (force mkCons (mkPairData i2 (i9 (force (force sndPair) i6) (force (force sndPair) i3))) (i8 (\i0 -> \i0 -> i2) i5 (force tailList i4)))) (delay (force (force ifThenElse (lessThanByteString (unBData i2) (unBData i1)) (delay (force mkCons i6 (i8 (\i0 -> \i0 -> i1) i3 (force tailList i4) i5))) (delay (force mkCons i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (force tailList i4))))))))) (force (force fstPair) i2)) (force (force fstPair) i4)) (force headList i1)))))) (\i0 -> \i0 -> force (force (force chooseList) i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (force headList i2) (force tailList i2) i1))))) i1)) i3 (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> mapData (i3 (unMapData i2) (unMapData i1)))) (\i0 -> \i0 -> (\i0 -> \i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) ((\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (\i0 -> \i0 -> \i0 -> force (force (force chooseList) i1 (delay (force mkCons i3 i2)) (delay ((\i0 -> (\i0 -> (\i0 -> force (force ifThenElse (equalsData i2 i1) (delay (force mkCons (mkPairData i2 (i9 (force (force sndPair) i6) (force (force sndPair) i3))) (i8 (\i0 -> \i0 -> i2) i5 (force tailList i4)))) (delay (force (force ifThenElse (lessThanByteString (unBData i2) (unBData i1)) (delay (force mkCons i6 (i8 (\i0 -> \i0 -> i1) i3 (force tailList i4) i5))) (delay (force mkCons i3 (i8 (\i0 -> \i0 -> i1) i6 i5 (force tailList i4))))))))) (force (force fstPair) i2)) (force (force fstPair) i4)) (force headList i1)))))) (\i0 -> \i0 -> force (force (force chooseList) i2 (delay i1) (delay (i3 (\i0 -> \i0 -> i1) (force headList i2) (force tailList i2) i1))))) i1)) i3 (\i0 -> \i0 -> i2) i2 i1) (\i0 -> \i0 -> iData (addInteger (unIData i2) (unIData i1))) i2 i1) i2 i1))
unionWith.(+).applied (program 1.0.0 [(#41c0, #a149736f6d65746f6b656e02)])
unionWith.tokens (program 1.0.0 [(#41c0, #a24a6f74686572746f6b656e0149736f6d65746f6b656e01)])
unionWith.symbols (program 1.0.0 [ (#41c0, #a149736f6d65746f6b656e01)
leftBiasedCurrencyUnion.growing.1 (program 1.0.0 [ (#41c0, #a149736f6d65746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
unionWith.growing.1 (program 1.0.0 [ (#41c0, #a149736f6d65746f6b656e01)
leftBiasedCurrencyUnion.growing.2 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
unionWith.growing.2 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
leftBiasedCurrencyUnion.growing.3 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedCurrencyUnion.growing.4 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedCurrencyUnion.growing.5 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedCurrencyUnion.growing.6 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedCurrencyUnion.growing.7 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedCurrencyUnion.growing.8 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedCurrencyUnion.growing.9 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.10 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.11 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.12 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01)
, (#41ca, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.13 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01)
, (#41ca, #a145746f6b656e01)
, (#41cb, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.14 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01)
, (#41ca, #a145746f6b656e01)
, (#41cb, #a145746f6b656e01)
, (#41cc, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.15 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01)
, (#41ca, #a145746f6b656e01)
, (#41cb, #a145746f6b656e01)
, (#41cc, #a145746f6b656e01)
, (#41cd, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.16 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01)
, (#41ca, #a145746f6b656e01)
, (#41cb, #a145746f6b656e01)
, (#41cc, #a145746f6b656e01)
, (#41cd, #a145746f6b656e01)
, (#41ce, #a145746f6b656e01) ])
leftBiasedCurrencyUnion.growing.17 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a145746f6b656e01)
, (#41c8, #a145746f6b656e01)
, (#41c9, #a145746f6b656e01)
, (#41ca, #a145746f6b656e01)
, (#41cb, #a145746f6b656e01)
, (#41cc, #a145746f6b656e01)
, (#41cd, #a145746f6b656e01)
, (#41ce, #a145746f6b656e01)
, (#41cf, #a145746f6b656e01) ])
leftBiasedTokenUnion.growing.1 (program 1.0.0 [ (#41c0, #a149736f6d65746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.2 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.3 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.4 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.5 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.6 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.7 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.8 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
, (#41c7, #a149736f6d65746f6b656e01) ])
leftBiasedTokenUnion.growing.9 (program 1.0.0 [ (#41c0, #a249736f6d65746f6b656e0145746f6b656e01)
, (#41c1, #a145746f6b656e01)
, (#41c2, #a145746f6b656e01)
, (#41c3, #a145746f6b656e01)
, (#41c4, #a145746f6b656e01)
, (#41c5, #a145746f6b656e01)
, (#41c6, #a145746f6b656e01)
round.4/3 {"exBudgetCPU":16559967,"exBudgetMemory":38842,"scriptSizeBytes":639}
round.-5/2 {"exBudgetCPU":17472430,"exBudgetMemory":39945,"scriptSizeBytes":639}
round.-1/4 {"exBudgetCPU":16582444,"exBudgetMemory":38044,"scriptSizeBytes":639}
truncate.5/4 {"exBudgetCPU":13986611,"exBudgetMemory":35735,"scriptSizeBytes":590}
truncate.7/4 {"exBudgetCPU":15442560,"exBudgetMemory":38838,"scriptSizeBytes":590}
truncate.1/4 {"exBudgetCPU":12530662,"exBudgetMemory":32632,"scriptSizeBytes":590}
truncate.-7/4 {"exBudgetCPU":17219463,"exBudgetMemory":41545,"scriptSizeBytes":590}
properFraction.-1/2 {"exBudgetCPU":38701451,"exBudgetMemory":99110,"scriptSizeBytes":754}
properFraction.-3/2 {"exBudgetCPU":40157400,"exBudgetMemory":102213,"scriptSizeBytes":754}
properFraction.-4/3 {"exBudgetCPU":40157400,"exBudgetMemory":102213,"scriptSizeBytes":754}
truncate.5/4 {"exBudgetCPU":13217658,"exBudgetMemory":33633,"scriptSizeBytes":549}
truncate.7/4 {"exBudgetCPU":14673607,"exBudgetMemory":36736,"scriptSizeBytes":549}
truncate.1/4 {"exBudgetCPU":11761709,"exBudgetMemory":30530,"scriptSizeBytes":549}
truncate.-7/4 {"exBudgetCPU":15041084,"exBudgetMemory":37438,"scriptSizeBytes":549}
properFraction.-1/2 {"exBudgetCPU":36523072,"exBudgetMemory":95003,"scriptSizeBytes":713}
properFraction.-3/2 {"exBudgetCPU":37979021,"exBudgetMemory":98106,"scriptSizeBytes":713}
properFraction.-4/3 {"exBudgetCPU":37979021,"exBudgetMemory":98106,"scriptSizeBytes":713}
data.id.0.5 {"exBudgetCPU":161100,"exBudgetMemory":800,"scriptSizeBytes":17}
data.id.2 {"exBudgetCPU":161100,"exBudgetMemory":800,"scriptSizeBytes":17}
data.id.11/3 {"exBudgetCPU":13990147,"exBudgetMemory":35735,"scriptSizeBytes":544}
round.4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i19 (equalsInteger (modInteger i3 2) 1) (delay (force (i19 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i19 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i19 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 3))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
round.-5/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i19 (equalsInteger (modInteger i3 2) 1) (delay (force (i19 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i19 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i19 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -5) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
round.-1/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i19 (equalsInteger (modInteger i3 2) 1) (delay (force (i19 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i19 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i19 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.5/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i18 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i18 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 5) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.7/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i18 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i18 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 7) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.1/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i18 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i18 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.-7/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i18 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i18 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -7) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
properFraction.-1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) ((\i0 -> i3 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i4 i2)) (subtractInteger (multiplyInteger i4 i1) (multiplyInteger i2 i3)))))) ((\i0 -> \i0 -> i1 i3 i2) 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i30 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i30 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i1 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2)) (\i0 -> \i0 -> force ((\i0 -> \i0 -> i30 i2 i1 (delay False)) (equalsInteger i2 0) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> equalsInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i3 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2))))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) (i12 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i28 (equalsInteger i2 0) (delay 0) (delay (force (i28 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i6 i2 i1) (i7 i2 i1)) (i25 i2)) (i24 i2))) (i7 (\i0 -> \i0 -> \i0 -> force (i25 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> \i0 -> force (i23 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i22 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i20 (lessThanEqualsInteger i1 0) (delay (force (i2 (appendString i3 (i4 i1)) (delay error)))) (delay i1)))) (force trace)) "ptryPositive: building with non positive: ") (i1 (\i0 -> \i0 -> appendString (force (i18 (lessThanInteger i1 0) (delay i4) (delay i5))) ((\i0 -> (\i0 -> force (i20 (equalsInteger i2 0) (delay (i8 i1)) (delay ((\i0 -> appendString i1 (i9 i2)) (i4 i2))))) (remainderInteger (i18 i2) 10)) (quotientInteger (i17 i1) 10))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
properFraction.-3/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) ((\i0 -> i3 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i4 i2)) (subtractInteger (multiplyInteger i4 i1) (multiplyInteger i2 i3)))))) ((\i0 -> \i0 -> i1 i3 i2) 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i30 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i30 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i1 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -3) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2)) (\i0 -> \i0 -> force ((\i0 -> \i0 -> i30 i2 i1 (delay False)) (equalsInteger i2 -1) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> equalsInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i3 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2))))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) (i12 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i28 (equalsInteger i2 0) (delay 0) (delay (force (i28 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i6 i2 i1) (i7 i2 i1)) (i25 i2)) (i24 i2))) (i7 (\i0 -> \i0 -> \i0 -> force (i25 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> \i0 -> force (i23 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i22 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i20 (lessThanEqualsInteger i1 0) (delay (force (i2 (appendString i3 (i4 i1)) (delay error)))) (delay i1)))) (force trace)) "ptryPositive: building with non positive: ") (i1 (\i0 -> \i0 -> appendString (force (i18 (lessThanInteger i1 0) (delay i4) (delay i5))) ((\i0 -> (\i0 -> force (i20 (equalsInteger i2 0) (delay (i8 i1)) (delay ((\i0 -> appendString i1 (i9 i2)) (i4 i2))))) (remainderInteger (i18 i2) 10)) (quotientInteger (i17 i1) 10))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
properFraction.-4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) ((\i0 -> i3 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i4 i2)) (subtractInteger (multiplyInteger i4 i1) (multiplyInteger i2 i3)))))) ((\i0 -> \i0 -> i1 i3 i2) 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i30 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i30 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i1 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -4) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 3)) (\i0 -> \i0 -> force ((\i0 -> \i0 -> i30 i2 i1 (delay False)) (equalsInteger i2 -1) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> equalsInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i3 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 3))))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) (i12 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i28 (equalsInteger i2 0) (delay 0) (delay (force (i28 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i6 i2 i1) (i7 i2 i1)) (i25 i2)) (i24 i2))) (i7 (\i0 -> \i0 -> \i0 -> force (i25 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> \i0 -> force (i23 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i22 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i20 (lessThanEqualsInteger i1 0) (delay (force (i2 (appendString i3 (i4 i1)) (delay error)))) (delay i1)))) (force trace)) "ptryPositive: building with non positive: ") (i1 (\i0 -> \i0 -> appendString (force (i18 (lessThanInteger i1 0) (delay i4) (delay i5))) ((\i0 -> (\i0 -> force (i20 (equalsInteger i2 0) (delay (i8 i1)) (delay ((\i0 -> appendString i1 (i9 i2)) (i4 i2))))) (remainderInteger (i18 i2) 10)) (quotientInteger (i17 i1) 10))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.5/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 quotientInteger) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 5) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.7/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 quotientInteger) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 7) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.1/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 quotientInteger) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
truncate.-7/4 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 quotientInteger) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -7) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 4))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
properFraction.-1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) ((\i0 -> i3 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i4 i2)) (subtractInteger (multiplyInteger i4 i1) (multiplyInteger i2 i3)))))) ((\i0 -> \i0 -> i1 i3 i2) 1))) (i1 quotientInteger)) (i1 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2)) (\i0 -> \i0 -> force ((\i0 -> \i0 -> i30 i2 i1 (delay False)) (equalsInteger i2 0) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> equalsInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i3 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2))))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) (i12 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i28 (equalsInteger i2 0) (delay 0) (delay (force (i28 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i6 i2 i1) (i7 i2 i1)) (i25 i2)) (i24 i2))) (i7 (\i0 -> \i0 -> \i0 -> force (i25 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> \i0 -> force (i23 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i22 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i20 (lessThanEqualsInteger i1 0) (delay (force (i2 (appendString i3 (i4 i1)) (delay error)))) (delay i1)))) (force trace)) "ptryPositive: building with non positive: ") (i1 (\i0 -> \i0 -> appendString (force (i18 (lessThanInteger i1 0) (delay i4) (delay i5))) ((\i0 -> (\i0 -> force (i20 (equalsInteger i2 0) (delay (i8 i1)) (delay ((\i0 -> appendString i1 (i9 i2)) (i4 i2))))) (remainderInteger (i18 i2) 10)) (quotientInteger (i17 i1) 10))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
properFraction.-3/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) ((\i0 -> i3 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i4 i2)) (subtractInteger (multiplyInteger i4 i1) (multiplyInteger i2 i3)))))) ((\i0 -> \i0 -> i1 i3 i2) 1))) (i1 quotientInteger)) (i1 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -3) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2)) (\i0 -> \i0 -> force ((\i0 -> \i0 -> i30 i2 i1 (delay False)) (equalsInteger i2 -1) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> equalsInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i3 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2))))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) (i12 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i28 (equalsInteger i2 0) (delay 0) (delay (force (i28 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i6 i2 i1) (i7 i2 i1)) (i25 i2)) (i24 i2))) (i7 (\i0 -> \i0 -> \i0 -> force (i25 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> \i0 -> force (i23 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i22 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i20 (lessThanEqualsInteger i1 0) (delay (force (i2 (appendString i3 (i4 i1)) (delay error)))) (delay i1)))) (force trace)) "ptryPositive: building with non positive: ") (i1 (\i0 -> \i0 -> appendString (force (i18 (lessThanInteger i1 0) (delay i4) (delay i5))) ((\i0 -> (\i0 -> force (i20 (equalsInteger i2 0) (delay (i8 i1)) (delay ((\i0 -> appendString i1 (i9 i2)) (i4 i2))))) (remainderInteger (i18 i2) 10)) (quotientInteger (i17 i1) 10))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
properFraction.-4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) ((\i0 -> i3 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i4 i2)) (subtractInteger (multiplyInteger i4 i1) (multiplyInteger i2 i3)))))) ((\i0 -> \i0 -> i1 i3 i2) 1))) (i1 quotientInteger)) (i1 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -4) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 3)) (\i0 -> \i0 -> force ((\i0 -> \i0 -> i30 i2 i1 (delay False)) (equalsInteger i2 -1) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> equalsInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i3 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) -1) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 3))))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) (i12 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i28 (equalsInteger i2 0) (delay 0) (delay (force (i28 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i6 i2 i1) (i7 i2 i1)) (i25 i2)) (i24 i2))) (i7 (\i0 -> \i0 -> \i0 -> force (i25 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> \i0 -> force (i23 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i22 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i20 (lessThanEqualsInteger i1 0) (delay (force (i2 (appendString i3 (i4 i1)) (delay error)))) (delay i1)))) (force trace)) "ptryPositive: building with non positive: ") (i1 (\i0 -> \i0 -> appendString (force (i18 (lessThanInteger i1 0) (delay i4) (delay i5))) ((\i0 -> (\i0 -> force (i20 (equalsInteger i2 0) (delay (i8 i1)) (delay ((\i0 -> appendString i1 (i9 i2)) (i4 i2))))) (remainderInteger (i18 i2) 10)) (quotientInteger (i17 i1) 10))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
data.id.0.5 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 2) 1))
data.id.2 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 2))
data.id.11/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i3 i2) (multiplyInteger i2 (divideInteger i4 i3))) (multiplyInteger i1 (divideInteger i4 i2))) (force (i25 (equalsInteger i2 0) (delay 0) (delay (force (i25 (lessThanEqualsInteger i2 0) (delay -1) (delay 1))))))) ((\i0 -> (\i0 -> i13 (\i0 -> \i0 -> \i0 -> force (i29 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i26 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (i24 i2)) (i23 i2)))) ((\i0 -> \i0 -> i1 i2 i3) (multiplyInteger i5 i2))) ((\i0 -> force (i21 (lessThanEqualsInteger i1 0) (delay (force (force trace (appendString "ptryPositive: building with non positive: " (i8 (\i0 -> \i0 -> appendString (force (i23 (lessThanInteger i1 0) (delay "-") (delay ""))) ((\i0 -> (\i0 -> force (i25 (equalsInteger i2 0) (delay (i13 i1)) (delay ((\i0 -> appendString i1 (i14 i2)) (i4 i2))))) (remainderInteger (i23 i2) 10)) (quotientInteger (i22 i1) 10))) i1)) (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 11) ((\i0 -> (\i0 -> \i0 -> i1 i3 i2) 1) 3)) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> force (i2 (lessThanEqualsInteger i1 -1) (delay (i3 i1)) (delay i1)))) (force ifThenElse)) (\i0 -> subtractInteger 0 i1)))
import Control.Monad (forM_)
import Control.Monad.Trans.Cont (cont, runCont)
import Data.Bifunctor (bimap)
import Data.String (fromString)
import GHC.Exts (IsList (fromList))
import Numeric (showHex)
import PlutusLedgerApi.V1
import PlutusLedgerApi.V1.Interval qualified as Interval
import PlutusLedgerApi.V1.Value qualified as Value
import PlutusTx.AssocMap qualified as PlutusMap
import PlutusTx.Monoid (inv)
import Plutarch.Api.V1 (
AmountGuarantees (NoGuarantees, NonZero, Positive),
KeyGuarantees (Sorted),
PCredential,
PCurrencySymbol,
PMaybeData,
PTxInfo,
PValue,
)
import Plutarch.Api.V1.AssocMap (
BothPresentHandlerCommutative_ (..),
BothPresentHandler_ (..),
Commutativity (..),
KeyGuarantees (..),
MergeHandlerCommutative_ (..),
MergeHandler_ (..),
OnePresentHandler_ (DropOne, HandleOne, PassOne),
PMap (..),
SomeMergeHandler,
SomeMergeHandler_ (..),
)
import Plutarch.Api.V1.AssocMap qualified as AssocMap
import Plutarch.Api.V1.Value qualified as PValue
import Plutarch.Builtin (pasConstr, pforgetData)
import Plutarch.Test.Property.Gen ()
import Test.Hspec
import Test.Tasty.QuickCheck (Property, property, (===))
import Test.Tasty.QuickCheck (
Gen,
Property,
arbitrary,
chooseInteger,
elements,
forAll,
oneof,
property,
shuffle,
withMaxSuccess,
(===),
)
import Data.ByteString (ByteString)
import Data.List (sort)
import Plutarch.Lift (PConstanted, PLifted, PUnsafeLiftDecl (PLifted))
newtype EnclosedTerm (p :: PType) = EnclosedTerm {getEnclosedTerm :: ClosedTerm p}
# pconstant "token"
@-> \p -> plift p @?= if size < 9 then 0 else 1
)
"unionWith" @\ do
"const" @| PValue.punionWith # plam const # pmint # pmint @-> \p ->
"leftBiasedCurrencyUnion" @\ do
"growing"
@\ forM_
(zip [1 :: Int .. length growingSymbols] growingSymbols)
( \(size, v) ->
fromString (show size)
@| PValue.pleftBiasedCurrencyUnion
# getEnclosedTerm v
# pmintOtherSymbol
@-> pshouldReallyBe
( pcon . PValue.PValue $
AssocMap.punionResolvingCollisionsWith Commutative
# (plam \_ _ -> ptraceError "unexpected collision")
# pto (getEnclosedTerm v)
# (AssocMap.pdifference # pto pmintOtherSymbol # pto (getEnclosedTerm v))
)
)
"leftBiasedTokenUnion" @\ do
"growing"
@\ forM_
(zip [1 :: Int .. length growingSymbols] growingSymbols)
( \(size, v) ->
fromString (show size)
@| PValue.pleftBiasedTokenUnion
# getEnclosedTerm v
# pmintOtherSymbol
@-> \v' ->
passert
( v'
#== PValue.pleftBiasedTokenUnion
# pmintOtherSymbol
# getEnclosedTerm v
)
)
"unionResolvingCollisionsWith" @\ do
"const" @| PValue.punionResolvingCollisionsWith NonCommutative # plam const # pmint # pmint @-> \p ->
plift (PValue.pforgetSorted $ PValue.pnormalize # p) @?= mint
"(+)" @\ do
"itself" @| PValue.punionWith # plam (+) @-> \plus ->
"itself" @| PValue.punionResolvingCollisionsWith Commutative # plam (+) @-> \plus ->
plift (PValue.pforgetSorted $ PValue.pnormalize #$ plus # pmint # pmint) @?= mint <> mint
"applied" @| PValue.punionWith # plam (+) # pmint # pmint @-> \p ->
"applied" @| PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmint # pmint @-> \p ->
plift (PValue.pforgetSorted $ PValue.pnormalize # p) @?= mint <> mint
"tokens" @| PValue.punionWith # plam (+) # pmint # pmintOtherToken @-> \p ->
"tokens" @| PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmint # pmintOtherToken @-> \p ->
plift (PValue.pforgetSorted $ PValue.pnormalize # p) @?= mint <> mintOtherToken
"symbols" @| PValue.punionWith # plam (+) # pmint # pmintOtherSymbol @-> \p ->
"symbols" @| PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmint # pmintOtherSymbol @-> \p ->
plift (PValue.pforgetSorted $ PValue.pnormalize # p) @?= mint <> mintOtherSymbol
"growing"
@\ forM_
(zip [1 :: Int .. length growingSymbols] growingSymbols)
( \(size, v) ->
fromString (show size)
@| PValue.punionWith
@| PValue.punionResolvingCollisionsWith NonCommutative
# plam const
# getEnclosedTerm v
# pmintOtherSymbol
@-> \v' -> passert (v' #== PValue.punionWith # plam const # pmintOtherSymbol # getEnclosedTerm v)
@-> \v' ->
passert
( v'
#== PValue.punionResolvingCollisionsWith NonCommutative
# plam const
# pmintOtherSymbol
# getEnclosedTerm v
)
)
"unionWithData const" @\ do
"unionResolvingCollisionsWithData const" @\ do
"itself"
@| PValue.punionWithData @-> \u ->
@| PValue.punionResolvingCollisionsWithData NonCommutative @-> \u ->
plift (PValue.pforgetSorted $ PValue.pnormalize #$ u # plam const # pmint # pmint) @?= mint
"applied" @| PValue.punionWithData # plam const # pmint # pmint @-> \p ->
"applied" @| PValue.punionResolvingCollisionsWithData NonCommutative # plam const # pmint # pmint @-> \p ->
plift (PValue.pforgetSorted $ PValue.pnormalize # p) @?= mint
"inv"
@| inv (PValue.pforgetPositive pmint :: Term _ (PValue 'Sorted 'NonZero))
"triviallyTrue" @| pmint #== pmint @-> passert
"triviallyFalse" @| pmint #== pmintOtherToken @-> passertNot
"swappedTokensTrue"
@| pto (PValue.punionWith # plam (+) # pmint # pmintOtherToken)
#== pto (PValue.punionWith # plam (+) # pmintOtherToken # pmint)
@| pto (PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmint # pmintOtherToken)
#== pto (PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmintOtherToken # pmint)
@-> passert
"swappedSymbolsTrue"
@| pto (PValue.punionWith # plam (+) # pmint # pmintOtherSymbol)
#== pto (PValue.punionWith # plam (+) # pmintOtherSymbol # pmint)
@| pto (PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmint # pmintOtherSymbol)
#== pto (PValue.punionResolvingCollisionsWith Commutative # plam (+) # pmintOtherSymbol # pmint)
@-> passert
"growing"
@\ forM_
@-> \v -> passert (v #== pmint <> pmintOtherSymbol)
"empty"
@| PValue.pnormalize
# (PValue.punionWith # plam (-) # pmint # pmint)
# (PValue.punionResolvingCollisionsWith NonCommutative # plam (-) # pmint # pmint)
@-> \v -> passert (v #== mempty)
"assertSorted" @\ do
"succeeds" @| PValue.passertSorted # (pmint <> pmintOtherSymbol) @-> psucceeds
@-> pfails
"fails on zero quantities"
@| PValue.passertSorted
# (PValue.punionWith # plam (-) # pmint # pmint)
# (PValue.punionResolvingCollisionsWith NonCommutative # plam (-) # pmint # pmint)
@-> pfails
"fails on empty token map"
@| PValue.passertSorted
pgoldenSpec $ do
let pmap, pdmap, emptyMap, doubleMap, otherMap :: Term _ (AssocMap.PMap 'Sorted PByteString PInteger)
pmap = AssocMap.psingleton # pconstant "key" # 42
pmap' = AssocMap.psingleton # pconstant "key" # 23
psumMap = AssocMap.psingleton # pconstant "key" # 65
pdmap = AssocMap.psingletonData # pdata (pconstant "key") # pdata 42
emptyMap = AssocMap.pempty
doubleMap = AssocMap.psingleton # pconstant "key" # 84
otherMap = AssocMap.psingleton # pconstant "newkey" # 6
pmapunionResolvingCollisions = fromList [(pconstant "key", 42), (pconstant "newkey", 6)]
mkTestMap :: forall (s :: S). [(ByteString, Integer)] -> Term s (AssocMap.PMap 'Sorted PByteString PInteger)
mkTestMap = fromList . fmap (bimap pconstant pconstant)
"lookup" @\ do
"itself"
Bumps [bech32](https://github.com/rust-bitcoin/rust-bech32) from 0.8.1 to 0.9.1. - [Changelog](https://github.com/rust-bitcoin/rust-bech32/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-bitcoin/rust-bech32/compare/v0.8.1...v0.9.1) --- updated-dependencies: - dependency-name: bech32 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
Bumps [log](https://github.com/rust-lang/log) from 0.4.17 to 0.4.18. - [Release notes](https://github.com/rust-lang/log/releases) - [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) --- updated-dependencies: - dependency-name: log dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.28.1 to 1.28.2. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.28.1...tokio-1.28.2) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
PLT-5901 Implemented checks for valid network addresses.
fix: tuple clause must preserve previous clause properties state
fix: rearrange clauses and fill in gaps now handles nested patterns in a uniform way fix: discards in records was being sorted incorrectly leading to type issues chore: remove some filter maps in cases where None is impossible anyway chore: some refactoring on a couple functions to clean up
fix: tuple clause must preserve previous clause properties state