Trying out the purescript FFI, and following the "Purescript By Example" book, I have created a JS file to get the head of an array:
exports.head = function(arr) {
return arr[0];
};
And in purescript I declare a new Undefined
data for the type signature of head to indicate the undefined
returned when the array is empty:
foreign import data Undefined :: Type -> Type
foreign import head :: forall a. Array a -> Undefined a
Now, how do I use a value of type Undefined a
? What function do I need to define to extract the a
so I can use it elsewhere?
The example in the book follows by just defining a function:
foreign import isUndefined :: forall a. Undefined a -> Boolean
as:
exports.isUndefined = function(value) {
return value === undefined;
};
but I need something like:
foreign import getFromUndefined :: forall a. Undefined a -> a
Is it possible to write that function in JS, and in that case, what to return when the Undefined a
is really undefined
?
Or alternatively, can I redefine the type Undefined a
to allow patern matching over it to extract the a?