208 lines
3.7 KiB
Plaintext
208 lines
3.7 KiB
Plaintext
let func : HttpFunc = handler (Some >> Task.FromResult)
|
|
|
|
type Base1() =
|
|
abstract member F : unit -> unit
|
|
default u.F() =
|
|
printfn "F Base1"
|
|
|
|
type Derived1() =
|
|
inherit Base1()
|
|
override u.F() =
|
|
printfn "F Derived1"
|
|
|
|
let d1 : Derived1 = Derived1()
|
|
|
|
let base1 = d1 :> Base1
|
|
let derived1 = base1 :?> Derived1
|
|
|
|
type PersonName =
|
|
| FirstOnly of string
|
|
| LastOnly of string
|
|
| FirstLast of string * string
|
|
|
|
type Shape =
|
|
| Rectangle of height : float * width : float
|
|
| Circle of radius : float
|
|
|
|
type MyInterface =
|
|
abstract member Add: int -> int -> int
|
|
abstract member Pi : float
|
|
|
|
exception Error1 of string
|
|
exception Error2 of string * int
|
|
|
|
----------------------------------------------------
|
|
|
|
[
|
|
["keyword", "let"],
|
|
" func ",
|
|
["punctuation", ":"],
|
|
["class-name", ["HttpFunc"]],
|
|
["operator", "="],
|
|
" handler ",
|
|
["punctuation", "("],
|
|
"Some ",
|
|
["operator", ">>"],
|
|
" Task",
|
|
["punctuation", "."],
|
|
"FromResult",
|
|
["punctuation", ")"],
|
|
|
|
["keyword", "type"],
|
|
["class-name", ["Base1"]],
|
|
["punctuation", "("],
|
|
["punctuation", ")"],
|
|
["operator", "="],
|
|
|
|
["keyword", "abstract"],
|
|
["keyword", "member"],
|
|
" F ",
|
|
["punctuation", ":"],
|
|
["class-name", [
|
|
"unit ",
|
|
["operator", "->"],
|
|
" unit"
|
|
]],
|
|
|
|
["keyword", "default"],
|
|
" u",
|
|
["punctuation", "."],
|
|
["function", "F"],
|
|
["punctuation", "("],
|
|
["punctuation", ")"],
|
|
["operator", "="],
|
|
|
|
"\r\n printfn ",
|
|
["string", "\"F Base1\""],
|
|
|
|
["keyword", "type"],
|
|
["class-name", ["Derived1"]],
|
|
["punctuation", "("],
|
|
["punctuation", ")"],
|
|
["operator", "="],
|
|
|
|
["keyword", "inherit"],
|
|
["class-name", ["Base1"]],
|
|
["punctuation", "("],
|
|
["punctuation", ")"],
|
|
|
|
["keyword", "override"],
|
|
" u",
|
|
["punctuation", "."],
|
|
["function", "F"],
|
|
["punctuation", "("],
|
|
["punctuation", ")"],
|
|
["operator", "="],
|
|
|
|
"\r\n printfn ",
|
|
["string", "\"F Derived1\""],
|
|
|
|
["keyword", "let"],
|
|
" d1 ",
|
|
["punctuation", ":"],
|
|
["class-name", ["Derived1"]],
|
|
["operator", "="],
|
|
["function", "Derived1"],
|
|
["punctuation", "("],
|
|
["punctuation", ")"],
|
|
|
|
["keyword", "let"],
|
|
" base1 ",
|
|
["operator", "="],
|
|
" d1 ",
|
|
["operator", ":>"],
|
|
["class-name", ["Base1"]],
|
|
|
|
["keyword", "let"],
|
|
" derived1 ",
|
|
["operator", "="],
|
|
" base1 ",
|
|
["operator", ":?>"],
|
|
["class-name", ["Derived1"]],
|
|
|
|
["keyword", "type"],
|
|
["class-name", ["PersonName"]],
|
|
["operator", "="],
|
|
|
|
["operator", "|"],
|
|
" FirstOnly ",
|
|
["keyword", "of"],
|
|
["class-name", ["string"]],
|
|
|
|
["operator", "|"],
|
|
" LastOnly ",
|
|
["keyword", "of"],
|
|
["class-name", ["string"]],
|
|
|
|
["operator", "|"],
|
|
" FirstLast ",
|
|
["keyword", "of"],
|
|
["class-name", [
|
|
"string ",
|
|
["operator", "*"],
|
|
" string"
|
|
]],
|
|
|
|
["keyword", "type"],
|
|
["class-name", ["Shape"]],
|
|
["operator", "="],
|
|
|
|
["operator", "|"],
|
|
" Rectangle ",
|
|
["keyword", "of"],
|
|
" height ",
|
|
["punctuation", ":"],
|
|
["class-name", ["float"]],
|
|
["operator", "*"],
|
|
" width ",
|
|
["punctuation", ":"],
|
|
["class-name", ["float"]],
|
|
|
|
["operator", "|"],
|
|
" Circle ",
|
|
["keyword", "of"],
|
|
" radius ",
|
|
["punctuation", ":"],
|
|
["class-name", ["float"]],
|
|
|
|
["keyword", "type"],
|
|
["class-name", ["MyInterface"]],
|
|
["operator", "="],
|
|
|
|
["keyword", "abstract"],
|
|
["keyword", "member"],
|
|
" Add",
|
|
["punctuation", ":"],
|
|
["class-name", [
|
|
"int ",
|
|
["operator", "->"],
|
|
" int ",
|
|
["operator", "->"],
|
|
" int"
|
|
]],
|
|
|
|
["keyword", "abstract"],
|
|
["keyword", "member"],
|
|
" Pi ",
|
|
["punctuation", ":"],
|
|
["class-name", ["float"]],
|
|
|
|
["keyword", "exception"],
|
|
["class-name", ["Error1"]],
|
|
["keyword", "of"],
|
|
["class-name", ["string"]],
|
|
|
|
["keyword", "exception"],
|
|
["class-name", ["Error2"]],
|
|
["keyword", "of"],
|
|
["class-name", [
|
|
"string ",
|
|
["operator", "*"],
|
|
" int"
|
|
]]
|
|
]
|
|
|
|
----------------------------------------------------
|
|
|
|
Checks for class-names.
|