1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 22:31:36 +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
( Precise(..)
, Monovariant(..)
@ -67,7 +67,7 @@ modifyStore f = getStore >>= putStore . f
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