{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreieddtnyzet27kemvaz3mpbqf5ja7b2d72itgmuggfgpnzh7xhf224",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mlc56i7gsdj2"
},
"path": "/t/ann-interval-patterns-0-8-2/14044#post_8",
"publishedAt": "2026-05-07T19:44:20.000Z",
"site": "https://discourse.haskell.org",
"tags": [
"(click for more details)"
],
"textContent": "The convex hull is more involved to calculate, but straightforward to use. `interval`, `lower`, and `upper` work with the internals to create the result.\n\n\n hull :: (Ord x) => Interval x -> Interval x -> Interval x\n hull i1 i2 = case adjacency i1 i2 of\n Before i j -> interval (lower i) (upper j)\n Meets i _ k -> interval (lower i) (upper k)\n Overlaps i _ k -> interval (lower i) (upper k)\n Starts i j -> interval (lower i) (upper j)\n During i _ k -> interval (lower i) (upper k)\n Finishes i j -> interval (lower i) (upper j)\n Identical i -> i\n FinishedBy i j -> interval (lower i) (upper j)\n Contains i _ k -> interval (lower i) (upper k)\n StartedBy i j -> interval (lower i) (upper j)\n OverlappedBy i _ k -> interval (lower i) (upper k)\n MetBy i _ k -> interval (lower i) (upper k)\n After i j -> interval (lower i) (upper j)\n\n\nInternals (click for more details)",
"title": "[ANN] interval-patterns-0.8.2"
}