GHood - Graphical Visualisation and Animation of Haskell O ject O

 ! " #
! $ %
! # ! $
&
! #
# !
$ ' ! !
( !
!$
' ! ! #
! #
$ ) * !
#
$ ! + ! $$ ! !
! $
! "#$% & ' ! ( !) * +
,
- , ".% /
+ "01% - "#.% "2% , 3 3 ' ( ) - ( & (4)) 5
' 5 5 6 5 ( 5 )
3 ' 3 ' ' ' , ' , 7 ' "2%
7 ( 89* : 0111;
)
< ' ( ) * 7 7 & ' ,
7 7 ' ' !"
0
= ! = < 3 >
3 ' ? 3 4 4 / 4 ' 3 (8 . "#@% ) ? ' 4
!
A ( 6- 6 B) 6 4 = 3 , 3 4 & 4 5 4 B ' & - + *
? = 3 ( ) - ! +
() () < C () < 3 - .
() () ' ! () C! ! ! 3 () () < D / '
() A & = "2$% +
( ) E F
( ( 1) ( #))
( )
' ! () ' ' 6 '
, 3 ! (!) +
!! !! D ( )+
" # "
# $
G
%&&' D ' ' A +
() () () () () "2% <
' 66B 7 7 7 = ' ! < ' ( G0)
() = 7 < ' + ! (' ) H ! # $ % &'
" ( )*+$
, "
I
,$ -$ = D ' ! ! ' ( ) ! (
' ) 6 7 J ' 3+ 6 ! 4 ' J 7 + ' ' 7 : @
( ) (! #) (
) ( C
' C ) < 3 & AC* '
' ( ) : 7D& ( ) 7 ( 7D&) 7D& * 7D& 7 : : & 3 ( ) '
3 ' - '
' ( !' ) & & 2
, - ' ' 7 ' * ' 3 ' 6 '
& - ' * ' & ! ' 7 7 , ( () K) *+ - &6 ' ' D
7 '
( ! ) ( ) < ? ' ! '
! 6 ' 7 ' (
/
$
task2Events.log(76/76)
after
before
N
N
N
1
N
2
E
4
N
N
E
E
5
E
N
N
3
E
6
N
E
E
N
N
7
E
E
N
E
E
N
E
E
N
E
E
E
,$ .$ /#!# ! #*
' )
, ! ' ! "#G% ' = = +
7 # ! > ! ( ,' ,) 6 ' , ! ! 0 ! ! , ! ? ( )
' ( ) ' ' ( ') ( ') ( )
() (,) ! 0 ' - % "
L
task2Events.log(33/76)
after
before
N
N
N
N
E
N
E
N
E
E
E
,$ 0$
N
E
E
E
#!# task1Events.log(33/76)
after
before
N
N
N
N
N
N
E
4
E
E
N
N
N
N
E
,$ 1$ %
2
! ! = ! . ' ' ' & - & '
M 6 ' , 6 Æ 8 ! ! G 3 ( 3 )+ #1
! & '
! ! , ! + ! ! ! 6 , ' 3 & '
6 & 3 + ! ! = ! M
6 ! (
) ! ? ! 6 ! (
)
! ! & ! ( / ) ! 5 ! )%
(! ,0 ,@ G)
,
6 "#G% (
" - )
* )% ). (! ,. ,I .) = '
+ 6 ##
task1newEvents.log(27/76)
after
before
N
N
N
N
N
N
E
4
E
E
N
E
,$ 3$ %
4
( ) ! * + ! ! G ' ! Æ M C + -
!
, ! * ! ! )% (! ,G ,2 I) '
H 3 ( ) &
! 0 ? M
! > ' ' ! N #0
foldlEvents.log(66/66)
foldl’Events.log(66/66)
foldl
foldl’
FUN
FUN
->
->
FUN
->
->
36
6
->
25
3
FUN
->
3
4
1
FUN
->
42
10
->
14
3
3
6
FUN
->
->
3
0
FUN
3
2
0
FUN
->
20
3
3
1
0
FUN
->
9
1
:
10
1
:
1
->
3
FUN
->
9
1
3
2
:
->
->
6
FUN
->
7
3
3
3
0
FUN
->
7
6
3
4
FUN
->
7
10
58
:
10
1
:
2
:
4
1
FUN
3
3
->
->
58
2
,$ 5$
FUN
3
->
31
FUN
:
3
[]
:
4
[]
+ 6#7
' 9 '
' * " " // / 0"0 " /
" " // " " / /
, ! '
= M ' ' = ' 7
@ (
) +
1 2 %&&' #.
! ( ' ) , ! 4 *3,45
*3,4'
%2678
*3,48
567&&6 5 ' %2 (
8 8 5) (
) 2 %7.787' %2
& ( ' ) ?
/+ (
)
D ' H' ! ! ! ,
! > ! @ (
) I$
! %2 51'
%2 818
5 %1.
8 21%
% G0 .# 01 L & A ( ') - (
') #9+
: " : " // : " #9 " / /
#G
! @ () - < ' ! L , 7 3+ 21%
% %1.
8 818
5 51'
%2 ' * ( ) "# ' 3 7 & ! '
& ' '
3 + ! 7 & ' ' ! & 7 = - ( - "#.% ) ' 7 + ' 8 > "#2% ' ' :C #I
! "
# $
$
% # # ,
DO8 ! 7 : 011# * : 0 ! & ! 5 6 7 ! ( ) ! & N P ".% ' (- 7) ' ! & A 3 = 3 , P ! -
L$#1G "01#L% ( ' )
& : 0111 7 7 ' 89*
! QNK ' & 3 3 ( )
( - )
, & , .-/& 0/1*# 2
#@
! ( ) ! ' L$ & ! A !' (N < B
) P ' 7 + ( ' ) ? 3 ( 3
) 7 B ( ) + 7
6
' 7 + ( ) ' &
' /
( /
7)
7 ' , + #2
/ ' 6 / / ' + . 3
! 3 6 J (
.#) ( ;/
/ ) (7 ' )
(
)
, 7 ' 011# (&)&<) 3 *
( ') J $
' * "I% < 7 9 "#I% N 4 8
& B A> 8&BA> "##% O &
A K "0% ! NK ' B* "G% ? O "#1%
, 7 3 ' 8
' 7 ' 3 O "#1@% ! #$
, ! + ' 3 ' 7 6
' & Æ - '
! 6 ' ' ' H ' ( ) , 3 ! 3 , '
' '
<
O 6C* "L%
() ' ' 7 ' : >5 (!) #L
& K C * 5 , ( ) ' ( ) *
Æ Æ & ' ( ) ' ( 5 ) ' & ' H ? "#0% / ( )
5 3 (
*NK4H: =" "#%) & '
' K *' ; ! % &
7 ' D 7 ' ' 3 '+
! C 7 ' ' '
$ 01
< ()
5 ! ' & 7 ' 6 ' ' , R 7 + ' * ' ' 7 < 7 ( ) ( ) &
= ! 7 M , ! & '#
- $
. 8
9$
:$
'
' &
! ;
% :
;
# #<
= 6->>>7
$
0 ;
$ ;$ 9 :$ ) !
! " #
$% $
& '
(
? ( % )*% +,% #
% -
.% "
/% *000 *0)) .@@- $ -5+->0$
1 ;
A$ :$ ,
:$ , #
? (
)0% (
1( *00) ! (
% $% (
$#( *00) -
# *"2 *00)
B
C
;
% 6.@@-7$
0#
3 ,
%$ D
! BE ,
;
" F$$ ! ;
% <
!
G 6->>37$
5 H
$ )$ = "3&4 # % "
A ! ,
F 6->>57$
$ & !
, 1 &
?
$ *000 # -(# !
, +,% 6.@@@7$
I $ $% !
, 1 1
& 6.@@@7$
> = )$ !1( 5 $% !% 1 (
$
-@ = )$ /$ # 6 - % 3 "3& '
9
>1->
&
!
;
% :
;
# #<
= 6->>17 $
-- = A$ / F !H F" :
( 9)' 6.@@@7
; &
/9
$
-. C B$ '$ 8 $
' ;$ % ;
6->>57 $ 1@-+1@I$
-0 C $ ! BE ,
B" F$$
! ;
&!
% BH
<
%#3I- I0 BH % 6->>I7$
-1 ;$ 7
%" 4 8 #% & ? (
(6*000 .@@@ $ -0-+-05$
-3 F %$ -
% 9
'
% 9 !$
-5 9 ;$ ,
, &
+ ##
!
##
# " F$$ ,
! /
;
# #<
= 6->>7 ' 9
>I@1 &
! ;
% : ->>I " $
- 9 ;$ ' % A ! ,
F 6->>7 $ .->+..3$
-I ) F$ (
4 +% %&FB C C
6->>I7 $ .0+.$
00
-> ) :$ $ ;
'$ 8 ;$ 9 "9 $
!
,4 !
? # -(# !
, +,% ' .@@-$
.@ G ,
F !
" $% !
, $
6.@@-7$
( )
*
! $ %
! J
! ! ! ! $ 9 * ! ! !
$
"
> ? , > > > , / , , !! !! / !! " # # # 4 /// , // . //@ // , / % /@ / , 2 6
,$ $-$ # #*
*
0.
///
) ) " A 7 ) 7 )7 :7:
B
7
7
B:7: , / 1%777, : :
)C )C ::
:7 ":7 : ) :
)C : 11 ":
:7
" - #
,$ $.$
:
)C % #
+ # #*
*
) B
77
7
) B:: , / 1%7777, : :
)C )C :11 :
:7:7 ":7 : ) :
:
)C : 11 ":
#
,$ $0$
$
)C % + # #*
2
) B
7
7
) B:7: , / 1%777, : :
)C )C ::
:7 ":7 : ) :
)C : 11 ":
:7
" - :
B
, D B, : /: : , : /: :
,$ $1$
# #
#
+
)C % # #*
4
0G
task2Events.log(12/76)
task2Events.log(8/76)
task2Events.log(10/76)
after
after
before
task2Events.log(2/76)
task2Events.log(4/76)
N
N
after
after
N
N
before
after
before
N
N
N
task2Events.log(16/76)
task2Events.log(33/76)
after
after
after
before
before
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
E
task2Events.log(35/76)
task2Events.log(37/76)
after
before
after
before
N
N
N
N
N
N
N
N
N
N
E
E
N
E
E
N
E
E
E
task2Events.log(39/76)
task2Events.log(45/76)
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
N
E
E
N
E
E
N
E
E
E
E
E
task2Events.log(55/76)
before
after
N
N
N
N
N
2
E
4
N
E
E
N
N
5
E
E
E
N
E
E
E
E
N
E
E
N
E
E
E
E
E
N
E
E
N
E
E
E
E
,$ $3$
N
E
E
$?
N
E
E
N
E
E
E
N
1
N
2
E
4
N
N
E
E
5
E
N
N
3
E
6
N
E
E
N
N
7
E
E
N
E
E
N
E
E
N
E
E
E
. 1 I -@ -. -1 -5 00 03 0 0> 13 33 5
0I
E
N
N
before
N
E
N
task2Events.log(76/76)
after
N
4
N
E
N
E
after
N
E
N
E
N
N
task2Events.log(14/76)
before
before
E
task1Events.log(9/76)
task1Events.log(2/76)
task1Events.log(4/76)
after
after
task1Events.log(5/76)
task1Events.log(7/76)
after
before
after
before
after
before
N
N
N
N
N
before
N
task1Events.log(15/76)
task1Events.log(11/76)
task1Events.log(13/76)
after
before
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
N
task1Events.log(17/76)
task1Events.log(19/76)
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
N
task1Events.log(21/76)
task1Events.log(23/76)
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
task1Events.log(27/76)
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
E
E
N
N
N
E
N
N
N
N
task1Events.log(25/76)
N
N
N
N
N
N
N
N
N
task1Events.log(76/76)
after
before
N
N
N
1
N
2
E
4
N
N
E
E
5
E
N
N
3
E
6
,$ $5$
N
E
E
N
N
7
E
#?
E
N
E
E
N
E
E
N
E
E
E
. 1 3 > -- -0 -3 - -> .- .0 .3 . 5
0@
task1newEvents.log(9/76)
task1newEvents.log(2/76)
task1newEvents.log(4/76)
after
after
task1newEvents.log(5/76)
task1newEvents.log(7/76)
after
before
after
before
after
before
N
N
N
N
N
before
N
task1newEvents.log(13/76)
task1newEvents.log(15/76)
task1newEvents.log(17/76)
task1newEvents.log(11/76)
after
before
after
before
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
E
task1newEvents.log(19/76)
task1newEvents.log(21/76)
task1newEvents.log(23/76)
after
before
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
E
E
E
E
E
N
4
N
E
task1newEvents.log(25/76)
task1newEvents.log(29/76)
task1newEvents.log(31/76)
after
before
after
before
after
before
N
N
N
N
N
N
N
N
N
N
N
N
E
4
N
E
E
N
2
E
4
N
N
N
E
E
E
after
before
after
N
N
N
1
N
2
E
4
N
N
N
E
E
N
N
5
E
N
E
E
E
E
after
before
after
N
N
N
1
N
2
E
4
N
N
E
E
5
E
E
4
N
N
E
N
E
E
before
N
N
1
N
2
E
4
N
N
N
E
E
N
N
5
E
E
N
E
E
N
E
task1newEvents.log(65/76)
task1newEvents.log(63/76)
N
2
task1newEvents.log(49/76)
task1newEvents.log(47/76)
N
N
N
N
N
3
E
6
N
E
N
E
E
E
E
before
N
N
N
1
N
N
2
E
4
E
E
N
N
E
E
5
E
N
N
3
E
6
N
N
E
E
N
E
E
N
E
E
N
E
task1newEvents.log(76/76)
after
before
N
N
N
1
N
2
E
4
N
N
E
E
5
E
N
N
3
E
6
N
E
,$ $$
E
N
N
7
E
E
N
E
E
#
?
N
E
E
N
E
E
E
. 1 3 > -- -0 -3 - -> .- $ $ $ 5
02
foldlEvents.log(18/66)
foldlEvents.log(24/66)
foldl
foldl
FUN
FUN
->
->
foldlEvents.log(9/66)
FUN
FUN
foldl
->
->
FUN
->
FUN
FUN
FUN
FUN
->
->
->
->
:
FUN
->
:
:
foldlEvents.log(2/66)
FUN
foldl
->
:
:
:
:
:
[]
[]
foldlEvents.log(29/66)
foldlEvents.log(41/66)
foldl
foldl
FUN
FUN
->
->
FUN
->
->
FUN
FUN
->
->
FUN
->
->
->
->
FUN
FUN
FUN
FUN
FUN
FUN
FUN
->
->
->
->
->
->
->
0
FUN
->
:
:
:
:
:
:
:
:
[]
[]
foldlEvents.log(47/66)
foldlEvents.log(53/66)
foldl
foldl
FUN
FUN
->
->
FUN
->
->
->
->
FUN
FUN
FUN
->
->
->
0
FUN
FUN
->
->
0
FUN
->
1
1
FUN
->
->
FUN
FUN
FUN
->
->
->
0
FUN
->
2
:
1
1
->
3
foldl
FUN
->
FUN
6
3
FUN
->
4
1
FUN
->
10
3
->
0
FUN
->
6
2
->
0
FUN
->
3
1
FUN
->
1
:
10
1
:
2
:
3
:
0$
,$ $I$ . > -I .1 .> 1- 1 30 55
4
[]
:
:
:
:
foldlEvents.log(66/66)
->
->
1
2
[]
->
1
FUN
1
:
:
->
0
->
:
FUN
->
FUN
[]
foldl’Events.log(34/66)
foldl’Events.log(17/66)
foldl’Events.log(25/66)
foldl’
foldl’Events.log(9/66)
foldl’
foldl’
FUN
foldl’
FUN
FUN
->
FUN
->
->
->
FUN
FUN
FUN
FUN
->
->
->
->
->
0
FUN
->
foldl’Events.log(2/66)
FUN
foldl’
->
0
FUN
FUN
FUN
->
->
->
:
1
0
FUN
1
FUN
->
1
FUN
FUN
->
->
1
->
0
FUN
FUN
->
->
1
:
:
1
:
1
foldl’Events.log(47/66)
foldl’Events.log(51/66)
foldl’Events.log(38/66)
foldl’
foldl’
foldl’
FUN
FUN
FUN
->
->
FUN
FUN
->
0
->
1
FUN
->
1
FUN
->
->
0
0
FUN
->
1
2
3
->
->
1
FUN
FUN
->
->
1
->
3
FUN
1
FUN
->
->
0
FUN
->
FUN
->
2
3
1
FUN
->
->
:
1
1
:
1
0
FUN
FUN
->
->
3
FUN
->
1
2
3
foldl’Events.log(66/66)
foldl’
foldl’
FUN
FUN
->
0
1
FUN
->
1
3
FUN
->
1
2
->
6
FUN
->
3
3
:
:
2
:
->
FUN
->
->
6
:
3
foldl’Events.log(60/66)
->
3
FUN
1
2
2
->
0
->
:
:
->
FUN
FUN
FUN
FUN
->
->
0
->
6
0
FUN
FUN
->
->
->
:
1
1
1
FUN
->
3
FUN
->
1
2
3
:
3
6
FUN
->
:
2
->
3
->
0
FUN
->
6
4
FUN
->
10
:
10
1
:
2
:
:
3
:
4
,$ $>$
?
[]
. > - .3 01 0I 1 3- 5@ 55
0L