Agda
Safe HaskellNone
LanguageHaskell2010

Agda.Utils.FileId

Description

Translating between file paths and ids.

This module allows you to build a dictionary from file paths to some unique identifier and to look up both file paths and identifiers in that dictionary.

Synopsis

Documentation

newtype FileId Source #

Unique identifier of a file.

Constructors

FileId 

Fields

Instances

Instances details
GetFileId FileToId Source # 
Instance details

Defined in Agda.Utils.FileId

GetIdFile IdToFile Source # 
Instance details

Defined in Agda.Utils.FileId

NFData FileId Source # 
Instance details

Defined in Agda.Utils.FileId

Methods

rnf :: FileId -> () #

Enum FileId Source # 
Instance details

Defined in Agda.Utils.FileId

Generic FileId Source # 
Instance details

Defined in Agda.Utils.FileId

Associated Types

type Rep FileId 
Instance details

Defined in Agda.Utils.FileId

type Rep FileId = D1 ('MetaData "FileId" "Agda.Utils.FileId" "Agda-2.8.0-inplace" 'True) (C1 ('MetaCons "FileId" 'PrefixI 'True) (S1 ('MetaSel ('Just "theFileId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))

Methods

from :: FileId -> Rep FileId x #

to :: Rep FileId x -> FileId #

Num FileId Source # 
Instance details

Defined in Agda.Utils.FileId

Show FileId Source # 
Instance details

Defined in Agda.Utils.FileId

Eq FileId Source # 
Instance details

Defined in Agda.Utils.FileId

Methods

(==) :: FileId -> FileId -> Bool #

(/=) :: FileId -> FileId -> Bool #

Ord FileId Source # 
Instance details

Defined in Agda.Utils.FileId

type Rep FileId Source # 
Instance details

Defined in Agda.Utils.FileId

type Rep FileId = D1 ('MetaData "FileId" "Agda.Utils.FileId" "Agda-2.8.0-inplace" 'True) (C1 ('MetaCons "FileId" 'PrefixI 'True) (S1 ('MetaSel ('Just "theFileId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))

Mapping between files and their unique identifiers.

data FileDict Source #

Constructors

FileDict 

Instances

Instances details
GetFileId FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

GetIdFile FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

Null FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

NFData FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

Methods

rnf :: FileDict -> () #

Generic FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

Associated Types

type Rep FileDict 
Instance details

Defined in Agda.Utils.FileId

type Rep FileDict = D1 ('MetaData "FileDict" "Agda.Utils.FileId" "Agda-2.8.0-inplace" 'False) (C1 ('MetaCons "FileDict" 'PrefixI 'True) (S1 ('MetaSel ('Just "fileToId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileToId) :*: S1 ('MetaSel ('Just "idToFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IdToFile)))

Methods

from :: FileDict -> Rep FileDict x #

to :: Rep FileDict x -> FileDict #

type Rep FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

type Rep FileDict = D1 ('MetaData "FileDict" "Agda.Utils.FileId" "Agda-2.8.0-inplace" 'False) (C1 ('MetaCons "FileDict" 'PrefixI 'True) (S1 ('MetaSel ('Just "fileToId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileToId) :*: S1 ('MetaSel ('Just "idToFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IdToFile)))

class GetFileId a where Source #

Translate a file to an ID; mapping must exist.

Methods

getFileId :: a -> File -> FileId Source #

Instances

Instances details
GetFileId FileDictWithBuiltins Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

GetFileId FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

GetFileId FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

GetFileId FileToId Source # 
Instance details

Defined in Agda.Utils.FileId

class GetIdFile a where Source #

Translate a ID to a file; mapping must exist.

Methods

getIdFile :: a -> FileId -> File Source #

Instances

Instances details
GetIdFile FileDictWithBuiltins Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

GetIdFile FileDict Source # 
Instance details

Defined in Agda.Utils.FileId

GetIdFile FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

GetIdFile IdToFile Source # 
Instance details

Defined in Agda.Utils.FileId

Constructing a mapping between files and their unique identifiers.

data FileDictBuilder Source #

Constructors

FileDictBuilder 

Instances

Instances details
GetFileId FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

GetIdFile FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

Null FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

NFData FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

Methods

rnf :: FileDictBuilder -> () #

Generic FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

Associated Types

type Rep FileDictBuilder 
Instance details

Defined in Agda.Utils.FileId

type Rep FileDictBuilder = D1 ('MetaData "FileDictBuilder" "Agda.Utils.FileId" "Agda-2.8.0-inplace" 'False) (C1 ('MetaCons "FileDictBuilder" 'PrefixI 'True) (S1 ('MetaSel ('Just "nextFileId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileId) :*: S1 ('MetaSel ('Just "fileDict") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileDict)))
type Rep FileDictBuilder Source # 
Instance details

Defined in Agda.Utils.FileId

type Rep FileDictBuilder = D1 ('MetaData "FileDictBuilder" "Agda.Utils.FileId" "Agda-2.8.0-inplace" 'False) (C1 ('MetaCons "FileDictBuilder" 'PrefixI 'True) (S1 ('MetaSel ('Just "nextFileId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileId) :*: S1 ('MetaSel ('Just "fileDict") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileDict)))

registerFileId :: File -> FileDictBuilder -> (FileId, FileDictBuilder) Source #

Register a new file identifier or retrieve an existing one.

registerFileId' :: File -> FileDictBuilder -> ((FileId, Bool), FileDictBuilder) Source #

Register a new file identifier (True) or retrieve an existing one (False).

registerFileId'' :: File -> FileDictBuilder -> (FileId, Maybe FileDictBuilder) Source #

Register a new file identifier or retrieve an existing one.

If Nothing is returned, the file was already registered.

Monadic interface

class Monad m => MonadFileId (m :: Type -> Type) where Source #

Minimal complete definition

Nothing

Methods

fileFromId :: FileId -> m File Source #

default fileFromId :: forall (t :: (Type -> Type) -> Type -> Type) (n :: Type -> Type). (MonadTrans t, MonadFileId n, m ~ t n) => FileId -> m File Source #

idFromFile :: File -> m FileId Source #

default idFromFile :: forall (t :: (Type -> Type) -> Type -> Type) (n :: Type -> Type). (MonadTrans t, MonadFileId n, m ~ t n) => File -> m FileId Source #

Instances

Instances details
MonadFileId IM Source # 
Instance details

Defined in Agda.Interaction.Monad

MonadIO m => MonadFileId (TCMT m) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.State

MonadFileId m => MonadFileId (ExceptT e m) Source # 
Instance details

Defined in Agda.Utils.FileId

MonadFileId m => MonadFileId (ReaderT r m) Source # 
Instance details

Defined in Agda.Utils.FileId

MonadFileId m => MonadFileId (StateT s m) Source # 
Instance details

Defined in Agda.Utils.FileId