Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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 Value
s 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
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.