packages feed

ghcjs-base-0.8.0.4: GHCJS/Nullable.hs

module GHCJS.Nullable ( Nullable(..)
                      , nullableToMaybe
                      , maybeToNullable
                      ) where

import GHC.JS.Prim (JSVal(..))
import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))

newtype Nullable a = Nullable JSVal

nullableToMaybe :: PFromJSVal a => Nullable a -> Maybe a
nullableToMaybe (Nullable r) = pFromJSVal r
{-# INLINE nullableToMaybe #-}

maybeToNullable :: PToJSVal a => Maybe a -> Nullable a
maybeToNullable = Nullable . pToJSVal
{-# INLINE maybeToNullable #-}