| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Hercules.CNix.Expr.Raw
Synopsis
- newtype RawValue = RawValue (Ptr Value')
- mkRawValue :: Ptr Value' -> IO RawValue
- data RawValueType
- rawValueType :: RawValue -> IO RawValueType
- forceValue :: Exception a => Ptr EvalState -> RawValue -> IO (Either a ())
- canonicalRawType :: RawValueType -> RawValueType
Documentation
A heap object.
Nix doesn't store all its objects on the heap, but we do.
Also, Nix calls them Values but it includes thunks, which are not values
and some may never produce values, such as throw "msg".
data RawValueType Source #
Similar to Nix's Value->type but conflates the List variations
Constructors
| Int | |
| Bool | |
| String | |
| Path | |
| Null | |
| Attrs | |
| List | |
| Thunk | |
| App | |
| Lambda | |
| Blackhole | |
| PrimOp | |
| PrimOpApp | |
| External | |
| Float | |
| Other |
Instances
rawValueType :: RawValue -> IO RawValueType Source #
You may need to forceValue first.
canonicalRawType :: RawValueType -> RawValueType Source #
Brings RawValueType closer to the 2.4 ValueType.
This function won't be necessary when support for 2.3 is dropped and we switch entirely to the Haskell equivalent of C++ ValueType.