{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreigb6srsxydtildedvnxmlph6ybmfwcdojtxfvpno6buimezgqa5yu",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mhgpc3sbgvr2"
  },
  "path": "/t/rfc-sibyl-time-series-analysis-in-haskell/13823#post_11",
  "publishedAt": "2026-03-19T13:26:58.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "It essentially works, so far, as an import facade layer. So if you want access to the underlying (safe) functions you just import the module itself: i.e. `import Sibyl.Forecast` instead of just `import Sibyl`. The top-level module exposes all the ‘unsafe’ wrapper functions, and each individual module is safe by default. This might make things a little annoying for users that want to mix both layers in their applications, but you can just import the individual module (probably qualified) and hide its wrapped functions using the `hiding` keyword. This is still up for debate, though, and I’ve often thought of moving every module to its own `Safe` domain and renaming the top-level wrapper layer to `Unsafe`, as in `Sibyl.Unsafe` and `Sibyl.Safe.Module`",
  "title": "[RFC] Sibyl: Time Series Analysis in Haskell"
}