{-# LANGUAGE DataKinds #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleInstances, TypeSynonymInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module CryptoID ( module CryptoID , module Data.CryptoID.Poly.ImplicitNamespace , module Data.UUID.Cryptographic.ImplicitNamespace , module System.FilePath.Cryptographic.ImplicitNamespace ) where import CryptoID.TH import ClassyPrelude hiding (fromString) import Model import Data.CryptoID.Poly.ImplicitNamespace import Data.UUID.Cryptographic.ImplicitNamespace import System.FilePath.Cryptographic.ImplicitNamespace import Data.UUID.Types import Web.PathPieces instance PathPiece UUID where fromPathPiece = fromString . unpack toPathPiece = pack . toString -- Generates CryptoUUID... Datatypes decCryptoIDs [ ''SubmissionId , ''CourseId , ''SheetId , ''FileId ] {- TODO: Do we need/want CryptoUUIDs for Sheet numbers? -}