module Language.PureScript.Bridge.Primitives where
import Data.Proxy
import Language.PureScript.Bridge.Builder
import Language.PureScript.Bridge.PSTypes
import Language.PureScript.Bridge.TypeInfo
import Control.Monad.Reader.Class
boolBridge :: BridgePart
boolBridge = typeName ^== "Bool" >> return psBool
eitherBridge :: BridgePart
eitherBridge = typeName ^== "Either" >> psEither
dummyBridge :: MonadReader BridgeData m => m PSType
dummyBridge = clearPackageFixUp
intBridge :: BridgePart
intBridge = typeName ^== "Int" >> return psInt
listBridge :: BridgePart
listBridge = typeName ^== "[]" >> psArray
maybeBridge :: BridgePart
maybeBridge = typeName ^== "Maybe" >> psMaybe
stringBridge :: BridgePart
stringBridge = haskType ^== mkTypeInfo (Proxy :: Proxy String ) >> return psString
textBridge :: BridgePart
textBridge = do
typeName ^== "Text"
typeModule ^== "Data.Text.Internal" <|> typeModule ^== "Data.Text.Internal.Lazy"
return psString
unitBridge :: BridgePart
unitBridge = typeName ^== "()" >> return psUnit