+
+
+--================================================================================
+Typechecked:
+`d.Ord' =
+ `PrelBase.$d6'
+`<=' =
+ `PrelBase.<='
+ `PrelBase.Int'
+ `d.Ord'
+`d.Num' =
+ `PrelBase.$d3'
+`fromInt' =
+ `PrelBase.fromInt'
+ `PrelBase.Int'
+ `d.Num'
+`lit' =
+ `fromInt'
+ `PrelBase.I#'
+ 1#
+`d.Integral' =
+ `PrelNum.$d36'
+`div' =
+ `PrelNum.div'
+ `PrelBase.Int'
+ `d.Integral'
+`fromInt' =
+ `fromInt'
+`lit' =
+ `fromInt'
+ `PrelBase.I#'
+ 2#
+AbsBinds
+[`a{-a121-}']
+[]
+[([`a{-a121-}'], `init_last', `init_last')]
+ `init_last'
+ `a' `b' = `(a, a)'
+AbsBinds
+[`a{-a12a-}']
+[`d.Ord']
+[([`a{-a12a-}'], `merge', `merge')]
+ `merge'
+ `xs' `ys'
+ = `xs'
+AbsBinds [`a{-a12l-}'] [`d.Ord'] [([`a{-a12l-}'], `sort', `sort')]
+ `d.Ord' =
+ `d.Ord'
+ `sort'
+ `xs' = `s xs
+ PrelList.length
+ a{-a12l-}
+ xs'
+ where
+ AbsBinds [`b{-a12s-}'] [`d.Ord'] [([`b{-a12s-}'], `s', `s')]
+ `d.Ord' =
+ `d.Ord'
+ `merge' =
+ `merge'
+ `b{-a12s-}'
+ `d.Ord'
+ `d.Ord' =
+ `d.Ord'
+ `sort' =
+ `sort'
+ `b{-a12s-}'
+ `d.Ord'
+ `sort' =
+ `sort'
+ `s' `xs' `k'
+ = `if k <= lit then
+ xs
+ else
+ merge
+ sort
+ ys
+ sort
+ zs'
+ where
+ AbsBinds [] [] [([], `ys', `ys'), ([], `zs', `zs')]
+ (`ys', `zs')
+ = `init_last
+ b{-a12s-}
+ xs k div lit'
+ `s' =
+ `s' `a{-a12l-}'
+ `d.Ord'