| line | true | false | branch | 
 
| 19 | 0 | 0 | if ($kind eq 'Fun') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Tuple') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Array') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Var') { } | 
 
| 38 | 0 | 0 | if ($type->children->[0]) { } | 
 
| 59 | 0 | 0 | if ($kind eq 'Not' or $kind eq 'Neg' or $kind eq 'FNeg') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Add' or $kind eq 'Sub' or $kind eq 'Eq' or $kind eq 'LE' or $kind eq 'FAdd' or $kind eq 'FSub' or $kind eq 'FMul' or $kind eq 'FDiv' or $kind eq 'Array' or $kind eq 'Get') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'If' or $kind eq 'Put') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Let') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'LetRec') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'App') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Tuple') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'LetTuple') { } | 
 
| 120 | 0 | 0 | if ($right_type->kind eq 'Fun') { } | 
 
|  | 0 | 0 | elsif ($right_type->kind eq 'Tuple') { } | 
 
|  | 0 | 0 | elsif ($right_type->kind eq 'Array') { } | 
 
|  | 0 | 0 | elsif ($right_type->kind eq 'Var' and $left_type == $right_type) { } | 
 
|  | 0 | 0 | elsif ($right_type->kind eq 'Var' and $right_type->children->[0]) { } | 
 
| 122 | 0 | 0 | if $self->occur($left_type, $arg_type) | 
 
| 129 | 0 | 0 | if $self->occur($left_type, $elem_type) | 
 
| 151 | 0 | 0 | if $left_type == $right_type | 
 
| 153 | 0 | 0 | if ($left_type->kind eq 'Unit' and $right_type->kind eq 'Unit' or $left_type->kind eq 'Bool' and $right_type->kind eq 'Bool' or $left_type->kind eq 'Int' and $right_type->kind eq 'Int' or $left_type->kind eq 'Float' and $right_type->kind eq 'Float') { } | 
 
|  | 0 | 0 | elsif ($left_type->kind eq 'Fun' and $right_type->kind eq 'Fun') { } | 
 
|  | 0 | 0 | elsif ($left_type->kind eq 'Tuple' and $right_type->kind eq 'Tuple') { } | 
 
|  | 0 | 0 | elsif ($left_type->kind eq 'Array' and $right_type->kind eq 'Array') { } | 
 
|  | 0 | 0 | elsif ($left_type->kind eq 'Var' and $right_type->kind eq 'Var' and $left_type->children->[0] and $right_type->children->[0] and $left_type->children->[0]->kind eq $right_type->children->[0]->kind) { } | 
 
|  | 0 | 0 | elsif ($left_type->kind eq 'Var' and $left_type->children->[0]) { } | 
 
|  | 0 | 0 | elsif ($right_type->kind eq 'Var' and $right_type->children->[0]) { } | 
 
|  | 0 | 0 | elsif ($left_type->kind eq 'Var' and not $self->occur($left_type, $right_type)) { } | 
 
|  | 0 | 0 | elsif ($right_type->kind eq 'Var' and not $self->occur($right_type, $left_type)) { } | 
 
| 159 | 0 | 0 | unless @{$left_type->children->[0];} == @{$right_type->children->[0];} | 
 
| 169 | 0 | 0 | unless @{$left_type->children->[0];} == @{$right_type->children->[0];} | 
 
| 206 | 0 | 0 | if ($kind eq 'Unit') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Bool') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Int') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Float') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Not') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Neg') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Add' or $kind eq 'Sub') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'FNeg') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'FAdd' or $node->kind eq 'FSub' or $kind eq 'FMul' or $kind eq 'FDiv') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Eq' or $kind eq 'LE') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'If') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Let') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Var') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'LetRec') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'App') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Tuple') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'LetTuple') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Array') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Get') { } | 
 
|  | 0 | 0 | elsif ($kind eq 'Put') { } | 
 
| 270 | 0 | 0 | if (exists $env{$ident_name}) { } |