packages feed

fay-0.23.0.0: tests/serialization.hs

module Serialization where

import FFI

data Parametric a = Parametric a
data ConcreteRecord = ConcreteRecord { concreteField :: Double }
main = do
  printParametricButConcreteType (Parametric (ConcreteRecord 123))
  printParametricButAutomaticType (Parametric (ConcreteRecord 123))
  printParametricType (Parametric (ConcreteRecord 123))
  printMaybeConcrete (Just (ConcreteRecord 42))
  printMaybeAutomatic (Just (ConcreteRecord 42))
  printMaybe (Just (ConcreteRecord 42))
  printUnknown 42
  printUnknownField (Just 42)
  printAutomatic (Just (ConcreteRecord 42))

printParametricButConcreteType :: Parametric ConcreteRecord -> Fay ()
printParametricButConcreteType = ffi "console.log(%1)"

printParametricButAutomaticType :: Parametric (Automatic a) -> Fay ()
printParametricButAutomaticType = ffi "console.log(%1)"

printParametricType :: Parametric a -> Fay ()
printParametricType = ffi "console.log(%1)"

printMaybeConcrete :: Maybe ConcreteRecord -> Fay ()
printMaybeConcrete = ffi "console.log(%1)"

printMaybeAutomatic :: Maybe (Automatic a) -> Fay ()
printMaybeAutomatic = ffi "console.log(%1)"

printMaybe :: Maybe a -> Fay ()
printMaybe = ffi "console.log(%1)"

printUnknown :: a -> Fay ()
printUnknown = ffi "console.log(%1)"

printUnknownField :: Maybe a -> Fay ()
printUnknownField = ffi "console.log(%1)"

printAutomatic :: Automatic a -> Fay ()
printAutomatic = ffi "console.log(%1)"