Functional Hack
Introduction
1.
Hack subset
2.
Naming conventions
3.
Effects
4.
Errors
5.
Steps preprocessor
6.
API
6.1.
Awkward
6.2.
Eq
6.3.
Eqs
6.4.
F
6.5.
IO
6.6.
Iso
6.7.
Monoid
6.8.
Monoids
6.9.
Option
6.10.
Semigroup
6.11.
Semigroups
6.12.
Supplies
6.13.
Supply
6.14.
Uninhabited
Powered by
GitBook
Functional Hack
Interface
FH\Eq<-T>
Interface for equality comparators.
Laws
Reflexivity
e
q
(
$
a
,
$
a
)
\mathtt{eq(\$a, \$a)}
e
q
(
$
a
,
$
a
)
Symmetry
e
q
(
$
a
,
$
b
)
=
e
q
(
$
b
,
$
a
)
\mathtt{eq(\$a, \$b)} = \mathtt{eq(\$b, \$a)}
e
q
(
$
a
,
$
b
)
=
e
q
(
$
b
,
$
a
)
Transitivity
e
q
(
$
a
,
$
b
)
∧
e
q
(
$
b
,
$
c
)
→
e
q
(
$
a
,
$
c
)
\mathtt{eq(\$a, \$b)} \wedge \mathtt{eq(\$b, \$c)} \rightarrow \mathtt{eq(\$a, \$c)}
e
q
(
$
a
,
$
b
)
∧
e
q
(
$
b
,
$
c
)
→
e
q
(
$
a
,
$
c
)
Instance methods
eq(T $a, T $b): bool
Return whether two values are equal.