on master help sign in
roboservant/test/Seeded.hs
33 lines 705 B history raw
1{-# LANGUAGE DataKinds #-}
2{-# LANGUAGE DeriveGeneric #-}
3{-# LANGUAGE DerivingStrategies #-}
4{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE TypeOperators #-}
8module Seeded where
10import Data.Aeson
11import Data.Hashable
12import Data.Typeable (Typeable)
13import GHC.Generics (Generic)
14import Servant
16newtype Seed = Seed Int
17 deriving (Generic, Eq, Show, Typeable)
18 deriving newtype (FromHttpApiData, ToHttpApiData)
20instance ToJSON Seed
22instance FromJSON Seed
24instance Hashable Seed
26type Api =
27 Capture "seed" Seed :> Get '[JSON] ()
28 :<|> Get '[JSON] ()
30server :: Server Api
31server =
32 (\(Seed _) -> error "we blow up if we get here")
33 :<|> pure ()