package tablecloth-base
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Comparator provide a way for custom data structures to be used with Map
s and Set
s
Say we have a module Book
which we want to be able to create a Set
of
module Book = struct
type t = {
isbn: string;
title: string;
}
let compare book_a book_b =
String.compare book_a.isbn book_b.isbn
end
First we need to make our module conform to the S
signature.
This can be done by using the Make
functor.
module Book = struct
type t = {
isbn: string;
title: string;
}
let compare book_a book_b =
String.compare book_a.isbn book_b.isbn
include Comparator.Make(struct
type nonrec t = t
let compare = compare
end)
end
Now we can create a Set of books:
Set.from_list (module Book) [
{ isbn="9788460767923"; title="Moby Dick or The Whale" }
]
type ('a, 'identity) t = ('a, 'identity) Base.Comparator.t
A type alias that is useful typing functions which accept first class modules like Map.empty
or Set.from_array
.Tablecloth
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>