Last active
December 19, 2015 15:09
-
-
Save agam/5974455 to your computer and use it in GitHub Desktop.
Haskell Core for an interation example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
------------------------------- Core ----------------------------------- | |
Result size = 148 | |
lvl_r1MQ :: Type.Integer | |
lvl_r1MQ = __integer 0 | |
lgo_r1MR | |
:: Type.Integer | |
-> [NaryTree Type.Integer] | |
-> Type.Integer | |
lgo_r1MR = | |
\ (z_atM :: Type.Integer) | |
(ds_atN :: [NaryTree Type.Integer]) -> | |
case ds_atN of _ { | |
[] -> z_atM; | |
: x_atS xs_atT -> | |
lgo_r1MR | |
(Type.plusInteger z_atM (main_$snarySum x_atS)) | |
xs_atT | |
} | |
main_$snarySum [Occ=LoopBreaker] | |
:: NaryTree Type.Integer | |
-> Type.Integer | |
main_$snarySum = | |
\ (ds_dtA :: NaryTree Type.Integer) -> | |
case ds_dtA of _ { | |
NaryLeaf x_aad -> x_aad; | |
NaryBranch b_aae -> lgo_r1MR lvl_r1MQ b_aae | |
} | |
main_$sbinarySum [Occ=LoopBreaker] | |
:: BinaryTree Type.Integer | |
-> Type.Integer | |
main_$sbinarySum = | |
\ (ds_dtD :: BinaryTree Type.Integer) -> | |
case ds_dtD of _ { | |
BinaryLeaf x_a9T -> x_a9T; | |
BinaryBranch a_a9U b_a9V -> | |
Type.plusInteger | |
(main_$sbinarySum a_a9U) (main_$sbinarySum b_a9V) | |
} | |
main14 :: Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 100 0}] | |
main14 = __integer 4 | |
main13 :: NaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 110}] | |
main13 = NaryLeaf @ Type.Integer main14 | |
main12 :: Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 100 0}] | |
main12 = __integer 5 | |
main11 :: NaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 110}] | |
main11 = NaryLeaf @ Type.Integer main12 | |
main10 :: Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 100 0}] | |
main10 = __integer 6 | |
main9 :: NaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 110}] | |
main9 = NaryLeaf @ Type.Integer main10 | |
main8 :: [NaryTree Type.Integer] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 120}] | |
main8 = | |
: | |
@ (NaryTree Type.Integer) | |
main9 | |
([] @ (NaryTree Type.Integer)) | |
main7 :: [NaryTree Type.Integer] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 120}] | |
main7 = | |
: | |
@ (NaryTree Type.Integer) main11 main8 | |
main6 :: [NaryTree Type.Integer] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 120}] | |
main6 = | |
: | |
@ (NaryTree Type.Integer) main13 main7 | |
main5 :: NaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 110}] | |
main5 = NaryBranch @ Type.Integer main6 | |
main4 :: Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 20 0}] | |
main4 = main_$snarySum main5 | |
main3 :: String | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
main3 = | |
$w$cshowsPrec 0 main4 ([] @ Char) | |
main2 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 70 0}] | |
main2 = | |
unpackAppendCString# "NarySum = " main3 | |
main20 :: BinaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 110}] | |
main20 = | |
BinaryLeaf @ Type.Integer main14 | |
main19 :: BinaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 110}] | |
main19 = | |
BinaryLeaf @ Type.Integer main12 | |
main18 :: BinaryTree Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [] 10 120}] | |
main18 = | |
BinaryBranch | |
@ Type.Integer main20 main19 | |
main17 :: Type.Integer | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 20 0}] | |
main17 = main_$sbinarySum main18 | |
main16 :: String | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
main16 = | |
$w$cshowsPrec | |
0 main17 ([] @ Char) | |
main15 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 70 0}] | |
main15 = | |
unpackAppendCString# "BinarySum = " main16 | |
main1 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 110 0}] | |
main1 = | |
\ (eta_Xk :: State# RealWorld) -> | |
case Handle.Text.hPutStr2 | |
Handle.FD.stdout main15 True eta_Xk | |
of _ { (# new_s_aPj, _ #) -> | |
Handle.Text.hPutStr2 | |
Handle.FD.stdout main2 True new_s_aPj | |
} | |
main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
main = | |
main1 | |
main21 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 30 0}] | |
main21 = | |
\ (eta_Xn :: State# RealWorld) -> | |
runMainIO1 | |
@ () | |
(main1 | |
) | |
eta_Xn | |
:main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
:main = | |
main21 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment