schemas-0.4.0.0: test/Looper.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
module Looper where
import Data.Generics.Labels ()
import GHC.Generics
import Schemas
data Looper
= Number Int
| Loop Looper
deriving (Eq, Generic, Show)
instance HasSchema Looper where
schema = named "Looper" $ oneOf
[ altWith schema #_Number
, altWith schema #_Loop
]
looper1 = Number 1
looper2 = Loop $ Number 2