1
1
mirror of https://github.com/github/semantic.git synced 2024-12-23 06:41:45 +03:00

Cell types uniquely determine location types.

This commit is contained in:
Rob Rix 2017-11-28 17:19:45 -05:00
parent 3b4e4bcff1
commit 3e71e57358

View File

@ -1,4 +1,4 @@
{-# LANGUAGE AllowAmbiguousTypes, DataKinds, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies, TypeOperators, UndecidableInstances #-} {-# LANGUAGE AllowAmbiguousTypes, DataKinds, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeFamilyDependencies, TypeFamilies, TypeOperators, UndecidableInstances #-}
module Abstract.Store module Abstract.Store
( Precise(..) ( Precise(..)
, Monovariant(..) , Monovariant(..)
@ -67,7 +67,7 @@ modifyStore f = getStore >>= putStore . f
class (Ord l, Pointed (Cell l), Monad m) => MonadAddress l m where class (Ord l, Pointed (Cell l), Monad m) => MonadAddress l m where
type Cell l :: * -> * type Cell (l :: *) = (res :: * -> *) | res -> l
deref :: (MonadStore l a m, MonadFail m) => Address l a -> m a deref :: (MonadStore l a m, MonadFail m) => Address l a -> m a