Great--thanks very much. I have a lot of appreciation for how much JS has invested and continues to invest in Core as a public resource.
OK--that's great. Thanks.
The other thing that I don't understand what role is played by the various subsidiary modules--
S1, etc. No need to explain now, but I hope that this sort of thing will eventually be documented.
It looks like it may be the "supports bin-io and s-expression conversion" part that will make
Interval difficult for me.
(Not sure if this should be moved to the Learner category at this point.)
My guess was that the following would work using the owl's double-precision dense matrix type and my own matrix
compare function. (The standard polymorphic
compare doesn't do what I want.)
module Mat_interval = Core.Interval.Make(struct
type t = Owl.Mat.mat
let compare = Comparemat.compare
This produces a Signature mismatch error with many "required but not provided" items; this probably isn't suprising--I doubt it's worth reproducing the errors here. I think the problem is that I haven't included anything related to bin-io and sexp conversion.
It sounds as if I would have to implement quite a bit of additional functionality in a wrapper around an owl matrix type to use
Core.Interval with it. If so, that's OK. I can always use chapter 9 in RWO as a model for a simpler kind of interval that would meet my needs. (There are always tradeoffs. I understand that
Core.Interval is designed to integrate into larger systems in particular ways.)