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