From 29c6dcda77ee8348f7c8b292d61d363a6d699e26 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 9 Mar 2016 11:04:59 -0400 Subject: comment --- ...1_507e3b74c2a3b8f41da5d3eddf197c6f._comment.swp | Bin 0 -> 12288 bytes ...ent_6_b10cb4445eb2519c8b3f7f080c975113._comment | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 doc/todo/type_level_OS_requirements/.comment_1_507e3b74c2a3b8f41da5d3eddf197c6f._comment.swp create mode 100644 doc/todo/type_level_OS_requirements/comment_6_b10cb4445eb2519c8b3f7f080c975113._comment (limited to 'doc/todo/type_level_OS_requirements') diff --git a/doc/todo/type_level_OS_requirements/.comment_1_507e3b74c2a3b8f41da5d3eddf197c6f._comment.swp b/doc/todo/type_level_OS_requirements/.comment_1_507e3b74c2a3b8f41da5d3eddf197c6f._comment.swp new file mode 100644 index 00000000..79380a08 Binary files /dev/null and b/doc/todo/type_level_OS_requirements/.comment_1_507e3b74c2a3b8f41da5d3eddf197c6f._comment.swp differ 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. +"""]] -- cgit v1.2.3