/
Contract.gf
60 lines (44 loc) · 1.52 KB
/
Contract.gf
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
abstract Contract = {
flags startcat=Contract ;
cat
Contract ;
Heading ;
Signers ; Signer ; FullName ; SignerName ;
Accounts ; Account ; AccountName ;
Body ; Claims ; Claim ; Condition ; Amount ;
Closing ; Termination ;
fun
MkContract : Heading -> Body -> Closing -> Contract ;
StandardHeading : Signers -> Heading ;
AccountsHeading : Signers -> Accounts -> Heading ;
TwoSigners : Signer -> Signer -> Signers ;
NamedSigner : FullName -> SignerName -> Signer ;
Payee : SignerName ;
Payer : SignerName ;
Collector : SignerName ;
SourceAccount : AccountName ;
TargetAccount : AccountName ;
CollectAccount : AccountName ;
ThreeAccounts : Account -> Account -> Account -> Accounts;
ControlledAccount : Account -> SignerName -> Account ;
NamedAccount : Account -> AccountName -> Account ;
OnlyClaims : Claims -> Body ;
OneClaim : Claim -> Claims ;
TwoClaims : Claim -> Claim -> Claims ;
ThreeClaims : Claim -> Claim -> Claim -> Claims ;
ConditionClaims : Condition -> Claims -> Claims ;
TransferClaim : AccountName -> Amount -> AccountName -> Claim ;
Percentage : Int -> Amount -> Amount ;
Balance : AccountName -> Amount ;
BalanceOverValue : AccountName -> Amount -> Condition ;
OnlyTermination : Termination -> Closing ;
Forever : Termination ;
FullNamed : String -> FullName ;
ValueAmount : Float -> Amount ;
Address : String -> Account ;
ZeroAddress : Account ;
DavidDennison : FullName ;
PeggyPeterson : FullName ;
Zero : Amount ;
OneThousand : Amount ;
}