summaryrefslogtreecommitdiff
path: root/doc/todo
diff options
context:
space:
mode:
Diffstat (limited to 'doc/todo')
-rw-r--r--doc/todo/type_level_OS_requirements/comment_3_124ceb79eaa4eacc9636147dde4c262c._comment8
-rw-r--r--doc/todo/type_level_OS_requirements/comment_4_8d14bbbec4e219015a80f80bf6124181._comment12
-rw-r--r--doc/todo/type_level_privdata_availability_checking.mdwn20
3 files changed, 33 insertions, 7 deletions
diff --git a/doc/todo/type_level_OS_requirements/comment_3_124ceb79eaa4eacc9636147dde4c262c._comment b/doc/todo/type_level_OS_requirements/comment_3_124ceb79eaa4eacc9636147dde4c262c._comment
new file mode 100644
index 00000000..230eccab
--- /dev/null
+++ b/doc/todo/type_level_OS_requirements/comment_3_124ceb79eaa4eacc9636147dde4c262c._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2016-03-08T21:06:08Z"
+ content="""
+Asked about what I'm stuck on:
+<http://stackoverflow.com/questions/35878018/how-to-write-an-intersection-function-for-type-level-lists>
+"""]]
diff --git a/doc/todo/type_level_OS_requirements/comment_4_8d14bbbec4e219015a80f80bf6124181._comment b/doc/todo/type_level_OS_requirements/comment_4_8d14bbbec4e219015a80f80bf6124181._comment
new file mode 100644
index 00000000..5db7b68b
--- /dev/null
+++ b/doc/todo/type_level_OS_requirements/comment_4_8d14bbbec4e219015a80f80bf6124181._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2016-03-08T21:19:01Z"
+ content="""
+Ok, got intersectSupportedOS fixed.
+
+ *Propellor.Types.OS.TypeLevel> :t (intersectSupportedOS (combineSupportedOS freeBSD debian) debian)
+ (intersectSupportedOS (combineSupportedOS freeBSD debian) debian) :: OSList '['OSDebian]
+
+So, the type level OS lists are ready, on to the next step ... eventually ...
+"""]]
diff --git a/doc/todo/type_level_privdata_availability_checking.mdwn b/doc/todo/type_level_privdata_availability_checking.mdwn
index 7f02c700..cb0d157d 100644
--- a/doc/todo/type_level_privdata_availability_checking.mdwn
+++ b/doc/todo/type_level_privdata_availability_checking.mdwn
@@ -11,8 +11,8 @@ It would have one type-level function
type instance HasPrivData "password" "foo.com" = Available
-- ^ supposed to be type level strings
-The file would generate instances of the type family or each available privdata
-value.
+The file would be generated with
+instances of the type family for each available privdata value.
`withPrivData` would use this type level function, and require it to return
Availble. If it didn't, the type checker would blow up.
@@ -23,12 +23,18 @@ may be tricky.)
For this to work, `withPrivData` would need some interesting changes to its
type signature, so that it has available the type level strings describing
the privdata it's supposed to get. Is that practical? I think so,
-actually..
+actually..
- withPrivData :: (HasPrivData source context) => source -> context -> (((PrivData -> Propellor Result) -> Propellor Result) -> Property i) -> Property HasInfo
+Something like this, although my type-level comparison syntax may be off.
-All that's needed is a way to provide a type level string from which a
-string value can be extracted that has the same string as the type. IIRC,
-that's supported by type level strings.
+ withPrivData :: (HasPrivData source context ~ Available) source -> context -> (((PrivData -> Propellor Result) -> Propellor Result) -> Property i) -> Property HasInfo
+
+All that's needed to use this is a way to provide a type level string from
+which a string value can be extracted that has the same string as the type.
+IIRC, that's supported by type level strings.
+
+But.. This may get tricky/unusable when source and context are constructed
+based on data now, since the type-level source and context need to be
+constructed at build time.
--[[Joey]]