1
1
mirror of https://github.com/github/semantic.git synced 2024-12-20 21:31:48 +03:00

Define LocationFor as an open type family.

This commit is contained in:
Rob Rix 2018-03-14 10:55:59 -04:00
parent b8fb250e10
commit 426b48ea1c

View File

@ -117,9 +117,9 @@ type CellFor value = Cell (LocationFor value) value
type LiveFor value = Live (LocationFor value) value
-- | The location type (the body of 'Address'es) which should be used for an abstract value type.
type family LocationFor value :: * where
LocationFor (Value location term) = location
LocationFor Type.Type = Monovariant
type family LocationFor value :: *
type instance LocationFor (Value location term) = location
type instance LocationFor Type.Type = Monovariant
-- | Value types, e.g. closures, which can root a set of addresses.
class ValueRoots value where