diff options
Diffstat (limited to 'doc/todo/type_level_OS_requirements/comment_6_b10cb4445eb2519c8b3f7f080c975113._comment')
-rw-r--r-- | doc/todo/type_level_OS_requirements/comment_6_b10cb4445eb2519c8b3f7f080c975113._comment | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/todo/type_level_OS_requirements/comment_6_b10cb4445eb2519c8b3f7f080c975113._comment b/doc/todo/type_level_OS_requirements/comment_6_b10cb4445eb2519c8b3f7f080c975113._comment new file mode 100644 index 00000000..9741de20 --- /dev/null +++ b/doc/todo/type_level_OS_requirements/comment_6_b10cb4445eb2519c8b3f7f080c975113._comment @@ -0,0 +1,21 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 6""" + date="2016-03-09T15:01:05Z" + content=""" +I've added a prototype of `ensureProperty` that enforces at the type level +that the property it runs will work on an OS that's passed to it. + +It was easier than I thought; I didn't turn out to need reification. Just +pass in the outer OS: + + ensureProperty + :: (CannotCombineOS outeros inneros (IntersectOSList outeros inneros) ~ CanCombineOS) + => OSList outeros + -> Property (OSList inneros) + -> IO () + ensureProperty outeros (Property inneros a) = a + +At this point, I'm confident this can be rolled out into propellor; +there should be no big bumps in the road ahead. +"""]] |