1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
==================== Tidy Core ====================
Result size of Tidy Core = {terms: 54, types: 101, coercions: 0, joins: 0/0}
Rec {
-- RHS size: {terms: 20, types: 31, coercions: 0, joins: 0/0}
T18401.safeInit_$spoly_$wgo1 :: forall {a}. a -> [a] -> (# Bool, [a] #)
T18401.safeInit_$spoly_$wgo1
= \ (@a_aO1) (sc_s17W :: a_aO1) (sc1_s17V :: [a_aO1]) ->
case sc1_s17V of {
[] -> (# GHC.Types.True, GHC.Types.[] @a_aO1 #);
: y_a158 ys_a159 -> (# GHC.Types.True, GHC.Types.: @a_aO1 sc_s17W (case T18401.safeInit_$spoly_$wgo1 @a_aO1 y_a158 ys_a159 of { (# ww_s17y, ww1_s17z #) -> ww1_s17z }) #)
}
end Rec }
-- RHS size: {terms: 17, types: 25, coercions: 0, joins: 0/0}
si :: forall a. [a] -> (Bool, [a])
si
= \ (@a_s17i) (w_s17j :: [a_s17i]) ->
case w_s17j of {
[] -> (GHC.Types.False, GHC.Types.[] @a_s17i);
: y_a158 ys_a159 -> (GHC.Types.True, case T18401.safeInit_$spoly_$wgo1 @a_s17i y_a158 ys_a159 of { (# ww_X3, ww1_X4 #) -> ww1_X4 })
}
-- RHS size: {terms: 14, types: 22, coercions: 0, joins: 0/0}
safeInit :: forall a. [a] -> Maybe [a]
safeInit
= \ (@a_aO1) (xs_aus :: [a_aO1]) ->
case xs_aus of {
[] -> GHC.Maybe.Nothing @[a_aO1];
: y_a158 ys_a159 -> GHC.Maybe.Just @[a_aO1] (case T18401.safeInit_$spoly_$wgo1 @a_aO1 y_a158 ys_a159 of { (# ww_X3, ww1_X4 #) -> ww1_X4 })
}
|