Yet another External Core bug
Kirsten Chevalier
krc at uclink.berkeley.edu
Wed Jan 8 20:09:11 EST 2003
The attached file (generated by running ghc -fext-core on the Fibheaps
benchmark from the nofib suite) fails to typecheck:
$ ghc -dcore-lint Fibheaps.hcr
Couldn't match `#' against `*'
Expected kind: #
Inferred kind: *
When checking kinds in `GHC.Prim.(->) (GHC.Prim.State# s)'
--
Kirsten Chevalier * krc at uclink.berkeley.edu * Often in error, never in doubt
-------------- next part --------------
%module Fibheaps
%data Fibheaps.Tree a =
{Fibheaps.Node a (GHCziBase.ZMZN (Fibheaps.Tree a))};
%data Fibheaps.Bag a =
{Fibheaps.EmptyBag;
Fibheaps.ConsBag a (Fibheaps.Bag a);
Fibheaps.UnionBags (Fibheaps.Bag a) (Fibheaps.Bag a)};
%data Fibheaps.MyMaybe a =
{Fibheaps.ZZero;
Fibheaps.One a};
%data Fibheaps.FibHeap a =
{Fibheaps.EmptyFH;
Fibheaps.FH GHCziBase.Int
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(Fibheaps.Bag (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)))};
%data Fibheaps.Maybe a =
{Fibheaps.Just a;
Fibheaps.Nothing};
con2tagzuMaybezh :: %forall a . GHCziPrim.ZLzmzgZR
(Fibheaps.Maybe a)
GHCziPrim.Intzh =
\ @ a (ds::Fibheaps.Maybe a) ->
%case ds %of (wild::Fibheaps.Maybe a)
{Fibheaps.Nothing ->
(1::GHCziPrim.Intzh);
Fibheaps.Just (ds1::a) ->
(0::GHCziPrim.Intzh)};
Fibheaps.link :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR
(Fibheaps.Tree a)
(GHCziPrim.ZLzmzgZR (Fibheaps.Tree a) (Fibheaps.Tree a))) =
\ @ a
(zddOrd::GHCziBase.ZCTOrd a)
(eta::Fibheaps.Tree a)
(eta1::Fibheaps.Tree a) ->
%case eta %of (wild::Fibheaps.Tree a)
{Fibheaps.Node (x::a) (as::GHCziBase.ZMZN (Fibheaps.Tree a)) ->
%case eta1 %of (wild1::Fibheaps.Tree a)
{Fibheaps.Node (y::a) (bs::GHCziBase.ZMZN (Fibheaps.Tree a)) ->
%case zddOrd %of (tpl::GHCziBase.ZCTOrd a)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq a)
(tpl2::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(tpl8::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a)) ->
%case (tpl3 x y) %of (wild2::GHCziBase.Bool)
{GHCziBase.True ->
Fibheaps.zdwNode @ a x
(GHCziBase.zdwZC @ (Fibheaps.Tree a) wild1 as);
GHCziBase.False ->
Fibheaps.zdwNode @ a y
(GHCziBase.zdwZC @ (Fibheaps.Tree a) wild bs)}}}};
Fibheaps.root :: %forall a . GHCziPrim.ZLzmzgZR
(Fibheaps.Tree a)
a =
\ @ a (ds::Fibheaps.Tree a) ->
%case ds %of (wild::Fibheaps.Tree a)
{Fibheaps.Node (x::a) (ds1::GHCziBase.ZMZN (Fibheaps.Tree a)) ->
x};
Fibheaps.degree :: %forall t t1 . GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T t t1)
t =
\ @ t @ t1 (ds::DataziTuple.Z2T t t1) ->
%case ds %of (wild::DataziTuple.Z2T t t1)
{DataziTuple.Z2T (k::t) (t2::t1) ->
k};
Fibheaps.tree :: %forall t t1 . GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T t t1)
t1 =
\ @ t @ t1 (ds::DataziTuple.Z2T t t1) ->
%case ds %of (wild::DataziTuple.Z2T t t1)
{DataziTuple.Z2T (k::t) (t2::t1) ->
t2};
Fibheaps.rootzq :: %forall a t . GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T t (Fibheaps.Tree a))
a =
\ @ a @ t ->
GHCziBase.zi @ (Fibheaps.Tree a) @ a
@ (DataziTuple.Z2T t (Fibheaps.Tree a)) (Fibheaps.root @ a)
(Fibheaps.tree @ t @ (Fibheaps.Tree a));
Fibheaps.bagToList :: %forall a . GHCziPrim.ZLzmzgZR
(Fibheaps.Bag a)
(GHCziBase.ZMZN a) =
\ @ a (b::Fibheaps.Bag a) ->
%let %rec
{flatten :: GHCziPrim.ZLzmzgZR
(Fibheaps.Bag a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ (ds::Fibheaps.Bag a) (xs::GHCziBase.ZMZN a) ->
%case ds %of (wild::Fibheaps.Bag a)
{Fibheaps.UnionBags (b1::Fibheaps.Bag a) (b2::Fibheaps.Bag a) ->
flatten b1 (flatten b2 xs);
Fibheaps.ConsBag (x::a) (b1::Fibheaps.Bag a) ->
flatten b1 (GHCziBase.zdwZC @ a x xs);
Fibheaps.EmptyBag ->
xs}}
%in flatten b (GHCziBase.zdwZMZN @ a);
%rec
{Fibheaps.applyToAll :: %forall a s . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) GHCziBase.Z0T)))
(GHCziPrim.ZLzmzgZR
(Fibheaps.Bag a)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) GHCziBase.Z0T))) =
\ @ a @ s ->
%let zgzg :: %forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))) =
%case (GHCziST.zdfMonadST @ s)
%of (tpl::GHCziBase.ZCTMonad (GHCziST.ST s))
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1)))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))) ->
tpl2}
%in \ (f::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) GHCziBase.Z0T)))
(ds::Fibheaps.Bag a) ->
%case ds %of (wild::Fibheaps.Bag a)
{Fibheaps.UnionBags (b1::Fibheaps.Bag a) (b2::Fibheaps.Bag a) ->
zgzg @ GHCziBase.Z0T @ GHCziBase.Z0T
(Fibheaps.applyToAll @ a @ s f b1)
(Fibheaps.applyToAll @ a @ s f b2);
Fibheaps.ConsBag (x::a) (b::Fibheaps.Bag a) ->
zgzg @ GHCziBase.Z0T @ GHCziBase.Z0T (f x)
(Fibheaps.applyToAll @ a @ s f b);
Fibheaps.EmptyBag ->
%case (GHCziST.zdfMonadST @ s)
%of (tpl::GHCziBase.ZCTMonad (GHCziST.ST s))
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) b))))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1)))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H (GHCziPrim.Statezh s) a1))) ->
tpl3 @ GHCziBase.Z0T GHCziBase.zdwZ0T}}};
Fibheaps.log2 :: %forall a a1 . GHCziPrim.ZLzmzgZR
(GHCziNum.ZCTNum a)
(GHCziPrim.ZLzmzgZR
(GHCziReal.ZCTIntegral a1)
(GHCziPrim.ZLzmzgZR a1 a)) =
\ @ a
@ a1
(zddNum::GHCziNum.ZCTNum a)
(zddIntegral::GHCziReal.ZCTIntegral a1) ->
%let fromInteger :: GHCziPrim.ZLzmzgZR GHCziNum.Integer a =
%case zddNum %of (tpl::GHCziNum.ZCTNum a)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq a)
(tpl2::GHCziShow.ZCTShow a)
(tpl3::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(tpl4::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(tpl5::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(tpl6::GHCziPrim.ZLzmzgZR a a)
(tpl7::GHCziPrim.ZLzmzgZR a a)
(tpl8::GHCziPrim.ZLzmzgZR a a)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer a) ->
tpl9}
%in %let lit :: a =
fromInteger (GHCziNum.zdwSzh (1::GHCziPrim.Intzh))
%in %let lit1 :: a =
fromInteger (GHCziNum.zdwSzh (0::GHCziPrim.Intzh))
%in %let zddReal :: GHCziReal.ZCTReal a1 =
%case zddIntegral %of (tpl::GHCziReal.ZCTIntegral a1)
{GHCziReal.ZCDIntegral
(tpl1::GHCziReal.ZCTReal a1)
(tpl2::GHCziEnum.ZCTEnum a1)
(tpl3::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl4::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl5::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl6::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl7::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 (DataziTuple.Z2T a1 a1)))
(tpl8::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 (DataziTuple.Z2T a1 a1)))
(tpl9::GHCziPrim.ZLzmzgZR a1 GHCziNum.Integer) ->
tpl1}
%in %let fromInteger1 :: GHCziPrim.ZLzmzgZR GHCziNum.Integer a1 =
%case zddReal %of (tpl::GHCziReal.ZCTReal a1)
{GHCziReal.ZCDReal
(tpl1::GHCziNum.ZCTNum a1)
(tpl2::GHCziBase.ZCTOrd a1)
(tpl3::GHCziPrim.ZLzmzgZR
a1
(GHCziReal.Ratio GHCziNum.Integer)) ->
%case tpl1 %of (tpl4::GHCziNum.ZCTNum a1)
{GHCziNum.ZCDNum
(tpl5::GHCziBase.ZCTEq a1)
(tpl6::GHCziShow.ZCTShow a1)
(tpl7::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl8::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl9::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl10::GHCziPrim.ZLzmzgZR a1 a1)
(tpl11::GHCziPrim.ZLzmzgZR a1 a1)
(tpl12::GHCziPrim.ZLzmzgZR a1 a1)
(tpl13::GHCziPrim.ZLzmzgZR GHCziNum.Integer a1) ->
tpl13}}
%in %let lit2 :: a1 =
fromInteger1 (GHCziNum.zdwSzh (2::GHCziPrim.Intzh))
%in %let lit3 :: a1 =
fromInteger1 (GHCziNum.zdwSzh (1::GHCziPrim.Intzh))
%in %let %rec
{log21 :: GHCziPrim.ZLzmzgZR a1 a =
\ (ds::a1) ->
%case zddReal %of (tpl::GHCziReal.ZCTReal a1)
{GHCziReal.ZCDReal
(tpl1::GHCziNum.ZCTNum a1)
(tpl2::GHCziBase.ZCTOrd a1)
(tpl3::GHCziPrim.ZLzmzgZR
a1
(GHCziReal.Ratio GHCziNum.Integer)) ->
%case tpl2 %of (tpl4::GHCziBase.ZCTOrd a1)
{GHCziBase.ZCDOrd
(tpl5::GHCziBase.ZCTEq a1)
(tpl6::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Ordering))
(tpl7::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Bool))
(tpl8::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Bool))
(tpl9::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Bool))
(tpl10::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Bool))
(tpl11::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 a1))
(tpl12::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 a1)) ->
%case tpl5 %of (tpl13::GHCziBase.ZCTEq a1)
{GHCziBase.ZCDEq
(tpl14::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Bool))
(tpl15::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
GHCziBase.Bool)) ->
%case (tpl15 lit3 ds)
%of (wild::GHCziBase.Bool)
{GHCziBase.True ->
lit1;
GHCziBase.False ->
%case zddNum
%of (tpl16::GHCziNum.ZCTNum a)
{GHCziNum.ZCDNum
(tpl17::GHCziBase.ZCTEq a)
(tpl18::GHCziShow.ZCTShow a)
(tpl19::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a))
(tpl20::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a))
(tpl21::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a))
(tpl22::GHCziPrim.ZLzmzgZR
a
a)
(tpl23::GHCziPrim.ZLzmzgZR
a
a)
(tpl24::GHCziPrim.ZLzmzgZR
a
a)
(tpl25::GHCziPrim.ZLzmzgZR
GHCziNum.Integer
a) ->
tpl21 lit
(log21
(%case zddIntegral
%of (tpl26::GHCziReal.ZCTIntegral
a1)
{GHCziReal.ZCDIntegral
(tpl27::GHCziReal.ZCTReal
a1)
(tpl28::GHCziEnum.ZCTEnum
a1)
(tpl29::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
a1))
(tpl30::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
a1))
(tpl31::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
a1))
(tpl32::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
a1))
(tpl33::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
(DataziTuple.Z2T
a1
a1)))
(tpl34::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
(DataziTuple.Z2T
a1
a1)))
(tpl35::GHCziPrim.ZLzmzgZR
a1
GHCziNum.Integer) ->
tpl30 ds
lit2}))}}}}}}
%in log21;
Fibheaps.emptyFH :: %forall a . Fibheaps.FibHeap a =
\ @ a -> Fibheaps.zdwEmptyFH @ a;
Fibheaps.isEmptyFH :: %forall a . GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
GHCziBase.Bool =
\ @ a (ds::Fibheaps.FibHeap a) ->
%case ds %of (wild::Fibheaps.FibHeap a)
{Fibheaps.FH
(ds1::GHCziBase.Int)
(ds2::DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(ds3::Fibheaps.Bag
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) ->
GHCziBase.zdwFalse;
Fibheaps.EmptyFH ->
GHCziBase.zdwTrue};
Fibheaps.singleFH :: %forall a . GHCziPrim.ZLzmzgZR
a
(Fibheaps.FibHeap a) =
\ @ a (x::a) ->
Fibheaps.zdwFH @ a (GHCziBase.zdwIzh (1::GHCziPrim.Intzh))
(DataziTuple.zdwZ2T @ GHCziBase.Int @ (Fibheaps.Tree a)
(GHCziBase.zdwIzh (0::GHCziPrim.Intzh))
(Fibheaps.zdwNode @ a x (GHCziBase.zdwZMZN @ (Fibheaps.Tree a))))
(Fibheaps.zdwEmptyBag
@ (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)));
Fibheaps.minFH :: %forall a . GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
a =
\ @ a (ds::Fibheaps.FibHeap a) ->
%case ds %of (wild::Fibheaps.FibHeap a)
{Fibheaps.FH
(n::GHCziBase.Int)
(tt::DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(f::Fibheaps.Bag
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) ->
Fibheaps.rootzq @ a @ GHCziBase.Int tt;
Fibheaps.EmptyFH ->
GHCziErr.error @ a
(GHCziBase.unpackCStringzh ("minFH EmptyFH"::GHCziPrim.Addrzh))};
Fibheaps.null :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
GHCziBase.Bool =
\ @ a (ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (ds1::a) (ds2::GHCziBase.ZMZN a) ->
GHCziBase.zdwFalse;
GHCziBase.ZMZN ->
GHCziBase.zdwTrue};
Fibheaps.length :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
GHCziBase.Int =
\ @ a (l::GHCziBase.ZMZN a) ->
%let %rec
{len :: %forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a1)
(GHCziPrim.ZLzmzgZR GHCziPrim.Intzh GHCziBase.Int) =
\ @ a1 (ds::GHCziBase.ZMZN a1) (azh::GHCziPrim.Intzh) ->
%case ds %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (ds1::a1) (xs::GHCziBase.ZMZN a1) ->
len @ a1 xs (GHCziPrim.zpzh azh (1::GHCziPrim.Intzh));
GHCziBase.ZMZN ->
GHCziBase.zdwIzh azh}}
%in len @ a l (0::GHCziPrim.Intzh);
Fibheaps.filterList :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a
(pred::GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(xs::GHCziBase.ZMZN a) ->
GHCziBase.foldr @ a @ (GHCziBase.ZMZN a)
(\ (x::a) (rest::GHCziBase.ZMZN a) ->
%case (pred x) %of (wild::GHCziBase.Bool)
{GHCziBase.True ->
GHCziBase.zdwZC @ a x rest;
GHCziBase.False ->
rest})
(GHCziBase.zdwZMZN @ a) xs;
Fibheaps.filter :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a -> Fibheaps.filterList @ a;
Fibheaps.foldl :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b a))
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN b) a)) =
\ @ a
@ b
(f::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b a))
(zz::a)
(xs::GHCziBase.ZMZN b) ->
%let %rec
{lgo :: GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN b) a) =
\ (zz1::a) (ds::GHCziBase.ZMZN b) ->
%case ds %of (wild::GHCziBase.ZMZN b)
{GHCziBase.ZC (x::b) (xs1::GHCziBase.ZMZN b) ->
lgo (f zz1 x) xs1;
GHCziBase.ZMZN ->
zz1}}
%in lgo zz xs;
%rec
{Fibheaps.scanl :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b a))
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN b) (GHCziBase.ZMZN a))) =
\ @ a
@ b
(f::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b a))
(q::a)
(ls::GHCziBase.ZMZN b) ->
GHCziBase.zdwZC @ a q
(%case ls %of (wild::GHCziBase.ZMZN b)
{GHCziBase.ZC (x::b) (xs::GHCziBase.ZMZN b) ->
Fibheaps.scanl @ a @ b f (f q x) xs;
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a})};
Fibheaps.scanl1 :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a
(f::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xs::GHCziBase.ZMZN a) ->
Fibheaps.scanl @ a @ a f x xs;
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a};
%rec
{Fibheaps.scanr :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b b))
(GHCziPrim.ZLzmzgZR
b
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN b))) =
\ @ a
@ b
(ds::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b b))
(q0::b)
(ds1::GHCziBase.ZMZN a) ->
%case ds1 %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xs::GHCziBase.ZMZN a) ->
%let ds2 :: DataziTuple.Z2T (GHCziBase.ZMZN b) b =
%case (Fibheaps.scanr @ a @ b ds q0 xs)
%of (wild1::GHCziBase.ZMZN b)
{GHCziBase.ZMZN ->
GHCziErr.irrefutPatError @ (DataziTuple.Z2T (GHCziBase.ZMZN b) b)
("FibheapswithPrelude.hs:460|(qs@(q GHC.Base.: _))"::GHCziPrim.Addrzh);
GHCziBase.ZC (q::b) (ds3::GHCziBase.ZMZN b) ->
DataziTuple.zdwZ2T @ (GHCziBase.ZMZN b) @ b wild1 q}
%in GHCziBase.zdwZC @ b
(ds x
(%case ds2 %of (ds3::DataziTuple.Z2T (GHCziBase.ZMZN b) b)
{DataziTuple.Z2T (qs::GHCziBase.ZMZN b) (q::b) ->
q}))
(%case ds2 %of (ds3::DataziTuple.Z2T (GHCziBase.ZMZN b) b)
{DataziTuple.Z2T (qs::GHCziBase.ZMZN b) (q::b) ->
qs});
GHCziBase.ZMZN ->
GHCziBase.zdwZC @ b q0 (GHCziBase.zdwZMZN @ b)}};
%rec
{Fibheaps.scanr1 :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a
(f::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (ds1::GHCziBase.ZMZN a) ->
%case ds1 %of (wild1::GHCziBase.ZMZN a)
{GHCziBase.ZC (a1::a) (a2::GHCziBase.ZMZN a) ->
%let ds2 :: DataziTuple.Z2T (GHCziBase.ZMZN a) a =
%case (Fibheaps.scanr1 @ a f wild1) %of (wild2::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
GHCziErr.irrefutPatError @ (DataziTuple.Z2T (GHCziBase.ZMZN a) a)
("FibheapswithPrelude.hs:466|(qs@(q GHC.Base.: _))"::GHCziPrim.Addrzh);
GHCziBase.ZC (q::a) (ds3::GHCziBase.ZMZN a) ->
DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ a wild2 q}
%in GHCziBase.zdwZC @ a
(f x
(%case ds2 %of (ds3::DataziTuple.Z2T (GHCziBase.ZMZN a) a)
{DataziTuple.Z2T (qs::GHCziBase.ZMZN a) (q::a) ->
q}))
(%case ds2 %of (ds3::DataziTuple.Z2T (GHCziBase.ZMZN a) a)
{DataziTuple.Z2T (qs::GHCziBase.ZMZN a) (q::a) ->
qs});
GHCziBase.ZMZN ->
GHCziBase.zdwZC @ a x (GHCziBase.zdwZMZN @ a)};
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a}};
Fibheaps.iterateFB :: %forall t t1 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t t))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t1 t1)
(GHCziPrim.ZLzmzgZR t1 t)) =
\ @ t @ t1 ->
%let %rec
{iterateFB1 :: GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t t))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t1 t1)
(GHCziPrim.ZLzmzgZR t1 t)) =
\ (c::GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t t))
(f::GHCziPrim.ZLzmzgZR t1 t1)
(x::t1) ->
c x (iterateFB1 c f (f x))}
%in iterateFB1;
Fibheaps.iterateList :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a a)
(GHCziPrim.ZLzmzgZR a (GHCziBase.ZMZN a)) =
\ @ a ->
%let %rec
{iterateList1 :: GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a a)
(GHCziPrim.ZLzmzgZR a (GHCziBase.ZMZN a)) =
\ (f::GHCziPrim.ZLzmzgZR a a) (x::a) ->
GHCziBase.zdwZC @ a x (iterateList1 f (f x))}
%in iterateList1;
Fibheaps.iterate :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a a)
(GHCziPrim.ZLzmzgZR a (GHCziBase.ZMZN a)) =
\ @ a -> Fibheaps.iterateList @ a;
Fibheaps.repeatList :: %forall a . GHCziPrim.ZLzmzgZR
a
(GHCziBase.ZMZN a) =
\ @ a (x::a) ->
%let %rec
{xs :: GHCziBase.ZMZN a = GHCziBase.zdwZC @ a x xs}
%in xs;
Fibheaps.repeatFB :: %forall t t1 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t t))
(GHCziPrim.ZLzmzgZR t1 t) =
\ @ t
@ t1
(c::GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t t))
(x::t1) ->
%let %rec
{xs :: t = c x xs}
%in xs;
Fibheaps.repeat :: %forall a . GHCziPrim.ZLzmzgZR
a
(GHCziBase.ZMZN a) =
\ @ a -> Fibheaps.repeatList @ a;
%rec
{Fibheaps.takeWhile :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a
(ds::GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(ds1::GHCziBase.ZMZN a) ->
%case ds1 %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xs::GHCziBase.ZMZN a) ->
%case (ds x) %of (wild1::GHCziBase.Bool)
{GHCziBase.True ->
GHCziBase.zdwZC @ a x (Fibheaps.takeWhile @ a ds xs);
GHCziBase.False ->
GHCziBase.zdwZMZN @ a};
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a}};
%rec
{Fibheaps.dropWhile :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a
(ds::GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(ds1::GHCziBase.ZMZN a) ->
%case ds1 %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xszq::GHCziBase.ZMZN a) ->
%case (ds x) %of (wild1::GHCziBase.Bool)
{GHCziBase.True ->
Fibheaps.dropWhile @ a ds xszq;
GHCziBase.False ->
wild};
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a}};
%rec
{Fibheaps.span :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))) =
\ @ a
(ds::GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(xs::GHCziBase.ZMZN a) ->
%case xs %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xszq::GHCziBase.ZMZN a) ->
%case (ds x) %of (wild1::GHCziBase.Bool)
{GHCziBase.True ->
%let ds1 :: DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN a) =
Fibheaps.span @ a ds xszq
%in DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN a)
(GHCziBase.zdwZC @ a x
(%case ds1
%of (wild2::DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))
{DataziTuple.Z2T (ys::GHCziBase.ZMZN a) (zzs::GHCziBase.ZMZN a) ->
ys}))
(%case ds1
%of (wild2::DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))
{DataziTuple.Z2T (ys::GHCziBase.ZMZN a) (zzs::GHCziBase.ZMZN a) ->
zzs});
GHCziBase.False ->
DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN a)
(GHCziBase.zdwZMZN @ a) wild};
GHCziBase.ZMZN ->
DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN a)
(GHCziBase.zdwZMZN @ a) (GHCziBase.zdwZMZN @ a)}};
Fibheaps.break :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))) =
\ @ a (p::GHCziPrim.ZLzmzgZR a GHCziBase.Bool) ->
Fibheaps.span @ a
(GHCziBase.zi @ GHCziBase.Bool @ GHCziBase.Bool @ a GHCziBase.not
p);
Fibheaps.lookup :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTEq a)
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (DataziTuple.Z2T a b))
(Fibheaps.Maybe b))) =
\ @ a
@ b
(zddEq::GHCziBase.ZCTEq a)
(eta::a)
(eta1::GHCziBase.ZMZN (DataziTuple.Z2T a b)) ->
%let %rec
{lookup1 :: GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (DataziTuple.Z2T a b))
(Fibheaps.Maybe b)) =
\ (zukey::a) (ds::GHCziBase.ZMZN (DataziTuple.Z2T a b)) ->
%case ds %of (wild::GHCziBase.ZMZN (DataziTuple.Z2T a b))
{GHCziBase.ZC
(ds1::DataziTuple.Z2T a b)
(xys::GHCziBase.ZMZN (DataziTuple.Z2T a b)) ->
%case ds1 %of (wild1::DataziTuple.Z2T a b)
{DataziTuple.Z2T (x::a) (y::b) ->
%case zddEq %of (tpl::GHCziBase.ZCTEq a)
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)) ->
%case (tpl2 zukey x) %of (wild2::GHCziBase.Bool)
{GHCziBase.True ->
Fibheaps.zdwJust @ b y;
GHCziBase.False ->
lookup1 zukey xys}}};
GHCziBase.ZMZN ->
Fibheaps.zdwNothing @ b}}
%in lookup1 eta eta1;
Fibheaps.foldr2 :: %forall a a1 t . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR t t)))
(GHCziPrim.ZLzmzgZR
t
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a1) t))) =
\ @ a @ a1 @ t ->
%let %rec
{foldr21 :: GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR t t)))
(GHCziPrim.ZLzmzgZR
t
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a1) t))) =
\ (zuk::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR t t)))
(zz::t)
(ds::GHCziBase.ZMZN a)
(zuys::GHCziBase.ZMZN a1) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (a2::a) (a3::GHCziBase.ZMZN a) ->
%case zuys %of (wild1::GHCziBase.ZMZN a1)
{GHCziBase.ZC (a4::a1) (a5::GHCziBase.ZMZN a1) ->
zuk a2 a4 (foldr21 zuk zz a3 a5);
GHCziBase.ZMZN ->
zz};
GHCziBase.ZMZN ->
zz}}
%in foldr21;
Fibheaps.foldr2zuleft :: %forall t a t1 t2 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
t1
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR t2 t)))
(GHCziPrim.ZLzmzgZR
t
(GHCziPrim.ZLzmzgZR
t1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) t2)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) t)))) =
\ @ t
@ a
@ t1
@ t2
(zuk::GHCziPrim.ZLzmzgZR
t1
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR t2 t)))
(zz::t)
(zux::t1)
(zur::GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) t2)
(ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (y::a) (ys::GHCziBase.ZMZN a) ->
zuk zux y (zur ys);
GHCziBase.ZMZN ->
zz};
Fibheaps.foldr2zuright :: %forall t a t1 t2 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t2 t)))
(GHCziPrim.ZLzmzgZR
t
(GHCziPrim.ZLzmzgZR
t1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) t2)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) t)))) =
\ @ t
@ a
@ t1
@ t2
(zuk::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t2 t)))
(zz::t)
(zuy::t1)
(zur::GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) t2)
(ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xs::GHCziBase.ZMZN a) ->
zuk x zuy (zur xs);
GHCziBase.ZMZN ->
zz};
Fibheaps.zzipFB :: %forall t t1 t2 t3 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T t2 t3)
(GHCziPrim.ZLzmzgZR t1 t))
(GHCziPrim.ZLzmzgZR
t2
(GHCziPrim.ZLzmzgZR t3 (GHCziPrim.ZLzmzgZR t1 t))) =
\ @ t
@ t1
@ t2
@ t3
(c::GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T t2 t3)
(GHCziPrim.ZLzmzgZR t1 t))
(x::t2)
(y::t3)
(r::t1) ->
c (DataziTuple.zdwZ2T @ t2 @ t3 x y) r;
%rec
{Fibheaps.zzipList :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN (DataziTuple.Z2T a b))) =
\ @ a @ b (ds::GHCziBase.ZMZN a) (ds1::GHCziBase.ZMZN b) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (DataziTuple.Z2T a b);
GHCziBase.ZC (a1::a) (as::GHCziBase.ZMZN a) ->
%case ds1 %of (wild1::GHCziBase.ZMZN b)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (DataziTuple.Z2T a b);
GHCziBase.ZC (b1::b) (bs::GHCziBase.ZMZN b) ->
GHCziBase.zdwZC @ (DataziTuple.Z2T a b)
(DataziTuple.zdwZ2T @ a @ b a1 b1)
(Fibheaps.zzipList @ a @ b as bs)}}};
Fibheaps.zzip :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN (DataziTuple.Z2T a b))) =
\ @ a @ b -> Fibheaps.zzipList @ a @ b;
%rec
{Fibheaps.zzip3 :: %forall a b c . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN b)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN c)
(GHCziBase.ZMZN (DataziTuple.Z3T a b c)))) =
\ @ a
@ b
@ c
(ds::GHCziBase.ZMZN a)
(ds1::GHCziBase.ZMZN b)
(ds2::GHCziBase.ZMZN c) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (DataziTuple.Z3T a b c);
GHCziBase.ZC (a1::a) (as::GHCziBase.ZMZN a) ->
%case ds1 %of (wild1::GHCziBase.ZMZN b)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (DataziTuple.Z3T a b c);
GHCziBase.ZC (b1::b) (bs::GHCziBase.ZMZN b) ->
%case ds2 %of (wild2::GHCziBase.ZMZN c)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (DataziTuple.Z3T a b c);
GHCziBase.ZC (c1::c) (cs::GHCziBase.ZMZN c) ->
GHCziBase.zdwZC @ (DataziTuple.Z3T a b c)
(DataziTuple.zdwZ3T @ a @ b @ c a1 b1 c1)
(Fibheaps.zzip3 @ a @ b @ c as bs cs)}}}};
Fibheaps.zzipWithFB :: %forall t t1 t2 t3 t4 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t2 t))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR t3 (GHCziPrim.ZLzmzgZR t4 t1))
(GHCziPrim.ZLzmzgZR
t3
(GHCziPrim.ZLzmzgZR
t4
(GHCziPrim.ZLzmzgZR t2 t)))) =
\ @ t
@ t1
@ t2
@ t3
@ t4
(c::GHCziPrim.ZLzmzgZR t1 (GHCziPrim.ZLzmzgZR t2 t))
(f::GHCziPrim.ZLzmzgZR t3 (GHCziPrim.ZLzmzgZR t4 t1))
(x::t3)
(y::t4)
(r::t2) ->
c (f x y) r;
%rec
{Fibheaps.zzipWithList :: %forall a b c . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b c))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c))) =
\ @ a
@ b
@ c
(f::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b c))
(ds::GHCziBase.ZMZN a)
(ds1::GHCziBase.ZMZN b) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ c;
GHCziBase.ZC (a1::a) (as::GHCziBase.ZMZN a) ->
%case ds1 %of (wild1::GHCziBase.ZMZN b)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ c;
GHCziBase.ZC (b1::b) (bs::GHCziBase.ZMZN b) ->
GHCziBase.zdwZC @ c (f a1 b1)
(Fibheaps.zzipWithList @ a @ b @ c f as bs)}}};
Fibheaps.zzipWith :: %forall a b c . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b c))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c))) =
\ @ a @ b @ c -> Fibheaps.zzipWithList @ a @ b @ c;
Fibheaps.getChildren :: %forall a a1 . GHCziPrim.ZLzmzgZR
(GHCziEnum.ZCTEnum a1)
(GHCziPrim.ZLzmzgZR
(GHCziNum.ZCTNum a1)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T a1 (Fibheaps.Tree a))
(GHCziBase.ZMZN
(DataziTuple.Z2T a1 (Fibheaps.Tree a))))) =
\ @ a
@ a1
(zddEnum::GHCziEnum.ZCTEnum a1)
(zddNum::GHCziNum.ZCTNum a1) ->
%let zm :: GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1) =
%case zddNum %of (tpl::GHCziNum.ZCTNum a1)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq a1)
(tpl2::GHCziShow.ZCTShow a1)
(tpl3::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl4::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl5::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl6::GHCziPrim.ZLzmzgZR a1 a1)
(tpl7::GHCziPrim.ZLzmzgZR a1 a1)
(tpl8::GHCziPrim.ZLzmzgZR a1 a1)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer a1) ->
tpl3}
%in %let fromInteger :: GHCziPrim.ZLzmzgZR GHCziNum.Integer a1 =
%case zddNum %of (tpl::GHCziNum.ZCTNum a1)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq a1)
(tpl2::GHCziShow.ZCTShow a1)
(tpl3::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl4::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl5::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl6::GHCziPrim.ZLzmzgZR a1 a1)
(tpl7::GHCziPrim.ZLzmzgZR a1 a1)
(tpl8::GHCziPrim.ZLzmzgZR a1 a1)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer a1) ->
tpl9}
%in %let lit :: a1 =
fromInteger (GHCziNum.zdwSzh (2::GHCziPrim.Intzh))
%in %let lit1 :: a1 =
fromInteger (GHCziNum.zdwSzh (1::GHCziPrim.Intzh))
%in \ (ds::DataziTuple.Z2T a1 (Fibheaps.Tree a)) ->
%case ds %of (wild::DataziTuple.Z2T a1 (Fibheaps.Tree a))
{DataziTuple.Z2T (n::a1) (ds1::Fibheaps.Tree a) ->
%case ds1 %of (wild1::Fibheaps.Tree a)
{Fibheaps.Node (x::a) (ts::GHCziBase.ZMZN (Fibheaps.Tree a)) ->
Fibheaps.zzipWithList @ a1 @ (Fibheaps.Tree a)
@ (DataziTuple.Z2T a1 (Fibheaps.Tree a))
(DataziTuple.zdwZ2T @ a1 @ (Fibheaps.Tree a))
(%case zddEnum %of (tpl::GHCziEnum.ZCTEnum a1)
{GHCziEnum.ZCDEnum
(tpl1::GHCziPrim.ZLzmzgZR a1 a1)
(tpl2::GHCziPrim.ZLzmzgZR a1 a1)
(tpl3::GHCziPrim.ZLzmzgZR GHCziBase.Int a1)
(tpl4::GHCziPrim.ZLzmzgZR a1 GHCziBase.Int)
(tpl5::GHCziPrim.ZLzmzgZR a1 (GHCziBase.ZMZN a1))
(tpl6::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 (GHCziBase.ZMZN a1)))
(tpl7::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 (GHCziBase.ZMZN a1)))
(tpl8::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 (GHCziBase.ZMZN a1)))) ->
tpl6 (zm n lit1) (zm n lit)})
ts}};
%rec
{Fibheaps.zzipWith3 :: %forall a b c d . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR c d)))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN b)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN c)
(GHCziBase.ZMZN d)))) =
\ @ a
@ b
@ c
@ d
(zz::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR c d)))
(ds::GHCziBase.ZMZN a)
(ds1::GHCziBase.ZMZN b)
(ds2::GHCziBase.ZMZN c) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ d;
GHCziBase.ZC (a1::a) (as::GHCziBase.ZMZN a) ->
%case ds1 %of (wild1::GHCziBase.ZMZN b)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ d;
GHCziBase.ZC (b1::b) (bs::GHCziBase.ZMZN b) ->
%case ds2 %of (wild2::GHCziBase.ZMZN c)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ d;
GHCziBase.ZC (c1::c) (cs::GHCziBase.ZMZN c) ->
GHCziBase.zdwZC @ d (zz a1 b1 c1)
(Fibheaps.zzipWith3 @ a @ b @ c @ d zz as bs cs)}}}};
Fibheaps.unzzip :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (DataziTuple.Z2T a b))
(DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN b)) =
\ @ a @ b ->
GHCziBase.foldr @ (DataziTuple.Z2T a b)
@ (DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN b))
(\ (ds::DataziTuple.Z2T a b)
(ds1::DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN b)) ->
%case ds %of (wild::DataziTuple.Z2T a b)
{DataziTuple.Z2T (a1::a) (b1::b) ->
DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN b)
(GHCziBase.zdwZC @ a a1
(%case ds1
%of (wild1::DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN b))
{DataziTuple.Z2T (as::GHCziBase.ZMZN a) (bs::GHCziBase.ZMZN b) ->
as}))
(GHCziBase.zdwZC @ b b1
(%case ds1
%of (wild1::DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN b))
{DataziTuple.Z2T (as::GHCziBase.ZMZN a) (bs::GHCziBase.ZMZN b) ->
bs}))})
(DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN b)
(GHCziBase.zdwZMZN @ a) (GHCziBase.zdwZMZN @ b));
Fibheaps.unzzip3 :: %forall a b c . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (DataziTuple.Z3T a b c))
(DataziTuple.Z3T
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c)) =
\ @ a @ b @ c ->
GHCziBase.foldr @ (DataziTuple.Z3T a b c)
@ (DataziTuple.Z3T
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c))
(\ (ds::DataziTuple.Z3T a b c)
(ds1::DataziTuple.Z3T
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c)) ->
%case ds %of (wild::DataziTuple.Z3T a b c)
{DataziTuple.Z3T (a1::a) (b1::b) (c1::c) ->
DataziTuple.zdwZ3T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN b)
@ (GHCziBase.ZMZN c)
(GHCziBase.zdwZC @ a a1
(%case ds1
%of (wild1::DataziTuple.Z3T
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c))
{DataziTuple.Z3T
(as::GHCziBase.ZMZN a)
(bs::GHCziBase.ZMZN b)
(cs::GHCziBase.ZMZN c) ->
as}))
(GHCziBase.zdwZC @ b b1
(%case ds1
%of (wild1::DataziTuple.Z3T
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c))
{DataziTuple.Z3T
(as::GHCziBase.ZMZN a)
(bs::GHCziBase.ZMZN b)
(cs::GHCziBase.ZMZN c) ->
bs}))
(GHCziBase.zdwZC @ c c1
(%case ds1
%of (wild1::DataziTuple.Z3T
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN b)
(GHCziBase.ZMZN c))
{DataziTuple.Z3T
(as::GHCziBase.ZMZN a)
(bs::GHCziBase.ZMZN b)
(cs::GHCziBase.ZMZN c) ->
cs}))})
(DataziTuple.zdwZ3T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN b)
@ (GHCziBase.ZMZN c) (GHCziBase.zdwZMZN @ a)
(GHCziBase.zdwZMZN @ b) (GHCziBase.zdwZMZN @ c));
Fibheaps.append :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a (xs::GHCziBase.ZMZN a) (ys::GHCziBase.ZMZN a) ->
GHCziBase.foldr @ a @ (GHCziBase.ZMZN a) (GHCziBase.zdwZC @ a) ys
xs;
Fibheaps.zpzp :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a -> Fibheaps.append @ a;
Fibheaps.concat :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (GHCziBase.ZMZN a))
(GHCziBase.ZMZN a) =
\ @ a ->
GHCziBase.foldr @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN a)
(Fibheaps.append @ a) (GHCziBase.zdwZMZN @ a);
Fibheaps.concatMap :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziBase.ZMZN b))
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN b)) =
\ @ a @ b (f::GHCziPrim.ZLzmzgZR a (GHCziBase.ZMZN b)) ->
GHCziBase.foldr @ a @ (GHCziBase.ZMZN b)
(GHCziBase.zi @ (GHCziBase.ZMZN b)
@ (GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN b) (GHCziBase.ZMZN b)) @ a
(Fibheaps.append @ b) f)
(GHCziBase.zdwZMZN @ b);
Fibheaps.cycle :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN a) =
\ @ a (ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (a1::a) (a2::GHCziBase.ZMZN a) ->
%let %rec
{xszq :: GHCziBase.ZMZN a = Fibheaps.append @ a wild xszq}
%in xszq;
GHCziBase.ZMZN ->
GHCziErr.error @ (GHCziBase.ZMZN a)
(GHCziBase.unpackCStringzh
("Prelude.cycle: empty list"::GHCziPrim.Addrzh))};
Fibheaps.mapList :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a b)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN b)) =
\ @ a @ b (f::GHCziPrim.ZLzmzgZR a b) (xs::GHCziBase.ZMZN a) ->
GHCziBase.foldr @ a @ (GHCziBase.ZMZN b)
(\ (x::a) (rest::GHCziBase.ZMZN b) ->
GHCziBase.zdwZC @ b (f x) rest)
(GHCziBase.zdwZMZN @ b) xs;
Fibheaps.map :: %forall a b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a b)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN b)) =
\ @ a @ b -> Fibheaps.mapList @ a @ b;
Fibheaps.sum :: %forall b . GHCziPrim.ZLzmzgZR
(GHCziNum.ZCTNum b)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN b) b) =
\ @ b (zddNum::GHCziNum.ZCTNum b) ->
%let zp :: GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b) =
%case zddNum %of (tpl::GHCziNum.ZCTNum b)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq b)
(tpl2::GHCziShow.ZCTShow b)
(tpl3::GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b))
(tpl4::GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b))
(tpl5::GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b))
(tpl6::GHCziPrim.ZLzmzgZR b b)
(tpl7::GHCziPrim.ZLzmzgZR b b)
(tpl8::GHCziPrim.ZLzmzgZR b b)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer b) ->
tpl5}
%in %let lit :: b =
%case zddNum %of (tpl::GHCziNum.ZCTNum b)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq b)
(tpl2::GHCziShow.ZCTShow b)
(tpl3::GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b))
(tpl4::GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b))
(tpl5::GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR b b))
(tpl6::GHCziPrim.ZLzmzgZR b b)
(tpl7::GHCziPrim.ZLzmzgZR b b)
(tpl8::GHCziPrim.ZLzmzgZR b b)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer b) ->
tpl9 (GHCziNum.zdwSzh (0::GHCziPrim.Intzh))}
%in \ (l::GHCziBase.ZMZN b) -> GHCziBase.foldr @ b @ b zp lit l;
%rec
{Fibheaps.deleteBy :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))) =
\ @ a
(eq::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(x::a)
(ds::GHCziBase.ZMZN a) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZC (y::a) (ys::GHCziBase.ZMZN a) ->
%case (eq x y) %of (wild1::GHCziBase.Bool)
{GHCziBase.True ->
ys;
GHCziBase.False ->
GHCziBase.zdwZC @ a y (Fibheaps.deleteBy @ a eq x ys)};
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a}};
Fibheaps.delete :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTEq a)
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))) =
\ @ a
(zddEq::GHCziBase.ZCTEq a)
(eta::a)
(eta1::GHCziBase.ZMZN a) ->
Fibheaps.deleteBy @ a
(%case zddEq %of (tpl::GHCziBase.ZCTEq a)
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)) ->
tpl2})
eta eta1;
Fibheaps.flip :: %forall a b c . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b c))
(GHCziPrim.ZLzmzgZR b (GHCziPrim.ZLzmzgZR a c)) =
\ @ a
@ b
@ c
(f::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b c))
(x::b)
(y::a) ->
f y x;
Fibheaps.reverse :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN a) =
\ @ a ->
Fibheaps.foldl @ (GHCziBase.ZMZN a) @ a
(Fibheaps.flip @ a @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN a)
(GHCziBase.zdwZC @ a))
(GHCziBase.zdwZMZN @ a);
%rec
{Fibheaps.transpose :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (GHCziBase.ZMZN a))
(GHCziBase.ZMZN (GHCziBase.ZMZN a)) =
\ @ a (ds::GHCziBase.ZMZN (GHCziBase.ZMZN a)) ->
%case ds %of (wild::GHCziBase.ZMZN (GHCziBase.ZMZN a))
{GHCziBase.ZC
(ds1::GHCziBase.ZMZN a) (xss::GHCziBase.ZMZN (GHCziBase.ZMZN a)) ->
%case ds1 %of (wild1::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xs::GHCziBase.ZMZN a) ->
GHCziBase.zdwZC @ (GHCziBase.ZMZN a)
(GHCziBase.zdwZC @ a x
(GHCziBase.build @ a
(\ @ a1
(ds2::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a1 a1))
(ds3::a1) ->
GHCziBase.foldr @ (GHCziBase.ZMZN a) @ a1
(\ (ds4::GHCziBase.ZMZN a) (ds5::a1) ->
%case ds4 %of (wild2::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
ds5;
GHCziBase.ZC (h::a) (t::GHCziBase.ZMZN a) ->
ds2 h ds5})
ds3 xss)))
(Fibheaps.transpose @ a
(GHCziBase.zdwZC @ (GHCziBase.ZMZN a) xs
(GHCziBase.build @ (GHCziBase.ZMZN a)
(\ @ a1
(ds2::GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR a1 a1))
(ds3::a1) ->
GHCziBase.foldr @ (GHCziBase.ZMZN a) @ a1
(\ (ds4::GHCziBase.ZMZN a) (ds5::a1) ->
%case ds4 %of (wild2::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
ds5;
GHCziBase.ZC (h::a) (t::GHCziBase.ZMZN a) ->
ds2 t ds5})
ds3 xss))));
GHCziBase.ZMZN ->
Fibheaps.transpose @ a xss};
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (GHCziBase.ZMZN a)}};
Fibheaps.zzipWith4 :: %forall a a1 a2 a3 a4 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR a3 a4))))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a1)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a2)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a3)
(GHCziBase.ZMZN a4))))) =
\ @ a @ a1 @ a2 @ a3 @ a4 ->
%let %rec
{zzipWith41 :: GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a2 (GHCziPrim.ZLzmzgZR a3 a4))))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a1)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a2)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a3) (GHCziBase.ZMZN a4))))) =
\ (zz::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a2 (GHCziPrim.ZLzmzgZR a3 a4))))
(ds::GHCziBase.ZMZN a)
(ds1::GHCziBase.ZMZN a1)
(ds2::GHCziBase.ZMZN a2)
(ds3::GHCziBase.ZMZN a3) ->
%case ds %of (wild::GHCziBase.ZMZN a)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a4;
GHCziBase.ZC (a5::a) (as::GHCziBase.ZMZN a) ->
%case ds1 %of (wild1::GHCziBase.ZMZN a1)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a4;
GHCziBase.ZC (b::a1) (bs::GHCziBase.ZMZN a1) ->
%case ds2 %of (wild2::GHCziBase.ZMZN a2)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a4;
GHCziBase.ZC (c::a2) (cs::GHCziBase.ZMZN a2) ->
%case ds3 %of (wild3::GHCziBase.ZMZN a3)
{GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a4;
GHCziBase.ZC (d::a3) (ds4::GHCziBase.ZMZN a3) ->
GHCziBase.zdwZC @ a4 (zz a5 b c d)
(zzipWith41 zz as bs cs ds4)}}}}}
%in zzipWith41;
Fibheaps.zzip4 :: %forall a a1 a2 a3 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a1)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a2)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a3)
(GHCziBase.ZMZN (DataziTuple.Z4T a a1 a2 a3))))) =
\ @ a @ a1 @ a2 @ a3 ->
Fibheaps.zzipWith4 @ a @ a1 @ a2 @ a3
@ (DataziTuple.Z4T a a1 a2 a3)
(DataziTuple.zdwZ4T @ a @ a1 @ a2 @ a3);
Fibheaps.sequencezu :: %forall (m::(*->*)) a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTMonad m)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (m a))
(m GHCziBase.Z0T)) =
\ @ (m::(*->*)) @ a (zddMonad::GHCziBase.ZCTMonad m) ->
GHCziBase.foldr @ (m a) @ (m GHCziBase.Z0T)
(%case zddMonad %of (tpl::GHCziBase.ZCTMonad m)
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(m a1)
(GHCziPrim.ZLzmzgZR (GHCziPrim.ZLzmzgZR a1 (m b)) (m b)))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(m a1)
(GHCziPrim.ZLzmzgZR (m b) (m b)))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR a1 (m a1))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(m a1)) ->
tpl2 @ a @ GHCziBase.Z0T})
(%case zddMonad %of (tpl::GHCziBase.ZCTMonad m)
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(m a1)
(GHCziPrim.ZLzmzgZR (GHCziPrim.ZLzmzgZR a1 (m b)) (m b)))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(m a1)
(GHCziPrim.ZLzmzgZR (m b) (m b)))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR a1 (m a1))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(m a1)) ->
tpl3 @ GHCziBase.Z0T GHCziBase.zdwZ0T});
Fibheaps.union :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTEq a)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))) =
\ @ a (zddEq::GHCziBase.ZCTEq a) ->
DataziList.unionBy @ a
(%case zddEq %of (tpl::GHCziBase.ZCTEq a)
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)) ->
tpl2});
Fibheaps.sortBy :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Ordering))
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a
(cmp::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a GHCziBase.Ordering)) ->
GHCziBase.foldr @ a @ (GHCziBase.ZMZN a)
(DataziList.insertBy @ a cmp) (GHCziBase.zdwZMZN @ a);
lit :: GHCziBase.Int = GHCziBase.zdwIzh (77::GHCziPrim.Intzh);
lit1 :: GHCziBase.Int = GHCziBase.zdwIzh (1024::GHCziPrim.Intzh);
lit2 :: GHCziBase.Int = GHCziBase.zdwIzh (1967::GHCziPrim.Intzh);
lit3 :: GHCziBase.Int =
GHCziBase.zdwIzh (999999999::GHCziPrim.Intzh);
lit4 :: GHCziBase.Int = GHCziBase.zdwIzh (0::GHCziPrim.Intzh);
lit5 :: GHCziBase.Int = GHCziBase.zdwIzh (1::GHCziPrim.Intzh);
zddReal :: GHCziReal.ZCTReal GHCziBase.Int =
%case GHCziReal.zdfIntegralInt
%of (tpl::GHCziReal.ZCTIntegral GHCziBase.Int)
{GHCziReal.ZCDIntegral
(tpl1::GHCziReal.ZCTReal GHCziBase.Int)
(tpl2::GHCziEnum.ZCTEnum GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(DataziTuple.Z2T GHCziBase.Int GHCziBase.Int)))
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(DataziTuple.Z2T GHCziBase.Int GHCziBase.Int)))
(tpl9::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziNum.Integer) ->
tpl1};
zddNum :: GHCziNum.ZCTNum GHCziBase.Int =
%case zddReal %of (tpl::GHCziReal.ZCTReal GHCziBase.Int)
{GHCziReal.ZCDReal
(tpl1::GHCziNum.ZCTNum GHCziBase.Int)
(tpl2::GHCziBase.ZCTOrd GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziReal.Ratio GHCziNum.Integer)) ->
tpl1};
zm :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
%case zddNum %of (tpl::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer GHCziBase.Int) ->
tpl3};
zp :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
%case zddNum %of (tpl::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer GHCziBase.Int) ->
tpl5};
Fibheaps.meldFH :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(GHCziPrim.ZLzmzgZR (Fibheaps.FibHeap a) (Fibheaps.FibHeap a))) =
\ @ a
(zddOrd::GHCziBase.ZCTOrd a)
(eta::Fibheaps.FibHeap a)
(eta1::Fibheaps.FibHeap a) ->
%case eta %of (wild::Fibheaps.FibHeap a)
{Fibheaps.FH
(a1::GHCziBase.Int)
(a2::DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(a3::Fibheaps.Bag
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) ->
%case eta1 %of (wild1::Fibheaps.FibHeap a)
{Fibheaps.FH
(a4::GHCziBase.Int)
(a5::DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(a6::Fibheaps.Bag
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) ->
%case zddOrd %of (tpl::GHCziBase.ZCTOrd a)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq a)
(tpl2::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR a GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(tpl8::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a)) ->
%case (tpl3 (Fibheaps.rootzq @ a @ GHCziBase.Int a2)
(Fibheaps.rootzq @ a @ GHCziBase.Int a5))
%of (wild2::GHCziBase.Bool)
{GHCziBase.True ->
Fibheaps.zdwFH @ a (zp a1 a4) a2
(Fibheaps.zdwConsBag
@ (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)) a5
(Fibheaps.zdwUnionBags
@ (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)) a3 a6));
GHCziBase.False ->
Fibheaps.zdwFH @ a (zp a1 a4) a5
(Fibheaps.zdwConsBag
@ (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)) a2
(Fibheaps.zdwUnionBags
@ (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)) a3 a6))}};
Fibheaps.EmptyFH ->
wild};
Fibheaps.EmptyFH ->
eta1};
Fibheaps.insertFH :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(Fibheaps.FibHeap a))) =
\ @ a
(zddOrd::GHCziBase.ZCTOrd a)
(eta::a)
(eta1::Fibheaps.FibHeap a) ->
Fibheaps.meldFH @ a zddOrd (Fibheaps.singleFH @ a eta) eta1;
Fibheaps.makeFH :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (Fibheaps.FibHeap a)) =
\ @ a (zddOrd::GHCziBase.ZCTOrd a) (eta::GHCziBase.ZMZN a) ->
GHCziBase.foldr @ a @ (Fibheaps.FibHeap a)
(Fibheaps.insertFH @ a zddOrd) (Fibheaps.zdwEmptyFH @ a) eta;
Fibheaps.maxInt :: GHCziBase.Int =
%case zddNum %of (tpl::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer GHCziBase.Int) ->
tpl9
(GHCziNum.plusInteger
(GHCziNum.zdwSzh (1410065411::GHCziPrim.Intzh))
(GHCziNum.timesInteger (GHCziNum.zdwSzh (4::GHCziPrim.Intzh))
(GHCziNum.zdwSzh (2147483647::GHCziPrim.Intzh))))};
log21 :: GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int =
Fibheaps.log2 @ GHCziBase.Int @ GHCziBase.Int zddNum
GHCziReal.zdfIntegralInt;
Fibheaps.deleteMinFHzq :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(Fibheaps.FibHeap a)) =
\ @ a (zddOrd::GHCziBase.ZCTOrd a) ->
%let getChildren1 :: GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(GHCziBase.ZMZN
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) =
Fibheaps.getChildren @ a @ GHCziBase.Int GHCziEnum.zdfEnumInt
GHCziNum.zdfNumInt
%in %let accumArray :: GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(Fibheaps.Tree a)
(GHCziBase.ZMZN (Fibheaps.Tree a))))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T GHCziBase.Int GHCziBase.Int)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a)))
(GHCziArr.Array
GHCziBase.Int
(GHCziBase.ZMZN (Fibheaps.Tree a)))))) =
GHCziArr.accumArray @ (GHCziBase.ZMZN (Fibheaps.Tree a))
@ (Fibheaps.Tree a) @ GHCziBase.Int GHCziArr.zdfIxInt
%in %let elems :: GHCziPrim.ZLzmzgZR
(GHCziArr.Array GHCziBase.Int (GHCziBase.ZMZN (Fibheaps.Tree a)))
(GHCziBase.ZMZN (GHCziBase.ZMZN (Fibheaps.Tree a))) =
GHCziArr.elems @ GHCziBase.Int @ (GHCziBase.ZMZN (Fibheaps.Tree a))
GHCziArr.zdfIxInt
%in \ (ds::Fibheaps.FibHeap a) ->
%case ds %of (wild::Fibheaps.FibHeap a)
{Fibheaps.FH
(ds1::GHCziBase.Int)
(tt::DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(f::Fibheaps.Bag
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) ->
%case ds1 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (ds2::GHCziPrim.Intzh) ->
%case ds2 %of (ds3::GHCziPrim.Intzh)
{%_ ->
%let ds4 :: DataziTuple.Z2T
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))) =
%case (elems
(accumArray
(Fibheaps.flip @ (Fibheaps.Tree a)
@ (GHCziBase.ZMZN (Fibheaps.Tree a))
@ (GHCziBase.ZMZN (Fibheaps.Tree a))
(GHCziBase.zdwZC @ (Fibheaps.Tree a)))
(GHCziBase.zdwZMZN @ (Fibheaps.Tree a))
(DataziTuple.zdwZ2T @ GHCziBase.Int
@ GHCziBase.Int lit4 (log21 (zm wild1 lit5)))
(Fibheaps.append
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(getChildren1 tt)
(Fibheaps.bagToList
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
f))))
%of (wild2::GHCziBase.ZMZN
(GHCziBase.ZMZN (Fibheaps.Tree a)))
{GHCziBase.ZMZN ->
%coerce (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
GHCziErr.patError
@ (GHCziBase.ZMZN
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a)))
("FibheapswithPrelude.hs:269|function doLinks"::GHCziPrim.Addrzh);
GHCziBase.ZC
(ts::GHCziBase.ZMZN (Fibheaps.Tree a))
(rest::GHCziBase.ZMZN
(GHCziBase.ZMZN (Fibheaps.Tree a))) ->
%let zp1 :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int) =
%case GHCziNum.zdfNumInt
%of (tpl::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR
GHCziNum.Integer
GHCziBase.Int) ->
tpl5}
%in %let lit6 :: GHCziBase.Int =
%case GHCziNum.zdfNumInt
%of (tpl::GHCziNum.ZCTNum
GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq
GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow
GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR
GHCziNum.Integer
GHCziBase.Int) ->
tpl9
(GHCziNum.zdwSzh
(1::GHCziPrim.Intzh))}
%in %let %rec
{startup :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
(Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree a)))
(GHCziBase.ZMZN
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))) =
\ (i::GHCziBase.Int)
(ds5::GHCziBase.ZMZN
(Fibheaps.Tree a))
(ds6::GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree a))) ->
%case ds5
%of (wild3::GHCziBase.ZMZN
(Fibheaps.Tree
a))
{GHCziBase.ZC
(a1::Fibheaps.Tree a)
(a2::GHCziBase.ZMZN
(Fibheaps.Tree a)) ->
%case ds6
%of (wild4::GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree
a)))
{GHCziBase.ZC
(next::GHCziBase.ZMZN
(Fibheaps.Tree
a))
(rest1::GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree
a))) ->
combine i wild3
next rest1;
GHCziBase.ZMZN ->
combine i wild3
(GHCziBase.zdwZMZN
@ (Fibheaps.Tree
a))
(GHCziBase.zdwZMZN
@ (GHCziBase.ZMZN
(Fibheaps.Tree
a)))};
GHCziBase.ZMZN ->
%case ds6
%of (wild4::GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree
a)))
{GHCziBase.ZC
(ts1::GHCziBase.ZMZN
(Fibheaps.Tree
a))
(rest1::GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree
a))) ->
startup
(zp1 i lit6) ts1
rest1;
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))}};
combine :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
(Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
(Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree a)))
(GHCziBase.ZMZN
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))))) =
\ (i::GHCziBase.Int)
(ds5::GHCziBase.ZMZN
(Fibheaps.Tree a))
(next::GHCziBase.ZMZN
(Fibheaps.Tree a))
(rest1::GHCziBase.ZMZN
(GHCziBase.ZMZN
(Fibheaps.Tree a))) ->
%case ds5
%of (wild3::GHCziBase.ZMZN
(Fibheaps.Tree
a))
{GHCziBase.ZC
(t::Fibheaps.Tree a)
(ds6::GHCziBase.ZMZN
(Fibheaps.Tree
a)) ->
%case ds6
%of (wild4::GHCziBase.ZMZN
(Fibheaps.Tree
a))
{GHCziBase.ZC
(t2::Fibheaps.Tree a)
(ts1::GHCziBase.ZMZN
(Fibheaps.Tree
a)) ->
combine i ts1
(GHCziBase.zdwZC
@ (Fibheaps.Tree
a)
(Fibheaps.link @ a
zddOrd t t2)
next)
rest1;
GHCziBase.ZMZN ->
GHCziBase.zdwZC
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(DataziTuple.zdwZ2T
@ GHCziBase.Int
@ (Fibheaps.Tree
a)
i t)
(startup
(zp1 i lit6) next
rest1)};
GHCziBase.ZMZN ->
startup (zp1 i lit6)
next rest1}}
%in %case (startup
(%case GHCziNum.zdfNumInt
%of (tpl::GHCziNum.ZCTNum
GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq
GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow
GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR
GHCziNum.Integer
GHCziBase.Int) ->
tpl9
(GHCziNum.zdwSzh
(0::GHCziPrim.Intzh))})
ts rest)
%of (wild3::GHCziBase.ZMZN
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a)))
{GHCziBase.ZMZN ->
GHCziErr.patError
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
("FibheapswithPrelude.hs:280|function getMin"::GHCziPrim.Addrzh);
GHCziBase.ZC
(tt1::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(rest1::GHCziBase.ZMZN
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))) ->
Fibheaps.foldl
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(\ (ds5::DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
(tt2::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a)) ->
%case ds5
%of (wild4::DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
{DataziTuple.Z2T
(tt11::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(b::Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))) ->
%case zddOrd
%of (tpl::GHCziBase.ZCTOrd
a)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq
a)
(tpl2::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a))
(tpl8::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a)) ->
%case (tpl3
(Fibheaps.rootzq
@ a
@ GHCziBase.Int
tt11)
(Fibheaps.rootzq
@ a
@ GHCziBase.Int
tt2))
%of (wild5::GHCziBase.Bool)
{GHCziBase.True
->
DataziTuple.zdwZ2T
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
@ (Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))
tt11
(Fibheaps.zdwConsBag
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
tt2 b);
GHCziBase.False
->
DataziTuple.zdwZ2T
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
@ (Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))
tt2
(Fibheaps.zdwConsBag
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
tt11 b)}}})
(DataziTuple.zdwZ2T
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
@ (Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a)))
tt1
(Fibheaps.zdwEmptyBag
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
rest1}}
%in Fibheaps.zdwFH @ a (zm wild1 lit5)
(%case ds4
%of (wild2::DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
{DataziTuple.Z2T
(newzutt::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(newzuf::Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))) ->
newzutt})
(%case ds4
%of (wild2::DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))))
{DataziTuple.Z2T
(newzutt::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(newzuf::Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))) ->
newzuf});
(1::GHCziPrim.Intzh) ->
Fibheaps.zdwEmptyFH @ a}};
Fibheaps.EmptyFH ->
GHCziErr.error @ (Fibheaps.FibHeap a)
(GHCziBase.unpackCStringzh
("deleteMinFH EmptyFH"::GHCziPrim.Addrzh))};
Fibheaps.fibToListzq :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (Fibheaps.FibHeap a) (GHCziBase.ZMZN a)) =
\ @ a (zddOrd::GHCziBase.ZCTOrd a) ->
%let deleteMinFHzq1 :: GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(Fibheaps.FibHeap a) =
Fibheaps.deleteMinFHzq @ a zddOrd
%in %let %rec
{fibToListzq1 :: GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(GHCziBase.ZMZN a) =
\ (xs::Fibheaps.FibHeap a) ->
%case (Fibheaps.isEmptyFH @ a xs) %of (wild::GHCziBase.Bool)
{GHCziBase.True ->
GHCziBase.zdwZMZN @ a;
GHCziBase.False ->
GHCziBase.zdwZC @ a (Fibheaps.minFH @ a xs)
(fibToListzq1 (deleteMinFHzq1 xs))}}
%in fibToListzq1;
Fibheaps.fibSortzq :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a (zddOrd::GHCziBase.ZCTOrd a) ->
GHCziBase.zi @ (Fibheaps.FibHeap a) @ (GHCziBase.ZMZN a)
@ (GHCziBase.ZMZN a) (Fibheaps.fibToListzq @ a zddOrd)
(Fibheaps.makeFH @ a zddOrd);
zddEq :: GHCziBase.ZCTEq GHCziBase.Int =
%case zddNum %of (tpl::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer GHCziBase.Int) ->
tpl1};
zddEq1 :: GHCziBase.ZCTEq (GHCziBase.ZMZN GHCziBase.Int) =
GHCziBase.zdfEqZMZN @ GHCziBase.Int zddEq;
zddOrd :: GHCziBase.ZCTOrd GHCziBase.Int =
%case zddReal %of (tpl::GHCziReal.ZCTReal GHCziBase.Int)
{GHCziReal.ZCDReal
(tpl1::GHCziNum.ZCTNum GHCziBase.Int)
(tpl2::GHCziBase.ZCTOrd GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziReal.Ratio GHCziNum.Integer)) ->
tpl2};
Fibheaps.deleteMinFH :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(Fibheaps.FibHeap a)) =
\ @ a (zddOrd1::GHCziBase.ZCTOrd a) ->
%let getChildren1 :: GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(GHCziBase.ZMZN
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) =
Fibheaps.getChildren @ a @ GHCziBase.Int GHCziEnum.zdfEnumInt
GHCziNum.zdfNumInt
%in \ (ds::Fibheaps.FibHeap a) ->
%case ds %of (wild::Fibheaps.FibHeap a)
{Fibheaps.FH
(ds1::GHCziBase.Int)
(tt::DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))
(f::Fibheaps.Bag
(DataziTuple.Z2T GHCziBase.Int (Fibheaps.Tree a))) ->
%case ds1 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (ds2::GHCziPrim.Intzh) ->
%case ds2 %of (ds3::GHCziPrim.Intzh)
{%_ ->
%let d :: GHCziBase.Int = log21 (zm wild1 lit5)
%in GHCziST.runST @ (Fibheaps.FibHeap a)
(\ @ s ->
%let writeArray :: GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe (Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe (Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh s)
GHCziBase.Z0T)))) =
DataziArrayziBase.writeArray @ (GHCziArr.STArray s)
@ GHCziBase.Int
@ (Fibheaps.MyMaybe (Fibheaps.Tree a))
@ (GHCziST.ST s)
(DataziArrayziBase.zdfMArraySTArray @ s
@ (Fibheaps.MyMaybe (Fibheaps.Tree a)))
GHCziArr.zdfIxInt
%in %let readArray :: GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe (Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh s)
(Fibheaps.MyMaybe
(Fibheaps.Tree a))))) =
DataziArrayziBase.readArray
@ (GHCziArr.STArray s) @ GHCziBase.Int
@ (Fibheaps.MyMaybe (Fibheaps.Tree a))
@ (GHCziST.ST s)
(DataziArrayziBase.zdfMArraySTArray @ s
@ (Fibheaps.MyMaybe (Fibheaps.Tree a)))
GHCziArr.zdfIxInt
%in %let zddMonad :: GHCziBase.ZCTMonad (GHCziST.ST s) =
%case (DataziArrayziBase.zdfMArraySTArray @ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a)))
%of (tpl::DataziArrayziBase.ZCTMArray
(GHCziArr.STArray s)
(Fibheaps.MyMaybe
(Fibheaps.Tree a))
(GHCziST.ST s))
{DataziArrayziBase.ZCDMArray
(tpl1::%forall i e . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
e)
(DataziTuple.Z2T
i
i)))
(tpl2::GHCziBase.ZCTMonad (GHCziST.ST s))
(tpl3::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T i i)
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))))))
(tpl4::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T i i)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl5::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl6::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)))))) ->
tpl2}
%in %let %rec
{ins :: GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh s)
GHCziBase.Z0T))) =
\ (a1::GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree a)))
(ds4::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a)) ->
%case ds4
%of (wild2::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree a))
{DataziTuple.Z2T
(i::GHCziBase.Int)
(t::Fibheaps.Tree a) ->
%case zddMonad
%of (tpl::GHCziBase.ZCTMonad
(GHCziST.ST s))
{GHCziBase.ZCDMonad
(tpl1::%forall a2 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl2::%forall a2 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl3::%forall a2 . GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2)))
(tpl4::%forall a2 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))) ->
tpl1
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a))
@ GHCziBase.Z0T
(readArray a1 i)
(\ (e::Fibheaps.MyMaybe
(Fibheaps.Tree
a)) ->
%case e
%of (wild3::Fibheaps.MyMaybe
(Fibheaps.Tree
a))
{Fibheaps.One
(t2::Fibheaps.Tree
a) ->
tpl2
@ GHCziBase.Z0T
@ GHCziBase.Z0T
(writeArray a1 i
(Fibheaps.zdwZZero
@ (Fibheaps.Tree
a)))
(ins a1
(DataziTuple.zdwZ2T
@ GHCziBase.Int
@ (Fibheaps.Tree
a)
(zp i lit5)
(Fibheaps.link
@ a zddOrd1 t
t2)));
Fibheaps.ZZero ->
writeArray a1 i
(Fibheaps.zdwOne
@ (Fibheaps.Tree
a)
t)})}}}
%in %let readArray1 :: GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))) =
DataziArrayziBase.readArray
@ (GHCziArr.STArray s)
@ GHCziBase.Int
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a))
@ (GHCziST.ST s)
(DataziArrayziBase.zdfMArraySTArray
@ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a)))
GHCziArr.zdfIxInt
%in %let readArray2 :: GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))) =
DataziArrayziBase.readArray
@ (GHCziArr.STArray s)
@ GHCziBase.Int
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a))
@ (GHCziST.ST s)
(DataziArrayziBase.zdfMArraySTArray
@ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a)))
GHCziArr.zdfIxInt
%in %let zddMonad1 :: GHCziBase.ZCTMonad
(GHCziST.ST s) =
%case (DataziArrayziBase.zdfMArraySTArray
@ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree a)))
%of (tpl::DataziArrayziBase.ZCTMArray
(GHCziArr.STArray
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree a))
(GHCziST.ST s))
{DataziArrayziBase.ZCDMArray
(tpl1::%forall i e . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
e)
(DataziTuple.Z2T
i
i)))
(tpl2::GHCziBase.ZCTMonad
(GHCziST.ST s))
(tpl3::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))))))
(tpl4::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl5::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl6::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)))))) ->
tpl2}
%in %let %rec
{getMinzq :: GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.Tree
a)
(GHCziPrim.ZLzmzgZR
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))))))))) =
\ (a1::GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(mini::GHCziBase.Int)
(mint::Fibheaps.Tree
a)
(b::Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))
(i::GHCziBase.Int) ->
%case zddOrd
%of (tpl::GHCziBase.ZCTOrd
GHCziBase.Int)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq
GHCziBase.Int)
(tpl2::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int))
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
GHCziBase.Int)) ->
%case (tpl5 i
d)
%of (wild2::GHCziBase.Bool)
{GHCziBase.True
->
%case zddMonad1
%of (tpl9::GHCziBase.ZCTMonad
(GHCziST.ST
s))
{GHCziBase.ZCDMonad
(tpl10::%forall a2 b1 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1))))
(tpl11::%forall a2 b1 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1))))
(tpl12::%forall a2 . GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2)))
(tpl13::%forall a2 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))) ->
tpl12
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
(DataziTuple.zdwZ2T
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
@ (Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))
(DataziTuple.zdwZ2T
@ GHCziBase.Int
@ (Fibheaps.Tree
a)
mini
mint)
b)};
GHCziBase.False
->
%case zddMonad1
%of (tpl9::GHCziBase.ZCTMonad
(GHCziST.ST
s))
{GHCziBase.ZCDMonad
(tpl10::%forall a2 b1 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1))))
(tpl11::%forall a2 b1 . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b1))))
(tpl12::%forall a2 . GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2)))
(tpl13::%forall a2 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))) ->
tpl10
@ (Fibheaps.MyMaybe
(Fibheaps.Tree
a))
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
(readArray2
a1
i)
(\ (e::Fibheaps.MyMaybe
(Fibheaps.Tree
a)) ->
%case e
%of (wild3::Fibheaps.MyMaybe
(Fibheaps.Tree
a))
{Fibheaps.One
(t::Fibheaps.Tree
a) ->
%case zddOrd1
%of (tpl14::GHCziBase.ZCTOrd
a)
{GHCziBase.ZCDOrd
(tpl15::GHCziBase.ZCTEq
a)
(tpl16::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Ordering))
(tpl17::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl18::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl19::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl20::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
GHCziBase.Bool))
(tpl21::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a))
(tpl22::GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR
a
a)) ->
%case (tpl17
(%case mint
%of (wild4::Fibheaps.Tree
a)
{Fibheaps.Node
(x::a)
(ds4::GHCziBase.ZMZN
(Fibheaps.Tree
a)) ->
x})
(%case t
%of (wild4::Fibheaps.Tree
a)
{Fibheaps.Node
(x::a)
(ds4::GHCziBase.ZMZN
(Fibheaps.Tree
a)) ->
x}))
%of (wild4::GHCziBase.Bool)
{GHCziBase.True
->
getMinzq
a1
mini
mint
(Fibheaps.zdwConsBag
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(DataziTuple.zdwZ2T
@ GHCziBase.Int
@ (Fibheaps.Tree
a)
i
t)
b)
(zp
i
lit5);
GHCziBase.False
->
getMinzq
a1
i
t
(Fibheaps.zdwConsBag
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(DataziTuple.zdwZ2T
@ GHCziBase.Int
@ (Fibheaps.Tree
a)
mini
mint)
b)
(zp
i
lit5)}};
Fibheaps.ZZero
->
getMinzq
a1
mini
mint
b
(zp
i
lit5)})}}}}
%in %let zddMonad2 :: GHCziBase.ZCTMonad
(GHCziST.ST
s) =
%case (DataziArrayziBase.zdfMArraySTArray
@ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
%of (tpl::DataziArrayziBase.ZCTMArray
(GHCziArr.STArray
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziST.ST
s))
{DataziArrayziBase.ZCDMArray
(tpl1::%forall i e . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
e)
(DataziTuple.Z2T
i
i)))
(tpl2::GHCziBase.ZCTMonad
(GHCziST.ST
s))
(tpl3::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))))))
(tpl4::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl5::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl6::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)))))) ->
tpl2}
%in %let zgzg :: %forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))) =
%case zddMonad2
%of (tpl::GHCziBase.ZCTMonad
(GHCziST.ST
s))
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1)))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))) ->
tpl2}
%in %let sequencezu1 :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)) =
Fibheaps.sequencezu
@ (GHCziST.ST
s)
@ GHCziBase.Z0T
zddMonad2
%in %let zgzgze :: %forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))) =
%case zddMonad2
%of (tpl::GHCziBase.ZCTMonad
(GHCziST.ST
s))
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1)))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a1))) ->
tpl1}
%in zgzgze
@ (GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
@ (Fibheaps.FibHeap
a)
(%case (DataziArrayziBase.zdfMArraySTArray
@ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
%of (tpl::DataziArrayziBase.ZCTMArray
(GHCziArr.STArray
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziST.ST
s))
{DataziArrayziBase.ZCDMArray
(tpl1::%forall i e . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
e)
(DataziTuple.Z2T
i
i)))
(tpl2::GHCziBase.ZCTMonad
(GHCziST.ST
s))
(tpl3::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))))))
(tpl4::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl5::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl6::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)))))) ->
tpl3
@ GHCziBase.Int
GHCziArr.zdfIxInt
(DataziTuple.zdwZ2T
@ GHCziBase.Int
@ GHCziBase.Int
lit4
d)
(Fibheaps.zdwZZero
@ (Fibheaps.Tree
a))})
(\ (a1::GHCziArr.STArray
s
GHCziBase.Int
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))) ->
zgzgze
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
@ (Fibheaps.FibHeap
a)
(zgzg
@ GHCziBase.Z0T
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
(zgzg
@ GHCziBase.Z0T
@ GHCziBase.Z0T
(Fibheaps.applyToAll
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
@ s
(ins
a1)
f)
(sequencezu1
(Fibheaps.mapList
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
@ (GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T))
(ins
a1)
(getChildren1
tt))))
(%case (DataziArrayziBase.zdfMArraySTArray
@ s
@ (Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
%of (tpl::DataziArrayziBase.ZCTMArray
(GHCziArr.STArray
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziST.ST
s))
{DataziArrayziBase.ZCDMArray
(tpl1::%forall i e . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
e)
(DataziTuple.Z2T
i
i)))
(tpl2::GHCziBase.ZCTMonad
(GHCziST.ST
s))
(tpl3::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))))))))
(tpl4::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(DataziTuple.Z2T
i
i)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl5::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))))))
(tpl6::%forall i . GHCziPrim.ZLzmzgZR
(GHCziArr.ZCTIx
i)
(GHCziPrim.ZLzmzgZR
(GHCziArr.STArray
s
i
(Fibheaps.MyMaybe
(Fibheaps.Tree
a)))
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(Fibheaps.MyMaybe
(Fibheaps.Tree
a))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
GHCziBase.Z0T)))))) ->
%case tpl2
%of (tpl7::GHCziBase.ZCTMonad
(GHCziST.ST
s))
{GHCziBase.ZCDMonad
(tpl8::%forall a2 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl9::%forall a2 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl10::%forall a2 . GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2)))
(tpl11::%forall a2 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))) ->
tpl8
@ (Fibheaps.MyMaybe
(Fibheaps.Tree
a))
@ (DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
(readArray1
a1
d)
(\ (e::Fibheaps.MyMaybe
(Fibheaps.Tree
a)) ->
%case e
%of (wild2::Fibheaps.MyMaybe
(Fibheaps.Tree
a))
{Fibheaps.One
(t::Fibheaps.Tree
a) ->
getMinzq
a1
d
t
(Fibheaps.zdwEmptyBag
@ (DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))
lit4;
Fibheaps.ZZero
->
GHCziErr.error
@ (GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
(DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))))
(GHCziBase.unpackCStringzh
("must be One"::GHCziPrim.Addrzh))})}}))
(\ (ds4::DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a)))) ->
%case ds4
%of (wild2::DataziTuple.Z2T
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))))
{DataziTuple.Z2T
(tt1::DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))
(f1::Fibheaps.Bag
(DataziTuple.Z2T
GHCziBase.Int
(Fibheaps.Tree
a))) ->
%case zddMonad2
%of (tpl::GHCziBase.ZCTMonad
(GHCziST.ST
s))
{GHCziBase.ZCDMonad
(tpl1::%forall a2 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl2::%forall a2 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
b))))
(tpl3::%forall a2 . GHCziPrim.ZLzmzgZR
a2
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2)))
(tpl4::%forall a2 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN
GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh
s)
(GHCziPrim.Z2H
(GHCziPrim.Statezh
s)
a2))) ->
tpl3
@ (Fibheaps.FibHeap
a)
(Fibheaps.zdwFH
@ a
(zm
wild1
lit5)
tt1
f1)}})));
(1::GHCziPrim.Intzh) ->
Fibheaps.zdwEmptyFH @ a}};
Fibheaps.EmptyFH ->
GHCziErr.error @ (Fibheaps.FibHeap a)
(GHCziBase.unpackCStringzh
("deleteMinFH EmptyFH"::GHCziPrim.Addrzh))};
Fibheaps.fibToList :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (Fibheaps.FibHeap a) (GHCziBase.ZMZN a)) =
\ @ a (zddOrd1::GHCziBase.ZCTOrd a) ->
%let deleteMinFH1 :: GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(Fibheaps.FibHeap a) =
Fibheaps.deleteMinFH @ a zddOrd1
%in %let %rec
{fibToList1 :: GHCziPrim.ZLzmzgZR
(Fibheaps.FibHeap a)
(GHCziBase.ZMZN a) =
\ (xs::Fibheaps.FibHeap a) ->
%case (Fibheaps.isEmptyFH @ a xs) %of (wild::GHCziBase.Bool)
{GHCziBase.True ->
GHCziBase.zdwZMZN @ a;
GHCziBase.False ->
GHCziBase.zdwZC @ a (Fibheaps.minFH @ a xs)
(fibToList1 (deleteMinFH1 xs))}}
%in fibToList1;
Fibheaps.fibSort :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a (zddOrd1::GHCziBase.ZCTOrd a) ->
GHCziBase.zi @ (Fibheaps.FibHeap a) @ (GHCziBase.ZMZN a)
@ (GHCziBase.ZMZN a) (Fibheaps.fibToList @ a zddOrd1)
(Fibheaps.makeFH @ a zddOrd1);
fibSort1 :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
(GHCziBase.ZMZN GHCziBase.Int) =
Fibheaps.fibSort @ GHCziBase.Int zddOrd;
%rec
{Fibheaps.znzn :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziPrim.ZLzmzgZR GHCziBase.Int a) =
\ @ a (xs::GHCziBase.ZMZN a) (n::GHCziBase.Int) ->
%case zddOrd %of (tpl::GHCziBase.ZCTOrd GHCziBase.Int)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)) ->
%case (tpl6 n lit4) %of (wild::GHCziBase.Bool)
{GHCziBase.True ->
GHCziErr.error @ a
(GHCziBase.unpackCStringzh
("Prelude.!!: negative index"::GHCziPrim.Addrzh));
GHCziBase.False ->
%case xs %of (wild1::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (ds::GHCziBase.ZMZN a) ->
%case n %of (wild2::GHCziBase.Int)
{GHCziBase.Izh (ds1::GHCziPrim.Intzh) ->
%case ds1 %of (ds2::GHCziPrim.Intzh)
{%_ ->
Fibheaps.znzn @ a ds (zm wild2 lit5);
(0::GHCziPrim.Intzh) ->
x}};
GHCziBase.ZMZN ->
GHCziErr.error @ a
(GHCziBase.unpackCStringzh
("Prelude.!!: index too large"::GHCziPrim.Addrzh))}}}};
zlze :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool) =
%case zddOrd %of (tpl::GHCziBase.ZCTOrd GHCziBase.Int)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)) ->
tpl3};
%rec
{Fibheaps.take :: %forall a . GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a (n::GHCziBase.Int) (ds::GHCziBase.ZMZN a) ->
%case (zlze n lit4) %of (wild::GHCziBase.Bool)
{GHCziBase.True ->
GHCziBase.zdwZMZN @ a;
GHCziBase.False ->
%case ds %of (wild1::GHCziBase.ZMZN a)
{GHCziBase.ZC (x::a) (xs::GHCziBase.ZMZN a) ->
GHCziBase.zdwZC @ a x (Fibheaps.take @ a (zm n lit5) xs);
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a}}};
Fibheaps.replicate :: %forall a . GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR a (GHCziBase.ZMZN a)) =
\ @ a (n::GHCziBase.Int) (x::a) ->
Fibheaps.take @ a n
(GHCziBase.build @ a
(\ @ b
(c::GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR b b))
(zun::b) ->
Fibheaps.repeatFB @ b @ a c x));
%rec
{Fibheaps.drop :: %forall a . GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) (GHCziBase.ZMZN a)) =
\ @ a (n::GHCziBase.Int) (xs::GHCziBase.ZMZN a) ->
%case (zlze n lit4) %of (wild::GHCziBase.Bool)
{GHCziBase.True ->
xs;
GHCziBase.False ->
%case xs %of (wild1::GHCziBase.ZMZN a)
{GHCziBase.ZC (ds::a) (xs1::GHCziBase.ZMZN a) ->
Fibheaps.drop @ a (zm n lit5) xs1;
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a}}};
Fibheaps.splitAt :: %forall a . GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(DataziTuple.Z2T (GHCziBase.ZMZN a) (GHCziBase.ZMZN a))) =
\ @ a (n::GHCziBase.Int) (xs::GHCziBase.ZMZN a) ->
DataziTuple.zdwZ2T @ (GHCziBase.ZMZN a) @ (GHCziBase.ZMZN a)
(Fibheaps.take @ a n xs) (Fibheaps.drop @ a n xs);
fibSortzq1 :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
(GHCziBase.ZMZN GHCziBase.Int) =
Fibheaps.fibSortzq @ GHCziBase.Int zddOrd;
read :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
GHCziBase.Int =
GHCziRead.read @ GHCziBase.Int GHCziRead.zdfReadInt;
a :: GHCziBase.Char = GHCziBase.zdwCzh ('\x0a'::GHCziPrim.Charzh);
ds :: GHCziBase.ZMZN GHCziBase.Char =
GHCziBase.zdwZC @ GHCziBase.Char a
(GHCziBase.zdwZMZN @ GHCziBase.Char);
Fibheaps.unlines :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char))
(GHCziBase.ZMZN GHCziBase.Char) =
Fibheaps.concatMap @ (GHCziBase.ZMZN GHCziBase.Char)
@ GHCziBase.Char
(\ (ds1::GHCziBase.ZMZN GHCziBase.Char) ->
Fibheaps.append @ GHCziBase.Char ds1 ds);
Fibheaps.modIntzh :: GHCziPrim.ZLzmzgZR
GHCziPrim.Intzh
(GHCziPrim.ZLzmzgZR GHCziPrim.Intzh GHCziPrim.Intzh) =
\ (xzh::GHCziPrim.Intzh) (yzh::GHCziPrim.Intzh) ->
%case (GHCziPrim.remIntzh xzh yzh) %of (rzh::GHCziPrim.Intzh)
{%_ ->
%case (GHCziBase.zbzb
(GHCziBase.zaza (GHCziPrim.zgzh xzh (0::GHCziPrim.Intzh))
(GHCziPrim.zlzh yzh (0::GHCziPrim.Intzh)))
(GHCziBase.zaza (GHCziPrim.zlzh xzh (0::GHCziPrim.Intzh))
(GHCziPrim.zgzh yzh (0::GHCziPrim.Intzh))))
%of (wild::GHCziBase.Bool)
{GHCziBase.True ->
%case rzh %of (wild1::GHCziPrim.Intzh)
{%_ ->
GHCziPrim.zpzh wild1 yzh;
(0::GHCziPrim.Intzh) ->
(0::GHCziPrim.Intzh)};
GHCziBase.False ->
rzh}};
Fibheaps.modInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (Fibheaps.modIntzh x y)}};
Fibheaps.divIntzh :: GHCziPrim.ZLzmzgZR
GHCziPrim.Intzh
(GHCziPrim.ZLzmzgZR GHCziPrim.Intzh GHCziPrim.Intzh) =
\ (xzh::GHCziPrim.Intzh) (yzh::GHCziPrim.Intzh) ->
%case (GHCziBase.zaza (GHCziPrim.zgzh xzh (0::GHCziPrim.Intzh))
(GHCziPrim.zlzh yzh (0::GHCziPrim.Intzh)))
%of (wild::GHCziBase.Bool)
{GHCziBase.True ->
GHCziPrim.quotIntzh
(GHCziPrim.zmzh (GHCziPrim.zmzh xzh yzh) (1::GHCziPrim.Intzh)) yzh;
GHCziBase.False ->
%case (GHCziBase.zaza (GHCziPrim.zlzh xzh (0::GHCziPrim.Intzh))
(GHCziPrim.zgzh yzh (0::GHCziPrim.Intzh)))
%of (wild1::GHCziBase.Bool)
{GHCziBase.True ->
GHCziPrim.quotIntzh
(GHCziPrim.zpzh (GHCziPrim.zmzh xzh yzh) (1::GHCziPrim.Intzh)) yzh;
GHCziBase.False ->
GHCziPrim.quotIntzh xzh yzh}};
Fibheaps.divInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (Fibheaps.divIntzh x y)}};
Fibheaps.gcdInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (a1::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (b::GHCziPrim.Intzh) ->
%let absInt :: GHCziPrim.ZLzmzgZR GHCziPrim.Intzh GHCziPrim.Intzh =
\ (x::GHCziPrim.Intzh) ->
%case (GHCziPrim.zlzh x (0::GHCziPrim.Intzh))
%of (wild2::GHCziBase.Bool)
{GHCziBase.True ->
GHCziPrim.negateIntzh x;
GHCziBase.False ->
x}
%in %case (absInt a1) %of (absA::GHCziPrim.Intzh)
{%_ ->
%case (absInt b) %of (absB::GHCziPrim.Intzh)
{%_ ->
%case a1 %of (ds3::GHCziPrim.Intzh)
{%_ ->
%case b %of (ds4::GHCziPrim.Intzh)
{%_ ->
GHCziBase.zdwIzh (GHCziPrim.gcdIntzh absA absB);
(0::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh absA};
(0::GHCziPrim.Intzh) ->
%case b %of (ds4::GHCziPrim.Intzh)
{%_ ->
GHCziBase.zdwIzh absB;
(0::GHCziPrim.Intzh) ->
GHCziErr.error @ GHCziBase.Int
(GHCziBase.unpackCStringzh
("PrelBase.gcdInt: gcd 0 0 is undefined"::GHCziPrim.Addrzh))}}}}}};
Fibheaps.minInt :: GHCziBase.Int =
%case zddNum %of (tpl::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl1::GHCziBase.ZCTEq GHCziBase.Int)
(tpl2::GHCziShow.ZCTShow GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl7::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl8::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl9::GHCziPrim.ZLzmzgZR GHCziNum.Integer GHCziBase.Int) ->
tpl6 lit3};
Fibheaps.twoInt :: GHCziBase.Int =
GHCziBase.zdwIzh (2::GHCziPrim.Intzh);
Fibheaps.oneInt :: GHCziBase.Int =
GHCziBase.zdwIzh (1::GHCziPrim.Intzh);
Fibheaps.zzeroInt :: GHCziBase.Int =
GHCziBase.zdwIzh (0::GHCziPrim.Intzh);
Fibheaps.remInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (GHCziPrim.remIntzh x y)}};
Fibheaps.quotInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (GHCziPrim.quotIntzh x y)}};
Fibheaps.timesInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (GHCziPrim.ztzh x y)}};
Fibheaps.minusInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (GHCziPrim.zmzh x y)}};
Fibheaps.plusInt :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int) =
\ (ds1::GHCziBase.Int) (ds2::GHCziBase.Int) ->
%case ds1 %of (wild::GHCziBase.Int)
{GHCziBase.Izh (x::GHCziPrim.Intzh) ->
%case ds2 %of (wild1::GHCziBase.Int)
{GHCziBase.Izh (y::GHCziPrim.Intzh) ->
GHCziBase.zdwIzh (GHCziPrim.zpzh x y)}};
Fibheaps.prelzulistzustr :: GHCziBase.ZMZN GHCziBase.Char =
GHCziBase.unpackCStringzh ("Prelude."::GHCziPrim.Addrzh);
Fibheaps.errorEmptyList :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
a =
\ @ a1 (fun::GHCziBase.ZMZN GHCziBase.Char) ->
GHCziErr.error @ a1
(Fibheaps.append @ GHCziBase.Char
(Fibheaps.append @ GHCziBase.Char Fibheaps.prelzulistzustr fun)
(GHCziBase.unpackCStringzh (": empty list"::GHCziPrim.Addrzh)));
%rec
{Fibheaps.foldr1 :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) a) =
\ @ a1
(ds1::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(ds2::GHCziBase.ZMZN a1) ->
%case ds2 %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (x::a1) (ds3::GHCziBase.ZMZN a1) ->
%case ds3 %of (wild1::GHCziBase.ZMZN a1)
{GHCziBase.ZC (a2::a1) (a3::GHCziBase.ZMZN a1) ->
ds1 x (Fibheaps.foldr1 @ a1 ds1 wild1);
GHCziBase.ZMZN ->
x};
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ a1
(GHCziBase.unpackCStringzh ("foldr1"::GHCziPrim.Addrzh))}};
Fibheaps.foldl1 :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a (GHCziPrim.ZLzmzgZR a a))
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) a) =
\ @ a1
(f::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(ds1::GHCziBase.ZMZN a1) ->
%case ds1 %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (x::a1) (xs::GHCziBase.ZMZN a1) ->
Fibheaps.foldl @ a1 @ a1 f x xs;
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ a1
(GHCziBase.unpackCStringzh ("foldl1"::GHCziPrim.Addrzh))};
Fibheaps.minimum :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) a) =
\ @ a1 (zddOrd1::GHCziBase.ZCTOrd a1) (eta::GHCziBase.ZMZN a1) ->
%case eta %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (a2::a1) (a3::GHCziBase.ZMZN a1) ->
Fibheaps.foldl1 @ a1
(%case zddOrd1 %of (tpl::GHCziBase.ZCTOrd a1)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq a1)
(tpl2::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl8::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1)) ->
tpl7})
wild;
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ a1
(GHCziBase.unpackCStringzh ("minimum"::GHCziPrim.Addrzh))};
Fibheaps.minimum1 :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
GHCziBase.Int =
%note "InlineMe"
Fibheaps.minimum @ GHCziBase.Int zddOrd;
Fibheaps.maximum :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTOrd a)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) a) =
\ @ a1 (zddOrd1::GHCziBase.ZCTOrd a1) (eta::GHCziBase.ZMZN a1) ->
%case eta %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (a2::a1) (a3::GHCziBase.ZMZN a1) ->
Fibheaps.foldl1 @ a1
(%case zddOrd1 %of (tpl::GHCziBase.ZCTOrd a1)
{GHCziBase.ZCDOrd
(tpl1::GHCziBase.ZCTEq a1)
(tpl2::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Ordering))
(tpl3::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl4::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl5::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl6::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl7::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1))
(tpl8::GHCziPrim.ZLzmzgZR a1 (GHCziPrim.ZLzmzgZR a1 a1)) ->
tpl8})
wild;
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ a1
(GHCziBase.unpackCStringzh ("maximum"::GHCziPrim.Addrzh))};
Fibheaps.maximum1 :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
GHCziBase.Int =
%note "InlineMe"
Fibheaps.maximum @ GHCziBase.Int zddOrd;
%rec
{Fibheaps.init :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN a) =
\ @ a1 (ds1::GHCziBase.ZMZN a1) ->
%case ds1 %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (x::a1) (ds2::GHCziBase.ZMZN a1) ->
%case ds2 %of (wild1::GHCziBase.ZMZN a1)
{GHCziBase.ZC (a2::a1) (a3::GHCziBase.ZMZN a1) ->
GHCziBase.zdwZC @ a1 x (Fibheaps.init @ a1 wild1);
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ a1};
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ (GHCziBase.ZMZN a1)
(GHCziBase.unpackCStringzh ("init"::GHCziPrim.Addrzh))}};
%rec
{Fibheaps.last :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
a =
\ @ a1 (ds1::GHCziBase.ZMZN a1) ->
%case ds1 %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (x::a1) (ds2::GHCziBase.ZMZN a1) ->
%case ds2 %of (wild1::GHCziBase.ZMZN a1)
{GHCziBase.ZC (a2::a1) (a3::GHCziBase.ZMZN a1) ->
Fibheaps.last @ a1 wild1;
GHCziBase.ZMZN ->
x};
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ a1
(GHCziBase.unpackCStringzh ("last"::GHCziPrim.Addrzh))}};
Fibheaps.tail :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
(GHCziBase.ZMZN a) =
\ @ a1 (ds1::GHCziBase.ZMZN a1) ->
%case ds1 %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (ds2::a1) (xs::GHCziBase.ZMZN a1) ->
xs;
GHCziBase.ZMZN ->
Fibheaps.errorEmptyList @ (GHCziBase.ZMZN a1)
(GHCziBase.unpackCStringzh ("tail"::GHCziPrim.Addrzh))};
Fibheaps.badHead :: %forall a . a =
\ @ a1 ->
Fibheaps.errorEmptyList @ a1
(GHCziBase.unpackCStringzh ("head"::GHCziPrim.Addrzh));
Fibheaps.head :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN a)
a =
\ @ a1 (ds1::GHCziBase.ZMZN a1) ->
%case ds1 %of (wild::GHCziBase.ZMZN a1)
{GHCziBase.ZC (x::a1) (ds2::GHCziBase.ZMZN a1) ->
x;
GHCziBase.ZMZN ->
Fibheaps.badHead @ a1};
Fibheaps.or :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Bool)
GHCziBase.Bool =
GHCziBase.foldr @ GHCziBase.Bool @ GHCziBase.Bool GHCziBase.zbzb
GHCziBase.zdwFalse;
Fibheaps.any :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) GHCziBase.Bool) =
\ @ a1 (p::GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool) ->
GHCziBase.zi @ (GHCziBase.ZMZN GHCziBase.Bool) @ GHCziBase.Bool
@ (GHCziBase.ZMZN a1) Fibheaps.or
(Fibheaps.mapList @ a1 @ GHCziBase.Bool p);
Fibheaps.elem :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTEq a)
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) GHCziBase.Bool)) =
\ @ a1 (zddEq2::GHCziBase.ZCTEq a1) (eta::a1) ->
Fibheaps.any @ a1
(\ (ds1::a1) ->
%case zddEq2 %of (tpl::GHCziBase.ZCTEq a1)
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool)) ->
tpl2 ds1 eta});
Fibheaps.and :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Bool)
GHCziBase.Bool =
GHCziBase.foldr @ GHCziBase.Bool @ GHCziBase.Bool GHCziBase.zaza
GHCziBase.zdwTrue;
Fibheaps.all :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR a GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) GHCziBase.Bool) =
\ @ a1 (p::GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool) ->
GHCziBase.zi @ (GHCziBase.ZMZN GHCziBase.Bool) @ GHCziBase.Bool
@ (GHCziBase.ZMZN a1) Fibheaps.and
(Fibheaps.mapList @ a1 @ GHCziBase.Bool p);
Fibheaps.notElem :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTEq a)
(GHCziPrim.ZLzmzgZR
a
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN a) GHCziBase.Bool)) =
\ @ a1 (zddEq2::GHCziBase.ZCTEq a1) (eta::a1) ->
Fibheaps.all @ a1
(\ (ds1::a1) ->
%case zddEq2 %of (tpl::GHCziBase.ZCTEq a1)
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR a1 GHCziBase.Bool)) ->
tpl1 ds1 eta});
%rec
{Fibheaps.lines :: GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char)) =
\ (ds1::GHCziBase.ZMZN GHCziBase.Char) ->
%case ds1 %of (wild::GHCziBase.ZMZN GHCziBase.Char)
{GHCziBase.ZC
(a1::GHCziBase.Char) (a2::GHCziBase.ZMZN GHCziBase.Char) ->
%let ds2 :: DataziTuple.Z2T
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziBase.ZMZN GHCziBase.Char) =
%let ds3 :: GHCziBase.Char =
GHCziBase.zdwCzh ('\x0a'::GHCziPrim.Charzh)
%in Fibheaps.break @ GHCziBase.Char
(\ (ds4::GHCziBase.Char) ->
%case GHCziBase.zdfEqChar %of (tpl::GHCziBase.ZCTEq GHCziBase.Char)
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR
GHCziBase.Char
(GHCziPrim.ZLzmzgZR GHCziBase.Char GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
GHCziBase.Char
(GHCziPrim.ZLzmzgZR GHCziBase.Char GHCziBase.Bool)) ->
tpl2 ds4 ds3})
wild
%in GHCziBase.zdwZC @ (GHCziBase.ZMZN GHCziBase.Char)
(%case ds2
%of (wild1::DataziTuple.Z2T
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziBase.ZMZN GHCziBase.Char))
{DataziTuple.Z2T
(l::GHCziBase.ZMZN GHCziBase.Char)
(szq::GHCziBase.ZMZN GHCziBase.Char) ->
l})
(%case ds2
%of (wild1::DataziTuple.Z2T
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziBase.ZMZN GHCziBase.Char))
{DataziTuple.Z2T
(l::GHCziBase.ZMZN GHCziBase.Char)
(szq::GHCziBase.ZMZN GHCziBase.Char) ->
%case szq %of (wild2::GHCziBase.ZMZN GHCziBase.Char)
{GHCziBase.ZC
(ds3::GHCziBase.Char) (szqzq::GHCziBase.ZMZN GHCziBase.Char) ->
Fibheaps.lines szqzq;
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (GHCziBase.ZMZN GHCziBase.Char)}});
GHCziBase.ZMZN ->
GHCziBase.zdwZMZN @ (GHCziBase.ZMZN GHCziBase.Char)}};
Fibheaps.randoms :: GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziBase.ZMZN GHCziBase.Int) =
\ (n::GHCziBase.Int) ->
Fibheaps.take @ GHCziBase.Int n
(Fibheaps.iterateList @ GHCziBase.Int
(\ (seed::GHCziBase.Int) ->
%case GHCziReal.zdfIntegralInt
%of (tpl::GHCziReal.ZCTIntegral GHCziBase.Int)
{GHCziReal.ZCDIntegral
(tpl1::GHCziReal.ZCTReal GHCziBase.Int)
(tpl2::GHCziEnum.ZCTEnum GHCziBase.Int)
(tpl3::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl4::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl5::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(DataziTuple.Z2T GHCziBase.Int GHCziBase.Int)))
(tpl8::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Int
(DataziTuple.Z2T GHCziBase.Int GHCziBase.Int)))
(tpl9::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziNum.Integer) ->
tpl3
(zp
(%case zddNum %of (tpl10::GHCziNum.ZCTNum GHCziBase.Int)
{GHCziNum.ZCDNum
(tpl11::GHCziBase.ZCTEq GHCziBase.Int)
(tpl12::GHCziShow.ZCTShow GHCziBase.Int)
(tpl13::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl14::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl15::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int))
(tpl16::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl17::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl18::GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Int)
(tpl19::GHCziPrim.ZLzmzgZR GHCziNum.Integer GHCziBase.Int) ->
tpl14 lit seed})
lit5)
lit1})
lit2);
Fibheaps.test :: GHCziPrim.ZLzmzgZR GHCziBase.Int GHCziBase.Bool =
\ (n::GHCziBase.Int) ->
%case zddEq1
%of (tpl::GHCziBase.ZCTEq (GHCziBase.ZMZN GHCziBase.Int))
{GHCziBase.ZCDEq
(tpl1::GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
(GHCziPrim.ZLzmzgZR (GHCziBase.ZMZN GHCziBase.Int) GHCziBase.Bool))
(tpl2::GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Int)
GHCziBase.Bool)) ->
tpl2 (fibSort1 (Fibheaps.randoms n))
(fibSortzq1 (Fibheaps.randoms n))};
Fibheaps.main :: GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H
(GHCziPrim.Statezh GHCziPrim.RealWorld)
GHCziBase.Z0T) =
%case GHCziIOBase.zdfMonadIO
%of (tpl::GHCziBase.ZCTMonad GHCziIOBase.IO)
{GHCziBase.ZCDMonad
(tpl1::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) b)))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) b))))
(tpl2::%forall a1 b . GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) a1))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) b))
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) b))))
(tpl3::%forall a1 . GHCziPrim.ZLzmzgZR
a1
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) a1)))
(tpl4::%forall a1 . GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H (GHCziPrim.Statezh GHCziPrim.RealWorld) a1))) ->
tpl1 @ (GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char))
@ GHCziBase.Z0T SystemziEnvironment.getArgs
(\ (ds1::GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char)) ->
%let fail :: GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H
(GHCziPrim.Statezh GHCziPrim.RealWorld)
GHCziBase.Z0T) =
GHCziErr.patError
@ (GHCziPrim.ZLzmzgZR
(GHCziPrim.Statezh GHCziPrim.RealWorld)
(GHCziPrim.Z2H
(GHCziPrim.Statezh GHCziPrim.RealWorld)
GHCziBase.Z0T))
("FibheapswithPrelude.hs:318|lambda"::GHCziPrim.Addrzh)
%in %case ds1
%of (wild::GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char))
{GHCziBase.ZMZN ->
fail;
GHCziBase.ZC
(n::GHCziBase.ZMZN GHCziBase.Char)
(ds2::GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char)) ->
%case ds2
%of (wild1::GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char))
{GHCziBase.ZC
(a1::GHCziBase.ZMZN GHCziBase.Char)
(a2::GHCziBase.ZMZN (GHCziBase.ZMZN GHCziBase.Char)) ->
fail;
GHCziBase.ZMZN ->
SystemziIO.putStr
(%case GHCziShow.zdfShowBool
%of (tpl5::GHCziShow.ZCTShow GHCziBase.Bool)
{GHCziShow.ZCDShow
(tpl6::GHCziPrim.ZLzmzgZR
GHCziBase.Int
(GHCziPrim.ZLzmzgZR
GHCziBase.Bool
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziBase.ZMZN GHCziBase.Char))))
(tpl7::GHCziPrim.ZLzmzgZR
GHCziBase.Bool
(GHCziBase.ZMZN GHCziBase.Char))
(tpl8::GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Bool)
(GHCziPrim.ZLzmzgZR
(GHCziBase.ZMZN GHCziBase.Char)
(GHCziBase.ZMZN GHCziBase.Char))) ->
tpl7 (Fibheaps.test (read n))})}})};
Fibheaps.zdfEqMaybe :: %forall a . GHCziPrim.ZLzmzgZR
(GHCziBase.ZCTEq a)
(GHCziBase.ZCTEq (Fibheaps.Maybe a)) =
%note "InlineMe"
\ @ a1 (zddEq2::GHCziBase.ZCTEq a1) ->
%let zeze :: GHCziPrim.ZLzmzgZR
(Fibheaps.Maybe a1)
(GHCziPrim.ZLzmzgZR (Fibheaps.Maybe a1) GHCziBase.Bool) =
\ (ds1::Fibheaps.Maybe a1) (ds2::Fibheaps.Maybe a1) ->
%let fail :: GHCziBase.Bool =
%case (con2tagzuMaybezh @ a1 ds1) %of (azh::GHCziPrim.Intzh)
{%_ ->
%case (con2tagzuMaybezh @ a1 ds2) %of (bzh::GHCziPrim.Intzh)
{%_ ->
GHCziPrim.zezezh azh bzh}}
%in %case ds1 %of (wild::Fibheaps.Maybe a1)
{Fibheaps.Nothing ->
fail;
Fibheaps.Just (a11::a1) ->
%case ds2 %of (wild1::Fibheaps.Maybe a1)
{Fibheaps.Nothing ->
fail;
Fibheaps.Just (b1::a1) ->
GHCziBase.zeze @ a1 zddEq2 a11 b1}}
%in GHCziBase.zdwZCDEq @ (Fibheaps.Maybe a1)
(\ (a2::Fibheaps.Maybe a1) (b::Fibheaps.Maybe a1) ->
GHCziBase.not (zeze a2 b))
zeze;
More information about the Glasgow-haskell-bugs
mailing list