packages feed

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