{
  "$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"
}